Skip to content

fix(prx): add missing HFW imports with strict offline handling - #1436

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
tototomate123:fix/hfw-offline-imports
Oct 8, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
tototomate123:fix/hfw-offline-imports

Conversation

@tototomate123

@tototomate123 tototomate123 commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

What

Adds three missing PPSA01521 imports. Draft: RUDP reporting remains unimplemented.

  • sceHttpSetCookieEnabled: disabling succeeds; invalid flags fail; enabling throws. No cookie engine or handle validation.
  • sceNpEntitlementAccessGetEntitlementKey: validates pointers, returns NO_ENTITLEMENT, preserves the 16-byte output. No key provisioning.
  • sceRudpGetStatus: pointer/byte-count ABI; throws without writing output. Layout and size/error rules remain unknown.

Sources: KytyPS5 (key ABI/errors), VitaSDK and shadPS4 HTTP (HTTP ABI/flags). shadPS4 RUDP provides no status layout. Calling shapes match HFW; gaps are documented in TechnicalDebt.md.

Tested

Linux x86-64, GCC 16.2.1, Release, RTX 4070 SUPER; BUILD_TESTING=ON and separate libs build.

  • New test passes: cookie errors/offline requests, key errors/output canaries, RUDP exceptions/unchanged output before/after initialization. Existing HTTP/header/TTS tests pass; conventions and diff checks pass.
  • CTest: 335/420 pass; 85 AGC graphics failures. Representative agc_driver_buffer_atomic_csub reproduces on unchanged main 7a178e22 with Vulkan error -13. Others were not individually baselined; failure set stayed unchanged after final edits.
  • Fresh HFW relink: all three added NIDs resolve. Launch still stops at missing sceKernelFutimes (NLq2b1jOaN0), before game code.

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); limitations are recorded in TechnicalDebt
  • No notes, investigation .md files or images added to the repository
  • New third-party code is a submodule built from source: none added
  • Generic behavior; no title-specific dispatch, entitlement labels, or status values
  • Depends on: none
  • AI-assisted: yes, implementation, tests, investigation and this description were prepared with Codex

@github-actions

github-actions Bot commented Oct 8, 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
#1307 core/libs/CMakeLists.txt L133
#1499 core/libs/CMakeLists.txt L133

@tototomate123
tototomate123 marked this pull request as ready for review October 8, 2026 06:36
@tototomate123

Copy link
Copy Markdown
Contributor Author

Other open pull requests touch the same code.

#1307 changes unrelated POSIX I/O behavior; neither PR depends on the other or duplicates its implementation. The conflict is only because both register new tests at the same location in core/libs/CMakeLists.txt, and can be resolved by keeping both test blocks

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown

Progress report (7a178e2 → 0b0526c)

📉 System libraries: 85.13% (-0.05%, +1 implemented, +2 declared functions)

✅ 1 implemented
Library Name
libSceNpEntitlementAccess sceNpEntitlementAccessGetEntitlementKey
🆕 2 declared as stubs
Library Name
libSceHttp sceHttpSetCookieEnabled
libSceRudp sceRudpGetStatus

@adriadam10

Copy link
Copy Markdown
Collaborator

Checked on Linux (build + full ctest on top of current main, 459/459; guest_offline_imports fails to build without the change). Signature, 16-byte key and 0x817D0002/0x817D0007 match KytyPS5 libNet.cpp; invalid cookie flags use the same error as sceHttpSetInflateGZIPEnabled; unmodelled paths throw and the gaps are in TechnicalDebt. Merging once CI is green.

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