Skip to content

feat(libScePsml): answer the versioned MFSR context calls as not initialized - #5651

Closed
klosixgaming-arch wants to merge 1 commit into
boykopovar:mainfrom
klosixgaming-arch:feat/psml-mfsr-versioned-uninitialized
Closed

klosixgaming-arch wants to merge 1 commit into
boykopovar:mainfrom
klosixgaming-arch:feat/psml-mfsr-versioned-uninitialized

Conversation

@klosixgaming-arch

Copy link
Copy Markdown
Contributor

What

scePsmlMfsrGetContextBufferRequirement1100, CreateContext1100 and GetDispatchMfsrPacket1100 already return 0x8A810001 (not initialized) without reading their arguments, as the MFSR runtime is never initialized here (scePsmlMfsrInit throws). Their versioned counterparts take the same three argument shapes and now give the same answer:

  • scePsmlMfsrGetContextBufferRequirement800M3_2
  • scePsmlMfsrCreateContext800M3_2, scePsmlMfsrCreateContext1300
  • scePsmlMfsrGetDispatchMfsrPacket900, 1000, 1300

PPSA28416 imports the 1300 pair next to the 1100 requirement query, and PPSA25344 imports GetDispatchMfsrPacket1000. guest_psml checks that none of them writes the requirement, the context slot or the command buffer. Whether each version takes these arguments, and the console's error, are recorded as unverified. #5531 also edits this file (it renames the two unknown NIDs); the changed lines don't overlap.

Tested

Linux (Ubuntu 24.04, GCC 13.3, Release): built the library and its test target, ctest -R guest_psml passes, tools/check_conventions.py --base origin/main passes. No title tested.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

🤖 Generated with Claude Code

https://claude.ai/code/session_01Dh1MhYBFyzxRceoAxrepZ6

…ialized

scePsmlMfsrGetContextBufferRequirement1100, CreateContext1100 and
GetDispatchMfsrPacket1100 already return 0x8A810001, as the MFSR
runtime is never initialized here. Their versioned counterparts
(GetContextBufferRequirement800M3_2, CreateContext800M3_2 and 1300,
GetDispatchMfsrPacket900, 1000 and 1300) take the same three argument
shapes and now return the same error without reading their arguments.
PPSA28416 imports the 1300 pair next to the 1100 requirement query.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dh1MhYBFyzxRceoAxrepZ6
@github-actions

Copy link
Copy Markdown

Progress report (a310431 → 7315fc0)

📈 System libraries: 88.35% (+0.16%, +6 implemented functions)

✅ 6 implemented
Library Name
libScePsml_debug scePsmlMfsrCreateContext1300
libScePsml_debug scePsmlMfsrCreateContext800M3_2
libScePsml_debug scePsmlMfsrGetContextBufferRequirement800M3_2
libScePsml_debug scePsmlMfsrGetDispatchMfsrPacket1000
libScePsml_debug scePsmlMfsrGetDispatchMfsrPacket1300
libScePsml_debug scePsmlMfsrGetDispatchMfsrPacket900
⚪ 6 behaviourally empty (constant return or throw)
Library Name
libScePsml_debug scePsmlMfsrCreateContext1300
libScePsml_debug scePsmlMfsrCreateContext800M3_2
libScePsml_debug scePsmlMfsrGetContextBufferRequirement800M3_2
libScePsml_debug scePsmlMfsrGetDispatchMfsrPacket1000
libScePsml_debug scePsmlMfsrGetDispatchMfsrPacket1300
libScePsml_debug scePsmlMfsrGetDispatchMfsrPacket900

@adriadam10 adriadam10 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR. Before this can merge:

  • core/libs/prx/libScePsml_debug/Export.cpp:33-114: these six exports threw NotImplemented_nid_no_patch on main; they now return 0x8A810001 without reading anything. Nothing cited shows that the 800M3_2/900/1000/1300 versions have these argument shapes, or that the real library returns "not initialized" before validating its parameters (the PR itself lists both as unverified). A plausible error where main threw is the kind of change we only take with a source: a disassembly of the title's libScePsml, prosper, KytyPS5/shadPS4, or a measurement. I found none for these names.
  • core/libs/tests/GuestPsml.cpp:87-98: the new checks (including nullptr arguments returning 0x8A810001) pin what the code does, not what the library does. They would need values from a source above.
  • docs/dev/debt/libScePsml_debug.md:6: if the error is kept without a source, the line belongs under Silent stubs, not only as a note in Unknown function info.

Either add the evidence for the signatures and the error, or keep these exports throwing until it exists. Also rebase after #5531, which edits the same debt lines.

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 14, 2026
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

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.

Pull request Shared files not compared
PR 6044 core/libs/tests/GuestPsml.cpp
PR 6361 core/libs/prx/libScePsml_debug/Export.cpp

@klosixgaming-arch

Copy link
Copy Markdown
Contributor Author

Closing this: main now has the same behavior. Commit 7ab3d44 ("feat(psml): implement the MFSR shared-resource and 800 context setup") added scePsmlMfsrCreateContext1300 and the 900/1000/1300 dispatch packets, which return 0x8A810001 until scePsmlMfsrInit is called and throw after it, so a rebase of this PR would leave nothing to change. Thanks for the review.

AI-assisted: yes. Written with AI assistance and reviewed by me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs needs rebase Conflicts with main, rebase needed prx

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants