このプロジェクトは、単純な疑問から始まりました。AIモデルが、ジョーダン・メイナーが公開したApple IIのソースコード——1989年のブローダーバンド製ゲーム(後にユービソフトが取得)の6502アセンブリ——を输入して、動作するC#ポートを作れるのか? Priyan R.がそのソースを提供し、自らはコードを書かず、結果をプレイして確認しました。

Jordan Mechner's Prince of Persia Apple II source code repository banner on GitHub
Jordan Mechner's published Apple II source code for Prince of Persia, the 6502 assembly the experiment ported to C#.github.com

The opening paragraph explains that the experiment started from Jordan Mechner's published Apple II source code — 6502 assembly for a 1989 Broderbund game later acquired by Ubisoft — with Priyan R. supplying that source as the only input.

第1ラウンド(Claude Opus 4.6、2026年2月)では、C#コンソールゲーム、レベルエディタ、Raylibグラフィックバージョンが作られました。ルーム、タイル、ゲート、ガードの位置など、元のレベルファイルを正しくパースしましたが、エンジンが間違っていた。王子は1マスずつ、マスの間をジャンプして動いていたが、実際のゲームでは手描きのアニメーションフレームで、各フレームごとにサブマスの移動を行う。

第2ラウンド(OpenAI Codex、2026年3月)では、表面的な現実的な修正が行われました。ピクセルフィルタリングの鋭化、スプライト背景の透明化、開けられるゲート、柱の頂上が壁でないようになるなど。王子は依然として間違った位置に着き、詰まった。基礎を修正せずに磨きをかけた。

第3ラウンド(Claude Opus 5、2026年9月)ではルールが変わった。2つのClaude Code SkillsがDOSBoxを制御し——実際のゲームを起動し、キーを送信し、スクリーンショットを撮る——そしてモデルはそれと比較した。Opus 5はアーキテクチャの問題を診断し、元のフレームシーケンス設計に基づいてエンジンを再構築し、Apple IIソースで認識されたバイトパターンを検索してPRINCE.EXEからアニメーションテーブルを抽出した。信頼する前に各テーブルを2つ目の既知の値と照合して確認した。著作権のあるゲームデータはリポジトリーに入らなかった。C#プログラムはユーザー自身のDOSインストールからリアルタイムで読み込む。

第4ラウンド(Claude Opus 5.5、2026年9月)では、1つのプロンプトが要求された。「キャラクターは動いて走ってジャンプするが、ゲートの位置とブロックがすべて異なる。新しいモデルだ。改善できる何でも見てみろ。」 Opus 5.5は、Dávid Nagyとprinced.orgコミュニティがopen-sourceのSDLPoPプロジェクトで文書化した、元のゲームのルーム描画ルーティンを見出し、将其をポートした。結果のDosRoomDrawer.csは、ファイルヘッダーが記述するように、SDLPoPのsrc/seg008.cのC#ポートである。

SDLPoPの文書は、以前のセッションが推測していたことを説明した。レンガのパターンは、ルーム、行、列からシードされ、どの訪問でもすべての壁が同一に見える。レベル1のゲートはレベルデータで開いており、王子が降りる際の隠しボタン押しが、叩き音を説明する。

Opus 5.5は、PRINCE.EXEがMicrosoft EXEPACKで圧縮されていることも発見した。以前のテーブルは、パッカーが放置した連続部分にあったためだけに動作していた。它是アンパッカーを書き、タイル描画テーブルを直接読み出した。DOSBox内の実際のゲームとピクセルごとの比較により、レベル1の最初の画面の差異が8,429から2に削減された( torchの炎が異なる瞬間を捉えたもの)。2つ目のルームとレベル3の出口ドアも一致した。

完璧ではなかった。王子のスプライトは一方の方向には正しく描かれたが、逆の方向には壁に数ピクセル沈みまった。Opus 5.5はすべてのテストティックで移動を検証し、スプライトの問題を隔離し、その部分だけを元に戻した——著者而言の進歩のしるしとされる自己チェック。

プロジェクトリポジトリ(github.com/priyanr/PrinceOfPersia_C-Sharp_Port_By_AI)は、すべてのセッションをSESSION_HISTORY.mdに保存し、DosRoomDrawer.csがSDLPoPのGPL通知を carriesため、GPL-3.0-or-laterでライセンスされている。プレイヤー自身の合法的に取得したDOS版『ペルシャの王子』を必要とする。ゲームデータは配布されない。

The PrinceOfPersia_C-Sharp_Port_By_AI repository banner on GitHub, preserving every AI porting session
The experiment's own repository, which preserves every session in SESSION_HISTORY.md under a GPL-3.0-or-later license.github.com

Paragraph 9 describes the project repository at github.com/priyanr/PrinceOfPersia_C-Sharp_Port_By_AI, noting it preserves every session in SESSION_HISTORY.md and is licensed under GPL-3.0-or-later because DosRoomDrawer.cs carries SDLPoP's GPL notice.

残る不Uncertainty。Opus 5.5自身は、1つのプロンプトでDOSバイナリから描画コードを再構築できなかったと語った——它是SDLPoPの公開リバースエンジニアリングに依存した。ガード、剣闘、宮殿レベル、正確な着地位置は依然として不完全である。実験は、現実と比較する手段が与えられたときの連続モデルの能力を示しているが、これは1人の開発者の単一プロジェクトであり、コントロールされたベンチマークではない。

この実験は、数十年にわたるコミュニティの仕事に立っている。ジョーダン・メイナーが公開したApple IIソース、Dávid NagyのSDLPoP再構築、そしてFabien Sanglardによる元のコードレビュー。