{
  "added_at": "2026-11-09",
  "category": "reconstruction-cases",
  "class": "game",
  "description_en": "CannonBall rewrites the OutRun arcade game's 68000 and Z80 assembly as a C++ engine. It reads graphics and audio from the user's original ROMs and supports higher frame rates, widescreen output and SDL2-based rendering.",
  "description_zh": "CannonBall 将街机游戏《OutRun》的 68000 和 Z80 汇编改写为 C++ 引擎，从用户提供的原版 ROM 读取图像与声音，并支持更高帧率、宽屏显示及基于 SDL2 的渲染。",
  "entry_url": "https://awesomerea.org/resources/cannonball-outrun-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/cannonball-outrun-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/djyt/cannonball/blob/27493ebf62be3498dff93ed6a45e8e2db819bae1/README.md",
  "group": "cases",
  "id": "cannonball-outrun-case",
  "json_url": "https://awesomerea.org/resources/cannonball-outrun-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/cannonball-outrun-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/cannonball-outrun-case/index.md",
  "name": "CannonBall: rewriting the OutRun arcade engine in C++",
  "name_zh": "CannonBall：《OutRun》街机引擎的 C++ 重写",
  "reconstruction_method": "port",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Requires the original OutRun revision B ROM set.",
    "Builds with a C++11 toolchain, CMake, SDL2 and Boost.",
    "The author maintains the Windows build but not the other platform ports."
  ],
  "requirements_zh": [
    "需要《OutRun》revision B 原版 ROM 集。",
    "构建需要 C++11 工具链、CMake、SDL2 和 Boost。",
    "作者维护 Windows 构建，但不维护其他平台的移植版。"
  ],
  "scope": "unknown",
  "targets": [
    "game"
  ],
  "url": "https://github.com/djyt/cannonball",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
