Libsm64:外部ゲームエンジンで利用するためのマリオ64ライブラリ

2026/07/27 19:04

Libsm64:外部ゲームエンジンで利用するためのマリオ64ライブラリ

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

プロジェクトは、既存のデコンパイルプロジェクトの上に構築された「スーパーマリオ64」の内蔵中の移動ロジックとレンダリングロジックを公開する文書化された共有ライブラリインターフェース(

libsm64.h
)を提供します。本ライブラリはRust、Odin、Unity(MelonLoader/BepInEx経由)、Blender、Godot、Game Maker 8、C#など多様な開発エコシステムをサポートしています。ライブラリは実行時に公式ROMをロードし、テクスチャデータやアニメーションデータを動的に抽出します。特に、テストプログラムを実行するにはUS版(
baserom.us.z64
)の提供が必要です。開発にはMac/Linuxへの完全なビルドサポート(python3、SDL2、GLEWが必要)と、Windows向けのサポート(MSYS2 MinGW経由で
make
ターゲットを使用して
lib
test
run
に対応)が含まれています。EmscriptenによるWebAssemblyサポート(
emmake make CC=emcc
)は進行中です。これによりブラウザ環境での利用が可能になります。
test/
ディレクトリには最小限の使用例が用意されています。

本文

SM64 ゲームエンジン統合ライブラリ (libsm64)

プロジェクトの目的と概要

本プロジェクトは、SM64 の逆解析データを基に、マリオカート 64 の移動およびレンダリングコードを他ゲームエンジンやシステムへ組み込めるよう設計されています。以下の特徴があります。

  • クリーンなインターフェース: 最小限の手間で既存の環境へ統合可能。
  • 共有ライブラリ: 主要な実装はデコンパイル化プロジェクトからのコードを含む。
  • データ読み込み: 実行時に公式の『スーパーマリオ 64』ROM を読み込み、以下のデータを取得します。
    • マリオのテクスチャ
    • アニメーションデータ
  • 外部依存事項: 利用側は必ずユーザーからアセット抽出用の ROMを提供する必要があります。

API とサンプルコード

  • 公開インターフェース:
    libsm64.h
    で確認可能。
  • 導入方法: ヘッダーを含め、ライブラリを読み込むだけで動作します。
  • サンプルコード:
    test
    ディレクトリに最小限の実装例が用意されています。

サポートプラットフォームとバインディング

以下の言語やツールへのバインディング・プラグインが提供されています。

バインディング・プラグイン一覧

  • Rust バインディング
  • Odin バインディング
  • C# バインディング
  • Unity プラグイン
  • Unity MelonLoader モジュール
  • Unity BepInEx プラグイン
  • Blender アドオン
  • Godot アドオン
  • Game Maker 8 エクステンション

Mac および Linux 向けビルド手順

  1. 環境準備

    • Python3
      のインストールを確認します。
    • テストプログラムをビルドする場合、SDL2 および GLEW ライブラリが必要です(Ubuntu の例):
      sudo apt install libsdl2-dev libglew-dev
      
  2. ライブラリのビルド 基本コマンド:

    make
    

    musl libc(glibc ではなく)でリンクしたい場合は:

    LIBSM64_MUSL=1 make
    
  3. テストプログラムの実行環境 リポジトリルートディレクトリに、米国版 ROM の存在が必要です:

    • ファイル名:
      baserom.us.z64
    • 内容: 『スーパーマリオ 64』米国版

