仕事ばかりではありません。私だって遊びます。
とはいえ、私にとっての息抜きは、もちろんゲームコレクションをソフトウェアプロジェクトにすることです。Steamのゲーム、エミュレーター、PC移植、デコンパイル、ファンゲーム、Modパックを、AIエージェントが1つのAnsibleリポジトリでインストールし、設定し、ドキュメントにしています。全部コンテナの中で動くので、Omarchyのデスクトップは依存関係を1つも目にしません。その上に自作のランチャーを載せて、全体をゲーム機のように使っています。
Fun to Drive:新型テスラ・ロードスターで80年代風レースゲーム
AIエージェントとバイブコーディングで作った小さなゲームです。発表されたばかりのテスラ・ロードスターが、コールドエア・スラスターとジャンプ付きで、80年代のおもちゃのダッシュボードの画面に映るアウトラン風の道を走ります。Playmates Fun-to-DriveやTectoyのTurbo Video Driverのようなおもちゃです。
- 2分、6分、10分のランを選び、時間切れまでにできるだけ多くの車を追い抜きます。各レースは、あなたの時計の季節と時間帯から始まります。
- コールドエアのチャージを3つ集めるとスラスターを噴射でき、Jump Kickで車を飛び越えられます。ただし車の上に着地しなければ、の話です。
- 机の上のおもちゃも反応します。ハンドルが回り、シフトレバーが動き、ぶつかるとダッシュボード全体が揺れます。
- 晴れ、雨、雪。桜から冬の裸木まで季節ごとに変わる沿道と、東京のネオンからパリまでの背景。まれなイベントもあります。車を巻き上げるハリケーン、夜のUFOによる誘拐、そして時速88マイルを保てばタイムマシンです。
- キーボード、振動付きゲームパッド、タッチで遊べます。RustとBevyで書かれ、WebAssemblyにコンパイルされてブラウザで動きます。
古いレースゲームを、もう一度遊べるように
好きなレースゲームのいくつかはアバンダンウェアです。どのストアでも売っておらず、現代のPCでは半日がかりの小細工なしには動きません。そこで、コーディングエージェントと自作のリバースエンジニアリングツールREAを使い、1本ずつランチャーを書きました。オリジナルのゲームには手を付けません。ランチャーはグラフィックス、コントローラー、画面、レジストリなど、周りで古くなった部分を直し、そのうえで現代のPCにできることを加えます。
各ゲームはご自身のコピーが必要です。ゲームのファイルを同梱するランチャーはありません。
1995Screamerトリロジー
以前 MS-DOSのゲーム3本。GOG版Screamer 2にはDOSでは動かないWindows用のGlideスタブが入っていて、エミュレーターを最高速で回すとアナログ入力がまったく効きません。
- 本物の3dfx Glide。エミュレートしたVoodooを2倍の解像度で描画
- FSRによるアップスケール、Hor+ワイド画面、描画距離の拡大
- アナログ操作とCD音源
- 100fpsの実験的なフレーム生成
1998Colin McRae Rally
以前 Windows 95向けに作られたゲーム。私の環境ではレジストリキー、XP互換モード、800x600に固定した画面、ゲームパッド用のキーボード変換が必要で、それでも800x600の4:3でしか動きませんでした。
- 4K、Hor+ワイド画面、60fps。物理演算はオリジナルの25Hzのまま
- HUD、メニュー、空、看板、車をAIでHDに描き直したアート
- 最大3倍の描画距離
- トリガーをペダルとして使用、振動にも対応
2003Colin McRae Rally 3
以前 色の抜けた画面と、ディスクのコピープロテクトに縛られた公式1.1の実行ファイル。
- SilentPatchで任意のアスペクト比のワイド画面、4KのHDインターフェース
- 1.1の実行ファイルを再販版のDRMなし実行ファイルに変換
- 最大16倍の異方性フィルタリングと調整可能な視野角
- Linuxではオプションで色とガンマを補正
2004Colin McRae Rally 04
以前 16:9にしても見える景色が広がらず、グラフィック設定は2048x1536までで落ち、Alt+F4も効きません。
- dgVoodoo経由で正しいジオメトリの16:9
- 横向きのモニターを自動で選び、ウィンドウも正しく閉じられる
- アナログトリガーと設定済みのコントローラー
- fps上限とvsyncはオプション
2004Colin McRae Rally 2005
以前 Wineでは起動直後にクラッシュし、GOGのインストーラーもそこで止まります。DVD版はStarForceを使っているため対象外です。
- GOGのインストーラーファイルから直接インストール
- ゲーム自身のワイド表示による16:9
- LinuxではDXVKで、約20fpsだったステージが1,000fpsを超える
- セーブデータは専用フォルダーに保存
2006OutRun 2006: Coast 2 Coast
以前 PC版はコミュニティの修正とディスクDRMの除去が必要で、「Rush a Difficulty」の冒頭2秒も欠けています。
- OutRun2006Tweaksを固定のテスト済みバージョンで自動インストール
- 4K、16倍の異方性フィルタリング、描画距離の拡大
- 欠けのない「Rush a Difficulty」
- オプションのHDテクスチャ、振動、トリガーのフル対応
2007Colin McRae: DiRT
以前 スレッド数の多いCPUではどのレースを読み込んでもクラッシュし、コミュニティの修正を当てるとグラフィック設定がすべてリセットされます。
- 多スレッドでのクラッシュを独自に修正し、設定はそのまま
- Large Address Awareで2GBを超えるメモリを使用可能に
- 9GBを二重にコピーせずハードリンクで済ませる
- 4KのUltraプリセットとネイティブXInput
2007Sega Rally Revo
以前 パッチ4.060で入った2つのタイミングのバグによる常時のマイクロスタッター、GPUが2枚あるPCでの黒画面、そしてWineでは動かない設定ツール。
- クリーンルームで書いたスタッター修正。99.9%のフレームでレース時計が実時間との差1ms未満に収まる
- 4K、Ultra画質、21:9と32:9
- 60fpsまたは120fpsの上限
- ネイティブXInputと振動
2015DiRT Rally
以前 Feralによる2017年のLinux版は、Ryzen 5000以降では起動直後にクラッシュし、今のLinuxにはもうないライブラリを必要とし、2022年に販売終了しました。
- Rustで書いた小さなライブラリが、ゲームに手を加えずクラッシュを修正
- 古いライブラリを同梱し、ゲームにだけ見せる
- Feralの起動前ウィンドウを飛ばし、4Kで起動
- 8BitDoなどのコントローラーがゲーム自身の一覧に表示される
どれも実験的です。Linux上で、RTX 5090とXbox系コントローラーを使って1本ずつ通しで確認しました。ネイティブのWindowsではまだ1本も試していないので、試した方は実行ファイルのSHA-256とログを添えてIssueを立ててください。
そして、レシピはSDKになった
どのランチャーも前のものをコピーして始まり、コピーごとに独自のバグを抱えて離れていきました。そこで、いつも人に勧めている順番を守りました。先にアプリ、フレームワークは後です。rea-launcher-sdkにはランチャーに共通する部分が入っていて、コーディングエージェントが扱う前提で書かれています。
私がたどった順番
- 同じ種類のプロジェクトをいくつも作り、それぞれが自分の実際の問題を解く。
- それらを並べて比べる。
- すべてが同じ土台に乗るまでリファクタリングする。
- そこで初めて、共通部分をフレームワークとして切り出す。
- 9
- このSDKで作ったランチャー、対応ゲームは11本
- 1,223
- SDKとランチャー全体のテスト、すべて成功
- 95%
- SDK自身のコードの行カバレッジ、テストは310件
- ~4
- SDKから作ったランチャー1本あたりの時間。それ以前は8〜18時間
2026年11月2日のブログ記事で数えたものです。
自分のゲームのランチャーを作る
SDKをクローンし、エージェントにREAを追加して、インストール済みのゲームを指定します。エージェントがコミュニティの修正を調べ、リバースエンジニアリングをして、コードを書きます。4つのチェックポイントで止まってあなたの判断を待ち、承認なしには何も公開しません。Claude Code、Codex、opencode、Cursorで動きます。
cd ~/Projectsgit clone https://github.com/akitaonrails/rea-launcher-sdk# REA, the reverse engineering MCPnpx rea-agents setup# Claude Code onlyrea-launcher-sdk/scripts/install-skills~/Projects/rea-launcher-sdkのSDKを使って、Need for Speed: Porsche Unleashed(PC、2000年)用の新しいreaランチャーを作ってください。AGENTS.md、docs/STANDARDS.md、docs/playbooks/new-launcher.mdを読み、プレイブックをフェーズごとに進めてください。ゲームは/mnt/games/NFSPUにインストールされています(読み取り専用。リポジトリには絶対にコピーしないこと)。まずコミュニティの修正を調べ、コードを書く前に見つけたものを見せてください。私に確認せずにpushや公開はしないでください。
SDKのREADMEをもとにしたプロンプトの例です。
AIでレトロゲーム

