Documentation
PSP static ELF analysis through Ghidra
Documents REA’s bounded Ghidra profile for static PSP ELF executables, which leaves Allegrex instructions, PSP loading and calling conventions to a caller-installed ghidra-allegrex extension while reusing REA’s CLI, MCP, Evidence and snapshot workflows. It admits one PSPSDK header and ABI declaration on Linux x64 and verifies selected static facts on a self-built fixture, not commercial games or PRX modules.
Requirements and limitations
- The initial profile runs on a Linux x64 host and admits little-endian ELF32 executables with the PSPSDK declaration e_flags 0x10a23001 and an inspected version-0 ABI-flags record matching the documented single-float Allegrex declarations. PRX, relocatable or shared images, PBP/ISO/CSO containers, emulation and live overlays are out of scope; missing or different declarations are refused, and file names do not identify a target.
- Install a compatible ghidra-allegrex extension inside the selected Ghidra distribution; REA never downloads, installs, rebuilds or vendors it, and fingerprints its files before launch. The published compatibility pairing is Ghidra 12.1.3, extension v21.4, PSPDEV v20261001 and JDK 21; other builds that pass the metadata check are not described as independently verified. Missing prerequisites return PSP_EXTENSION_UNAVAILABLE without fallback.
- Verification uses the real MIPS verifier’s PSP mode with caller-supplied PSPDEV tools. A maintained fixture built from tests/conformance/psp is analysed without execution and checked against PSP GNU tool observations: known functions, a direct call, an immediate, BITREV, a global word, snapshot reopening and an A-B-A target switch. Merged PR #1599 reports a passing real-Ghidra run on an earlier contribution head and says the final head was not freshly revalidated by that run.
- These are selected static facts, not behavioral equivalence, complete VFPU semantics or general compatibility with commercial PSP executables; the extension does not fully model VFPU prefix effects. No commercial game data is used or reconstructed, and issue #1330 remains open. REA declares MIT; ghidra-allegrex, Ghidra, PSPDEV and analysed executables keep their own terms. This collection ran nothing.
About this entry
- Type
- Documentation
- Category
- Official REA: investigation guides
- Relationship
- Official REA documentation
- Targets
- Binary · Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- docs/ghidra-psp.md GitHub · morluto/rea · Revision c12d9ed
- https://github.com/morluto/rea/issues/1330
- https://github.com/morluto/rea/pull/1599
- scripts/verify-real-ghidra-mips.mjs GitHub · morluto/rea · Revision c12d9ed
- src/ghidra/GhidraPspProfile.ts GitHub · morluto/rea · Revision c12d9ed
- src/ghidra/GhidraPspExtension.ts GitHub · morluto/rea · Revision c12d9ed
- tests/conformance/psp GitHub · morluto/rea · Revision c12d9ed
- LICENSE GitHub · morluto/rea · Revision c12d9ed