Repository navigation
feat(exports): export the calls PPSA01317 imports - #4834
Merged
Merged
Conversation
Gran Turismo 7 (PPSA01317) fails to load on unresolved imports and on two needed libraries that AnyPS5 does not build (boykopovar#4782). - sceAppContentDownloadDataFormat empties /download0, as sceAppContentTemporaryDataFormat does for /temp0. - sceNpAuthSetTimeout returns REQUEST_NOT_FOUND for an unknown request like the other request calls, and OK otherwise; no request reaches the network the timeouts would bound. - sceNpWebApi2PushEventSetHandleTimeout throws for an unknown library context, like sceNpWebApi2GetMemoryPoolStats, and returns OK otherwise; push event handles are not tracked and nothing waits on one offline. - sceSslDisableVerifyOption, sceSslGetAlpnSelected, sceSslSetAlpn, sceSslSetMinSslVersion, sceAudioOutDeviceIdOpen and the unnamed libScePsml NIDs xNZM9Y5lf-M and lcZD9tJraAw are declared without parameters and throw; their signatures are unknown. - libSceUsbStorage and libSceUsbStorageDialog exist with no exports, like libSceXml: the title lists both as needed but imports nothing from them. Each assumption is recorded in the library's technical debt file. Co-authored-by: dawid-swiecicki <8942606+dawid-swiecicki@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Progress report (90c6839 → 8a7e119)📉 System libraries: 87.7% (-0.17%, +3 implemented, +7 declared functions) ✅ 3 implemented
🆕 7 declared as stubs
|
Collaborator
|
Checked build and the affected ctest set (39 tests, green) on the PR merged onto main, and that the 11 NIDs match the exported names. Exports without a known signature throw, the implemented ones have a test and a debt entry; merging. |
11 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
Gran Turismo 7 (PPSA01317) fails to load on unresolved imports, and on two needed libraries that AnyPS5 does not build. Both are listed in #4782. This PR covers what the first patch attached there adds, reworked to follow CONTRIBUTING: real behaviour where it can be derived, a throwing export where the signature is unknown, and no code comments.
sceAppContentDownloadDataFormat/download0, creating it if needed, assceAppContentTemporaryDataFormatdoes for/temp0. Null mount point →PARAMETER. Another mount point throws, as insceAppContentDownloadDataGetAvailableSpaceKb.sceNpAuthSetTimeoutREQUEST_NOT_FOUND, like the other request calls; otherwise OK. No request reaches the network the timeouts would bound. Signature from shadPS4 (PS4).sceNpWebApi2PushEventSetHandleTimeoutsceNpWebApi2GetMemoryPoolStats; otherwise OK. Push event handles are not tracked, and nothing waits on one offline. Signature followssceNpWebApiSetHandleTimeout(PS4, shadPS4).sceSslDisableVerifyOption,sceSslGetAlpnSelected,sceSslSetAlpn,sceSslSetMinSslVersionsceAudioOutDeviceIdOpen_specularAA,_quality8K)xNZM9Y5lf-M,lcZD9tJraAwAPS5_EXPORTasscePsmlUnknown01/02, throw. Built into both libScePsml and libScePsml_debug.DT_NEEDEDbut imports nothing from them.Each assumption has an entry in the library's file under
docs/dev/debt/.This is based on patch 1 from #4782 by @dawid-swiecicki, credited with
Co-authored-by. Patch 2 from that issue is #4809.Tested
Docker container, Ubuntu 24.04, GCC 14.2, Release,
-DBUILD_TESTING=ON, lavapipe:guest_appcontent: formats an empty and a populated/download0(a file and a subdirectory); a null mount point returnsPARAMETERand leaves the files in place.guest_np_auth:sceNpAuthSetTimeouton sync and async requests returns OK and leaves the later results unchanged; an unknown request and a deleted request returnREQUEST_NOT_FOUND.guest_np_web_api2:sceNpWebApi2PushEventSetHandleTimeoutreturns OK on a live context and throws aftersceNpWebApi2Terminate.guest_psml,guest_np_auth_authorized_app_code,guest_np_auth_authorized_app_dialog: pass.nm -Don the patched libraries inbuild/core/libs/libsshows the 11 NIDs exported (CN7EbEV7MFU,PM3IZCw-7m0,KWkc6Q3tjXc,cx2dYFbzIAg,TL86glUrmUw,PwsHbErG+e8,QWSxBzf6lAg,4O7+bRkRUe8, andxNZM9Y5lf-M/lcZD9tJraAwin libScePsml and libScePsml_debug).libSceUsbStorage.prxandlibSceUsbStorageDialog.prxare built.ctestaftercmake --build build(994 tests): 992 pass. The other two,agc_driver_depth_compare_copyandguest_named_shm_concurrency, fail the same way onmainwithout this change. Both come from the container: Docker's seccomp profile blocksuserfaultfd, and the tests run as root.python3 tools/check_conventions.py --base origin/mainandpython3 tools/check_test_registration.py build: passed.sceSslCreateConnection(fix(libSceSsl): add missing verification callback export #4078), and it may stop at one of the throwing exports.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)