ホストはきれいなまま
エミュレーターやWindowsゲームは、32ビットライブラリ、Wineのビルド、AURパッケージ、互いにぶつかり合うランタイムのバージョンを引き連れてきます。そのどれもデスクトップには触れません。Steamも含めてすべてgamingという名前のArch Linuxのdistrobox 1つの中にあり、ホストにはデスクトップに必要なものしかありません。

- Steamはボックスの中で動き、ライブラリとProtonのプレフィックスは専用ディスクに置いています
- NVIDIAドライバーはパススルーし、32ビットライブラリの例外的な問題1つはホストではなくランチャー側で直しています
- デスクトップエントリーはボックスが生成し、ホストの小さなスクリプトが検証してインストールし、消えたアプリのエントリーを削除します
- セーブデータはNASにミラーし、必要なときに復元するので、ボックスを消しても何も失いません
冪等だから、壊せる
エミュレーター、設定、パッチ、Modセットはどれも1つのAnsibleロールです。playbookを2回実行しても何も変わらないので、気軽に実験したり、エミュレーター1つの設定だけ戻したり、ボックス全体を一から作り直して同じマシンを取り戻したりできます。
ansible-playbook site.yml # the whole box, from scratchansible-playbook site.yml # again: nothing changesansible-playbook reset-configs.yml --tags esde # reset one frontendansible-playbook backup.yml && ansible-playbook restore.ymlansible-playbook site.yml --tags verify # post-setup checks- 96
- docs/にあるメモ(ゲーム、移植、修正ごとに1つ)
- 497
- 2026年4月11日以降のコミット
調べるのも書き残すのもAI
移植版、リコンパイル、手ごわいWindowsゲームのそれぞれについて、エージェントが情報源を調べ、Ansibleロールを書き、入手先、設定方法、うまくいかなかったことをメモに残しました。SteamのゲームにはProton用の互換性データベースがあり、ローカルでの修正にはそれぞれ根拠となる情報源が付いています。
使い方
いちばん簡単なのはエージェントに任せることです。リポジトリをクローンし、その中でClaude Codeを開いて、欲しいコンテナとゲームを伝えてください。プレイブックとノートはまさにそのために書かれています。
git clone https://github.com/akitaonrails/distrobox-gamingcd distrobox-gamingclaudeES-DE、Dolphin、PCSX2入りのgamingコンテナをセットアップして。ROMとBIOSは/path/to/your/gamesにある。
リポジトリにはゲーム、ROM、BIOS、その他のバイナリは含まれていません。自分で用意して、その場所をエージェントに伝えてください。
ボックスの中身
エミュレーター
フロントエンドはES-DE。単体のshadPS4、Dolphin、PCSX2、DuckStation、Flycast、xemu、RPCS3、PPSSPP、Azahar、Eden、Cemu、Supermodel、そしてコア付きのRetroArch。
PC移植、デコンプ、リコンプ
Ship of Harkinian、2Ship2Harkinian、Starship、SpaghettiKart、Render96ex、Unleashed Recompiledなどのネイティブビルド。
Windowsゲーム
Metal Gear Master Collectionなどのゲームを、Wineで管理してインストール・修正しています。古いレースゲームは、上で紹介した自作ランチャー経由で入るようになりました。
Modも再現可能に
ゲームごとのNexusModsのModセット、PS3とSwitch用のDLCとパッチのインストーラー、ゲームごとのRPCS3設定。
Omarchy用に作った自作ランチャー
omarchy-games-menuは、OmarchyとHyprland向けのSteam風の全画面ランチャーです。gamingリポジトリが書き出すデスクトップエントリーを読むので、新しいゲームは勝手に表示され、すべてがキー1つで呼び出せます。

- RustのCLIであるogmがスキャン、カタログ、保存を担当し、QuickShellのオーバーレイがグリッドを描きます
- カバーアートとメタデータはSteamGridDBから取得し、移植版とリコンプの新しいリリースはGitHubでチェックします
- プレイ回数、名前、追加日、発売日で並べ替え。どこで文字を打っても絞り込めます
- Hyprlandのモニター設定に合わせて拡大縮小し、Super+Gのようなキー1つで開き、ゲームは専用のワークスペースに全画面で起動します
yay -S omarchy-games-menu-binogm scan && ogm refreshgames-menu # or bind it: bind = SUPER, G, exec, games-menu