Repository navigation
feat(libSceNgs2): keep caller data on racks with sceNgs2RackSetUserData and sceNgs2RackGetUserData - #8322
Merged
oneandonlydean merged 1 commit intoOct 21, 2026
Conversation
…ta and sceNgs2RackGetUserData
Progress report (02fb1ce → 2b633ab)📈 System libraries: 65.2% (+0.03%, +2 implemented, -2 removed functions) ✅ 2 implemented
🗑️ 2 removed
|
12 tasks done
|
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.
|
Open
12 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
sceNgs2RackSetUserDataandsceNgs2RackGetUserDatawere declared inlibSceNgs2/PendingExports.cppas throwing stubs. SharpProsperoNgs2.csdescribes them as attaching caller data to a rack and reading it back, with the signatures(rackHandle, userData)and(rackHandle, outUserData); shadPS4 declares the same signatures and only logs them.They now live next to the other rack calls in
libSceNgs2.native/src/Rack.cpp, so bothlibSceNgs2andlibSceNgs2.nativeexport them, and they followsceNgs2SystemSetUserDataandsceNgs2SystemGetUserData:INVALID_RACK_HANDLE(0x804A8202) without writing.sceNgs2SystemGetUserData.The two names leave the
libSceNgs2pending-exports debt entry, and alibSceNgs2.nativeentry records the sources and that the error order is not measured on a console.Tested
Ubuntu 26.04.1, kernel 7.0.0-38, GCC 15.2.0, Release, full build with
BUILD_TESTING=ON. Windows was not compiled. No title was run.ngs2_render(TestUserData):INVALID_RACK_HANDLEfor both calls and leave the output untouched; an invalid handle with a null output also returnsINVALID_RACK_HANDLE.sceNgs2RackDestroyboth calls returnINVALID_RACK_HANDLE.main, wherelibSceNgs2.nativehas no such exports. Not storing the value, or checking the output pointer before the handle, makes it fail.ngs2_*tests pass. The unpatchedlibSceNgs2.prxandlibSceNgs2.native.prxexport both functions.tools/check_conventions.py --base origin/mainpasses.tools/pr_overlap.pyfinds no conflicting lines. It could not compare feat(ngs2): add experimental I3DL2 reverb #1384 and feat(ngs2): decode complete HE-VAG waveform blocks #5797, which conflict withmain; neither changes rack user data.Checklist
main; no other open PR implements the same functionsNotImplemented_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)