Nintendo Wii(Homebrew)用のリアルタイム3Dビデオシンセ/VJツールです。
Wiiリモコン、クラシックコントローラ、USB-MIDIパッド(Akai APC mini / MK2)に対応しています。センサーバーや音声入力は使いません。
Releases からビルド済みファイルをダウンロードできます。
- Wii実機:
.zipを展開してapps/geezyフォルダをSDカード直下にコピーし、Homebrew Channel から起動します。 - Dolphin:
geezy.dol(または.zip内のapps/geezy/boot.dol)を Dolphin で直接開いて起動できます。
ビルドには Docker(devkitpro/devkitppc)を使います。ローカルに devkitPPC 環境がある場合は make でもビルドできます。
# ホスト側の単体テスト実行 + Wii向けビルド(apps/geezy/boot.dol を出力)
./scripts/build.ps1
# Dolphinで起動(PATH や標準フォルダから Dolphin.exe を自動検出)
./scripts/run.ps1
./scripts/run.ps1 -Dolphin "C:\path\to\Dolphin.exe"Dolphin.exe の場所は環境変数 DOLPHIN_PATH または -Dolphin 引数でも指定できます。run.ps1 はプロジェクト直下の .dolphin-prototype をプロファイルとして使うため、普段の Dolphin 設定には影響しません。
5種類の3D空間をリアルタイムに切り替えられます。空間を変えてもテーマ・配色・速度ギアはそのまま維持されます。
| WM | 空間 | 内容 |
|---|---|---|
0 |
Orbit | 中央のオブジェクト群を球面オービットカメラで回る基本空間。格子・トンネル・ドーム背景と組み合わせる |
1 |
Horizon | ビルやパイプの都市地形を低空飛行と深いバンク角で抜ける空間。背景・配置の組み合わせで天井都市も出現 |
2 |
Atrium | 巨壁・空中回廊・可動ピストン・光束が連なる巨大建築空間。アオリや吹き抜けなどの建築カメラで進行 |
3 |
Quantum | 2,304個の粒子と結線がベクトル場を漂い、打撃やチャージで結晶構造(格子・球殻・立体文字)に整列する空間 |
4 |
Ortho | 遠近感のない正射投影空間。造形・多重アーク・ボクセル文字・斜め梁が平面的に交差する |
テーマは Dark(黒背景+クローム+残像トレイル)、White(白背景+白フォグ)、Fog(カラーフォグ+クローム背景+単色シルエット)の3種類です。
3D造形はジャイロトーラス、二重ケージ八面体、トーラス結び目、二重/三重螺旋、メンガーケージ、メビウス刀身、機械脊椎、Superformula多面体など14系統あります。表面スキン4種(Chrome / Grid / Ghost / Wire)と反射4種(Horizon / Stepped / Oil / Mono)を切り替えられます。
配色は16個のバンクを持ち、各バンクのシード値から4色パレットを生成します(4バンクごとに色相の組み方が変わります)。
2Dオーバーレイはボタンを押している間だけ開く8パターンのモーメンタリ演出です(スコープ、斜めワイプ、Zバッファで3D空間を抜くパネル窓・円形ポータル、RGBシフト付き二重空間ブレード、ピクセルタイポ、網点・チェッカー展開、カラーシャッター)。
Master FX も押下中のみ有効なポストエフェクトで、複数コントローラの入力は合成されます。優先順位は 暗転 > 白転 > フリーズ > ストロボ > 通常合成(万華鏡・左右ミラー・モザイク・ネガ反転は重ね掛け可)です。フリーズ中は画面と内部時間を止めたまま裏でワールド・配色・造形の変更を受け付け、離したフレームで新しい画面に切り替わります。
HUDの略号は以下の通りです。
- 左上:
VEL速度、GEARギア(0〜3)、S造形、L配置、Mスキン、V軌道 - 右上:
FOV画角、SEED配色シード、WMワールド、Wテーマ、P配色バンク、X2Dパターン - 下部:
TNSチャージ量
コントローラはすべて併用できます。
2Pリモコン未接続時のモードです。方向は横持ち時の上下左右に対応します。1 / 2 の単押しは離した時に確定し、同時押しに使った場合は単押し動作は出ません。
| 操作 | リモコン | Dolphin既定キー | 内容 |
|---|---|---|---|
| チャージ&ドロップ | A(ホールド) |
A |
2秒かけて圧縮・加速ストロボ、離すとドロップ |
| 2Dグラフィックス | B(ホールド) |
B |
押している間2D展開(押すたび次のパターンへ) |
| 配色シード更新 | 1(単押し) |
1 |
新しい配色シード+打撃 |
| シーン更新 | 2(単押し) |
2 |
造形・軌道変更+打撃 |
| 操舵・ブースト | 十字キー |
矢印キー |
タップで方向打撃、ホールドで操舵+5倍ブースト |
| 視線オフセット | B + 十字キー |
B + 矢印 |
カメラ視線を大きく外す(離すと復帰) |
| 速度ギア変更 | + / - |
E / Q |
巡航ギア 0〜3 を増減 |
| HUD表示切替 | 1 + + |
1 + E |
HUDの表示/非表示 |
| テーマ巡回 | 2 + + |
2 + E |
テーマ 0〜2 を巡回 |
| 配色バンク巡回 | 1 + - |
1 + Q |
配色バンク 0〜15 を巡回 |
| ワールド巡回 | 2 + - |
2 + Q |
ワールド WM0〜WM4 を巡回 |
| フルリミックス | 1 + 2(離した時) |
1 + 2 |
ワールド・造形・配色・背景を一括変更 |
| フリーズ / 万華鏡 | 1 + 2 + A / B |
1 + 2 + A / B |
押している間フリーズ / 万華鏡 |
| シェイク | 本体を振る | — | 2.5倍の強打撃 |
| リセット / 終了 | + と - / HOME |
R / H |
全設定リセット / 終了 |
数字ボタンを先に押す(または同時押し)ことで、以下の直接選択・巡回も使えます。
| 同時押し | ↑ |
→ |
↓ |
← |
|---|---|---|---|---|
1 + 十字キー(スキン) |
Chrome | Grid | Ghost | Wire |
2 + 十字キー(配置) |
非対称3体 | 巨大1体 | 2体 | 中心+衛星群 |
1 + 2 + 十字キー(背景) |
格子+粒子 | ワープトンネル | 全方位ドーム | 粒子マトリクス |
1 + 2 + 斜め(梁) |
↖ 立体格子 |
↗ 矩形ゲート |
↘ 平行ブレード |
↙ 斜材トラス |
そのほか、A + 1 で反射巡回、A + 2 で造形のみ巡回、B保持 + 1 で2Dパターン送り、B + 2 で軌道のみ巡回します。
2Pリモコン(CHAN 1)が繋がると自動で両手縦持ちモードに切り替わります(左手=1P、右手=2P)。切断すると1本横持ちモードに戻ります。
| 単独操作 | 左手(1P) | 右手(2P) |
|---|---|---|
A |
チャージ/離すとドロップ | 強打撃+カメラカット |
B(ホールド) |
2Dグラフィックス表示 | 万華鏡 |
↑ / → / ↓ / ← |
操舵+ブースト(タップで打撃) | 造形 / 配色 / 軌道 / 配置 を巡回 |
1 / 2(離した時) |
配色 / 造形 を巡回 | ワールド / テーマ を巡回 |
+ / - |
ギア増減 | ギア増減(両手 - 同時押しでリセット) |
HOME |
終了 | 終了 |
同じ手の B を押しながらの操作:
| 入力 | 左手(1P):背景・2D | 右手(2P):Master FX |
|---|---|---|
B + ↑ |
立体格子 | 万華鏡 |
B + → |
ワープトンネル | 左右ミラー |
B + ↓ |
全方位ドーム | フリーズ |
B + ← |
斜材トラス | ネガ反転 |
B + A |
2Dパターンを次へ | モザイク |
左手 B を保持したまま右手の 1 / 2 / + を押すと、それぞれ 暗転 / 白転 / ストロボ(ホールド)になります。
片手の 1 / 2 を保持して反対の手で押すクロス操作:
| 修飾 → 操作 | ↑ |
→ |
↓ |
← |
A |
|---|---|---|---|---|---|
左 1 → 右手 |
立体格子 | 矩形ゲート | 平行ブレード | 斜材トラス | フルリミックス |
左 2 → 右手 |
Chrome | Grid | Ghost | Wire | 次の配色バンク |
右 1 → 左手 |
格子+粒子 | トンネル | ドーム | 粒子マトリクス | HUD切替 |
右 2 → 左手 |
Horizon反射 | Stepped反射 | Oil反射 | Mono反射 | 2Dパターンを次へ |
モーション操作として、B 保持中は手首の左右傾きでカメラロール(最大±38°)と視線オフセットがかかります。片手シェイクで2.5倍打撃、両手同時シェイク(または両手 B 保持シェイク)でフルリミックス+3倍打撃です。
Wiiリモコンに繋ぐと自動認識されます。左スティックは20%デッドゾーン付きの連続操舵+ブーストです。
| 入力 | 動作 |
|---|---|
左スティック |
連続操舵+ブースト(倒し始めに打撃) |
A / B |
チャージ&ドロップ / 2Dグラフィックス表示(押すたび次パターン) |
X / Y |
配色シード更新 / 造形+軌道更新 |
ZL / ZR(単押し) |
テーマ巡回 / 配色バンク巡回(ZR は離した時に確定) |
+ / - |
速度ギア増減 |
十字キー |
Spaceプリセット選択(各方向で 0/4、1/5、2/6、3/7 を交互切替) |
L + X / L + Y |
配置巡回 / ワールド巡回 |
R + X / R + Y |
強打撃+カメラカット / 軌道のみ巡回 |
L + R + Y |
フルリミックス |
L + 十字キー(↑→↓) |
マテリアルプリセット 0〜2 |
L + R + 十字キー(↑→↓) |
マテリアルプリセット 4〜6 |
R + 十字キー |
2Dパターン 0〜3 を選択 |
R保持 → ZL + 十字キー |
2Dパターン 4〜7 を選択 |
ZR + A / B / X / Y |
Master FX:暗転 / 白転 / フリーズ / 左右ミラー(ホールド) |
ZR + ↑ / → / ↓ / ← |
Master FX:万華鏡 / ネガ反転 / モザイク / ストロボ(ホールド) |
L + + |
HUD表示切替 |
+ と - / HOME |
全設定リセット / 終了 |
Wii背面のUSBポートにクラスコンプライアントUSB-MIDI機器を直接接続できます。ケーブル0の Note On / Off のみを扱い、CC・フェーダー・クロック・SysExは無視します。
Akai APC mini(初代 / MK2 自動判別)接続時は選択状態に応じたパッドLEDが点灯します。MK2は標準のクリップ配列で使ってください。
| 段 | Note | 動作 |
|---|---|---|
| 7(左5列) | 56〜60 |
ワールド WM0〜WM4 を直接選択 |
| 7(右3列) | 61 / 62 / 63 |
テーマ / スキン / 反射 をそれぞれ巡回 |
| 6 | 48〜55 |
Spaceプリセット 0〜7 |
| 5 | 40〜47 |
Sculptureプリセット 0〜7 |
| 4 | 32〜35 / 36〜39 |
軌道 0〜3 / 速度ギア 0〜3 |
| 2〜3 | 16〜31 |
配色16バンク(選択中バンクの再押下でシードを微変更) |
| 1 | 8〜15 |
2Dパターン 0〜7 をホールド表示 |
| 0(左4列) | 0 / 1 / 2 / 3 |
左 / 下 / 上 / 右 の強打撃+ホールドブースト |
| 0(右4列) | 4 / 5 / 6 / 7 |
チャージ&ドロップ / 強打撃+カメラカット / フルリミックス / HUD切替 |
MK2の外周ボタン(Note 100〜107、112〜119)は内部で論理Note 64〜71、82〜89 に変換されます。
| 論理Note | 動作 |
|---|---|
64〜66(67は未使用) |
マテリアルプリセット 0〜2 |
68〜71 |
速度ギア 0〜3 |
72〜75 / 76〜79 |
軌道 0〜3 / Spaceプリセット 0〜3(汎用コントローラ用) |
80 / 81 |
フルリミックス / HUD切替(汎用コントローラ用) |
82〜89(右端Sceneボタン) |
Master FX ホールド:82 暗転 / 83 白転 / 84 フリーズ / 85 左右ミラー / 86 万華鏡 / 87 ネガ反転 / 88 モザイク / 89 ストロボ |
| プリセット | 0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|---|---|---|---|---|---|---|---|---|
| Material(テーマ / スキン / 反射) | Dark / Chrome / Horizon | White / Chrome / Horizon | Fog / Chrome / Horizon | — | Dark / Wire / Oil | White / Ghost / Mono | Fog / Grid / Horizon | — |
| Space(背景 / 梁) | 0 / 0 |
1 / 1 |
2 / 0 |
0 / 1 |
0 / 3 |
3 / 2 |
1 / 2 |
2 / 3 |
| Sculpture(shape / layout) | 0 / 0 |
1 / 1 |
2 / 2 |
3 / 3 |
4 / 0 |
0 / 2 |
2 / 1 |
4 / 3 |
./scripts/build.ps1 を実行すると、Wii向けビルドの前に tests/*_test.c のホスト側テストが走ります。
Dolphin での自動描画チェックは check-render.ps1 を使います(専用プロファイル .dolphin-check で起動し、artifacts/ にキャプチャ画像を出力します)。
./scripts/check-render.ps1 # 基本描画チェック
./scripts/check-render.ps1 -Worlds # 5ワールド × 3テーマの巡回検査
./scripts/check-render.ps1 -Graphics # 2Dオーバーレイ検査
./scripts/check-render.ps1 -Sculptures # 14造形 × 4スキンの検査
./scripts/check-render.ps1 -Master # Master FX・フリーズ挙動の検査
./scripts/check-render.ps1 -Gpu # Display Listキャッシュと直接描画の比較このほか -Stencil、-Checker、-Trail、-Lattice -Beams 0..3 オプションもあります。
フレーム処理時間を計測したい場合は -Profile を付けてビルドします。
./scripts/build.ps1 -Profileルート直下に計測版の geezy-profile.dol が出力されます(通常の apps/geezy/boot.dol には計測処理は入りません)。起動するとHUDに60フレームごとの平均更新頻度(HZ)、区間別CPU時間(IN / 3D / FX / UI)、GPU完了待ち(WAIT)、最大処理時間(WORK MAX)、EFBコピー回数(EFB)が追加表示されます。