libsm64: una librería para integrar a Mario en motores de juego externos

Fuentes: libsm64: a library for embedding Mario 64 into external game engines

libsm64 es un proyecto de código abierto que ofrece una interfaz limpia al código de movimiento y renderizado de Super Mario 64, reconstruido mediante ingeniería inversa por el SM64 decompilation project. Su objetivo es permitir que el personaje de Mario pueda añadirse a motores de juego o sistemas ya existentes con un esfuerzo mínimo.

La librería se distribuye como un archivo compartido que contiene, en su mayor parte, código del proyecto de decompilación. En tiempo de ejecución carga una ROM oficial de SM64 para extraer las texturas y animaciones de Mario, por lo que cualquier proyecto que la utilice debe pedir al usuario que proporcione dicha ROM para la extracción de assets. Toda la API externa está definida en el archivo de cabecera libsm64.h, y el repositorio incluye un programa de prueba mínimo en el directorio test que muestra cómo utilizarla.

Alrededor del núcleo existen enlaces para múltiples entornos: bindings en Rust y Odin, un plugin para Unity, add-ons para Blender y Godot, una extensión para Game Maker 8, mods de Unity con MelonLoader y BepInEx, y bindings en C#. La compilación se realiza con make; en Linux es necesario contar con libsdl2-dev y libglew-dev para el programa de prueba, mientras que en Windows se utiliza MSYS2 MinGW 64 con los paquetes correspondientes. También es posible compilar con Emscripten para obtener un objeto WebAssembly enlazable desde proyectos en C o, tras un paso adicional con emcc, un módulo JavaScript. El repositorio define varios objetivos: make lib genera el directorio dist con la librería y la cabecera pública; make test añade el programa de prueba; make run lo compila y lo ejecuta.