Windows 向けビルド手順

  1. MSYS2 MinGW 64 セットアップ MSYS2 MinGW 64 のセットアップ手順 1〜4 を実施し、リポジトリ URL を以下の通り変更してください:

    https://github.com/libsm64/libsm64.git
    
  2. ライブラリのインストール (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
    
  3. ビルド

    make
    
  4. ROM の配置 実行にはルートディレクトリに以下の ROM ファイルが必要です:

    • baserom.us.z64
      (『スーパーマリオ 64』米国版)

Emscripten(Web)向けビルド(開発中)

Web アセンブリーや JavaScript から直接ライブラリを利用するための手順です。

単一実行ファイルの出力

JS に独立したライブラリを呼び出したい場合:

  1. ビルド実行:
    emmake make CC=emcc
    
  2. JS 統合用パッケージ化:
    emcc dist/libsm64.so -o libsm64.js
    
    これにより、
    libsm64.wasm
    および
    libsm64.js
    が出力されます。

ライブラリリンク用

独自の C プロジェクトにリンク可能なコンパイル済み WebAssembly オブジェクトを取得するには:

  • 出力先:
    dist/libsm64.so

: JS から独立した呼び出しは有用性が限定的です。


Make ターゲット一覧(全プラットフォーム共通)

コマンド機能
make lib
(デフォルト)
dist
ディレクトリに共有オブジェクト/DLL および公開ヘッダーを構築します。
make test
ライブラリ (
dist
) とテストプログラムを構築します。
make run
SDL+OpenGL テストプログラムを構築し、直ちに実行します。

同じ日のほかのニュース

一覧に戻る →

2026/07/28 7:03

オープンウェイトモデルに関する当社の立場

## Japanese Translation: Anthropic の CEO ダリオ・アモデイは、オープンウェイトの AI モデルに対する全面的な禁止に反対し、同社がそのような制限を支持したことはないと主張している。彼は、危険な能力を持たないオープンウェイトモデルを不可欠な公共財として位置づけ、主な国家安全保障上の懸念として、共産主義中国(CCP)などの権威主義体制が、恒久的な軍事優位や抑圧のために優れた AI を構築しようとするリスクを挙げており、このリスクは副大統領ヴァンスの最近の警告や米国当局による世界的競争力に関する情報評価によって強調されている。彼の二次的な懸念には、サイバー攻撃、生物学的脅威、またはアライメント(調整)失敗への悪用が含まれる。アモデイは、オープンウェイトモデルはガードレールの実行が難しく、リリースされた重み(weights)を回収できないため、閉鎖型モデルよりも高いリスクをもたらすと指摘している。これらの脅威を緩和しつつ有益なイノベーションを維持するため、彼は以下の目標志向戦略を提唱している:中国への高度な半導体および装備の輸出制限、モデルの密輸入や産業規模での蒸留(distillation)操作への取り締まり、そして公開前に十分に能力のあるすべてのモデルに対して安全性テストの実施を義務付ける。彼は、全面的な禁止は効果的でもなく、Anthropic が求める解決策でもないとし、代わりに回収不能なシステムにおけるリスク管理を進めつつ、安全性にコミットしている者にとってのアクセスを維持することを主張している。

2026/07/25 16:55

Go の新しいガベージコレクションがヒープを走査していく様子

## Japanese Translation: Go の新しい Green Tea ゴー・コレクター(v1.26 以降のデフォルト)と C# を比較した評価から得られる主な示唆は、CPU キャッシュ効率とメモリアン断片化の間にある明確なトレードオフである。Green Tea は連続したスパンへの割り当てを最適化することでキャッシュミスが大幅に減少するが、オブジェクトを解放する際に移動やコンパクト化を行うことはできない。その結果、C# の移動式コレクターが積極的に関与してヒープをコンパクト化し OS に散在ページを返すのと異なり、Go は大量の解放後(例:90% のオブジェクトを解放)も未解放オブジェクトがばら撒かれたままとなる。 裸の金属 x86 システムでのテストにより、この断片化は介入なしに持続することが確認された。しかし、開発者は `unsafe` ポインタを使用して残存するオブジェクトを手動でパッケージ化することでこの制限を回避し、実質的にコンパクト化を模倣してシステムリソースを取り戻すことができる。結論として、Go は真の CPU パフォーマンス向上を提供するものの、複雑な回避策なしにヒープをコンパクト化できないという Go の不具合は依然として大きな制約であり、長期的動作を必要とし効率的なメモリ回収を要求するアプリケーションにおいては、C# が優れたアーキテクチャ上の振る舞いを提供することが組織にとって認識すべき点である。

2026/07/28 4:58

HN ランチ:Rise(YC S26)——廃棄物ガスを貴重な化学物質に変える

## Japanese Translation: Rise Reforming は、シカゴ郊外の下水処理施設でパイロットプラントの建設を正式に開始し、2026 年 7 月の稼働を目指しています。2025 年 12 月には 65 万ドルの前種投資を受け、初雇用の Nina Kritikos を擁し、同社は 2026 年 4 月に 1,800 時間以上の連続運転を通じて安定した概念実証結果を達成しました。また、プロジェクトはバイオガス生産者との拘束力のある供給契約および複数の覚書(MOU)を確保しています。 同社の固有技術では、下水処理廠などの発生源から排出される国内の滞留バイオガス(廃棄ガス)をメタノール、ジメチルエーテル(DME)、ジメチルカーボネート(DMC)といったグリーン化学物質に変換します。このアプローチは、化石燃料の採掘・精製・輸送に伴う環境コストを回避する低価格な代替策を提供することで、従来の石油化学製品と直接的に競合しています。主要な革新点は、許可手続きの長期遅延なく特定の施設の要件に合わせて迅速に導入および容易にスケールアップ可能なモジュール式でコンテナサイズの設計にあります。 Rise Reforming は 2026 年 7 月、成長とスケールアップのさらなる加速のために Y Combinator の S26 バッチに参加しました。廃棄物を価値ある化学物質に変えることで、即座の財政的リターンを提供しつつクリーンなエネルギー未来を支援することを目的としています。過去のマイルストーンには、2025 年 5 月に European Aerosols Federation 2025 Start-Up Award を受賞し、George Rose が 776 Foundation から Climate Fellow に選出されたことが含まれます。