Skip to content

fix(libSceNpTrophy2): accept a null details or data in GetTrophyInfo and GetGroupInfo - #3517

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
ee6aba54:fix/trophy2-null-outputs
Oct 11, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
ee6aba54:fix/trophy2-null-outputs

Conversation

@ee6aba54

Copy link
Copy Markdown
Contributor

What

sceNpTrophy2GetTrophyInfo and sceNpTrophy2GetGroupInfo rejected a call unless both outputs were given, although both functions already fill each output only when it is not null. PPSA18391 (Clickteam Fusion) queries trophies with a null details; AnyPS5 threw invalid argument there and the title ended. Only a call with neither output is rejected now, the same way #912 handled sceNpTrophy2GetGameInfo.

Tested

  • Ubuntu 24.04, Linux 7.0, GCC 13.3, Release, based on 2220effb. guest_nptrophy2 now covers details only, data only and neither (still throws) for both functions; it aborts without the fix. Full ctest: 830/832. The two failures, agc_driver_emulated_color_compare (the device cannot sample the sRGB image) and guest_kernel_stack_protect, involve no Trophy2 code and fail the same way after a rerun.
  • PPSA18391: with this change the title gets past its trophy query and reaches the title menu. It also needs other changes that are not upstream yet, so this was checked on a build that includes them.
  • Windows not built or 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 in TechnicalDebt
  • 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
  • AI-assisted: yes

🤖 Generated with Claude Code

@ee6aba54
ee6aba54 force-pushed the fix/trophy2-null-outputs branch from 69e8c1c to 364712e Compare October 11, 2026 12:12
@github-actions github-actions Bot added the prx label Oct 11, 2026
…and GetGroupInfo

sceNpTrophy2GetTrophyInfo and sceNpTrophy2GetGroupInfo rejected a call
unless both outputs were given, although both already fill each output
only when it is not null. PPSA18391 (Clickteam Fusion) queries trophies
with a null details. Only a call with neither output is rejected now, as
in sceNpTrophy2GetGameInfo.
@ee6aba54
ee6aba54 force-pushed the fix/trophy2-null-outputs branch from 364712e to 69e3c1d Compare October 11, 2026 13:36
@xXPBSXx

xXPBSXx commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

Confirmation from a title: Teardown (PPSA15246, with #3952, #3824 and #3604 on top of main) reaches sceNpTrophy2GetGroupInfo after the start-up copy kernel compiles, and stops there with std::invalid_argument (sceNpTrophy2GetGroupInfo: invalid argument), i.e. it calls it with one of details / data null, which the current guard rejects. This PR removes that stop. I did not run the title with this PR applied.

AI-assisted (Claude Code).

@adriadam10

Copy link
Copy Markdown
Collaborator

Checked on main + PR: build and ctest green; guest_nptrophy2 fails without the change and passes with it (details only, data only, neither still throws, for both functions). No overlap with other open PRs. Merging.

@xXPBSXx

xXPBSXx commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

Test from Teardown (PPSA15246), Windows, MinGW GCC 15.2.0, 60 s runs. Without this PR the title ends with std::invalid_argument sceNpTrophy2GetGroupInfo: invalid argument (abort). With this PR merged into a stack with #3604, the Ces exports (#3824) and #3952, the same run no longer ends there: the log shows only AGC graphics: CMASK fast clears of a mipmapped, 3D or array color target are unsupported as the next stop. Not tested: this PR alone.

AI-assisted (Claude Code).

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants