もっと詳しく

<p>ついにDOOMの中でDOOMをプレイすることに成功</p><p>ついにDOOMの中でDOOMをプレイすることに成功</p><p>1994年にMS-DOS用ソフトとして発売されたファーストパーソン・シューティング(FPS)ゲームの「DOOM II: Hell on Earth」は、第1作のDOOMと同じゲームエンジンを使いながら、複雑で多様なマップと大量の敵や武器が追加され、初版の60万本がわずか1カ月で売り切れるほどの大ヒットを記録しました。DOOMはソースコードに環境依存となる部分が非常に少ないため、Linuxからポルシェ911、果てはTwitterまで、さまざまなプラットフォームに有志の手によって移植されていることで知られていますが、リバースエンジニアのkgsws氏がとうとうDOOM II内にDOOM IIを移植することに成功したと発表しました。</p><p>この「DOOM II上でDOOM IIを起動」は呼び出し関数のバグで可能になっています。以下の呼び出し関数は、DOOM IIでマップファイルからあらかじめ定められた一意のIDに紐付いたグラフィックを呼び出すものですが、特定のIDは特殊な処理が行われるそうで、ここに任意のコードを実行できる脆弱(ぜいじゃく)性があるとのこと。 そこで、この脆弱性を利用してコードを実行し、DOOM II内でDOOM IIを起動するというのがkgsws氏の試み。 まずDOOM IIを起動。 DOOM II上でDOOM IIをプレイするために、kgsws氏はマップを作成しました。作成したマップの指定した壁に、DOOM IIの画面が表示されるというわけです。 単に映像を流しているだけではなく、F12キーを押すとDOOM II内で起動したDOOM IIの操作に切り替えられるとのこと。 さらにkgsws氏は、DOOM IIでDOOM IIを快適にプレイするために、より複雑なマップを作成しています。 DOOM IIの起動プログラムの設定ができる部屋 DOOM IIが映し出されています。画面上部には「DOOM-IN-DOOM BY KGSWS」と表示されています。 ゲームプレイのディスプレイを最大化することもできるので、DOOM IIをプレイしている途中で画面をDOOM IIに切り替えてプレイすることが可能。</p>