実際にDOOM II上でDOOM IIを起動する様子は以下のムービーで見ることができます。
You can run Doom inside (DOS) Doom, for real. - YouTube
この「DOOM II上でDOOM IIを起動」は呼び出し関数のバグで可能になっています。以下の呼び出し関数は、DOOM IIでマップファイルからあらかじめ定められた一意のIDに紐付いたグラフィックを呼び出すものですが、特定のIDは特殊な処理が行われるそうで、ここに任意のコードを実行できる脆弱(ぜいじゃく)性があるとのこと。

そこで、この脆弱性を利用してコードを実行し、DOOM II内でDOOM IIを起動するというのがkgsws氏の試み。

まずDOOM IIを起動。

続いて起動したDOOM II上で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に切り替えてプレイすることが可能。
![]()
四方をDOOM IIのプレイ画面に囲まれた部屋も用意されています。
![]()
また、DOOMと同じゲームエンジンを使っているゲームであれば、他のゲームも実行可能。以下は「Heretic」をプレイしているところ。
![]()
また、DOOM IIのグラフィックを利用したスネークゲームや……
![]()
アステロイドも遊ぶことができます。
![]()
DOOM上でDOOMを遊ぶためのツール「DOOM-in-DOOM」はkgsws氏によって、GitHubで公開されています。
GitHub - kgsws/doom-in-doom: Doom 2 code execution. With a Doom port.
https://github.com/kgsws/doom-in-doom