{
  "added_at": "2026-10-31",
  "additional_evidence_urls": [
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/THIRD_PARTY_NOTICES.md",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/docs/RELEASING.md",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/docs/BUILDING.md",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/docs/VERIFYING.md",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/docs/TIMING.md",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/games/sfa2/game.cfg",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/tools/audit.sh",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/.github/workflows/ci.yml",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/.gitignore",
    "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/LICENSE",
    "https://github.com/tmcleroy/cps2recomp/releases/tag/v0.4.0-beta.3"
  ],
  "category": "reconstruction-cases",
  "description_en": "Translates the 68000 game programs and Z80 sound programs of Capcom arcade boards ahead of time into C++ and runs them on a machine model written for the project, with an interpreter for code that has not been translated. One launcher covers Street Fighter Alpha and Alpha 2, Super Puzzle Fighter II Turbo, Vampire Savior and its variants, Vampire Hunter 2, Alien vs. Predator and the CPS-1 Cadillacs and Dinosaurs, adding training modes, widescreen and three-player options. Translated code is generated from the user’s own ROM sets, and a check build compares it block by block with the interpreter.",
  "description_zh": "将 Capcom 街机基板上的 68000 游戏程序与 Z80 声音程序预先转译为 C++，并在为本项目编写的机器模型上运行，尚未转译的代码则交给解释器执行。一个启动器涵盖《街头霸王 Alpha》及《Alpha 2》、《超级益智战士 II Turbo》、《恶魔战士：救世主》及其变体、《恶魔猎人 2》、《异形大战铁血战士》以及 CPS-1 平台的《恐龙新世纪》，并加入训练模式、宽屏和三人游戏选项。转译代码由使用者自有的 ROM 套装生成，专门的检查构建会逐个代码块将其与解释器对比。",
  "entry_url": "https://awesomerea.org/resources/cps2recomp-arcade-static-recomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/cps2recomp-arcade-static-recomp-case/",
  "evidence_url": "https://github.com/tmcleroy/cps2recomp/blob/74e26fb10e166fbfacfb1e6520fbc05e400642b1/README.md",
  "group": "cases",
  "id": "cps2recomp-arcade-static-recomp-case",
  "json_url": "https://awesomerea.org/resources/cps2recomp-arcade-static-recomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/cps2recomp-arcade-static-recomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/cps2recomp-arcade-static-recomp-case/index.md",
  "name": "CPS-2 Recomp: static recompilation of Capcom CPS-2 and CPS-1 arcade games",
  "name_zh": "CPS-2 Recomp：Capcom CPS-2 与 CPS-1 街机游戏的静态重编译",
  "reconstruction_method": "static-recompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Reviewed at main (2026-10-19), eight commits after release v0.4.0-beta.3, published the same day for macOS 13+, Linux x86_64 including Steam Deck, and 64-bit Windows 10/11. README labels the collection beta: the fighting games play from start to ending, the beat-’em-ups have been run through their first stages under automated play, and few machines and controllers have been tried; Street Fighter Alpha has no training mode or widescreen yet.",
    "Each game needs the user’s own copy of one specific MAME-style ROM set, such as sfa2u (USA 960430) or vsavj (Japan 970519), with its key file for CPS-2 titles; each game.cfg lists the expected files and checksums. THIRD_PARTY_NOTICES states that nothing from any game or board is in the repository and that translated code is made on the machine of someone who has the ROM set; RELEASING.md adds that each released game program contains that game’s translated and compiled 68000 and Z80 code, a risk the maintainer accepted on 2026-10-12.",
    "Source builds use make with CMake, Ninja, Python 3 and SDL 3.4.16 or later: Apple clang on macOS, GCC 13+ or Clang 16+ with CMake 3.28+ on Linux, and MinGW-w64 cross-compilation or an MSYS2 UCRT64 shell for Windows. The first build writes the deciphered program, and an explore step of about ten minutes finds code through automated play before translating it; code it does not find keeps running on the interpreter.",
    "docs/VERIFYING.md documents a check build that runs each translated block beside the interpreter and stops at the first difference in registers, flags, cycles, control flow or memory writes, plus per-frame state-hash comparisons between run modes; the optional arcade timing was compared with a simulated jtcps2 model of the board. CI runs an audit for committed game files, keys and unlisted third-party code, and builds and starts each platform’s package with a stand-in game and no game code.",
    "The project is GPL-3.0; machine/cps2crypt.cpp is MAME’s BSD-3-Clause CPS-2 cipher code, the launcher descends from wiiparty-recomp (GPL-3.0-or-later) through the author’s recomp-common, and sound/driver.cpp is a hand rewrite of Capcom’s QSound sound program that reads its tables and samples from the user’s ROMs. Capcom and the other rights holders keep their game rights."
  ],
  "requirements_zh": [
    "审阅版本为 main（2026-10-19），比同日发布的 v0.4.0-beta.3 多八个提交；该版面向 macOS 13+、含 Steam Deck 在内的 Linux x86_64 以及 64 位 Windows 10／11。README 将合集标为测试版：格斗游戏可从开场打到结局，清版动作游戏在自动游玩下运行过前几关，测试过的机器和手柄仍很少；《街头霸王 Alpha》尚无训练模式和宽屏。",
    "每款游戏都需要使用者自有的一套指定 MAME 式 ROM 套装，例如 sfa2u（美版 960430）或 vsavj（日版 970519），CPS-2 游戏还需相应的密钥文件；各游戏的 game.cfg 列出了预期文件及校验和。THIRD_PARTY_NOTICES 声明仓库中不含任何来自游戏或基板的内容，转译代码只在持有 ROM 套装者的机器上生成；RELEASING.md 另说明，每个发布的游戏程序都包含该游戏经转译并编译的 68000 与 Z80 代码，维护者已于 2026-10-12 接受这一风险。",
    "从源码构建使用 make，并需 CMake、Ninja、Python 3 和 SDL 3.4.16 或更新版本：macOS 上用 Apple clang，Linux 上用 GCC 13+ 或 Clang 16+ 及 CMake 3.28+，Windows 则通过 MinGW-w64 交叉编译或 MSYS2 UCRT64 环境构建。首次构建会写出解密后的程序，随后约十分钟的探索步骤通过自动游玩找出代码再进行转译；未找到的代码仍由解释器执行。",
    "docs/VERIFYING.md 记录了一种检查构建：每个转译代码块都与解释器并行执行，一旦寄存器、标志位、周期数、控制流或内存写入出现差异即停止；此外还在不同运行模式之间逐帧比较状态哈希。可选的街机时序曾与模拟的 jtcps2 基板模型对比。CI 会审计仓库中是否提交了游戏文件、密钥或未列明的第三方代码，并以不含游戏代码的替身游戏构建和启动各平台安装包。",
    "项目采用 GPL-3.0；machine/cps2crypt.cpp 是 MAME 中采用 BSD-3-Clause 的 CPS-2 加密算法代码，启动器经由作者的 recomp-common 源自 wiiparty-recomp（GPL-3.0-or-later），sound/driver.cpp 则是对 Capcom QSound 声音程序的手工重写，其数据表与采样均从使用者的 ROM 中读取。Capcom 及其他权利人仍保有游戏权利。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/tmcleroy/cps2recomp",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
