{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/morluto/rea/issues/1330",
    "https://github.com/morluto/rea/pull/1599",
    "https://github.com/morluto/rea/blob/c12d9eda87aa5a022ee7e18ea96d8d03bfd12e96/scripts/verify-real-ghidra-mips.mjs",
    "https://github.com/morluto/rea/blob/c12d9eda87aa5a022ee7e18ea96d8d03bfd12e96/src/ghidra/GhidraPspProfile.ts",
    "https://github.com/morluto/rea/blob/c12d9eda87aa5a022ee7e18ea96d8d03bfd12e96/src/ghidra/GhidraPspExtension.ts",
    "https://github.com/morluto/rea/tree/c12d9eda87aa5a022ee7e18ea96d8d03bfd12e96/tests/conformance/psp",
    "https://github.com/morluto/rea/blob/c12d9eda87aa5a022ee7e18ea96d8d03bfd12e96/LICENSE"
  ],
  "category": "workflow-guides",
  "description_en": "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.",
  "description_zh": "说明 REA 针对静态 PSP ELF 可执行文件的受限 Ghidra 配置：Allegrex 指令、PSP 加载与调用约定交由使用者安装的 ghidra-allegrex 扩展处理，同时沿用 REA 的命令行、MCP、证据与快照流程。它仅在 Linux x64 上接受一种 PSPSDK 文件头与 ABI 声明，并在自行构建的测试样本上验证选定的静态事实，不涉及商业游戏或 PRX 模块。",
  "entry_url": "https://awesomerea.org/resources/rea-ghidra-psp-guide/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/rea-ghidra-psp-guide/",
  "evidence_url": "https://github.com/morluto/rea/blob/c12d9eda87aa5a022ee7e18ea96d8d03bfd12e96/docs/ghidra-psp.md",
  "group": "rea",
  "id": "rea-ghidra-psp-guide",
  "json_url": "https://awesomerea.org/resources/rea-ghidra-psp-guide/record.json",
  "kind": "documentation",
  "markdown_url": "https://awesomerea.org/resources/rea-ghidra-psp-guide/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/rea-ghidra-psp-guide/index.md",
  "name": "PSP static ELF analysis through Ghidra",
  "name_zh": "通过 Ghidra 静态分析 PSP ELF",
  "record_type": "resource",
  "relationship": "official-documentation",
  "requirements": [
    "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."
  ],
  "requirements_zh": [
    "初始配置只在 Linux x64 宿主上运行，接受小端 ELF32 可执行文件，要求文件头为 PSPSDK 声明 e_flags 0x10a23001，并有经检查的版本 0 ABI 标志记录，与文档列明的单精度浮点 Allegrex 声明一致。PRX、可重定位或共享镜像、PBP／ISO／CSO 容器、模拟执行与实时代码覆盖均不在范围内；缺失或不同的声明会被拒绝，文件名也不能用来识别目标。",
    "需在所选 Ghidra 发行版内安装兼容的 ghidra-allegrex 扩展；REA 从不下载、安装、重新构建或内置该扩展，并在启动前为其文件计算指纹。公开的兼容组合为 Ghidra 12.1.3、扩展 v21.4、PSPDEV v20261001 与 JDK 21。缺少前置条件时返回 PSP_EXTENSION_UNAVAILABLE，不会回退到其他分析引擎。",
    "验证使用真实 MIPS 验证脚本的 PSP 模式，需自行提供 PSPDEV 工具。由 tests/conformance/psp 构建的维护样本只做静态分析、不执行，并与 PSP GNU 工具的观察结果对照：已知函数、一次直接调用、一个立即数、BITREV、一个全局字、快照重新打开，以及 A-B-A 目标切换。已合并的 PR #1599 报告在较早的贡献分支版本上通过了真实 Ghidra 验证，并说明该次运行并未重新验证最终版本。",
    "这些检查只是选定的静态事实；该扩展也未完整模拟 VFPU 前缀效果。未使用或重建任何商业游戏数据，议题 #1330 仍处于开放状态。REA 声明 MIT；ghidra-allegrex、Ghidra、PSPDEV 与所分析的可执行文件仍有各自条款。"
  ],
  "targets": [
    "binary",
    "game"
  ],
  "url": "https://github.com/morluto/rea/blob/main/docs/ghidra-psp.md",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
