ベセスダ・ソフトワークスの人気RPG「The Elder Scrolls」シリーズの3作目となる「The Elder Scrolls III:Morrowind(以下Morrowind)」は、2002年にWindows版とXbox版がリリースされました。このうち、Xbox版の「Morrowind」でユーザーの知らないうちにXboxを再起動する処理が行われていたことを、当時の開発者が暴露。この仕様が本当なのかどうかを、ゲーム関連の話題を扱うYouTubeチャンネルのModern Vintage Gamerが検証しています。

Did Morrowind on the Original XBOX really reboot itself to free memory ? | MVG - YouTube

「Morrowind」はファンタジー世界を舞台にしたオープンワールド型のアクションRPGで、自分で作成したキャラクターで世界中を冒険しながら、自分の道徳心に基づいて行動を選択していくという自由度の高さで人気を博しました。しかし、当時としてはそれなりのスペックを要求した「Morrowind」を、CPU・GPU共用で64MBのメモリしか搭載していない初代Xboxでプレイする場合、メモリ容量が足りなくなる場面もあったとのこと。



当時「Morrowind」の開発に携わっていたベセスダ・ソフトワークスのトッド・ハワード氏はXboxチームのPodcastにゲスト出演した際、このメモリ不足問題について言及。「『Morrowind』でメモリが不足した時、ユーザーには分からないようにXboxをこっそり再起動して、メモリを解放するという仕組みを採用しています。『Morrowind』でロードが長くなるのは、Xboxを再起動しているからです」と語り、「Morrowind」のメモリ不足問題を力技で解決していたことを明らかにしました。



約20年超しに明かされた事実に、Xboxチームのトップであるフィル・スペンサー氏(画像右上)ら聞き手は大爆笑。スペンサー氏は「それはメモリ管理と呼ぶテクニックですね」と答えました。



この「メモリ管理」が本当に行われているのかを検証するため、Modern Vintage Gamerは初代Xboxの開発キットを用意。



さらにディスアセンブラのIDA Proで、リバースエンジニアリングによるプログラムの自動解析も行いました。



Modern Vintage Gamerはまず、Xbox開発キットで「Morrowind」を起動し、イベントログを監視しました。



プレイ中にセーブデータをロードすると……



「morrowind.xbe」という実行可能ファイルが作成され、書き込みと読み取りが行われていることが判明。



Modern Vintage Gamerは、初代Xbox本体を再起動するためには、Xbox APIの一部である「XLaunchNewImage」が使われていると考えました。XLaunchNewImageは、Xbox本体を再起動してXBEファイルをDVDドライブから新たに読み込むためのコマンドです。



そこで、morrowind.xbeをIDA Proによるリバースエンジニアリングで逆アセンブルしたところ、実際にXLaunchNewImageのコマンドが発見されました。



さらなる分析の結果、「Morrowind」にXLaunchNewImageを有効化するフラグを含んだINIファイルの存在も明らかになったとのこと。



Modern Vintage Gamerの検証の結果、ハワード氏が明らかにした「メモリ管理」は本当に実装されていたことが判明しました。Modern Vintage Gamerは「メモリ管理は、64MBしかなかった初代Xboxのメモリ制限を回避するためのとてもシンプルなトリックであり、実際に効果的な方法でした」と評価しています。