SuperAPI AI 工具集

console-reverse

编程与开发

查看项目

更新于 10-23 10:58

技能介绍

用途

console-reverse(Reverse Engineer)是 Console 系列技能的入口,目标是把用户自己拥有的 PS2 光盘镜像借助 ran-j/PS2Recomp 逐阶段转为原生程序。它本身不消除 PS2Recomp 的实验性风险,而是让移植工作保持有条理、可断点续作,并把修改限制在四类修复工具内。

官方提醒工作量:PS2Recomp 处于实验阶段,首次启动可能耗时数天,端到端可玩可能数周,GS/VU 密集的游戏目前运行较慢。

主要能力

  • 状态管理:用 state.py 的 show、detect、init、phase、log、strike 等命令维护 console/STATE.md,记录路径、构建配置、阶段、运行命令、桩、崩溃、strike、上游问题、已学模式、死胡同与会话日志。
  • 光盘处理:iso.py 可查看 info、boot、extract、ls,并把原始 2352 字节转储转为普通 2048 字节镜像(plain)。
  • ELF 分析:elf.py 可查看 info(段、CRC、IRX 模块)、生成 TOML、crc、serial。
  • 生成设计文档:state.py design 生成 console/design.md,描述玩法、核心循环、菜单、文件与代码地图。
  • 分阶段流程:PHASE_SETUP、PHASE_EXTRACT、PHASE_FUNCTION_MAP、PHASE_RECOMPILE、PHASE_BUILD_RUN、PHASE_IO_MENUS,每阶段有明确产出与完成条件。

使用方式

每次会话应先运行 state.py show;若不存在则运行 state.py detect,再向用户一次性询问未能自动发现的信息,并用 init/set 记录。运行命令通过 state.py set runner_cmd "..." 记录后,从 STATE.md 原样读取,不凭记忆重输。首次会话用 state.py init --game "Title" 建立 console/STATE.md。

工具读取用户光盘镜像(只读流式),写入 console/disc/ 解包内容、console/<serial>.toml、console/STATE.md、console/design.md 和 console/.gitignore;对 PS2Recomp 检出目录只检测不写入。

阶段与限制

各阶段:0 搭建 PS2Recomp;1 解包光盘与启动 ELF;2 借助 Ghidra 加 ExportPS2Functions.java(首选)、ps2_analyzer 或 elf.py toml 映射函数边界;3 用 ps2_recomp 从 ELF 生成 C++;4 构建并启动,通过构建门与 ps2EntryRunner;5 处理文件、菜单与输入。

四类修复工具:TOML 配置(entry_points、name@0xADDR、临时 ret0@/ret1@/reta0@、指令补丁);运行时 C++(ps2xRuntime/src/lib/ 下的系统调用、SDK 桩、I/O、GS、音频、手柄、IOP 胶水);游戏覆盖(PS2_REGISTER_GAME_OVERRIDE,源码在 console/patches/);重跑 recompiler。

官方列出多项禁止事项:不得清理构建、不得编辑生成代码、未获用户同意不得改头文件、不得通配符列出或搜索 runner/、不得在 PS2Recomp 检出目录做破坏性 git 操作、未获输出不得声称编译或运行成功、不得未经询问删除或覆盖构建产物/存档/解包文件等。同一问题三次失败后触发断路器,停止猜测。

适用场景

适用于用户拥有自有 PS2 光盘并希望按阶段推进到原生移植的场景。官方要求仅处理用户自己转储的游戏,不得下载 ISO、ELF 或 BIOS 文件;游戏内容与重编译出的 C++ 不得发布,只能分享补丁、覆盖文件与原创素材。与 Sony 无关,PlayStation 为 Sony Interactive Entertainment 商标;PS2Recomp 是 ran-j 的独立 GPL-3 项目,由用户自行克隆,不随本技能捆绑。