概述
Retro64 是一个将任天堂的 超级马里奥 64 游戏引擎移植进 MC 的模组。
原理
它基于 超级马里奥 64 反编译项目和 libsm 64 项目 而来。反编译项目将原游戏的 ROM 反编译成了可供阅读的源代码,源代码使用的是 C 语言,这使得将游戏移植到各种平台上变为了可能;这之后有人基于这个反编译项目成果将源代码制作成了一个运行库,这就是 libsm64,基本上整个游戏的源代码都包含在了运行库里,唯一的需求就是从原作 ROM 中读取素材文件才可以正常使用。这两个项目都成功避开了任天堂最强法务部,目前只有它人使用其源代码将游戏移植到PC的游戏本体被任天堂撤下了。
由于源代码使用的是 C 语言,而 Minecraft Java 版使用的是 Java 语言,把源代码从 C 语言移植到 Java 语言是很费时间和精力的事情(理论上没准也可以用一样的方式把引擎移植到基岩版?),而且作者也承认自己比较懒,于是作者选择了利用 Java 自带的 Java 本地接口(JNI)让Java 直接调用源代码。Minecraft 会发送信息给马里奥 64 引擎,让引擎根据这些信息生成一个虚拟世界出来用于交互,并将马里奥的渲染返回给 Minecraft。这个过程会每秒执行 30 次,不过在移动时会立刻执行。
正因为这个模组使用了 libsm64 运行库,你可以在 MC 里使用与超级马里奥 64 原作完全一样的操作来操纵马里奥,包括原作的 Bug。
使用
模组默认 M 键切换角色,Z 键打开 GUI 切换当前使用的模型(只有在切换角色后才有效),左 Alt 键为 Action 键。
此模组的旧版版本需要自行编译(作者当时保险起见为规避版权问题没有发布二进制文件),如果嫌麻烦的话可直接下载已自带全部所需要运行库的最新版本。目前仅需要在模组文件夹内放置 .z64 格式的美版超级马里奥 64 ROM 即可正常运作模组。
作者的未来计划是在会修完 Bug 和三个系统的兼容性问题后陆续添加原作的敌人和关键元素进来。
此模组不支持任何修改原版 MC 渲染的模组和光影包,包括 OptiFine、Sodium、ImmediatelyFast 等。
画廊