ダンジョンデータ解析

Last-modified: 2022-01-29 (土) 20:57:53
まだ途中…
敵データ追加。あとコメント欄も追加。

このページでは各ダンジョンの設定データの仕様とかについて説明します。
このページは「ボス3以外にも没地形が眠っているんじゃない?」
「ポケダンの中身についてもっと知りたい!」という人にしか役に立たないと思います。
説明文とかが分かりにくくてゴメソ。
未調査な部分がやたら多くてゴメソ。

プログラムが同じなのか2作先の空の探検隊でも本作と同じ構造をしている。

アドレス一覧

ROM内のアドレスメモリ内のアドレス説明
0x10CC7A0810CC7A入場条件データ(敵が仲間になるかどうかもここで決める)
0x4C9EBC084C9EBC基本設定(使用する地形データ、敵出現データ、アイテム出現データを決める)
0x4D112C084D112C基本設定のポインタ
0x4D122C084D122C地形データ(地形や音楽などを決める)
0x4DD31C084DD31C敵データ
0x4E9D54084E9D54敵データのポインタ
0x4EC3E0084EC3E0アイテムデータ
0x4F2824084F2824アイテムデータのポインタ
0x4F2AEC084F2AEC親ポインタ(各設定データへのアドレスが書かれている)

入場条件データ

ダンジョン1つ分の設定のデータの長さは16バイトです。

先頭からのオフセット説明
0x001だと敵を仲間にできる
0x1ともだちきゅうじょを要請または挑戦できる回数
0xFF(255)だと救助不可
0x2このダンジョンに持ち込める道具箱の道具の最大数
0x3何匹まで連れて行けるか
リーダーも含むので最小値は01
ちなみに奥地とかは04になっていて、4匹まで入れるようになっている
0x401だと、ダンジョンに入ったときにレベルが1に戻る
0x500だとお金を持ち込めない
0x601だとリーダーチェンジ可
0x700だとダンジョン突破時にメッセージが表示される
そのダンジョンに中継地点があるときは表示後移動する
0x800だと入場時に強制セーブが必要
0x9このダンジョンに突入するために必要なひでんマシン
00:なし
01:そらをとぶ
02:ダイビング
03:そらをとぶ
04:たきのぼり
05:そらをとぶ
06:ダイビング
07:そらをとぶ
08:なみのり
09:そらをとぶ
16進数で+0x10すると、ひでんマシンに加えてみずタイプのメンバーが必要になる
0xA不明
0xB不明
0xC不明
0xD00固定
0xE01だとそのデータの次のデータの階数表示が上がっていく(1F,2F,3F...)
00だとそのデータの次のデータの階数表示が下がっていく(B1F,B2F,B3F...)
0xF00固定

基本設定

1F分のデータの長さは16バイトです。
最初の16バイトは全て00ですが、これはちいさな もりのデータの開始を表していると思われます。
以降、0x0~0xFの16バイトが全て00の個所が見つかった場合は、次のダンジョンのデータになります。
ちなみに数値はリトルエンディアン方式で格納されています。

先頭からのオフセット説明
0x00~0x01地形データの番号
ちいさな もり1階のデータは「00 00」です。
それ以降は01ずつ上がっていきます。
0x02~0x03敵データの番号
同じくちいさな もり1・2階のデータは「00 00」です。
それ以降は01ずつ上がっていきます。
0x04~0x05不明
0x06~0x07アイテムデータの番号
こちらも同じくちいさな もり1・2階のデータは「00 00」であるようだが、
01ずつ上がっていくわけではないようだ。
0x08~0x09不明(ほとんどのダンジョンで01)
0x0A~0x0B不明(ほとんどのダンジョンで02)
0x0C~0x0D不明(ほとんどのダンジョンで03)
0x0E~0x0F00 00固定

地形データ

1F分のデータの長さは28バイトです。
開幕大部屋MHとボス・イベントフロアでは影響しないものもあります。

先頭からのオフセット説明
0x00フロアのパターン(02は開幕大部屋MH)
0x01部屋の数
0x02地形
0x03音楽
0x04天気
00:晴れ
01:ひざしがつよい
02:すなあらし
03:くもり
04:あめ
05:あられ
06:きり
07:ゆき
08:上記のうちのランダム
これ以降はフリーズ
0x05不明(00だと開幕大部屋MH)
0x06敵の最大数
0x07店の出現率
0x08モンスターハウス出現率
なお店とモンスターハウスは同じ階に両方出現することはない
0x09
0x0A
0x0B
0x0C01だと部屋の中に水路のある部屋が現れる
0x0D01だと水路・マグマ・谷ができる
0x0E
0x0F道具の最大数
店の商品の数は含めない
0x10ふしぎなゆか最大数
0x11現在の階数
0x12イベントフロア・ボスフロアフラグ
0x13
0x14
0x15
0x16通路の明るさ
00:明るい
01:1マス先だけ見える
02:2マス先まで見える
0x17
0x18
0x19
0x1A
0x1B

地形リスト

