Skip to content

fix(rudp): provide the calls PPSA03490 still lacks - #3868

Closed
renzipego-cpu wants to merge 1 commit into
boykopovar:mainfrom
renzipego-cpu:fix/rudp-exports-ppsa03490
Closed

renzipego-cpu wants to merge 1 commit into
boykopovar:mainfrom
renzipego-cpu:fix/rudp-exports-ppsa03490

Conversation

@renzipego-cpu

Copy link
Copy Markdown

Carries the v3 branch from #3073 (xXPBSXx:fix/rudp-exports-ppsa03490-v3). Fixes #3073.

What

Demon Slayer -Kimetsu no Yaiba- The Hinokami Chronicles (PPSA03490 v01.000.000) stops at start-up on main:

(the title's ccs P2PService Client Thread calls them; import audit over the executable and its six modules shows these seven sceRudp* imports, of which three were resolved by #3467).

This PR adds the remaining four: sceRudpGetMaxSegmentSize, sceRudpProcessEvents and sceRudpNetFlush answer according to the library's initialised state (RUDP_ERROR_NOT_INITIALIZED before sceRudpInit, as measured on a PS5 13.60 by hugodearaujo in the issue: GetMaxSegmentSize writes 1410, NULL after init → RUDP_ERROR_INVALID_ARGUMENT, ProcessEvents(0)/NetFlush → 0), and sceRudpNetReceived is declared and throws NotImplemented. With them the title opens its files, registers shaders and reaches the packed pixel ancillary stop (#2548). There are also six unsupported registered shader type 8 log lines the title reports, not addressed here.

Tested

Windows 11, MinGW-w64 GCC 15.2.0 (WinLibs r7), Ninja, Release, BUILD_TESTING=ON, full build including libs: guest_rudp_pump, guest_rudp_status, guest_rudp_context_queries and guest_offline_imports pass 4/4. python tools/check_conventions.py --base upstream/main and tools/check_test_registration.py pass. The title was not run on this machine (run on the reporter's Windows 10 / RTX 4080 SUPER; Windows validation of the earlier branch revision by danzaio in the issue).

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 (none added)
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes

PPSA03490 (Demon Slayer) imports sceRudpGetMaxSegmentSize, sceRudpProcessEvents, sceRudpNetFlush and sceRudpNetReceived, which no library exports. The first three answer by the library's initialised state; sceRudpNetReceived is declared without an implementation because its signature is unknown. Adds one test and TechnicalDebt entries.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Progress report (a11c8f7 → 38b309e)

📉 System libraries: 85.8% (-0.01%, +3 implemented, +1 declared functions)

✅ 3 implemented
Library Name
libSceRudp sceRudpGetMaxSegmentSize
libSceRudp sceRudpNetFlush
libSceRudp sceRudpProcessEvents
🆕 1 declared as stubs
Library Name
libSceRudp sceRudpNetReceived

@github-actions

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
#3496 docs/dev/TechnicalDebt.md L599
#3650 docs/dev/TechnicalDebt.md L599
#3670 docs/dev/TechnicalDebt.md L599
#3689 docs/dev/TechnicalDebt.md L599
#3694 docs/dev/TechnicalDebt.md L599
#3700 docs/dev/TechnicalDebt.md L599
#3718 docs/dev/TechnicalDebt.md L599
#3720 docs/dev/TechnicalDebt.md L599
#3730 docs/dev/TechnicalDebt.md L599
#3737 docs/dev/TechnicalDebt.md L599
#3781 docs/dev/TechnicalDebt.md L599
#3789 docs/dev/TechnicalDebt.md L599
#3791 docs/dev/TechnicalDebt.md L599
#3800 docs/dev/TechnicalDebt.md L599
#3823 core/libs/prx/libSceRudp/Export.cpp L244
core/libs/tests/GuestRudpPump.cpp
sceRudpGetMaxSegmentSize
sceRudpNetFlush
sceRudpNetReceived
sceRudpProcessEvents
core/libs/tests/GuestRudpPump.cpp
#3829 docs/dev/TechnicalDebt.md L599
#3870 docs/dev/TechnicalDebt.md L599

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

Projects

None yet

2 participants