マリオ2の面データの場所指定方法





<0> はじめに



 筆者はこの文章を執筆時点でマリオ2のワールド1〜4しかオリジナルマップを作成しておらず、ワールド5以降については、理論で導き出した物で、充分な(と言うより全く)検証を行っておりません。したがってウソの情報も入っている可能性も有ります。また真理2のワールド5以降の製作もかなり後になりそうなので、充分な検証が出来るまでの間、追加情報、間違えのご指摘等、よろしくお願い致します。


 マリオ2の面データの指定方法もマリオ1の時と同じ、3重指定方式です。

しかし、マリオ1と大きく違うのは、ワールド1〜4、5〜8、9、A〜Dの4ステージに区切り、それぞれマップデータを読み替えています。

●ワールド1〜9

 データの場所指定部分は全てNo.03のファイルにあります。そこで指定している各ルームが、
ワールド1〜4に使用されるならファイルNo.03上での、
ワールド5〜8に使用されるならファイルNo.04上での、
ワールド9に使用されるならファイルNo.05上での、
指定番地の敵及びマップデータを認識します。

 余談ですが・・・
このしくみを逆手に取り、同じルームNo.でもステージにより違う部分を認識するので、規定の枠より多くのルームを作る事が可能です。しかし、データの開始番地を統一する必要があるので、データの長さや配置には一工夫必要です。

●ワールドA〜D

 データの場所指定部分は全てNo.06のファイルにあり、ファイルNo.06上での指定番地の敵及びマップデータを認識します。



<1> 各ワールドが何番目のエリアから始まるかを指定する領域



●ワールド1〜9    (ファイルNo.03のC357番地〜C35F番地)

 ここは、原本のマップデータの場合、00 05 09 0E 12 17 1C 20 24となっています。

すなわちワールド1は1番目のエリアから、ワールド2は6番目のエリアから、・・・ワールド9は37番目のエリアから始まります。

●ワールドA〜D    (ファイルNo.06のC357番地〜C35A番地)

 ここは、原本のマップデータの場合、00 05 0A 0Eとなっています。

すなわちワールドAは1番目のエリアから、・・・ワールドDは15番目のエリアから始まります。



<2> 各エリアがどのルームNo.から始まるかを指定する領域




●ワールド1〜9    (ファイルNo.03のC360番地〜C387番地)

 ここは、原本のマップデータの場合、20 29 40 21 60 22 23 24・・・となっています。

すなわち、1番目のエリアはルームNo.20から始まり、2番目のエリアはルームNo.29から始まるという意味になります。

●ワールドA〜D    (ファイルNo.06のC360番地〜C371番地)

 ここは、原本のマップデータの場合、20 2C 40 21 60 22 2C 00・・・となっています。

すなわち、1番目のエリアはルームNo.20から始まり、2番目のエリアはルームNo.2Cから始まるという意味になります。

 なお、ここで指定されているルームNo.は、マリオ1の原本の時と同じく、面の種類も決めてしまいます。

  ルームNo.00〜1F=水中面
  ルームNo.20〜3F=地上面
  ルームNo.40〜5F=地下面
  ルームNo.60〜7F=地獄面




<3> 各ルームのマップ及び敵データがどこの番地から始まっているかを指定する領域




 この領域は、マリオ1の時のように上位番地指定部分と下位番地指定部分が、別領域になっておらずすぐ隣にあるので、変更する時はマリオ1の時よりかなり楽だと思います。2バイト単位で、先ず番地の下位を指定し、次に上位を続けます。

●ワールド1〜9

 敵データ
 (ファイルNo.03のC398番地〜C3FF番地)

 マップデータ
 (ファイルNo.03のC404番地〜C46B番地)

●ワールドA〜D

 敵データ
 (ファイルNo.06のC376番地〜C39F番地)

 マップデータ
 (ファイルNo.06のC3A4番地〜C3CD番地)



マリオ2の面データ開始位置指定部分(ワールド1〜9)

原本におけるルームNo.配列敵データマップデータ
水中面地上面地下面地獄面原本におけるデータ開始位置
(ファイルNo.03,04,05)(参考)
データ開始位置の指定番地
(ファイルNo.03)
原本におけるデータ開始位置
(ファイルNo.03,04,05)(参考)
データ開始位置の指定番地
(ファイルNo.03)
   60C790C398CA14C404
   61C7AFC39ACA37C406
   62C7D6C39CCAFEC408
   63C7E9C39ECB95C40A
   64C5D0C3A0C8C9C40C
   65C809C3A2C996C40E
   66C630C3A4CA25C410
   67C66FC3A6CAB8C412
   68CA80C3A8CACBC414
   69CA8AC3AACB2EC416
 20 6AC81EC3ACCC0AC418
 21 6BC844C3AECC65C41A
 22 6CC867C3B0CCB4C41C
 23 6DC890C3B2CD2DC41E
 24 6EC8C6C3B4CDAAC420
 25 6FC8DDC3B6CE09C422
 26 70C907C3B8CE88C424
 27 71C92CC3BACEE7C426
 28 72C943C3BCCF5EC428
 29 73C260C3BEC274C42A
 2A 74C965C3C0CFBFC42C
 2B 75C6AFC3C2CB8FC42E
 2C 76C6E0C3C4CC30C430
 2D 77C708C3C6CC8FC432
 2E 78C72CC3C8CD0EC434
 2F 79C749C3CACD7BC436
 30 7AC77AC3CCCDFEC438
 31 7BC7A6C3CECE5BC43A
 32 7CC7BFC3D0CED6C43C
 33 7DC988C3D2D008C43E
 34 7EC260C3D4C27DC440
 35 7FC7E7C3D6CF4BC442
 36  C80AC3D8CFB6C444
 37  C831C3DAD01AC446
 38  CA90C3DCCB3FC448
 39  CA94C3DECB4EC44A
 3A  CA94C3E0CB4FC44C
 3B  C260C3E2C261C44E
 3C  C832C3E4D01BC450
 3D40 C994C3E6D021C452
 3E41 C9BAC3E8D0E2C454
 3F42 C9C4C3EAD11DC456
  43 C83BC3ECD052C458
  44 C85CC3EED11FC45A
00 45 C9DEC3F0D168C45C
01 46 C876C3F2D160C45E
02 47 CA04C3F4D21BC460
03 48 C8A6C3F6D229C462
04 49 C8B4C3F8D242C464
05 4A CA94C3FACB50C466
06 4B CAB5C3FCCB97C468
07 4C CABAC3FECBDAC46A

マリオ2の面データの場所指定法の続きへ

戻る

ホームページへ



 本文中の会社名及び商品名は各社の商標または登録商標です。