番号主に使われている場所番号主に使われている場所番号主に使われている場所番号主に使われている場所
00海のダンジョン 110たきつぼの いけ20みずのま30マグマの ちてい 後半
01没地形(オートパイロット)11ちてい いせき 後半21どくのま31海のダンジョン 2
02ちんもくの たに12はるかなる れいほう 後半22きたの さんみゃく 中盤32でんじはの どうくつ
03ねがいの どうくつ 序盤13はるかなる れいほう 序盤23てんくうの とう33とおぼえの もり 1
04やみの どうくつ14没地形24じゅひょうの もり34さわぎの もり
05ノーマルのま15さばく ちたい25ちてい いせき 中盤35きよらかな もり 2
06ならくの たに16没地形26いわの よこあな36海のダンジョン 3
07アンノーンの いせき17にしの どうくつ 中盤27ハガネやま 前半37みなみの ほらあな 前半
08きゅうじょたいのま18ゆきの よこあな28ハガネやま 後半38きよらかな もり 3
09きたかぜの だいち 後半19ちてい いせき 前半29あやしい もり39みなみの ほらあな 後半
0Aひりゅうの おか1A没地形ボス32Aライメイの やま3Aねがいの どうくつ 後半
0Bきよらかな もり 11Bにしの どうくつ 前半2Bライメイの やま さんちょう3Bマグマの ちてい 中盤
0Cしあわせの とう1Cいんせきの どうくつ2Cおおいなる きょうこく3Cきよらかな もり 4
0Dあんや いせき1Dイナズマの だいち2Dぐんじょうの どうくつ3Dとおぼえの もり 2
0Eちいさな もり1Eねがいの どうくつ 中盤2Eほのおの やま3Eきよらかな もり 6
0Fこおりのま1Fたいようの どうくつ2Fひょうせつの れいほう3Fきよらかな もり 5

没地形の画像はその他の没要素を参照

音楽リスト

番号主に使われている場所番号主に使われている場所番号主に使われている場所
00イベントフロア10ちいさな もり(重複)20ちいさな もり(重複)
01ちいさな もり11ちいさな もり(重複)21ちいさな もり(重複)
02でんじはの どうくつ12ちてい いせき22ちいさな もり(重複)
03ハガネやま13あらしの かいいき23ちいさな もり(重複)
04あやしい もり14あやしい もり(重複)24ちいさな もり(重複)
05ちんもくの たに15ライメイの やま さんちょう25ちいさな もり(重複)
06ライメイの やま16ほのおの やま さんちょう26ちいさな もり(重複)
07おおいなる きょうこく17じゅひょうの もり おくち27ちいさな もり(重複)
08ぐんじょうの どうくつ18ひょうせつの れいほう おくち28てんくうの とう 最深部
09ほのおの やま19マグマの ちてい さいかそう29マクノシタくんれんじょ
0Aじゅひょうの もり1Aてんくうの とう さいじょうかい2Aマクノシタくんれんじょ(重複)
0Bひょうせつの れいほう1Bちいさな もり(重複)2Bちいさな もり(重複)
0Cマグマの ちてい1Cちいさな もり(重複)2Cちいさな もり(重複)
0Dてんくうの とう1Dちいさな もり(重複)2Dちいさな もり(重複)
0Eちいさな もり(重複)1Eちいさな もり(重複)2Eちいさな もり(重複)
0Fちいさな もり(重複)1Fちいさな もり(重複)2Fちいさな もり(重複)
30ちいさな もり(重複)

敵データ

敵1体分のデータは8バイトです。

先頭からのオフセット説明
0x00~0x01敵の種類とレベル
本家のように努力値や個体値を設定することはできない。
また敵の種類はポケモンコードによって管理されている。
0x02~0x03不明(出現率?)
0x04~0x050x02~0x03と同じ
0x06~0x0700 00固定

敵データの設定のしかた

例えばデータ「81 C8」があるとします。
これはレベル100のコイキングのデータなのですけれども、ポケモンコードリスト(改造コードのページだがこちらから)によると識別コードは「00 81」であることがわかります。
またレベルの数値である100を16進数で表すと「64」です。これを2倍した数値は「C8」です。
そしてこのデータはリトルエンディアン方式で格納されているので識別コード「00 81」は「81 00」で表され
あとの1バイトにレベルのデータである「C8」が格納されレベル100のコイキングのデータ「81 C8」が出来上がります。
式で表すと[(レベル)×0x0200+ポケモンコード(ただしリトルエンディアン方式で記述)]になります。
ちなみに識別コードが「01 XY」のように2バイトにわたる場合レベル100だと「C9」のようにレベルの数値に+1されます。

質問などはこちらに

  • 「16進数って何ですか?」とか「リトルエンディアンって何ですか?」とかはググったら分かるので聞かないで下さい。 -- 2012-02-09 (木) 19:12:03
  • 音楽リスト、ちいさなもりのBGM重複しすぎ・・・。何があったんだろう。欠番埋めるためかな -- 2012-04-10 (火) 22:43:52
  • pこ -- 2012-11-02 (金) 17:07:02
  •   -- 2012-11-02 (金) 17:10:03
  • p -- 2012-11-02 (金) 17:36:48