Skip to content

fix(psml): name two exports that only had NIDs - #5531

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
KauaSantos702:fix/name-psml-savedata-nids
Oct 14, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
KauaSantos702:fix/name-psml-savedata-nids

Conversation

@KauaSantos702

@KauaSantos702 KauaSantos702 commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

What

Names two libScePsml exports that were known only by their NID. Each name hashes exactly to the NID that PPSA01317 imports (tools/nid_names.py). Neither is in the aerolib list.

NID Library Name Was
xNZM9Y5lf-M libScePsml_debug (libScePsml_specularAA) scePsmlMfsrEnableSpecularAA scePsmlUnknown01
lcZD9tJraAw libScePsml_debug (libScePsml_quality8K) scePsmlMfsrEnableQuality8K scePsmlUnknown02
python -c "import sys; sys.path.insert(0, 'tools'); from nid_names import compute_nid as n; print(n('scePsmlMfsrEnableSpecularAA'), n('scePsmlMfsrEnableQuality8K'))"
xNZM9Y5lf-M lcZD9tJraAw

Descrição:

### What

Names two libScePsml exports that wEach name hashes exactly to the NID

| NID | Library | Name | Was |
|---|---|---|---|
| `xNZM9Y5lf-M` | libScePsml_debug (libScePsml_specularAA) | `scePsmlMfsrEnableSpecularAA` | `scePsmlUnknown01` |
| `lcZD9tJraAw` | libScePsml_debug (libScePsml_quality8K) | `scePsmlMfsrEnableQuality8K` | `scePsmlUnknown02` |

python -c "import sys; sys.path.insert(0, 'tools'); from nid_names import compute_nid as n; print(n('scePsmlMfsrEnableSpecularAA'), n('scePsmlMfsrEnableQuality8K'))"
xNZM9Y5lf-M lcZD9tJraAw


The names were found by generating  existing names and hashing them.They follow `scePsmlMfsrEnableLightWeight`, and they match the library names `libScePsml_specularAA` and `libScePsml_quality8K`.

The `APS5_EXPORT` NID overrides areow produces its NID, as for theneighbouring exports. Signatures are still unknown, so both still throw `NotImplemented`. The technical-debt entry now gives the names and says they come from the hash, not from aerolib.

An earlier version of this PR also named `RvID8BVeg+g` (`sceSaveDataPrepareForTransferring`). #4906 already does that, so it is left out here.

Not named here: no public NID list has the other 21 `Unknown` NIDs (17 in libkernel, 2 in libSceAgc, `n3kSX62fgNo` in libScePad, `iQS6DUtLybE` in libSceVideoRecordingP). About 10 billion generated candidates matched none of them.

### Tested

Windows 11, MinGW-w64 GCC 15.2.0 (Wrt-r7`), Release. Built`libScePsml_debug` and `libScePsml`, including the NID-patched output. `objdump -p` on the patched `.prx` files shows `xNZM9Y5lf-M` and `lcZD9tJraAw` exported by both libraries. The unpatched builds export the two new names, and the old `Unknown` names are gone. `python3 tools/check_conventions.py
--base origin/main` passes. No titl

### Checklist
- [x] Based on current `main`; no other open PR implements the same functions
- [x] One topic per PR; follow-ups go in a new PR
- [x] No comments in code except [technical debt](https://github.com/boykopovar/AnyPS5/blob/main/docs/dev/CONVENTIONS.md)
- [x] Unimplemented paths throw (`NotImplemented_nid_no_patch`); silent stubs are listed under Silent stubs in their library's [technical debt](https://github.com/boykopovar/AnyPS5/tree/main/docs/dev/debt) file
- [x] No notes, investigation `.md` repository (attach them to this PR)
- [x] New third-party code is a submodule built from source
- [x] Generic behaviour, not specific to one title
- [x] Depends on: none
- [x] Unblocks: none (names only; PPSA01317 already loads with the NID-only exports)
- [x] GPUs tested: n/a
- [x] AI-assisted: yes

@KauaSantos702
KauaSantos702 force-pushed the fix/name-psml-savedata-nids branch from 52fffac to c3b2ed3 Compare October 14, 2026 00:19
@KauaSantos702 KauaSantos702 changed the title fix(exports): name three exports that only had NIDs fix(psml): name two exports that only had NIDs Oct 14, 2026
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#5651 docs/dev/debt/libScePsml_debug.md L6-9
#5796 docs/dev/debt/libScePsml_debug.md L6-9
#5877 docs/dev/debt/libScePsml_debug.md L6

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Progress report (9bec202 → 6f5f176)

➖ System libraries: 88.69% (+0.0%, +2 declared, -2 removed functions)

🆕 2 declared as stubs
Library Name
libScePsml_debug scePsmlMfsrEnableQuality8K
libScePsml_debug scePsmlMfsrEnableSpecularAA
🗑️ 2 removed
Library Name
libScePsml_debug scePsmlUnknown01
libScePsml_debug scePsmlUnknown02

Co-Authored-By: Claude <noreply@anthropic.com>
@adriadam10

Copy link
Copy Markdown
Collaborator

Checked compute_nid for scePsmlMfsrEnableSpecularAA / scePsmlMfsrEnableQuality8K (= xNZM9Y5lf-M / lcZD9tJraAw), the removal of the APS5_EXPORT lines (the real name already hashes to the NID), and build + ctest of libScePsml_debug on top of current main.

Added by us on your branch: rebased onto main and squashed the SaveData commits away (the branch only touches libScePsml_debug now), and moved the TechnicalDebt line out of the end of the section so it doesn't collide with #5651 and #5796.

Side note: the PR description has some garbled sentences and a duplicated block; worth cleaning up. Merging once the full Build is green.

@adriadam10
adriadam10 force-pushed the fix/name-psml-savedata-nids branch from c3b2ed3 to 6f5f176 Compare October 14, 2026 21:49
@adriadam10
adriadam10 merged commit 2559e96 into boykopovar:main Oct 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants