{
  "added_at": "2026-11-09",
  "category": "reconstruction-cases",
  "class": "game",
  "description_en": "Infernal Runner JS ports the Amstrad CPC game Infernal Runner to JavaScript from analysis of its disk image and Z80 code. It reimplements a cooperative-threaded interpreter for the game's 28 bytecode opcodes, loads the original disk image for graphics and scripts, and includes a bytecode disassembler and Z80 disassembly.",
  "description_zh": "Infernal Runner JS 根据 CPC 磁盘镜像和 Z80 代码分析，将 Infernal Runner 移植到 JavaScript。它重建了处理 28 种字节码操作码的协作线程解释器，读取原版镜像中的图形和脚本，并附带字节码与 Z80 反汇编材料。",
  "entry_url": "https://awesomerea.org/resources/infernal-runner-js-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/infernal-runner-js-case/",
  "evidence_class": 2,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/cyxx/infernal_js/blob/d1c9a9839d672fbf8c2ed6585ba9af5869da11b1/README.md",
  "group": "cases",
  "id": "infernal-runner-js-case",
  "json_url": "https://awesomerea.org/resources/infernal-runner-js-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/infernal-runner-js-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/infernal-runner-js-case/index.md",
  "name": "Infernal Runner JS: reconstructing the CPC game's bytecode engine",
  "name_zh": "Infernal Runner JS：重建 CPC 游戏的字节码引擎",
  "reconstruction_method": "port",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "license"
  ],
  "requirements": [
    "Provide the original .dsk image for its bytecode and graphics.",
    "No licence file in the repository."
  ],
  "requirements_zh": [
    "提供原版 .dsk 镜像，以读取字节码和图形。",
    "仓库中没有许可证文件。"
  ],
  "scope": "unknown",
  "targets": [
    "game"
  ],
  "url": "https://github.com/cyxx/infernal_js",
  "verification": "source-reviewed",
  "verified_at": "2026-11-06"
}
