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

  1. docs/ghidra-psp.md GitHub · morluto/rea · Revision c12d9ed
  2. https://github.com/morluto/rea/issues/1330
  3. https://github.com/morluto/rea/pull/1599
  4. scripts/verify-real-ghidra-mips.mjs GitHub · morluto/rea · Revision c12d9ed
  5. src/ghidra/GhidraPspProfile.ts GitHub · morluto/rea · Revision c12d9ed
  6. src/ghidra/GhidraPspExtension.ts GitHub · morluto/rea · Revision c12d9ed
  7. tests/conformance/psp GitHub · morluto/rea · Revision c12d9ed
  8. LICENSE GitHub · morluto/rea · Revision c12d9ed