名作RPG「The Elder Scrolls III:Morrowind」がロード中に初代Xboxをこっそり再起動していたと判明
ベセスダ・ソフトワークスの人気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のメモリ制限を回避するためのとてもシンプルなトリックであり、実際に効果的な方法でした」と評価しています。
・関連記事
Google Chrome 90安定版リリース、AV1エンコーダー搭載で細い回線でのビデオ会議の品質が向上 - GIGAZINE
Xbox公式がベセスダのタイトルは将来的に「Xbox Game Pass独占タイトルになる」と言及 - GIGAZINE
Microsoftが8000億円でベセスダを買収することをEUが承認 - GIGAZINE
MicrosoftがDOOMやFalloutのベセスダ・ソフトワークスを買収、今後Xbox以外でのリリースはケースバイケースに - GIGAZINE
人気FPS「Doom Eternal」がチート対策プログラムを導入して炎上、その理由とは? - GIGAZINE
・関連コンテンツ