SeekyCt/spm-decomp

GitHub: SeekyCt/spm-decomp

Wii 平台《超级纸片马力欧》的 1:1 反编译项目,将游戏二进制代码还原为可读源码以支持逆向分析与模组开发。

Stars: 89 | Forks: 10

# spm-decomp # [![代码进度]][progress] [![数据进度]][progress] [![Discord 徽章]][discord] 《超级纸片马力欧》的逆向工程。主要针对的是该游戏的两个 PAL 版本(两者之间的符号和拆分地址完全一致)。虽然也为该游戏的 NTSC-U 0 号修订版提供了支持,但移植的地址较少(建议在创建某种自动化移植方案之前,不要在此版本上投入精力)。 这永远不会是完整游戏的逆向工程,只会针对一些有用或有趣的部分,而且肯定不会导致向任何其他平台的移植。理论上,该代码库是可偏移的(即可以编辑 configure.py 中标记为 `Matching` 的文件来改变游戏行为),但这并未经过全面测试。SDK、NW4R 和 MSL 库超出了本项目的范围,不会被逆向工程(尽管需要它们的部分头文件才能对其他代码进行逆向工程)。 其他文档请参见 https://github.com/SeekyCt/spm-docs。 ## 依赖安装 ### Windows 在 Windows 上,**强烈建议**使用原生工具。**不**需要 WSL 或 msys2。 在 WSL 下运行时,objdiff 无法获取文件系统通知以进行自动重新构建。 - 安装 [Python](https://www.python.org/downloads/) 并将其添加到 `%PATH%` 中。 - 也可以从 [Windows 应用商店](https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K)获取。 - 下载 [ninja](https://github.com/ninja-build/ninja/releases) 并将其添加到 `%PATH%` 中。 - 通过 pip 快速安装:`pip install ninja` ### macOS - 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages): brew install ninja [wibo](https://github.com/decompals/wibo) 是一个最小化的 32 位 Windows 二进制包装器,它会被自动下载并使用。 ### Linux - 安装 [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages)。 [wibo](https://github.com/decompals/wibo) 是一个最小化的 32 位 Windows 二进制包装器,它会被自动下载并使用。 ## 构建 - 将你的游戏光盘镜像复制到 `orig` 下对应你版本的子文件夹中 - 支持的版本: - EU0:PAL 0 号修订版 - EU1:PAL 1 号修订版 - JP0:NTSC-J 0 号修订版 - KR0:NTSC-K 0 号修订版 - 支持的格式:ISO (GCM)、RVZ、WIA、WBFS、CISO、NFS、GCZ、TGC - 首次构建完成后,可以删除光盘镜像以节省空间。 - 运行 configure.py - 对于 EU0,不需要额外的参数 - 对于任何其他版本,使用 `--version RGX`,其中 `RGX` 是你版本的地区和修订号 - 运行 ninja ## 模组开发 就目前的状态而言,该代码库并不适合直接编辑,但可以将函数复制到 [REL 模组](https://github.com/SeekyCt/spm-rel-loader)中并在那里进行编辑,而且相关文档依然有用。 ## 鸣谢 - PistonMiner、Zephiles、Jdaster64、Jasper、NWPlayer123、Malleo、SolidifiedGaming 和 Diagamma 感谢他们提供的 TTYD 文档 - 所有 [PM64 decomp](https://github.com/ethteck/papermario) 的贡献者 - 所有 [asm-differ](https://github.com/simonlindholm/asm-differ) 的贡献者 - 所有 [decomp-toolkit](https://github.com/encounter/decomp-toolkit) 和 [dtk-template](https://github.com/encounter/dtk-template/) 的贡献者
标签:C/C++, UML, URL提取, Wii, 事务性I/O, 云资产清单, 反编译, 客户端加密, 游戏, 超级纸片人马里奥, 逆向工具, 逆向工程