「ドルアーガの塔」の各フロアのマップは、乱数のシード値を1つ与えているだけで、あとはプログラムで自動的に迷路を作っている
…というのは有名な話ですが、実は MSX版の「ドルアーガの塔」は乱数など使わず、マップデータが全てそのままROMに載っています。
ファミコン版のマップをそのままコピーしているらしいのですが、なぜか 49階 に 50階のデータがコピーされており、これは明らかに開発時のミスのような気がします。
というわけで、49階をファミコンと同じ形状にする改造です。
「ドルアーガの塔」のROMイメージを吸い出して、先頭からのオフセットが +6C4DH 以降を赤字のように書き換えます。
OFFSET 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ---------------------------------------------------------- +6C40H 09 09 09 0A 09 0A 09 09 0A 09 09 09 0B 00 01 02 +6C50H 01 02 01 02 01 01 01 01 01 01 01 01 01 03 04 10 +6C60H 16 11 0E 11 13 0D 15 11 11 14 12 14 15 11 06 05 +6C70H 0D 0D 1A 18 0C 15 11 0F 13 1A 0E 14 16 0E 13 07 +6C80H 04 11 11 0F 0F 0F 0E 18 12 10 1A 18 1A 11 13 15 +6C90H 06 04 0E 13 0D 15 14 16 18 15 11 13 16 0F 13 15 +6CA0H 0E 06 04 0E 14 15 0E 0E 14 16 18 0C 12 14 0D 19 +6CB0H 17 16 06 04 0E 0E 13 16 13 16 11 0F 0F 11 13 12 +6CC0H 0F 11 11 06 08 0A 0A 09 09 09 09 0A 09 09 0A 09 +6CD0H 09 09 0A 0A 0B 00 01 01 01 01 01 01 02 01 02 01
これで 49F がファミコン版と同じ形状になります。エミュレーターや FLASH ROM に焼くなどしてお楽しみください。
00 | 01 | 02 | 03 | |
04 | 05 | 06 | 07 | |
08 | 09 | 0A | 0B | |
0C | 0D | 0E | 0F | |
10 | 11 | 12 | 13 | |
14 | 15 | 16 | 17 | |
18 | 19 | 1A |
OFFSET | フロア |
---|---|
+52CDH | FLOOR 1 |
+5355H | FLOOR 2 |
+53DDH | FLOOR 3 |
+5465H | FLOOR 4 |
+54EDH | FLOOR 5 |
: | : |
+6C4DH | FLOOR 49 |
+6CD5H | FLOOR 50 |
: | : |
+7115H | FLOOR 58 |
+719DH | FLOOR 59 |
+7225H | FLOOR 60 |
00 | 02 | 01 | 01 | 01 | 01 | 01 | 02 | 01 | 02 | 02 | 01 | 01 | 01 | 01 | 02 | 03 | |
04 | 0F | 14 | 0D | 0D | 15 | 11 | 0F | 11 | 0F | 0F | 10 | 15 | 10 | 15 | 0F | 06 | |
04 | 11 | 0E | 10 | 15 | 18 | 16 | 10 | 1A | 14 | 19 | 15 | 13 | 19 | 1A | 10 | 07 | |
05 | 1A | 18 | 0D | 16 | 0F | 14 | 15 | 0E | 0F | 0F | 0E | 14 | 16 | 0E | 10 | 07 | |
04 | 0E | 13 | 0D | 0D | 19 | 16 | 18 | 16 | 14 | 15 | 0E | 0E | 14 | 16 | 11 | 06 | |
04 | 0F | 10 | 19 | 0D | 17 | 12 | 13 | 0D | 16 | 0E | 13 | 16 | 18 | 12 | 13 | 07 | |
05 | 12 | 14 | 16 | 11 | 10 | 15 | 11 | 10 | 0D | 16 | 10 | 0D | 0C | 12 | 10 | 07 | |
08 | 09 | 0A | 09 | 0A | 09 | 0A | 0A | 09 | 09 | 09 | 09 | 09 | 0A | 09 | 09 | 0B |