ルームの概念

ここでは、このサイトの解説でもたびたび出てくる「ルーム」の概念について解説します。

ルーム

スーパーマリオブラザーズでは、コースが「ルーム」と呼ばれる単位で構成されています。

例えば1-1でいうと、地上部分が1つのルームになります。1-1には地下金庫がありますが、これはまた別のルームになります。4-2であれば、前振りの土管、主要部分(地下)、豆の木ワープゾーン、地下金庫、ゴールの地上部分と5つのルームが使われています。

1-3と5-3のように、異なるエリアで同じ地形というのがありますが、これは1つのルームを複数のエリアで共有しているケースです。(当時の少ない容量で多くのエリアを実現するには欠かせない技術でした)

1-1の地上部分。これで1つのルーム(ルームNo.25) room25
地下金庫はまた別のルーム(ルームNo.42) ちなみに5つの地下金庫が1ルームにまとめられている。 room42

ルームNo.

ルームに付けられた番号です。ルームNo.は16進数で表します。

No.00~7Fまで、128種類のルームが存在します。No.80以上の数字が出てくる場合がありますが、これは80を引いた数と同じとなります。

ページ

ルームの何画面目かを表すものです。0から数え始めるので、最初の画面は「0ページ」となります。

アナザールーム

このサイト独自の用語で、通常のワールドにも256Wにも登場しないルームの総称です。詳しくは後述(→通常ワールド・256Wとアナザールーム

ルーム決定表

(ここは少し難しい話になります)

ルーム決定表のROMイメージ ルーム決定表のROMイメージ

ルーム決定表と開始位置決定表

エリアがどのルームから始まるかを決める「ルーム決定表」が、ROMデータの中にあります。(図の黄色)。ROMイメージの形式によってアドレスは変わってきますが、値が「25 29 C0…」となっているはずです。1-1から8-4の分までデータが用意されています。

ルーム決定表の8バイト前から始まっているのが、「開始位置決定表」(図の緑色)です。これは、各ワールドのデータがルーム決定表のどこから始まるかを示すものです。ルーム決定表の先頭アドレスに、ここで得られる値を足した値の場所が、そのワールドのデータ開始位置となります。先頭のワールド1(00=図の青枠)からワールド8(20)まで、8バイト分のデータが用意されています。

1-1がどのルームになるか?

まず開始位置決定表を見ます。ワールド1はその先頭ですから値は00です。次にルーム決定表を見ます。開始位置が00なので、先頭+00バイト、すなわち表の先頭(図の赤枠)を見ます。値は25です。したがって、1-1はルームNo.25となります。

1-2以降は?

1-2は1-1の次を見るのでルームNo.29です。が、これは前振り土管です。前振り土管の場合、土管に入る演出の後、エリア数はそのままでルーム決定表の次のルームに移動するようになっています。ですから、1-2のメイン部分はルームNo.C0となります。ただし80以上は80を引くので、ルームNo.40となります。

1-3は1-2の次でルームNo.26となります。(先頭を1として3バイト目のC0…ではありません。前振り土管があるからずれてくるのです。) 同様に、1-4はルームNo.60となります。

8-4はどうでしょう。ワールド8の開始位置は、開始位置決定表より20です。すなわち先頭+20(10進数で32)バイトです。値は30で、これが8-1のルームNo.となります。以降順番に8-2が32、8-3が21、8-4が65となります。(ワールド8には前振り土管が無いのでずれませんでした)

256Wのルームの決め方は?

例として、ワールド9-1の場合にどうなるか説明します。まず開始位置決定表の「ワールド9」の値を得ます。これは先頭をワールド1として機械的に見るので、先頭を1として9バイト目、すなわち図の赤枠の25となります。これは本来1-1のルームの値ですが、ワールド9の開始位置の値として「認識」してしまいます。

次に、ルーム決定表を見ます。見るのは先頭+25(10進数で37)バイト、すなわち図の紫枠です。これも本来であれば別のデータなのですが、9-1のルームの値として「認識」してしまうわけです。値は06ですので、9-1はルームNo.06(水中6-2)ということになります。通常のプレーでは出現しない、特殊なルームです。

他のワールド・エリアでも同様で、本来別のデータであるものをルームNo.として「認識」してしまいます。その結果、通常では使われないルームが出てきて、いろいろと変わったことが起こる、というわけです。

ルーム決定表以外のルーム決定方法

土管に入ったり豆の木を登った場合、行き先のルームはルーム決定表を使わず、別の方法で指定されます。簡単に言うと、ルームのデータの中に行き先を指定するデータが含まれていて、それを見て行き先を決めています。


ホームへ 次:通常ワールド・256Wとアナザールーム