{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/Makefile",
    "https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/extract_assets.py",
    "https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/Jenkinsfile",
    "https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/src/pc/README-n64-fast32-engine.md",
    "https://github.com/sm64pc/sm64ex/wiki/Compiling-on-Linux/f2a7911133395886a2dce815f5cb5773e6c2ad8d",
    "https://github.com/sm64pc/sm64ex/wiki/Compiling-on-Windows/0e64ea14174606d83a7b75f20d14dce1b6e6e200",
    "https://github.com/sm64pc/sm64ex/wiki/Build-options/f9aff0b0db9cd4ec1c40ac7a2bc42af969edb42f",
    "https://github.com/sm64pc/sm64ex/wiki/Known-issues/94d262d19ea9e16990d955de28560df563dc5372",
    "https://github.com/sm64-port/sm64-port/blob/2b17d081c9798b31b91dc71f37994b0da28cffc9/README.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "Builds native Super Mario 64 executables from decompiled source, extending the sm64-port fork of the n64decomp reconstruction with renderer, input, camera, save-format and external-data options. Game assets are extracted from the user’s own ROM at build time. It is a non-matching enhanced port, not a byte-identical ROM reconstruction.",
  "description_zh": "基于反编译源码构建原生 Super Mario 64 可执行文件，在 n64decomp 重建成果的 sm64-port 分支之上，增加渲染器、输入、视角、存档格式和外部数据等选项。游戏素材在构建时从使用者自备的 ROM 中提取。这是非一致性的增强移植，而不是逐字节一致的 ROM 重建。",
  "entry_url": "https://awesomerea.org/resources/sm64ex-pc-port-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/sm64ex-pc-port-case/",
  "evidence_url": "https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/README.md",
  "group": "cases",
  "id": "sm64ex-pc-port-case",
  "json_url": "https://awesomerea.org/resources/sm64ex-pc-port-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/sm64ex-pc-port-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/sm64ex-pc-port-case/index.md",
  "name": "sm64ex: an enhanced Super Mario 64 PC port from the decompilation",
  "name_zh": "sm64ex：基于反编译成果的 Super Mario 64 增强版 PC 移植",
  "reconstruction_method": "port",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "The reviewed nightly branch (last pushed 2024-12-17) describes itself as a fork of sm64-port/sm64-port, which GitHub records as a fork of n64decomp/sm64, the separately catalogued ROM reconstruction. The Makefile builds PC targets only: it defines NON_MATCHING and AVOID_UB and forces COMPARE to 0.",
    "Supply an original Super Mario 64 ROM named baserom.<version>.z64 for each version built (us by default, jp or eu); extract_assets.py compares its SHA-1 with the bundled reference before extracting assets. The sh (Shindou) option skips extraction and is labelled experimental in the Makefile and broken in the wiki option table; a 2020 known-issues page reports buggy EU text and missing EU audio.",
    "The README defers building to the wiki, whose pages cover Linux (Python 3.6+, SDL2, GLEW, host GCC toolchain), Windows through MSYS2, FreeBSD, Raspberry Pi and an Emscripten/WebGL target; cross-compiling for Windows from Linux or WSL needs MXE, and OSX_BUILD enables macOS fixes. Renderers are OpenGL 2.1, OpenGL 1.3, Direct3D 11 and Direct3D 12, the DirectX ones only on Windows.",
    "The Jenkinsfile builds us, eu and jp and rebuilds us after each enhancement patch, all with comparison disabled. Options such as disabled draw distance, analog camera, texture fixes and cheats intentionally change behavior, and the wiki notes the draw-distance option may affect gameplay.",
    "GitHub detects no repository license and the reviewed tree has no root license file; bundled tools carry their own licenses, and the src/pc notice reproduces an n64-fast3d-engine license that forbids binary redistribution. Original Nintendo content is not supplied, and the README forbids uploading copyrighted assets."
  ],
  "requirements_zh": [
    "所审阅的 nightly 分支（最后推送于 2024-12-17）自述为 sm64-port/sm64-port 的分支，而 GitHub 将后者记录为 n64decomp/sm64 的分支；n64decomp/sm64 这一 ROM 重建项目另行收录。Makefile 只构建 PC 目标：它定义 NON_MATCHING 与 AVOID_UB，并强制将 COMPARE 设为 0。",
    "每构建一个版本，都需自备对应的 Super Mario 64 原始 ROM，命名为 baserom.<version>.z64（默认 us，另可选 jp 或 eu）；extract_assets.py 会先将其 SHA-1 与仓库附带的参考值比对，再提取素材。sh（Shindou）选项跳过提取，Makefile 标注为实验性，wiki 选项表则标注为无法使用；一份 2020 年的已知问题页面报告欧版文本有误且没有声音。",
    "README 将构建说明交由 wiki 提供，相关页面涵盖 Linux（Python 3.6+、SDL2、GLEW、宿主 GCC 工具链）、通过 MSYS2 的 Windows、FreeBSD、Raspberry Pi 及 Emscripten／WebGL 目标；在 Linux 或 WSL 上交叉编译 Windows 版需要 MXE，OSX_BUILD 用于启用 macOS 修正。渲染器包括 OpenGL 2.1、OpenGL 1.3、Direct3D 11 和 Direct3D 12，其中 DirectX 渲染器仅限 Windows。",
    "Jenkinsfile 构建 us、eu、jp 三个版本，并在应用每个增强补丁后重新构建 us 版，全部关闭比较。取消绘制距离、模拟摇杆视角、贴图修正和作弊等选项会有意改变行为，wiki 也指出取消绘制距离可能影响游戏玩法。",
    "GitHub 未检测到仓库许可证，所审阅的代码树根目录也没有许可证文件；附带工具各有许可，src/pc 中的声明转载了禁止以二进制形式再分发的 n64-fast3d-engine 许可。项目不提供任天堂原始内容，README 明确禁止上传受版权保护的素材。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/sm64pc/sm64ex",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
