Skip to content

fix(exports): export the calls PPSA29866 imports - #3819

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
xXPBSXx:fix/export-ppsa29866-imports-v4
Oct 12, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
xXPBSXx:fix/export-ppsa29866-imports-v4

Conversation

@xXPBSXx

@xXPBSXx xXPBSXx commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

What

Tomba! 2 (PPSA29866) fails to load because three imports have no export. This PR declares them without parameters as throwing stubs (signatures unknown), as #1347 did for PPSA01317:

Library Exports
libSceHmd2 sceHmd2ReprojectionQuerySeeThroughBufferSizeAlign
libSceVideoOut sceVideoOutSetFlipMaster, sceVideoOutClearFlipMaster

Names come from the aerolib NID list (tools/nid_names.py). No test is added, since CONTRIBUTING says not to test that a symbol is exported; a TechnicalDebt entry lists the stubs. The title's other missing imports are covered by #3773 (PPSA07411) and #3537 (PS VR2). It replaces #3801, which was stacked on #3799 and so repeated its exports.

Tested

  • Windows, MinGW GCC 15.2.0: libSceHmd2 and libSceVideoOut build; tools/check_conventions.py --base upstream/main passes. I searched the open PRs for these three names and found none.
  • Not tested: running PPSA29866 with all of its imports present (the later stop at sceAgcDcbSetWorkloadsActive is a separate matter).

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 (Claude Code)

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Progress report (2f4cc89 → 0485570)

📉 System libraries: 86.29% (-0.07%, +3 declared functions)

🆕 3 declared as stubs
Library Name
libSceHmd2 sceHmd2ReprojectionQuerySeeThroughBufferSizeAlign
libSceVideoOut sceVideoOutClearFlipMaster
libSceVideoOut sceVideoOutSetFlipMaster

@github-actions

github-actions Bot commented Oct 11, 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
#4081 sceVideoOutClearFlipMaster
sceVideoOutSetFlipMaster

@xXPBSXx

xXPBSXx commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Run of PPSA29866 (Tomba! 2 SE), Windows, GCC, RTX 4080 SUPER, 150 s limit, on current main + this PR (#3819) + #3789 (sceAgcDcbSetWorkloadsActive, merged locally): 0 unresolved imports. With #3819 alone the run stops at sceAgcDcbSetWorkloadsActive not implemented (#3789 covers it). With both, no abort or exception for the whole 150 s; the log shows draws and storage-image textures being created, shader disk cache hits and misses, and extra threads started. I did not judge the picture, so that the title renders correctly is not claimed.

AI-assisted (Claude Code).

@xXPBSXx

xXPBSXx commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Longer run of PPSA29866 (Tomba! 2 SE), Windows 10, GCC, RTX 4080 SUPER, a local stack of current main d06c06565 with the open PRs of this series (#3819, #3789 for the workload calls, #3814, #4044, #3952 and others) merged: 300 s under the run limit, ended by the limit, no abort or exception, 0 absent imports.

What the logs contain (stdout 384 lines, stderr 18): shader disk cache lines (first 10 s: 135 hits, then 2 hits, 2 misses), a pipeline cache load, two save data mounts (mount3 ... dir=SAVEDATA ... -> 0x00000000), storage-image texture creations, and two notices: [gpu] layer/viewport index vertex exports are ignored (PA_CL_VS_OUT_CNTL=0x01240000) and Rect-list draw of shader ... has no rectangle for fragment shader ...; preparing it at draw. No line with fail, error, unsupported or not implemented. The last stdout line is at about 230 s into the run and the last stderr line about 237 s, so the log goes quiet for the last minute; I cannot tell from the logs whether that is a steady rendering loop or a stall, and I did not look at the picture, so nothing is claimed about what is on screen.

AI-assisted (Claude Code).

@oneandonlydean oneandonlydean self-assigned this Oct 12, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@xXPBSXx

xXPBSXx commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Played by hand (not only a log run): PPSA29866 (Tomba! 2: The Evil Swine Return Special Edition), Windows 10, GCC, RTX 4080 SUPER, 600 s, with the same local stack as in the earlier comment (current main d06c06565 plus open PRs of this account, this PR among them, and #3791, #3737, #3840).

What was seen (by eye and ear, frame counter and FPS from the window title):

  • Reaches the title screen ("PRESS X TO START", 59.95 FPS) and then the game world; the intro text and the first village are drawn correctly and run at about 59 FPS, with clean sound. Space/Enter confirm, the character can be moved and talked to.
  • The logo videos at the start stutter heavily in picture and sound (about 14-17 FPS on the first frames), with a short stop at frame 1; the menu after them is smooth.
  • With one NPC the frame rate drops (about 26-30 FPS) and the sound stutters during and after the dialog, then it recovers; another NPC showed no stutter. The cause is not identified.
  • The run ended at the 600 s limit; no abort or fatal line in the log.

Not isolated: which of the stacked PRs are needed besides this one (earlier finding: #3789 for sceAgcDcbSetWorkloadsActive). Linux not tested.

AI-assisted (Claude Code).

@xXPBSXx
xXPBSXx force-pushed the fix/export-ppsa29866-imports-v4 branch from 2435e03 to a14c436 Compare October 12, 2026 17:46
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
PPSA29866 (Tomba! 2) fails to load without these imports that no library exports. Their signatures are unknown, so they are declared without parameters and throw until they are implemented. Adds a TechnicalDebt entry.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@xXPBSXx
xXPBSXx force-pushed the fix/export-ppsa29866-imports-v4 branch from a14c436 to 0485570 Compare October 12, 2026 19:34
@github-actions github-actions Bot removed the needs rebase Conflicts with main, rebase needed label Oct 12, 2026
@oneandonlydean
oneandonlydean merged commit 307c0a3 into boykopovar:main Oct 12, 2026
8 checks passed
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