Releases: OpenOrbis/OpenOrbis-PS4-Toolchain
Releases · OpenOrbis/OpenOrbis-PS4-Toolchain
v0.5.3
What's Changed
- Fix OrbisSaveDataParam definition by @bucanero in #174
- Fix SaveData.h compiling error in #173
- Update SystemService.h to include dependency by @Al-Azif in #175
- Piglet sample: censor out sceKernelDlsym by @sleirsgoevy in #182
- libkernel.h: add scePthreadSelf definition by @Cpasjuste in #184
- Add RegMgr methods by @bucanero in #179
- .NET Core 3.0 Runtime is required to run LibOrbisPkg by @illusion0001 in #176
- Update libkernel.h by @Backporter in #186
- Readd keyboard sample (fixed a typo) by @Klairm in #183
- Remove specific versioning from Dockerfile by @Al-Azif in #194
- Fix #178 by @Al-Azif in #193
- Add Trophy Support and add a sample for the trophy system by @Backporter in #188
- Add HTTP sample by @bucanero in #196
- Add a MsgDialog sample by @bucanero in #197
- Update Rtc.h by @Backporter in #202
- Add sceNetResolver...() methods by @bucanero in #207
- fix firmware structure, fix sceKernelFstat's args, sceRtcCurrentClockLocalTime's args, add error dialog structures and function definitions, add Np defs. by @Backporter in #203
- For convenience, add 2 XML tags to MyTemplate.vstemplate by @SummerFalls in #204
- Update fliprate and Screenshot Overlay Stub by @illusion0001 in #212
- CI: fix build by @illusion0001 in #217
- Add user service methods by @bucanero in #215
- Update bash script to exclude non make folders by @illusion0001 in #222
- dialogs: use
show_dialog
for condition example by @illusion0001 in #221 - Force sce sections to appear in the elf. by @nkrapivin in #211
- Move fliprate to enum by @illusion0001 in #216
- Update ScreenShot defs by @illusion0001 in #214
- Add appinfo data type and functions. by @OSM-Made in #220
- Defined some networking functions. by @OSM-Made in #219
- Fix net http build by @illusion0001 in #224
- Update readme badges by @illusion0001 in #225
- CI: Download latest releases from URLs by @illusion0001 in #227
- add definitions by @bucanero in #230
- Fix C definitions by @bucanero in #231
- Add sceUsbd definitions by @InvoxiPlayGames in #229
- Update save_data.h by @illusion0001 in #234
- Fix
#endif
order by @illusion0001 in #233 - Add some definitions for GnmDriver and VideoOut by @pipehuffer in #235
- Add extension controller support to Pad.h header. by @InvoxiPlayGames in #228
- kernel: replace BSD types with stdint's in kevent's flags by @pipehuffer in #236
- Update scePadReadExt+scePadReadStateExt by @illusion0001 in #246
- Rename
int
toint32_t
andunsigned int
touint32_t
by @illusion0001 in #248 - Update .gitignore by @illusion0001 in #244
- Fix build for llvm 14+ by @illusion0001 in #242
- Fix undefined symbols by @illusion0001 in #245
- Change sys/time.h to time.h in save_data.h in #238
- Added Save Data Missing Info by @xXxTheDarkprogramerxXx in #187
- App launching definitions (from @LightningMods) by @illusion0001 in #232
- Convert macro definitions into enums by @illusion0001 in #243
- Fix map protection types by @illusion0001 in #247
- Update libmonovm.h by @kiwidoggie in #251
- GnmDriver: Add definitions for SetEmbeddedShader and DrawIndexAuto by @pipehuffer in #240
- Update CommonDialog.h by @illusion0001 in #252
- Update CRT version to 1.00 to allow building on older firmwares. by @kiwidoggie in #253
- build library stub from separate file by @0xcaff in #258
- Update action versions and rebuild every month by @illusion0001 in #263
New Contributors
- @Cpasjuste made their first contribution in #184
- @illusion0001 made their first contribution in #176
- @Backporter made their first contribution in #186
- @SummerFalls made their first contribution in #204
- @InvoxiPlayGames made their first contribution in #229
- @pipehuffer made their first contribution in #235
- @0xcaff made their first contribution in #258
Full Changelog: v0.5.2...v0.5.3
v0.5.2
- C++ exception support has been added (thanks Nikita Krapivin)!
- Added OpenGL/piglet GPU rendering sample + headers (thanks Nikita Krapivin)!
- Added automated package generation to sample build scripts!
- Added C++ support for building libraries/PRXs!
- Added and updated prototypes/types for over 13 PS4-specific headers (thanks 0x199, sleirsgoevy, Nikita Krapivin, OSM, al-azif, bucanero)!
- Updated build system/scripts for samples and VS project templates to a more clean and convenient system.
- Fixed an issue where homebrew apps were hard to debug in GDB due to improper .dynamic section (thanks sleirsgoevy)!
- Fixed more discrepancies between BSD and MUSL headers (thanks sleirsgoevy, al-azif).
- Fixed an issue where C++ cmath headers failed to use certain namespaces (thanks Nikita Krapivin).
- Fixed various miscalculation bugs in create-fself.
- Reworked musl to use libkernel instead of syscalls for compatibility (thanks sleirsgoevy, John Tornblom).
- Merged create-eboot and create-lib into one tool for ease-of-use.
v0.5.1
- Fixed various discrepancies between BSD and MUSL including function prototypes, structure definitions, and macros!
- Added Docker container support (thanks alazif)!
- Added proper TLS support (thanks sleirsgoevy)!
- Added a battery of unit tests for issues addressed in v0.5.1. These tests will be kept up to date with future additions to attempt to improve release qualities.
- Fixed an issue where MUSL was not thread-safe due to custom CRT.
- Added support '+' and '-' escaping in NIDs (thanks sleirsgoevy).
- Fixed an issue where relocations could refer to incorrect symbols due to not accounting for an additional
SECTION
entry (thanks sleirsgoevy). - Fixed copy/paste induced bugs in the autobuild.py script (thanks alazif).
- Fixed a minor issue where the
__bswap32
macro in the endian include header produced compiler warnings (thanks astrelsky).
v0.5
- The toolchain now includes stub/empty libc and libSceFios2 modules to avoid breaking non-homebrew games and applications!
- Note: This change works in conjunction with Mira, meaning you'll want to update the version of Mira you're loading as well.
- Additional note: these modules can be found in /bin/data/modules/libc.prx and /bin/data/modules/libSceFios2.prx, and should be placed in
sce_module/
in your homebrew's package file.
- SDL2 headers as well as a mini game sample have now been added (thanks znullptr for the original SDL port)!
- C++ threading (std::thread) support has been added!
- C++ locking / synchronization support has been added!
- Fixed a performance issue in create-eboot, giving it a 7858% performance boost (measured with the SDL sample)!
- Visual studio project templates now support and link with C++ by default.
- Added various macros and function definitions to libkernel, libScePad, libSceUserService, and libSceVideoOut, as well as documentation for these additions.
- Added right.prx by IDC to all samples (thanks IDC for right.prx).
- Slightly adjusted sample pkg gp4 files to use the same eboot.bin created by build scripts instead of unnecessarily using a copy.
- Fixed jagged text rendering in
/samples/_common/graphics.cpp
due to not factoring in the freetype greyscale bitmap alpha properly. - Buffering is now disabled on stdout automatically due to it not handling buffering well.
- Updated pthread header to use PS4/BSD-specific values.
- Samples now have DWARF / debug symbols included by default (thanks sleirsgoevy).
- Reworked the threading sample to use std::thread and std::mutex now that C++ threading is supported.
- Reworked the networking sample to a TCP server instead of a TCP client.
- Fixed an issue where a really silly FreeBSD change broke any networking functions that need to use the sockaddr struct such as bind.
- Fixed an issue where GP4 project files were using non-portable windows-style path separators (thanks sleirsgoevy).
- Fixed an issue where the non-sce sleep() function didn't work due to a MUSL-related issues (thanks LM, ChendoChap).
- Fixed an issue where SPRX visual studio projects contained a typo in an include statement and an incorrect set of libraries for the build script.
- Fixed the cmath c++ header, which included
using
statements for functions that are macros on FreeBSD targets (thanks kiwidog). - Fixed an issue where the
sockaddr_in
structure was incorrect due to a discrepancy between Linux and FreeBSD (thanks kiwidog). - Fixed an issue where AF_INET6 was erroneously set to 10 due to a discrepancy between Linux and FreeBSD (thanks sleirsgoevy).
v0.4
- Added C++ support via
include/c++/v1
headers and statically built libcxx. - Added support for C++ init_array/fini_array dynamic tags in create-eboot / create-lib.
- Remade a new fancy windows installer.
- Created a script to streamline the release creation process.
- Added initial PS4 library documentation into
/docs
for libkernel, pad, sysmodule, userservice, and videoout. - Common functionality between samples (graphics and logging as well as PNG decoding) have been moved into
/samples/_common
. - Font sample has been rewritten to use C++.
- Hello world sample has been rewritten to use C++.
- Input sample has been rewritten to use C++ and now has a visual component to make the sample more obvious in what it does.
- PNG decoding sample has been rewritten to use C++.
- System sample has been rewritten to use C++ and now prints to the screen instead of stdout to better demonstrate what it does.
- Threading sample has been rewritten to use C++ and similar to system sample, now prints to the screen.
- Fixed an issue where the create-eboot/lib and readelf build scripts were not building for macOS.
- Fixed a minor typo in readelf which caused
DT_INIT_ARRAY_SZ
andDT_FINI_ARRAY_SZ
tags to be incorrectly identified asDT_INIT_ARRAY
andDT_FINI_ARRAY
tags. - Updated various sample readmes to account for reworked samples.
- Removed old installer NSIS script.
Known Issues
- iostream's std::cout does not function properly and will cease to work after one write. For writing to stdout, use the
DEBUGLOG
macro insamples/_uncommon/log.h
. We hope to address this in the future.
v0.3
- Added MUSL libc support, removed old BSD headers, and reworked samples to use MUSL.
- Added libraries sources for Continuous Integration (CI).
- Added debugging info via section header table into OELFs via create-eboot.
- Fixed an issue in create-eboot where NIDs were written for local symbols when they shouldn't be.
- Fixed an issue where
drawPixel()
in the font, graphics, and pngdec samples were not inlined, causing performance slowdown (thanks m0rph3us1987). - Added interpreter string write to linker script and removed it from create-eboot.
- Removed condition from create-eboot where requiring a
.got.plt
section was only checked for SPRX libraries and not SELF eboots; all binaries need this section. - Removed sample package files to reduce bloat. They will later be available as separate releases.
- Disabled buffering on stdout on various samples for MUSL.
v0.2
- Added macOS support (thanks Lord Friky).
- Added package file sources for samples to make deploying samples easier, and to better demonstrate how packages should be constructed.
- Fixed an issue where create-lib did not properly export NIDs and therefore dynamic resolving would fail (thanks IDC).
- Fixed an issue where create-eboot/create-lib would occasionally calculate an incorrect data program size due to not accounting for the size of the
.sce_proc_param
section (thanks IDC). - Fixed an issue where create-eboot/create-lib would occasionally calculate an incorrect size of the string table due to an off by one via a subtle logic bug related to section padding (thanks IDC).
- Fixed an issue where libraries would not have their Global Offset Table (GOT) / Procedure Linkage Table (PLT) aligned if no
.data.rel.ro
section was present (thanks IDC). - Added a build script for create-eboot/create-lib for Windows (thanks IDC).
- Fixed an issue where the
__GNUC__
fix was being applied even if it was already defined, causing the compiler to complain if you manually defined it via compiler flags (thanks IDC). - Added
include/x86
directory for systems that don't have it. - Fixed an issue where even if there was no GOT/PLT, the PS4 would complain on libraries because it needs it for some silly reason.
.got.plt
is now forced into the build, even if there are no PLT entries (thanks IDC).
v0.1.1
- Fixes issue #6 where samples would fail to build on clang 10.0+. Credit to IDC, frangarcj for help root causing the issue, 1UP, and Tustin for initial reports.
- Fixes issue #7 where makefiles were not creating intermediate directories and would thus fail on build.
- Fixes issue #8 where the
setup-*.sh
scripts in/extra
had CRLF line endings, causing errors when attempting to run the scripts.
v0.1 BETA
The first public BETA release of the OpenOrbis PS4 Toolchain. Attached is a copy of the release zip with binaries, as well as a windows NSIS installer for convenience.