7 个版本 (稳定版)
1.0.5 | 2021 年 12 月 11 日 |
---|---|
1.0.4 | 2020 年 8 月 29 日 |
1.0.3 | 2020 年 8 月 27 日 |
1.0.0 | 2020 年 8 月 26 日 |
0.1.0 | 2020 年 8 月 26 日 |
#197 in 游戏
150KB
1K SLoC
sm64gs2pc
将超级马里奥64的GameShark作弊码转换为SM64 PC端口补丁
关于
本工具可以将超级马里奥64的GameShark作弊码转换为超级马里奥64 PC端口的补丁,例如 sm64-port 和 sm64ex。它可作为Web应用程序和命令行工具使用。
Web 应用程序
Web 应用程序可通过 https://sm64gs2pc.github.io 访问
编译
要自行编译 sm64gs2pc Web 应用程序
- 安装 wasm-pack
cdsm64gs2pc-web
./build.sh
- Web 应用程序将在
static/
下构建
命令行工具
安装
- 安装 Rust
- 运行
--code <code>
- 转换的 GameShark 代码文件的路径- 在 Unix 上,默认安装到
~/.cargo/bin
- 在 Unix 上,默认安装到
用法
sm64gs2pc --code <code> --name <name> > output.patch
--code <code>
- 转换的 GameShark 代码文件的路径--name <name>
- GameShark 作弊码的名称
输出补丁文件可以应用于PC端分支,但必须先应用 基础补丁。
限制
不支持某些类型的代码
函数修补
不支持修补函数的代码,因为编译器和CPU的差异使得函数修补不可行。这不太可能得到支持。
GameShark 按钮
不支持使用 GameShark (GS) 按钮的代码,因为它不清楚应该使用哪个键,以及如何在不同PC端分支中处理。不过,在弄清楚这一点后,可能可以添加支持。
只读数据修补
PC端口中某些数据是只读的,无法在运行时修改。一个例子是玩家模型,所以不幸的是,改变颜色的帽子代码无法工作。任何具有 const
或 static
的声明都会有这个问题。这可能可以修复,但如何从反汇编仓库中获取这些声明的内存地址尚不清楚。
未知代码类型
一些GameShark代码类型具有未知的功能,几乎无法找到关于它们的信息。即使是Nintendo 64模拟器也不支持它们。一个例子是A4
代码类型。基本上,如果一个代码在Mupen64Plus或Project64中不受支持,那么sm64gs2pc肯定也不支持它。
依赖项
~5–13MB
~142K SLoC