Repository navigation
fix(libkernel): pass module arguments to loaded modules - #4972
ducloc080202 wants to merge 4 commits into
Conversation
…t sceKernelLoadStartModule calls
… the calling thread's stack The block is still passed to its own load. The test covers a stack block followed by a zero-argument load, then a heap block recorded as before.
|
Windows build check of this PR. Environment: Windows 10 (19045), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release, Result: the merged tree builds, but no test of this PR runs on Windows: its tests ( Not checked: any behaviour of the change on Windows; no title run. AI-assisted (Claude Code). |
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
|
Thanks for this. Since the questions from 14 Oct are still open and it has gone quiet, I'm closing it for now to keep the queue current. Please reopen it once you've had a chance to address them, and we'll pick it up. |
What
Rebases #4296 (closed unmerged) onto current
mainand resolves thedocs/dev/TechnicalDebt.mdconflict by keepingmain's split debt files.SceKernelLoadStartModulenow remembers the first module-arguments block whose pointer does not lie on the calling thread's stack, and passes it to zero-argument module loads. Without this, modules that read their plugin arguments (e.g. Unity'sPSN.prxversion check) see garbage and can crash during startup: Cat Quest III (PPSA15065) crashed 4/4 boots inPSN.prxbefore this change.Tested
*module*ctests pass, includingguest_module_args(the new test from this change builds and runs on Linux/macOS CI; theNOT_WIN32guard is unchanged).0xc0000005inPSN.prx.guest.prxafter the "old version" error; after — boots past engine init and loads all 454 asset bundles to the loading screen. Linux/macOS rely on CI.Checklist
main; no other open PR implements the same functions (fix(libkernel): pass the first module arguments block to zero-argument sceKernelLoadStartModule calls #4296 is closed)NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)