{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/ran-j/PS2Recomp/blob/eb8688b2fd191129f103a39543002c005b33409c/LICENSE",
    "https://github.com/ran-j/PS2Recomp/blob/eb8688b2fd191129f103a39543002c005b33409c/ps2xRecomp/CMakeLists.txt",
    "https://github.com/ran-j/PS2Recomp/blob/eb8688b2fd191129f103a39543002c005b33409c/ps2xRuntime/CMakeLists.txt",
    "https://github.com/ran-j/PS2Recomp/blob/eb8688b2fd191129f103a39543002c005b33409c/ps2xRecomp/tools/ghidra/ExportPS2Functions.java",
    "https://github.com/ran-j/PS2Recomp/releases/tag/v0.4",
    "https://github.com/ran-j/PS2Recomp/compare/v0.4...eb8688b2fd191129f103a39543002c005b33409c"
  ],
  "category": "game-analysis",
  "description_en": "Experimental static recompiler that translates MIPS R5900 code from PlayStation 2 ELF executables into C++ and links it with a bundled runtime. ps2xAnalyzer or a Ghidra export script produces a per-game TOML of functions, stubs, skips and instruction patches; ps2xRecomp emits a literal instruction-by-instruction translation; ps2xRuntime and ps2xIOP supply guest memory, syscall dispatch, IOP module execution with HLE fallbacks and partial, largely stubbed GS/VU hardware. Output is not decompiled source, and getting a game to run remains per-game porting work.",
  "description_zh": "实验性的静态重编译器，将 PlayStation 2 ELF 可执行文件中的 MIPS R5900 代码转换为 C++，并与随附的运行时链接。ps2xAnalyzer 或 Ghidra 导出脚本为每款游戏生成包含函数、存根、跳过项和指令补丁的 TOML 配置；ps2xRecomp 输出逐条指令的直译代码；ps2xRuntime 与 ps2xIOP 提供客户机内存、系统调用分发、带 HLE 回退的 IOP 模块执行，以及仅部分实现、大多为存根的 GS/VU 硬件。输出不是反编译源码，让游戏真正运行仍需针对每款游戏进行移植。",
  "entry_url": "https://awesomerea.org/resources/ps2recomp/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/ps2recomp/",
  "evidence_url": "https://github.com/ran-j/PS2Recomp/blob/eb8688b2fd191129f103a39543002c005b33409c/README.md",
  "group": "tools",
  "id": "ps2recomp",
  "json_url": "https://awesomerea.org/resources/ps2recomp/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/ps2recomp/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/ps2recomp/index.md",
  "name": "PS2Recomp",
  "name_zh": "PS2Recomp PlayStation 2 静态重编译器",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Building needs CMake 3.20+ and a C++20 compiler; the README says it is tested mainly with MSVC, and some vector paths need SSE4/AVX host support. CMake fetches ELFIO, toml11, fmt, libdwarf and raylib at configure time, plus Dear ImGui when the debug UI is enabled. GitHub lists five source-only prereleases, v0.0 to v0.4 (the latest from 2026-04-05), with no binaries attached; the reviewed main commit (2026-10-14) is 36 commits after v0.4.",
    "The user supplies the game ELF; the project ships no game code, and its project-description guidance names the original release as one the user must own. The preferred workflow exports functions from Ghidra with the bundled ExportPS2Functions.java script, while ps2_analyzer suits ELFs with debug symbols. Stub address bindings and game overrides target one exact ELF build and are not portable across games, regions or builds.",
    "The README lists very poor VU and GS performance and partial, often stubbed hardware emulation as limitations. The tree also holds Android and PS Vita build directories and a ps2xStudio front end.",
    "GPL-3.0; fetched dependencies keep their own licenses, and the README cites PCSX2 as a runtime reference."
  ],
  "requirements_zh": [
    "构建需要 CMake 3.20+ 和 C++20 编译器；README 称目前主要在 MSVC 上测试，部分向量路径要求主机支持 SSE4/AVX。CMake 在配置阶段拉取 ELFIO、toml11、fmt、libdwarf 和 raylib，启用调试界面时还会拉取 Dear ImGui。GitHub 列有 v0.0 至 v0.4 共五个仅含源码的预发布版本（最新为 2026-04-05），均未附带二进制文件；所审阅的 main 提交（2026-10-14）比 v0.4 多 36 个提交。",
    "游戏 ELF 需由用户自行提供，项目不附带任何游戏代码，其项目描述说明也把原始发行版界定为用户必须拥有的版本。推荐流程是用随附的 ExportPS2Functions.java 脚本从 Ghidra 导出函数，ps2_analyzer 则适合带调试符号的 ELF。存根地址绑定和游戏覆盖模块只针对某一个确切的 ELF 构建，不能跨游戏、地区或版本通用。",
    "README 列出的局限包括 VU 与 GS 性能很差、硬件仿真只完成一部分且多处为存根。仓库中还有 Android 与 PS Vita 构建目录以及 ps2xStudio 前端。",
    "采用 GPL-3.0；拉取的依赖保留各自的许可，README 将 PCSX2 列为运行时参考。"
  ],
  "targets": [
    "binary",
    "game"
  ],
  "url": "https://github.com/ran-j/PS2Recomp",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
