Files
Henrik RydgårdandClaude Sonnet 5 a481ba45bd Add sceVshCommonUtil stub, add sceVshBridge HLE module stub
The HLE surface of flash0:/kd/vshbridge.prx, which exposes a bunch of
otherwise-kernel-only functionality (controller reads, LoadExec variants,
audio/ME/display bits, MagicGate memory stick audio, etc.) to the VSH.
All 68 NIDs and their known names/signatures come from JPCSP; stubbed out
returning UNIMPL like sceVshCommonUtil, since none have been implemented
yet.

Boot-tested vshmain.prx against a real flash0 dump (via a new --flash0=DIR
headless option) and found it imports 53 sceVshBridge NIDs and 22
sceVshCommonGui NIDs beyond what JPCSP documents - this firmware (6.6x) is
newer than JPCSP's primary target. Added the 53 unknown sceVshBridge ones
as UNIMPL stubs, matching the existing convention.

Wired the 3 functions JPCSP itself implements for real: vshCtrlReadBufferPositive,
vshKernelExitVSH, and vshKernelLoadModuleBufferVSH now forward directly to
PPSSPP's existing sceCtrlReadBufferPositive, sceKernelExitGame, and
sceKernelLoadModuleBufferUsbWlan (all three now exposed non-static for reuse).

sceVshBridge's own vshbridge.prx is kernel-mode, and PPSSPP's simplified
boot never runs a real kernel-module bootstrap sequence, so it likely
never gets a chance to load for real under the current architecture -
kept its stubs as-is.

Verified no regression: same 11 passed / 9 pre-existing-failed split on
pspautotests/tests/cpu/* before and after.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSNaZnHCjmryS3ziVN9gZU
2026-07-29 11:43:22 +02:00
..
2026-07-24 15:31:41 +02:00
2013-11-11 18:04:06 +05:30
2025-11-14 10:10:44 +01:00
2025-11-14 10:10:44 +01:00
2026-06-15 09:17:13 +02:00
2013-11-11 18:04:06 +05:30

================================================================

NOTE: These are legacy instructions for building using ndk-build.

We mostly only use this on CI because it's faster than gradle.
There might also be some holdouts around still using eclipse.

================================================================

First, build the C++ static library:

> cd android
> ./ab.sh
Or
> ./ab.cmd

as appropriate.

Start Eclipse, import the android directory as an existing project
You need to also load the "native" project into your eclipse workspace
Build and run. 

If you modify the C++ code, you need to rebuild the static library, of
course. To get Eclipse to understand that you have in fact changed something
if you haven't also changed any Java code, just add a space character to 
PPSSPPActivity.java, or right click the project and choose Refresh, and then
relaunch the app on the device.

A real Android device is strongly recommended for testing. Don't trust
the emulator.