SeekyCt/spm-headers
GitHub: SeekyCt/spm-headers
《超级纸马力欧》游戏的头文件和符号库,用于支持反编译研究和模组开发。
Stars: 9 | Forks: 5
# spm-headers
Super Paper Mario 的 WIP 头文件库。
# 设置
## 通用
应针对目标游戏版本使用以下预处理器定义之一:
- `SPM_JP0`
- `SPM_JP1`
- `SPM_US0`
- `SPM_US1`
- `SPM_US2`
- `SPM_EU0`
- `SPM_EU1`
- `SPM_KR0`
建议配合 [git subrepo](https://github.com/ingydotnet/git-subrepo) 使用。
## 反编译
用于 decomp 时,应将 `include`、`include_cpp` 和 `decomp` 文件夹添加到 include 路径中,并使用预处理器定义 `DECOMP`。
## 模组
用于模组时,应将 `include` 和 `mod` 文件夹添加到 include 路径中,并使用 `linker` 中的 lst 文件。模组应包含其编译器的标准库头文件(不要使用 `-nostdinc`),但无需链接它(因此 `-nostdlib` 是可以的)。
(可选)您可能希望添加预处理器定义 `RELAX_NAMESPACING` 以允许省略命名空间(例如,`spm::memory::MemWork` 变为 `MemWork`)。
**警告**:NW4R 头文件目前可能不适用于 GCC
# 许可证
本项目最初编写的所有代码(位于 `include`、`decomp` 和 `linker` 目录下的所有内容)均在 MIT 许可证下提供。
`mod` 文件夹下的所有内容均在 GPLv3 许可证下提供,因为它是衍生自其他 GPL 代码的。
# 符号
目前,符号是根据需要手动添加和移植的。此处的 lst 文件中缺少的任何符号都可以在 eu0 的 [decomp symbols yml](https://github.com/SeekyCt/spm-decomp/blob/master/config/symbols.yml) 中找到。未来,该 yml 将成为此仓库的一部分,并且 lst 文件将基于它自动生成。
# 贡献
有关贡献指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
标签:C/C++, JARM, MIT许可, Mod制作, NW4R, UML, URL提取, Wii游戏开发, 事务性I/O, 代码映射, 任天堂, 内存分析, 反编译, 头文件库, 客户端加密, 游戏修改, 游戏逆向工程, 符号表, 网络安全研究, 超级纸马力欧, 跨版本支持, 静态链接