# sm64ex：基于反编译成果的 Super Mario 64 增强版 PC 移植

> 基于反编译源码构建原生 Super Mario 64 可执行文件，在 n64decomp 重建成果的 sm64-port 分支之上，增加渲染器、输入、视角、存档格式和外部数据等选项。游戏素材在构建时从使用者自备的 ROM 中提取。这是非一致性的增强移植，而不是逐字节一致的 ROM 重建。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-18
- 收录于：2026-10-18
- 原始资源：<https://github.com/sm64pc/sm64ex>
- 一手来源：<https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/sm64ex-pc-port-case/>
- 记录 JSON：<https://awesomerea.org/resources/sm64ex-pc-port-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/sm64ex-pc-port-case/index.md)

## 使用条件与局限

- **前提条件：**每构建一个版本，都需自备对应的 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。
- **范围：**所审阅的 nightly 分支（最后推送于 2024-12-17）自述为 sm64-port/sm64-port 的分支，而 GitHub 将后者记录为 n64decomp/sm64 的分支；n64decomp/sm64 这一 ROM 重建项目另行收录。Makefile 只构建 PC 目标：它定义 NON_MATCHING 与 AVOID_UB，并强制将 COMPARE 设为 0。
- **测试证据：**Jenkinsfile 构建 us、eu、jp 三个版本，并在应用每个增强补丁后重新构建 us 版，全部关闭比较。取消绘制距离、模拟摇杆视角、贴图修正和作弊等选项会有意改变行为，wiki 也指出取消绘制距离可能影响游戏玩法。
- **许可：**GitHub 未检测到仓库许可证，所审阅的代码树根目录也没有许可证文件；附带工具各有许可，src/pc 中的声明转载了禁止以二进制形式再分发的 n64-fast3d-engine 许可。项目不提供任天堂原始内容，README 明确禁止上传受版权保护的素材。

## 一手来源

1. <https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/README.md>
2. <https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/Makefile>
3. <https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/extract_assets.py>
4. <https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/Jenkinsfile>
5. <https://github.com/sm64pc/sm64ex/blob/d7ca2c04364a6dd0dac58b47151e04e26887e6f0/src/pc/README-n64-fast32-engine.md>
6. <https://github.com/sm64pc/sm64ex/wiki/Compiling-on-Linux/f2a7911133395886a2dce815f5cb5773e6c2ad8d>
7. <https://github.com/sm64pc/sm64ex/wiki/Compiling-on-Windows/0e64ea14174606d83a7b75f20d14dce1b6e6e200>
8. <https://github.com/sm64pc/sm64ex/wiki/Build-options/f9aff0b0db9cd4ec1c40ac7a2bc42af969edb42f>
9. <https://github.com/sm64pc/sm64ex/wiki/Known-issues/94d262d19ea9e16990d955de28560df563dc5372>
10. <https://github.com/sm64-port/sm64-port/blob/2b17d081c9798b31b91dc71f37994b0da28cffc9/README.md>

## 同分区更多条目：游戏

- [SpaghettiKart：基于反编译源码的《马力欧卡丁车 64》原生移植](https://awesomerea.org/zh/resources/spaghettikart-mk64-port-case/index.md) · 案例
- [Starship：基于反编译的 Star Fox 64 PC 移植](https://awesomerea.org/zh/resources/starship-sf64-pc-port-case/index.md) · 案例
- [Super Mario Sunshine：基于 AI 辅助反编译的原生 PC 移植](https://awesomerea.org/zh/resources/sms-pc-port-case/index.md) · 案例
- [TH08 Web：基于重建源码的 WebAssembly 移植](https://awesomerea.org/zh/resources/th08-web-wasm-port-case/index.md) · 案例
- [TonyWasAProSkater：派生自一致性反编译的 THPS1 原生移植](https://awesomerea.org/zh/resources/thps1-decomp-native-port-case/index.md) · 案例
- [Vandal Hearts：基于一致性反编译的原生 PC 移植](https://awesomerea.org/zh/resources/vandal-hearts-pc-port-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
