HailToDodongo/pyrite64解説:libdragonとtiny3dで実現する次世代のN64エンジニアリング


HailToDodongo/pyrite64解説:libdragonとtiny3dで実現する次世代のN64エンジニアリング

HailToDodongo/pyrite64

2026-02-19

pyrite64(HailToDodongo氏によるプロジェクト)は、一言で言えば「現代のPCで快適に開発して、実機(N64)で動かすための、モダンなゲームエンジン兼エディタ」です。

トランクス派とブリーフ派の論争に例えると、まさに「開発スタイルのこだわり」が詰まっています。さっそく中身を覗いてみましょう。

N64の開発は、本来なら当時の公式SDK(非常に扱いづらい)や、低レイヤーなC言語の知識が膨大に必要でした。しかし、pyrite64は以下の「良いとこ取り」をさせてくれます。

libdragon & tiny3d の採用
低レイヤーなハードウェア制御を抽象化してくれるライブラリ(libdragon)と、3D描画を容易にする tiny3d をベースにしています。

「作る」と「動かす」の分離
PC上のエディタで直感的にシーンを構築し、それをN64が理解できるバイナリへ変換するパイプラインを提供します。

モダンな開発体験
「アセンブリをガリガリ書くのはちょっと……でも実機で動く喜びは味わいたい」という、わがままなエンジニアの願いを叶えてくれます。

N64開発界隈にも、好みによって大きく2つの派閥があります。

項目トランクス派 (自由奔放・アセンブリ派)ブリーフ派 (機能美・エンジン派 / pyrite64)
スタイル解放感抜群。ハードの全機能を直接叩きたい。適度なホールド感。フレームワークに守られたい。
開発手法自作のビルドツールとレジスタ操作。エディタ(GUI)で配置し、APIで制御する。
メリット究極の最適化が可能。開発スピードが速く、バグが少ない。
デメリット1つのミスで画面が砂嵐(クラッシュ)。ライブラリの制約を受けることがある。

pyrite64 は、まさに「しっかりホールドしつつ、機動力も確保するブリーフ派(あるいはボクサーパンツ派)」のためのツールと言えます。

基本的には、libdragonの開発環境が整っていることが前提となります。

環境構築
Dockerを使うのが一番スマートです。

# libdragonのツールチェーンを導入
docker pull ghcr.io/libdragon/toolchain:latest

リポジトリのクローン

git clone https://github.com/HailToDodongo/pyrite64.git
cd pyrite64

ビルド
付属の Makefile を使用します。

make

これで、.z64 形式のROMファイルが生成されます。これをエミュレータ(AresやProject64)または実機(EverDrive等)で動かします。

pyrite64(およびベースのtiny3d)を使うと、3Dモデルの表示が以下のように直感的に書けます。

#include <libdragon.h>
#include <tiny3d.h>

int main(void) {
    // 1. システムの初期化(ベルトを締める)
    debug_init_isviewer();
    display_init(RESOLUTION_320x240, DEPTH_16_BPP, 3, GAMMA_NONE, ANTIALIAS_RESAMPLE);
    t3d_init((T3DInitParams){});

    // 2. モデルの読み込み(お気に入りのパンツを選ぶ)
    T3DModel *model = t3d_model_load("rom:/my_character.t3dm");

    while(1) {
        // 3. 描画ループ
        t3d_viewport_attach(&viewport);
        t3d_frame_start();
        
        // モデルを描画位置へ移動してレンダリング
        t3d_model_draw(model);

        t3d_frame_unlock();
    }
}

pyrite64 は、「N64というレトロなハードウェア」を「現代のソフトウェアエンジニアリング」で攻略するための強力な武器です。

GUIエディタでシーンを作りたい

C言語でスマートにロジックを書きたい

実機の実力を引き出したい

そんなあなたにぴったりなプロジェクトです。


HailToDodongo/pyrite64