返回

文章详情

Libsm64:将马里奥 64 作为外部游戏引擎使用的库

Hacker News2026年7月27日 10:04

本项目的目的是提供一个干净的接口,用于从 SM64 反向工程的移动和渲染代码,以便马里奥可以轻松地融入现有的游戏引擎或其他系统。该项目生成一个共享库文件,主要包含反编译项目的代码,并在运行时加载一个官方的 SM64 ROM,以获取马里奥的纹理和动画数据,因此任何使用此库的项目都必须要求用户提供 ROM 以进行资产提取。共享库的全部外部 API 可以在 libsm64.h 中找到。任何使用该库的客户端项目只需包含该头文件并加载库。测试目录下有一个最小示例项目,演示了该库的用法。 绑定和插件 Rust 绑定 Odin 绑定 Unity 插件 Blender 插件 Godot 插件 Game Maker 8 扩展 Unity MelonLoader 模块 Unity BepInEx 插件 C# 绑定 在 Mac 和 Linux 上构建 确保安装了 python3。如果你正在构建测试程序,请确保安装了 SDL2 和 GLEW 库(在 Ubuntu 上:libsdl2-dev,libglew-dev)。运行 make 进行构建。如果你想链接 musl libc 而不是 glibc,请运行 LIBSM64_MUSL=1 make。要运行测试程序,你需要在存储库的根目录中有一个名为 baserom.us.z64 的 SM64 美国 ROM。 在 Windows 上构建 按照此处设置 MSYS2 MinGW 64 的步骤 1-4 ,但将存储库 URL 替换为 https://github.com/libsm64/libsm64.git。 如果你正在构建测试程序,请确保安装 SDL2 和 GLEW 库。 64 位:pacman -S mingw-w64-x86_64-SDL2 mingw-w64-x86_64-glew。 32 位:pacman -S mingw-w64-i686-SDL2 mingw-w64-i686-glew。运行 make 进行构建。 要运行测试程序,你需要在存储库的根目录中有一个名为 baserom.us.z64 的 SM64 美国 ROM。 为 Emscripten(Web)构建(进行中)运行 emmake make CC=emcc。如果你想让 libsm64 独立于 JS 调用(可能没有那么实用?),然后运行 emcc dist/libsm64.so -o libsm64.js 生成 libsm64.wasm 和 libsm64.js。否则,dist/libsm64.so 应该是一个编译好的 WebAssembly 对象,你可以将其链接到自己的 C 项目中。 构建目标(所有平台) make lib :(默认)构建 dist 目录,包含共享对象或 DLL 和公共头文件。 make test :构建库 dist 目录以及测试程序。 make run :构建并运行 SDL+OpenGL 测试程序。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