Skip to content

feat(libSceHttp2): implement sceHttp2DeleteCookieBox - #3869

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
gookie-dev:feat/http2-delete-cookie-box
Oct 12, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
gookie-dev:feat/http2-delete-cookie-box

Conversation

@gookie-dev

Copy link
Copy Markdown
Contributor

What

PPSA35943 (Graveyard Keeper 2) imports sceHttp2DeleteCookieBox (O9ync3F-JVI), which no library exported. On current main the title first stops at sceSaveDataDirNameSearch2, which open #3814 adds; with #3814 the loader stops it here:

./eboot.elf: symbol lookup error: ./eboot.elf: undefined symbol: O9ync3F-JVI

sceHttp2CreateCookieBox now records the ids it returns, and sceHttp2DeleteCookieBox(cookieBoxId) discards a recorded box and returns 0, or the library's invalid-id error (0x817B1100) for an id that is not a live box. The signature follows SharpProspero and the behaviour prosper's implementation; the error code is listed in TechnicalDebt as not measured on a console.

Note: #3535 also changes sceHttp2CreateCookieBox (it moves handles into one typed registry and does not add this export), so whichever of the two lands second needs a small rebase.

Tested

Ubuntu 24.04, GCC 13.3, Release.

  • guest_http2 deletes a box twice and an id that is not a box, and deletes the boxes it uses before sceHttp2Term. It does not link on main (no sceHttp2DeleteCookieBox) and passes with this change.
  • PPSA35943 (relinked with --to-intel) with fix(exports): export the calls PPSA30601 imports #3814 merged locally: stops at the line above without this change; with it, the title loads and runs into its asset loading.

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

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Progress report (e7c70a2 → ce0915e)

➖ System libraries: 86.23% (+0.0%, +1 implemented functions)

✅ 1 implemented
Library Name
libSceHttp2 sceHttp2DeleteCookieBox

@github-actions github-actions Bot added docs prx needs rebase Conflicts with main, rebase needed labels Oct 11, 2026
@oneandonlydean

Copy link
Copy Markdown
Collaborator

#3535 moved the Http2 handles into g_handles with Http2Kind::CookieBox, so this now conflicts in core/libs/prx/libSceHttp2/Export.cpp. Please rebase and have sceHttp2DeleteCookieBox erase the box from that registry instead of keeping a separate g_cookieBoxes set.

PPSA35943 (Graveyard Keeper 2) imports sceHttp2DeleteCookieBox, which no
library exported. On current main the loader stops the title there:

  ./eboot.elf: symbol lookup error: ./eboot.elf: undefined symbol:
  O9ync3F-JVI

sceHttp2DeleteCookieBox(cookieBoxId) erases the box from the handle
registry sceHttp2CreateCookieBox adds it to and returns 0, or the
library's invalid-id error (0x817B1100) for an id that is not a live
cookie box. The signature follows SharpProspero and the behaviour
prosper's sceHttp2DeleteCookieBox; the error code is listed in
TechnicalDebt as not measured on a console.

guest_http2 deletes a box twice, a context id, a box whose context was
terminated, and the two boxes it uses before sceHttp2Term.

With this change the title loads and runs into its asset loading.
@gookie-dev
gookie-dev force-pushed the feat/http2-delete-cookie-box branch from 7af15b0 to ce0915e Compare October 12, 2026 10:25
@gookie-dev

Copy link
Copy Markdown
Contributor Author

Rebased on main. sceHttp2DeleteCookieBox now erases the Http2Kind::CookieBox entry from g_handles and returns 0x817B1100 for anything else; the separate g_cookieBoxes set is gone. guest_http2 also checks that a box whose context was terminated can no longer be deleted.

@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@oneandonlydean oneandonlydean self-assigned this Oct 12, 2026
@oneandonlydean
oneandonlydean merged commit 0521341 into boykopovar:main Oct 12, 2026
8 checks passed
@gookie-dev
gookie-dev deleted the feat/http2-delete-cookie-box branch October 12, 2026 18:53
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