Star on GitHubStar1.1k stars

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.

Targets
Binary · Game
Category
Official REA: investigation guides
Relationship
Official REA documentation
Sources reviewed

Requirements & limits

  • 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. 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; 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.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

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

More in References and learning

All 83 entries in References and learning

↑↓ move↵ open⌘↵ new tab