Console Hacking > General

DolceSDK - Playstation Vita homebrew SDK

<< < (3/3)

cuevavirus:
Changes summary 2020-09-09

headers

- added functions in SceThreadMgr and SceLibKernel (credits: Graphene)
- added functions in ScePaf, SceRegMgr

toolchain

A major bug caused by linker misconfiguration has been patched. The bug caused a per module waste of 32 KiB of runtime memory, and between 32 and 64 KiB of ELF file size. It is recommended to rebuild all SELFs.

Here is a comparison of section and segment sizes before and after the patch https://gist.github.com/cuevavirus/e9863502adfccfc18216b3883fa72a45. Note that the total section size in file went from 74933 to 21685 bytes which saves 53248 bytes. More significantly, the runtime memory size of the RX segment went from 37253 to 4485 which saves exactly 32 KiB. As Princess of Sleeping said, this waste of memory is FATAL.



Princess of Sleeping had previous reported this problem to the Hankaku discord server.



Vitasdk git commit pusher Francisco José García García directed us to this issue from 2016, which the only activity thereafter is Francisco José García García tagging it as "enhancement".



Two things are clear. First, we have shown here that contrary to Yifan Lu's claim, the side effects are not mitigated with SELF compression. Second, Vitasdk is content with merely "it works" and does not further consider "how can we make it better". This is a significant toolchain issue and after 4 years, much less fixing it, they do not even understand its consequences.

The DolceSDK team is committed to bringing you the best performing and most cutting edge PlayStation Vita homebrew SDK.

cuevavirus:
Changes summary 2020-09-23

Due to changes in db.yml and stub generation, it is likely that user modules will require adjustments to linked libraries to build. Please read below.

packages

- added box2d (credits: coderx)

toolchain

- binutils reverted to 2.32 due to issues in 2.35
- discard debug sections from ELF
- bug fix in dolce-make-fself (credits: princess of sleeping)
- dolce-libs-gen will now always generate one stub library file per library, whereas before that was only the case for kernel libraries, and all user libraries of a module are collected into one stub library

headers

Please note that SceGxmInternal functions have been renamed, and previously deprecated headers have been removed.

- added NIDs and prototypes in SceIniFileProcessor, SceKernelForMono (credits: graphene)
- fixes in SceCpu, added protypes in SceFios2Kernel (credits: princess of sleeping)
- added NIDs and prototypes in SceLibXml, SceGxm
- removed deprecated headers
- removed functions non-existent in 3.60 retail firmware
- moved libraries to correct module, and functions to correct library

The last point of moving libraries to the correct modules have been repeatedly brought up to Vitasdk maintainers. In fact you can see in 477 that it was brought up yet again while I was working on these very changes.

https://github.com/vitasdk/vita-headers/pull/410
https://github.com/vitasdk/vita-headers/issues/439
https://github.com/vitasdk/vita-headers/pull/477







For some reason these changes have made this person irrationally angry. DolceSDK has complied with Vitasdk's and Pspsdk's license in all applicable works.



The reason for refusal is yet again "backward compatibility". This reason is only a convenient excuse for the maintainers. When making their own changes, they do not hesitate to think about backward compatibility.

The most recent example being the upgrade to gcc10 (https://github.com/vitasdk/buildscripts/commit/9655cf26b2fd182108bf877a7db9d215ed32b97e), which is widely known for causing breakages due to -fno-common becoming the default (https://gcc.gnu.org/gcc-10/porting_to.html). Some of the most popular homebrews such as Vitashell (https://github.com/TheOfficialFloW/VitaShell/issues/579) are broken.

Another example is this inexplicable change to gcc configuration (https://github.com/vitasdk/buildscripts/commit/ba44b032963937730208151054ba5c673be6fc75). It was basically unuseable.



Still, it took more than a month before this change was reverted (https://github.com/vitasdk/buildscripts/commit/3e857643e84f57eb142c62efb2de98749138a232).

The DolceSDK team is focuses on correctness, consistency, and good design. Backward compatibility is neither a primary concern, nor an excuse for refusing changes.

cuevavirus:
Changes summary 2020-10-03

toolchain

make-fself has been completely rewritten and is now capable of producing the exact same output as make_fself.exe, except for revised section headers, which is not implemented. Some options of make_fself.exe are also not implemented. The commands produce the same output.


--- Code: ---# without compression
dolce-make-fself in.elf out.self
make_fself.exe -r -e in.elf out.self

# with compression
dolce-make-fself -c in.elf out.self
make_fself.exe -r -e -c in.elf out.self

--- End code ---

A new option `--strip` has also been added. This option will strip the ELF file except for the ELF header, the program header table, and segments referenced by the program headers except for any of type PT_SCE_COMMENT. This option produces the same output as using psp2pubcmd.exe, with the exception of the program version and extra zero bytes at the end of the certified file added by psp2pubcmd.exe. `--strip` is always enabled when using the dolce_create_self CMake function.

You will no longer see decompression error in 🟊Check.

headers

- additions and fixes to SceGim, ScePsp2Compat, SceAppMgr, SceIniFileProcessor, SceGpuEs4, SceIofilemgr (many changes are thanks to Graphene)

cuevavirus:
Changes summary 2021-01-05

Contributors: Graphene, SonicMastr, Isage, striker.sh

library

- A number of prx and static libraries are now bundled with the SDK installation. Includes libScePiglet, libshacccg, libSceScream, among others.
- Added prototypes or NIDs for SceAudiocodec, SceAvdec, SceVideodec, SceShaccCg, SceMotion, ScePaf, ScePsp2Compat, ScePiglet, SceScream, SceSndstream, network related modules, NP related modules
- Header additions and fixes for SceAppmgr, SceIofilemgr, SceIniFileProcessor, SceSysmem, SceDisplay, SceNotificationUtil, SceGxm, SceAudiodec, SceAudioenc, ScePromoterUtility, SceAppUtil, common dialog related headers, SceNetAdhoc, SceJson

packages

- New libraries libpib, glfw.
- SDL and SDL2 ports have been rewritten with significant improvements. SDL2 renders with GLES2 using libpib.
- Build prx libraries for vita2d_sys and vitaSAS
- Updated version for packages

sample

- New samples have been added for libshacccg, GLES2 with libScePiglet, notifications from BG app, SceIniFileProcessor

ddpm

- Scripts rewritten for improved usability and ease of maintenance

gcc

- Add builtin define __psp2__

newlib, pthread, toolchain

- Bug fixes and enhancements

Navigation

[0] Message Index

[*] Previous page

Go to full version