#nintendo-64 #port #decompilation #gameshark #super-mario-64

bin+lib sm64gs2pc

将超级马里奥64的GameShark作弊码转换为SM64 PC端口补丁

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 游戏

MIT 许可证

150KB
1K SLoC

crates.io docs.rs Checks cargo-audit Coverage Status Dependabot Status

sm64gs2pc

logo

将超级马里奥64的GameShark作弊码转换为SM64 PC端口补丁

https://sm64gs2pc.github.io

关于

本工具可以将超级马里奥64的GameShark作弊码转换为超级马里奥64 PC端口的补丁,例如 sm64-portsm64ex。它可作为Web应用程序和命令行工具使用。

Web 应用程序

Web 应用程序可通过 https://sm64gs2pc.github.io 访问

编译

要自行编译 sm64gs2pc Web 应用程序

  1. 安装 wasm-pack
  2. cdsm64gs2pc-web
  3. ./build.sh
  4. Web 应用程序将在 static/ 下构建

命令行工具

安装

  1. 安装 Rust
  2. 运行 --code <code> - 转换的 GameShark 代码文件的路径
    • 在 Unix 上,默认安装到 ~/.cargo/bin

用法

sm64gs2pc --code <code> --name <name> > output.patch
  • --code <code> - 转换的 GameShark 代码文件的路径
  • --name <name> - GameShark 作弊码的名称

输出补丁文件可以应用于PC端分支,但必须先应用 基础补丁

限制

不支持某些类型的代码

函数修补

不支持修补函数的代码,因为编译器和CPU的差异使得函数修补不可行。这不太可能得到支持。

GameShark 按钮

不支持使用 GameShark (GS) 按钮的代码,因为它不清楚应该使用哪个键,以及如何在不同PC端分支中处理。不过,在弄清楚这一点后,可能可以添加支持。

只读数据修补

PC端口中某些数据是只读的,无法在运行时修改。一个例子是玩家模型,所以不幸的是,改变颜色的帽子代码无法工作。任何具有 conststatic 的声明都会有这个问题。这可能可以修复,但如何从反汇编仓库中获取这些声明的内存地址尚不清楚。

未知代码类型

一些GameShark代码类型具有未知的功能,几乎无法找到关于它们的信息。即使是Nintendo 64模拟器也不支持它们。一个例子是A4代码类型。基本上,如果一个代码在Mupen64Plus或Project64中不受支持,那么sm64gs2pc肯定也不支持它。

依赖项

~5–13MB
~142K SLoC