Categories: 工作・開発

PS1『メタルギアソリッド』を、個人がESP32系マイコンボードへ移植

1998年に初代プレイステーションで発売された『メタルギアソリッド』を、約15ドル(約2400円)のマイコンボードで動かす移植版が公開された。作ったのはウルグアイの開発者、David Montero Crespo氏だ。子どものころから好きだったこのゲームが、手にした小さなボードで動くのかと考えたのが始まりだという。

使ったのはSeeed Studioの「XIAO ESP32S3 Sense」で、基板の大きさは21×17.8mmだ。プレイステーションをまねるエミュレーターの上で動かすのではなく、ゲームのプログラム自体をこのマイコン向けに作り直したもので、同氏は「ネイティブな移植」と説明する。土台にしたのは、FoxdieTeamというグループがゲームの機械語から読み解いて復元したC言語のソースコードだ。これをマイコン向けに直接コンパイルし、プレイステーションの描画チップや3D計算用の専用回路、CDドライブが受け持っていた処理は、すべてソフトウェアで置き換えた。

ゲームのデータはボードのメモリーに収まらない。そこで約72MBのステージデータをSense版の拡張基板にあるmicroSDカードに置き、場面ごとに必要な分だけ読み込む。

移植の途中では、元の機械では表に出なかった違いが不具合となって現れた。スネークが数歩進むたびに壁にはじき返され、先へ進めない時期があった。移植側の計算用の関数が元の開発キットと違う処理をしていたため、ゲーム内の距離がすべて本来の64分の1になっていた。敵に見つかると画面が白く覆われる不具合もあった。原因の一つは、プレイステーションの描画チップが一定より大きい多角形を描かないことにゲームが頼っていた点で、同氏はこの決まりをソフトウェアで再現した。

携帯機も自作した。320×240ドットの液晶に、ドローンの送信機用のスティックと8個のボタンを組み合わせた。動作は場面によって1秒あたり8〜15コマで、目標の30コマには届いていない。無線通信の画面、ムービー、音声を含む音全般、セーブはまだ動かず、処理の復元が済んでいないステージも残る。

ソースコードはGitHubで公開しており、携帯機の配線や部品の一覧も載せている。ライセンスの表示はない。リポジトリにはゲーム由来のデータを含めていないため、遊ぶには自分で持っているディスクのイメージからデータを取り出す必要がある。

関連情報

FabScene編集部

FabScene編集部