プログラミング
libsm64: 外部ゲームエンジンで使用可能なライブラリとしてのMario 64
Libsm64: Mario 64 as a library for use in external game engines (github.com)
要約
libsm64は、Super Mario 64の移動およびレンダリングコードを、外部ゲームエンジンに容易に統合できるライブラリ形式で提供するプロジェクトです。SM64の逆コンパイルプロジェクトから派生したコードを使用し、実行時に公式ROMからテクスチャとアニメーションデータを抽出します。このライブラリは、Windows、macOS、Linux、およびWeb(Emscripten)でのビルドをサポートしています。
全文翻訳
libsm64 - ライブラリとしてのSuper Mario 64
このプロジェクトの目的は、SM64逆コンパイルプロジェクトによって逆コンパイルされた移動およびレンダリングコードへのクリーンなインターフェースを提供することです。これにより、マリオを最小限の労力で既存のゲームエンジンやその他のシステムにドロップインできるようになります。
このプロジェクトは、逆コンパイルプロジェクトからのコードの大部分を含む共有ライブラリファイルを生成し、実行時に公式SM64 ROMをロードしてマリオのテクスチャとアニメーションデータを取得します。そのため、このライブラリを利用するプロジェクトは、ユーザーにROMの提供を求める必要があります。
共有ライブラリの外部公開API全体は、libsm64.hで見つけることができます。ライブラリを利用するクライアントプロジェクトは、そのヘッダーのみを含め、ライブラリをロードする必要があります。
テストディレクトリの下に、ライブラリの使用法を示す最小限のサンプルプロジェクトもあります。
バインディングとプラグイン
Rustバインディング
Odinバインディング
Unityプラグイン
Blenderアドオン
Godotアドオン
Game Maker 8拡張機能
Unity MelonLoader mod
Unity BepInExプラグイン
C#バインディング
MacおよびLinuxでのビルド
python3がインストールされていることを確認してください。
テストプログラムをビルドする場合は、SDL2およびGLEWライブラリがインストールされていることを確認してください(Ubuntuの場合: libsdl2-dev, libglew-dev)。
ビルドするにはmakeを実行してください。
glibcの代わりにmusl libcにリンクしたい場合は、代わりにLIBSM64_MUSL=1 makeを実行してください。
テストプログラムを実行するには、リポジトリのルートにbaserom.us.z64という名前のSM64 US 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 US ROMが必要です。
Emscripten(Web)でのビルド(WIP)
emmake make CC=emccを実行してください。
libsm64スタンドアロンをJSから呼び出したい場合(あまり役立たないかもしれません?)、libsm64.jsをエミットするために、その後emcc dist/libsm64.so -o libsm64.jsを実行してください。それ以外の場合、dist/libsm64.soは、独自のCプロジェクトにリンクできるコンパイル済みのWebAssemblyオブジェクトであるはずです。
メイクターゲット(全プラットフォーム)
make lib: (デフォルト)共有オブジェクトまたはDLLと公開ヘッダーを含むdistディレクトリをビルドします。
make test: ライブラリdistディレクトリとテストプログラムをビルドします。
make run: SDL+OpenGLテストプログラムをビルドして実行します。