DataStructure

Last-modified: 2021-03-14 (日) 10:05:06

各データ内のどこに何のデータが含まれるかのメモ
※各データの入手方法や編集方法はこのページで扱いません


セーブデータ

概要

65536バイト。大きく分けて3ブロックに分かれている

開始アドレスサイズ概要
アミーゴ00x1000ステータス概要、アミーゴ
ステータス0x40000x1000フィールド関連
0x50000x2000キャラのステータス(MDまで)
0x70000x2000キャラのステータス(追加キャラ)、入手アイテム等
バックアップ0x90000x1000↑のコピー
0xA0000x2000
0xC0000x2000

ヘッダーについて

各ブロックの先頭には必ず既定の4バイトが付与される。

0x70x00x4D0x56

この固定値が無いとセーブデータが正常に認識されない。

チェックサムについて

0xE0~0xE93を、読み込み幅2バイトで、加算する。
その結果の下位2バイトが、0xFFFとなれば、正常なセーブデータとして扱われる。

計算式の例として、ヘッダーをあげると、
07 00 4D 56

0x0007+0x564D=0x5654
となる。
(上記計算を0xE0~0xE93で行い、結果が0xFFFFになれば、正常なセーブデータ)

上記の計算例であげると、チェックサムは、ビット反転した0xA9ABとなり、0xE90・0xE91に記録される。
つまり、0xE0~0x89・0xE92~0xE93を加算した結果に対し、
更に、下位2バイトを0xFFFにするための調整値を、0xE90・0xE91に設定するということ。

バックアップブロック

手前のメイン(ステータスブロック)で異常だったりした場合に読み込まれる。
このバックアップブロックも異常な場合はセーブデータ全体が破棄される。

アミーゴブロック

概要

アドレス概要
0~3ヘッダー
4~0x7Fステータスブロック概要
0xE80~0xE8Fアミーゴ
0xE90~0xE93チェックサム用

チェックサム用

チェックサム用の0xE90~0xE93は、以下の値が設定される。
0xE90:チェックサム保存用1
0xE91:チェックサム保存用2
0xE92:アミーゴブロック記録
0xE93:00固定

0xE90~0xE91については、【チェックサムについて】参照
0xE92は、セーブ処理の際に使用する。
セーブ処理は、まず空のアミーゴブロックを記録するが、その時、0xE92に、0x00が記録される。
その後、アミーゴブロックの記録が実行されれば、0xE92に、0x01が記録される。

セーブ処理は、以下の流れになっている。
空のアミーゴブロックを記録

ステータスブロックを記録

バックアップブロックを記録

アミーゴブロックを記録

ステータスブロック概要

タイトルで続きからを選択した時のデータ表示やアミーゴ通信などに使用するためのデータ。
ゲーム内セーブ時にステータスブロックからコピーして作成される他、
アミーゴ通信時などに上書きされる。

開始アドレスサイズ内容
412*6PTメンバーの一部ステータス
0x4C16主人公の名前
0x5C16主人公の魔法レベル
0x6C2主人公の性別,属性など
0x704経過時間
0x744所持金
0x782現在マップID
0x7A2PT人数
0x7C2ID
0x7E2ゲームクリア,温泉など
  • PTメンバーのステータス
    各キャラ12バイトずつ
    オフセットサイズ内容
    02レベル
    22現在HP
    42最大HP
    62MP回復率
    82最大MP
    102アイコン,その他
  • アイコンその他のビット列
    ビット位置内容
    0~5アイコン
    6MDは1
    7~9MDの見た目
    10,11キャラデータの拡張領域(未使用?)内の2bit
    12追加キャラは1
    13~15未使用
  • 主人公の名前
    16バイトあるが実際に使用されるのは1文字2バイト*6文字の12バイト。
    文字コードは使用可能な文字一覧を参照
  • 主人公の魔法レベル
    炎から愛までの16属性で1属性1バイト
  • 主人公の性別,属性,などのビット列
    ビット位置内容
    0,1性別 男は1、女は2
    2~5属性
    6~11アイコン(更新用)
    12更新フラグ(下記参照)
    13~15未使用
    • コンティニュー時に主人公更新フラグが立っている場合は2つの更新チェックが行われ、
      ステータスブロックからロードしたデータ(実データ)が概要データで上書きされる
      • アミーゴ時にステータスブロックは更新されない
    1. 魔法レベル更新チェック
      魔法レベルが実データでは0で概要データでは1の場合
      • 魔法レベルを1にする
      • 魔法経験値を20にする
      • 魔法修得数を1にする
    2. アイコン更新チェック
      アイコンが実データと概要データで異っていて、かつ
      概要データでは男の子(闇属性)か女の子(闇属性)の場合
      • アイコンを上書き
      • 主人公の現在属性を闇属性にする
        属性相性と極意レベルの反映はこの更新処理とは独立して行われる
  • 経過時間
    経過フレーム数が記録される。60fps
  • ゲームクリア,温泉などのビット列
    ビット位置内容
    0ゲームクリア
    1~4温泉の種類
    5レッツ温泉可能なら1
    6モンスター図鑑にケルレンドゥが記録済なら1
    7~14メニューを閉じてから再度メニューを開くまでに経過したフレーム数
    15未使用
    • ゲームクリア時はステータスブロックでなくこのゲームクリアフラグが立ち、
      上記アミーゴ同様にコンティニュー時に概要データで上書きロードされる。

アミーゴ

1人36バイト*100人

オフセットサイズ内容
012名前
0x0C2レベル,属性
0x0E1極意装備キャラ
0x102ID
0x1216各魔法レベル
0x222未使用
  • レベル,属性のビット列
    ビット位置内容
    0~9レベル
    10,11性別 男は1、女は2
    12~15属性
  • 極意装備キャラのビット列
    ビット位置内容
    0アミーゴが有効なら1
    1~7極意装備キャラ
    • 通常、アミーゴ有効/無効のビットは常に1となる。アミーゴリストでの削除処理時に利用されている。

フィールド関連

概要

開始アドレスサイズ概要
0x40004ヘッダー
0x40042チェックサム
0x400620
0x400C2現在マップID
0x400E2コンティニュー直後にBGMとして使用するサウンドID
0x40140x200出現条件
0x42140x660出現済オブジェクト

出現条件

全512バイト

開始オフセット1データのbit数データ個数内容
011600フラグ
0x0C842004bit値
0x12C81001バイト値
0x190161122バイト値

種類が多いため全ては記載しない


フラグ

ビット位置該当アドレス概要
4~120x4014~0x4015愛のかりゅうど
140x4015カエルグミ緑(森の洞窟・入口)拾得
0x10~0x7F0x4016~0x4023フィールド上の精霊出現
0x86~0x8F0x4024~0x4025種族図鑑
0x21F~0x22A0x4057~0x4059種族図鑑
0x9C~0x1C70x4027~0x404C宝箱(通常)開封
0x1C8~0x1E70x404D~0x4050フィールド上のしっぽ拾得
0x1E8~0x1F90x4051~0x4053フィールド上のシール拾得
0x202~0x2080x4054~0x4055フィールド上のコイン(ヴァレンシア海岸)拾得
0x258~0x2B50x405F~0x406Aフィールド上のコイン拾得
0x2BC~0x3190x406B~0x4077フィールド上のはっぱ拾得
0x358~0x3BB0x407F~0x408Bカエルグミ緑(リギニオ密林)捕獲
0x3C2~0x3DF0x408C~0x408Fワープ登録
0x413~0x4250x4096~0x4098魔法の手帳
0x43B~0x4580x409B~0x409FMD辞典
0x4A9~0x4E60x40A9~0x40B0ハズレ宝箱のコイン入手
0x4EC0x40B1カエルグミ購入

4bit値: 1バイト中に2つの出現条件値が含まれる

該当アドレス概要
0x40E0~0x40E1死の回廊に出現するカエルグミの最大数
0x40E6~0x40EAピップルスのシールバザー
0x40EE~0x411F宝箱(特殊)開封
0x4127~0x413F宝箱(特殊)開封

8bit値

該当アドレス概要
0x418Bピラニアコイン累計枚数
0x418Cアミーゴ人数
0x418D宝箱(特殊)の開封数
0x4195キヤシカゥアのツボの要求数
0x4197主人公の元々の属性

16bit値

該当アドレス概要
0x41A6,0x41A7カエルグミ捕獲数
0x41AE,0x41AFまつぼっくり獲得数
0x41B0,0x41B1ミミズグミ捕獲数
0x41E2,0x41E3ピラニアに渡した累計金額/10
0x4208,0x4209ピップルに奪われた宝箱の数
0x420A,0x410Bクガンデ村民の数

出現済オブジェクト

開始アドレスサイズ概要
0x421410PTの移動方向
0x42208魔バスの状態
0x422840x20の固定値?
0x422C0x600オブジェクト詳細
0x482C2現在マップで変化したオブジェクトの個数?
0x48300x40変化したオブジェクトの何か?
0x48704魔バスの何か?
  • 魔バスの状態
    オフセットサイズ内容
    01X座標
    11Y座標
    22マップID
    41向き
    51乗車状態
    62魔バスへのワープ直後にBGMとして使用するサウンドID
  • オブジェクト詳細
    1個0x30バイト*32個
    RAM上では1個0x5Cバイト セーブ時に余分なビットが除去される
    オフセットサイズオフセット(RAM)内容
    026X座標
    228Y座標
    4210特定イベント達成時のX座標?
    6212〃 Y座標
    820x1A
    1020x38Z位置関連
    1220x3A他オブジェクトの移動先に自身がいる時に発生するイベント
    12+220x3C〃 会話先 〃
    12+410x44+8
    12+510x44+9マップ既定オブジェクトリスト内ID+6
    12+614グラフィックリストID
    12+7114
    12+810x44+2直前のアニメーション種類?
    12+910x44+6アニメーション情報
    12+1010x44+0x16
    12+1110x44+0x17
    12+1240x50
    12+0x1012ビット列 下記
    12+0x1D10x12直前の移動ベクトルのX成分
    12+0x1E10x14〃 Y成分
    12+0x1F10固定値
    0x2C10固定値
  • ビット列詳細
    ビット開始位置サイズオフセット(RAM)内容
    0100x18
    10100x44移動情報
    0x1440出現フラグ
    0x18421:主人公 2:PTキャラ 3:不動 4:可動
    0x1C40x10
    0x2080x20表示画像? 1:下 2:左 3:上 4:右
    0x2860x22表示中画像のグラフィックリスト内index
    0x2E40x17向き 0:マップ切替直後 1:上 2:右上...8:左上
    0x3240x1C2 固定値?
    0x3630x30表示優先度(マップ移動直後の全身)
    0x3930x32表示優先度(構成オブジェクト1 キャラの場合上半身)
    0x3C30x34〃 2 キャラの場合下半身
    0x3F10x36z位置
    0x4030x44+7透過度 0:不透明 1:半透明 2:透明
    0x4310x16
    0x4410x44+3
    0x4510x44+5
    0x4610x18
    0x47160x26表示アニメーションのリピート回数 無限なら-1

ステータスブロック

概要

開始アドレスサイズ概要
0x50004ヘッダー
0x50042チェックサム
0x500620
0x50080x12C*22キャラステータス(主人公2 クラスメイト15 マジックドール5)
0x70004ヘッダー
0x70042チェックサム
0x700620
0x70080x12C*12キャラステータス(放浪キャラ9 没3)
0x7E180x29C入手アイテム等

キャラステータス

1人0x110バイトが0x12Cバイトおきに記録される

オフセットサイズ内容
00x20ステータス等
0x202*5装備アイテム
0x2A2*15シール
0x484経験値
0x4C2*16魔法レベル
0x6C2*16極意の魔法レベル
0x8C4*16魔法経験値
0xCC2*8魔法セット
0xDC2*16魔法習得数
0xFC0x10極意の名前
0x10C1MDの見た目
  • ステータス等のビット列
    余分なビットが殆ど除去されている(通信の時間短縮?)桁溢れバグの元凶
    ビット位置該当オフセット内容
    0~50#見た目
    60仲間になった
    7~120~1#名前
    13,141性別
    151マジックドール
    162放浪キャラ
    0x12~0x172種族
    0x18~0x1E3極意
    0x1F~0x243~4
    0x25~0x2C4~5物理技
    0x2D~0x365~6レベル
    0x37~0x446~8現在HP
    0x45~0x528~10最大HP
    0x53~0x6010~12現在MP
    0x61~0x6E12~13最大MP
    0x6F~0x7513~14MP回復率
    0x76~0x7C14~0x0FMP回復率(装備+称号)
    0x7D~0x860x0F~0x10
    0x87~0x900x10~0x12
    0x91~0x9A0x12~0x13精神
    0x9B~0xA40x13~0x14速さ
    0xA5~0xAC0x14~0x15力(装備+称号)
    0xAD~0xB40x15~0x16守(装備+称号)
    0xB5~0xBC0x16~0x17精神(装備+称号)
    0xBD~0xC40x17~0x18速さ(装備+称号)
    0xE0~0xFF0x1C~0x1F属性相性
  • #見た目と#名前について
    MDフラグと放浪フラグにより各項目を表示する際に参照する値が異なる。
    クラスメイトマジックドール放浪キャラ
    名前(フィールド)#名前システム用単語#名前#名前
    名前(バトル中)#名前
    見た目(フィールド)#見た目(主)装備による#見た目(主)
    見た目(バトル中)
    アイコン#名前#見た目
    プロフィール#見た目なし#名前-5
    セレクト説明文#見た目#見た目#名前

    #見た目(主)は、#見た目が0または1(主人公)の場合は先頭キャラの#名前を参照する。
    先頭キャラの番号はセーブデータの0x8058に記録されている。

  • 属性相性
    参照用のアドレスがそのまま記録されている
    数値内容
    0x08103C18
    0x08103C1C
    ::
    0x08103C54
  • MDの見た目のビット列
    ビット位置内容
    5~7MDの見た目

入手アイテム等

開始アドレス長さ内容
0x7E182*6フォーメーション
0x7E244所持金
0x7E282*0x100アイテム個数
0x80282*16仲良くなった精霊の数
0x80480x10主人公の名前
0x80582先頭キャラの番号
0x805A2主人公の属性
0x805C0x24モンスター図鑑
0x80802ID
0x80822ゲームクリア,温泉など
0x80844バトル回数
0x80884バトル勝利数?
0x808C4逃走回数
0x80904気絶回数
0x80942最高コンボ倍率
0x80962
0x80984通信対戦回数
0x809C4通信対戦勝利数
0x80A04経過時間
0x80A44温泉客数
0x80A82*5通信相手のID
  • ゲームクリア,温泉などのビット列
    ビット位置内容
    0~3称号
    4クリアフラグ
    5~8温泉の種類
    9~12評価
    13~15

RAM

ROM

ゲーム内リソース
コンソール上では0x8000000~

開始アドレス1セットのサイズセット数内容
0x0C22C8ワープポイント
0x0C3A442816称号によるステータス補正値
0x0C48A44450各マップのワールド内位置
0x0C5610416レッツ温泉時のステータス上昇判定
0x0C5650マップオブジェクトの向きと表示画像の対応表
0x0F99A040x400イベント属性値が2のイベント
0x0FA9A056343敵ステータス
0x0FF4A88256アイテムステータス
0x0FFCA887敵出現数
0x0FFCE016435敵PT候補
0x101810126敵フォーメーション
0x10185816314敵PTメンバー
0x102BF81287物理技性能
0x10300C442追加効果
0x1030B420139魔法性能
0x103B90817コール魔法で呼ばれる精霊
0x103C18417属性相性
0x103C5C2300宝箱(通常)中身
0x103F34フィールドオブジェクト画像
0x151484戦闘中キャラ画像
0x226F80固有名詞
0x22CC98マップ関連
0x58C2B8技エフェクト等の小アニメ
0x5F5944技エフェクト(敵PT)
0x60350C0x205ラスボスの戦闘中カラーパレット
0x6035AC0x200x800文字アセンブリ
0x61360C戦闘中のシステム画像
0x6242CCブラウニーブラウンのロゴ
0x624F0C任天堂のロゴ
0x625E2C0x20126キャラ顔画像のカラーパレット
0x626DEC属性アニメ画像
0x62922Cアイテム名接頭画像
0x62C910チャットログ
0x699AA4タイトル画像
0x6A55E8プロローグ
0x6D0A5Cクラスメイト紹介
0x6EFB10ニューゲームプロローグ画像
0x733BBCエピローグ
0x77BA3Cクラスメイトエピローグ画像
0x790E60メニュー枠画像
0x7924C0味方キャラ画像
0x7A322Cニューゲーム画像
0x7A715C主人公画像
0x7C2254システムテキスト
0x7DB750文字パーツ

基本事項

画像について

  • 16色インデックス画像で、パレットデータと画像データが独立
  • 1色あたり16bitで、RGB各5bitを含む
  • 画像データは横8px縦8pxのマクロブロック単位
  • 1pxあたり4bitで、1byte(8bit)内に横2pxを含む
    • PNG等とは並び順が逆
  • マクロブロックはタイルと呼称され、タイル単位で背景や各オブジェクトが構成される

LZ77について

  • 先頭バイトが0x10、続く3バイトが展開後サイズ、4バイト目から圧縮後データ
  • データの最初のバイト(8bit)は続く8ブロックの種類を指す
    • 0:無圧縮
    • 1:圧縮済
  • 無圧縮ブロックは1バイトをそのまま展開後に追加する
  • 圧縮済ブロックは2バイトで、展開長さは1バイト目の上位4bit+3、位置は下位4bit*256+2バイト目-1

オフセットについて

  • オフセットリストの各オフセットが2バイトの場合、3バイト目以降がカットされている場合があるため
    リストによっては1個目からシークして繰り上がりをカウントする場合がある

変数名を使用しているオフセットの見方

  • 変数名でオフセットを示している(内容に、【データ数y】などで記述しているもの)表の見方を示す。
  • 例:クラスメイト紹介
    0x6D0A5C(クラスメイト紹介)
    オフセット内容解説
    0データ数y0x6D0A5Cの値を、【y】に設定する。
    つまり、この表で出てくる【y】は、0x6D0A5Cの値ということ。
    4オフセットz00x6D0A5Cから4バイト移動した位置の値を加算した値を設定する。
    (つまり、6D0A5C+6D0A60の値(D4)が、【z0】となる。)
    8z10x6D0A5Cから8バイト移動した位置の値を加算した値を設定する。
    但し、加算時、リトルエンディアンとなっているに注意。
    (18 1Dとなっているので、6D0A5C+1D18となり、この加算の結果が、【z1】となる。))

各部詳細

0x0C22C8(ワープポイント)

オフセット内容
4光プレーンWP数
6光プレーンWPのフラグオフセット
8闇プレーンWP数
10闇プレーンWPのフラグオフセット
12死プレーンWP数
14死プレーンWPのフラグオフセット
0x10光プレーン1個目のWPデータ
0x18〃 2
::
  • フラグオフセットはフィールドオブジェクト出現条件フラグ内における
    そのプレーンの1個目のWPの登録フラグのオフセット

ワープポイントデータ

オフセット内容
2マップID
4X座標
5Y座標

0x0C3A44(称号によるステータス補正値)

オフセットサイズ内容
02
22守り
42速さ
62精神
82MP回復率

0x0C48A4(各マップのワールド内位置)

オフセット内容
0プレーン(1:光 2:闇 3:死)
1X座標
2Y座標

0x0C5610(レッツ温泉時のステータス上昇判定)

ビット位置内容
0~7ステータス上昇頻度
8HPが上昇する場合1
9MP 〃
10力 〃
11守り 〃
12精神 〃
13速さ 〃

0x0FA9A0(敵ステータス)

ビット位置内容
0~9グラフィック
10~18ステータス
0x13~0x18AI
0x19~0x20物理技
0x21~0x29経験値
0x2A~0x32おかね
0x33~0x3Aドロップアイテム1
0x3B~0x42〃 2
0x43~0x4A〃 3
0x4B~0x52ドロップ頻度1
0x53~0x5A〃 2
0x5B~0x62〃 3
0x63スペシャルモンスターフラグ
0x64~0x67未使用


オフセットサイズ内容
0x0E2魔法1
0x102魔法2
0x122魔法3
0x142シール1
0x162〃 2
:::
0x302〃 15
0x322未使用
0x344属性相性
  • ステータスは名前表示と図鑑登録にも使用する
  • アイテムドロップ確率はドロップ頻度1のみ2倍する

0x0FF4A8(アイテムステータス)

ビット位置内容
0~4種類
5~12値1
13~20値2
0x15~0x1C値3
0x1D~0x24値4
0x25~0x2C値5
0x30~0x3F価値


種類内容値1値2値3値4値5
1重要アイテム
2はっぱ精神速さ
3回復(カエル・ミミズ)回復量/10
4しっぽ種類
5ボム魔法ID
6~10装備(頭~アクセ)精神速さMP回復
11~15装備(MDシェル~ガット)
16シール
19コイン
  • 種類3(回復)は値1が107ならHP回復、それ以外はMP回復

0x0FFCA8(敵出現数)

オフセットサイズ内容
01出現数が1体以下の頻度
11〃 2 〃
:::
41〃 5 〃
53未使用
  • 敵1体の確率R1は1体以下の頻度F1+1と100の小さい方
    敵n(2~5)体の確率RnはFn-Fn-1と100-ΣRの小さい方
    敵6体の確率R6は100-ΣR

0x0FFCE0(敵PT候補)

ビット位置内容
0~6歩数エンカウント頻度
7~13未調査
14~23背景マップ
24~27敵出現数パターン
28~31未使用


オフセットサイズ内容
42敵PT1(通常頻度)
62〃 2 〃
:::
122〃 5 〃
142敵PT6(レア)
  • ランダムエンカウント(歩数・ミミズ等)の場合は現在マップID、
    シンボルエンカウントの場合はそれ専用のIDで参照する
  • 敵出現数パターンは出現数固定でない場合に参照する

0x101810(敵フォーメーション)

オフセットサイズ内容
02味方PTから向かって左手前の敵
12〃 中央 〃
22〃 右 〃
42〃 左奥 〃
62〃 中央 〃
82〃 右 〃

0x101858(敵PTメンバー)

オフセットサイズ内容
021体目の敵
222 〃
:::
1026 〃
124敵フォーメーション

0x102BF8(物理技性能)

ビット位置内容
0~5名前
6~13威力
14~17範囲
0x12~0x18急所率
0x19~0x1F追加効果付与確率
0x20~0x3F追加効果種類
0x40~0x46精霊自動コール確率
0x471なら遠距離減衰しない
0x48~0x4Fエフェクト

0x10300C(追加効果)

ビット位置内容
0~5名前
6~10種類
11~17強度
0x12~0x18消耗

0x1030B4(魔法性能)

ビット位置内容
0~7名前
8~11入手経験値基礎ポイント
12~19消費MP
0x14~0x17魔法種類
0x18~0x1B範囲
0x1C~0x23威力
0x24~0x2A追加効果付与確率
0x2B~0x32エフェクト


オフセットサイズ内容
84魔法の属性
124コール魔法で呼ばれる精霊
164追加効果種類

0x103B90(コール魔法で呼ばれる精霊)

オフセットサイズ内容
44精霊の属性

0x103C18(属性相性)

ビット位置内容
5~9自身の属性
10~14弱点属性1
15~19弱点属性2

0x103C5C(宝箱(通常)中身)

オフセットサイズ内容
01アイテムID 0ならお金
11数量 お金なら10倍する

0x103F34(フィールドオブジェクト画像)

オフセット内容
4オフセットo0
8o1
12o2
0x10グラフィックID数
0x14グラフィックID0のタイルセットID
0x16〃 画像セットID
0x18グラフィックID1のタイルセットID
::
o0色ID0のパレットデータ
o0+0x20色ID1のパレットデータ
::
o1タイルセットID0内のタイルID数
o1+2オフセットp0
o1+4タイルセットID1内のタイルID数
o1+6p1
::
p0タイルセットID0内のタイルID0のデータ
p0+0x20〃 タイルID1
::
o2オフセットq0
o2+4〃 q1
::
q0画像セットID0のデータ
q1〃 ID1
::

画像セットデータ

オフセット内容
0オフセットr
2画像ID数
4オフセットs0
6s1
::
s0画像ID0内のマクロタイルID数
s0+2〃 マクロタイルID0のデータ
s0+8〃 マクロタイルID1のデータ
::
rアニメーションセット

マクロタイルデータ

ビット位置内容
0~7位置オフセット(縦方向)
8回転拡大フラグ
9回転拡大する場合: 2倍フラグ
しない場合: 非表示フラグ
10,11透過度 0:不透明 1:半透明 2:透明
12モザイクフラグ
13色数 0:16色 1:256色
14,15マクロタイル形状 0:正方形 1:横長 2:縦長
0x10~0x18位置オフセット(横方向)
0x19~0x1D回転拡大する場合: 回転拡大データID
0x1C回転拡大しない場合: 反転(横方向)
0x1D回転拡大しない場合: 反転(縦方向)
0x1E,0x1Fマクロタイルサイズ
0x20~0x29使用開始タイルID
  • コンソール内のオブジェクト属性データ(0x07000000~)とほぼ同じ構造

マクロタイルサイズ

マクロタイル形状
正方形横長縦長
サイズ01x12x11x2
12x24x11x4
24x44x22x4
38x88x44x8

アニメーションセット

オフセット内容
0アニメーションID数
2オフセットt0
4t1
::
t0アニメーションID0内のキーフレームID数
t0+2〃 キーフレームID0のデータ
t0+6〃 キーフレームID1のデータ
::

キーフレームデータ

オフセット内容
0表示画像ID
2表示長さ

0x151484(戦闘中キャラ画像)

オフセット内容
4データ数
8オフセットu0
12u1
16u2
20u3
24u4
28u5
u0戦闘中キャラ画像データ
u1
u2
u3
u4グラフィックID0x129~0x188の色パレット
u5〃 0x229~0x288

0x151484+u0(戦闘中キャラ画像データ)

オフセット内容
0グラフィックID数
4オフセットv0
8v1
::
v0グラフィックID0の画像データ
v1〃 ID1
::
  • 画像データはグラフィックIDの下8bitのものを使用する
    • つまりグラフィックIDの上位ビットによって色違いとなる
  • 色パレットの位置は分散している
    グラフィックID位置
    0x089~0x08D0x60350C
    0x129~0x1880x151484+u4
    0x229~0x2880x151484+u5
    上記以外0x103F34+o0

各画像データは5ブロックに分けられる

画像データヘッダー
アニメーション用データ?
フラグリスト
各画像のオフセットリスト
マクロブロックリスト
  • ヘッダー
    オフセットサイズ内容
    11画像数
    21横方向のマクロブロック数
    31縦 〃
    42フラグリストのオフセット
  • アニメーション用データ?
    オフセットサイズ内容
    01データ(オフセットのペア)数
    11オフセット1
    21〃 2
    :::
    オフセット1
  • フラグリスト
    キャラが小さい場合、画像データが無いマクロブロックが多くなってしまう。
    それらの空データを含めないためのリスト
    • 1画像あたり2byte(16bit)単位で揃える
      • 例:マクロブロック数が横3縦3の場合
        1画像あたりのマクロブロック数=3*3=9個
        →1画像あたりのフラグ数も9個
        →1画像あたり16bit
    • 左上のマクロブロックから順に並べる
      • 例:マクロブロック数が横3縦3で、右下3ブロックにのみ画像がある場合
        xxx
        xxo
        xoo
        この場合のフラグは0x01A0(110100000)
        含まれるマクロブロックのデータ数は9個ではなく3個となる
  • 各画像のオフセットリスト
    オフセットサイズ内容
    02画像1のオフセット
    21
    31
    42画像2のオフセット
    :::

0x151484+u4(グラフィックID0x129~0x188の色パレット)

オフセット内容
0パレットデータ数w
2オフセットx0
4x1
::
w*2このブロックの終端のオフセット
x0グラフィックID0x129のパレットデータ
x1〃 0x12A
::

0x151484+u5(グラフィックID0x229~0x288の色パレット)

オフセット内容
0パレットデータ数y
2オフセットz0
4z1
::
y*2このブロックの終端のオフセット
z0グラフィックID0x229のパレットデータ
z1〃 0x22A
::

0x226F80(固有名詞)

オフセット内容
0リスト数
4オフセットg0
8g1
::
g0物理技名リスト
g1アイテム名
g2追加効果名
g3魔法技名
g4敵キャラ名
g5仲間キャラ名
g6性別
g7精霊名
g8種族名
g9属性名
g10マップ名
g11称号名

各リスト

オフセットサイズ内容
04内包する固有名詞数
416固有名詞1
0x14〃 2
:::

0x22CC98(マップ関連)

オフセット内容
0データ数
4オフセットh0
8h1
::
h0背景タイルセット
h1背景色パレット
h2
h3
h4マップ背景データ
h5
h6マップ出口座標
h7マップ切替イベント
h8マップオブジェクト
h9オブジェクト移動パターン
h10
h11

0x22CC98+h0(背景タイルセット)

オフセット内容
0背景タイルセットID数i
2オフセットj0
4j1
::
2*i-2オフセットjz
j0背景タイルセットID0のデータ(LZ77)
j1〃 ID1
::
jz後続ブロックまでのジャンクデータ数k
jz+2ジャンクデータ?
jz+4
:
jz+2*k

0x22CC98+h1(背景色パレット)

オフセット内容
0背景色ID数m
2オフセットn0
4n1
::
2*m-2オフセットnz
n0背景色ID0のパレットデータ
n1〃 ID1
::
nz後続ブロックまでのジャンクデータ数o
nz+2ジャンクデータ?
nz+4
:
nz+2*o

0x22CC98+h4(マップ背景データ)

オフセット内容
0マップID0の背景データ
34〃 ID1
::
  • 1データ34バイト

背景データ

オフセット内容
0使用する背景タイルセットID(1セット目)
2〃 2セット目
::
0x180x22CC98+h2のkey(1個目)
0x1A〃 2個目
0x1C〃 3個目
0x1E背景色ID

0x22CC98+h6(マップ出口座標)

オフセット内容
0データ数
2オフセットp0
4p1
::
p0マップID0の出口座標データ
p1〃 1
::

出口座標データ

オフセットサイズ内容
02出口数
22出口1での発生イベントID
41出口1の左端X座標
5〃 上端Y座標
6〃 右端X座標
7〃 下端Y座標
82出口2での発生イベントID
:::
  • 発生するイベントは主にマップ切替イベント(0x1000~0x1FFF)
    フラグチェック等のため別イベントも発生しうる

0x22CC98+h7(マップ切替イベント)

オフセットサイズ内容
02イベント数
21マップ切替イベントID0の移動先マップへのフェードイン演出
31〃 移動元マップからのフェードアウト演出
63〃 移動先座標データ
102〃 レイヤー,向き,BGM変更
121〃 X座標
131〃 Y座標
142マップ切替イベントID1
:::

フェードイン/フェードアウト演出

内容
0ブラック(全体)
1カラーパレット無変更
2ホワイト
3ぐにゃぐにゃ
4カラーパレット移動(全パレットで色nを色n-1にする)
5ブラック(穴)
6ブラック(左から)
  • マップ切替イベントとしては2と4は未使用

移動先座標データ

ビット位置内容
0~8移動先マップID
9~15移動座標オフセット最大値(X座標)
16~22〃 Y座標

移動先レイヤー,向き,BGMのビット列

ビット位置内容
3,4向き
5,6レイヤー
7~14BGM_ID
15BGM変更フラグ
  • BGMを変更するのは変更前と変更後でBGM_IDが異なる場合のみ

0x22CC98+h8(マップオブジェクト)

オフセット内容
0データ数
2オフセットq0
4q1
::
q0マップID0のオブジェクトデータ
q1〃 ID1
::

オブジェクトデータ

ビット位置内容
0~15表示条件(上限)
0x10~0x1F〃 下限
0x20~0x23接触イベント種類
0x24~0x2F接触イベントID
0x30~0x33会話イベント種類
0x34~0x3F会話イベントID
0x40表示条件 0:なし 1:あり
0x41,0x42表示条件種類 0:1bit 1:4bit 2:8bit 3:16bit
0x43,0x44Z位置データ
0x45~0x4C表示条件(下位8ビット)
0x4D
0x4E~0x50透過度 0:不透明 1:半透明 2:透明
0x51不動フラグ
0x52~0x59グラフィックID
0x5A~0x5Dアニメーションデータ
0x5E
0x5F
0x60~0x69移動データ
0x6A~0x6C
0x6D,0x6E表示条件(上位ビット)
0x80~0x87マップ上の位置(X座標)
0x88~0x8F〃 Y座標

0x58C2B8(技エフェクト等の小アニメ)

オフセット内容
4オフセットr0
8r1
::
r0エフェクト色パレット
r1ブロック1
r2〃 2
::

0x58C2B8+r0(エフェクト色パレット)

オフセット内容
4エフェクト色ID0のパレットデータ
4+0x20〃 ID1
::

0x58C2B8+r1(ブロック1)

オフセット内容
0データ数
4オフセットs0
8s1
::
s0エフェクト集 ブロック1-1
s1〃 1-2
::
  • ブロック1-7に没データ
    • タイムアタック要素のあるビンゴ的ミニゲーム用?
    • LEADY!と表示するエフェクトがある(正しくはREADY)

エフェクト集

オフセット内容
0オフセットt
4データ数
6オフセットu0
8u1
::
u0エフェクト内画像データ1
u1〃 2
::
tアニメーションセット

エフェクト内画像データ

オフセット内容
0マクロタイルID数
2マクロタイルID0の表示位置オフセット(縦方向)
4〃 横方向
6〃 タイル数
8〃 データ位置オフセット
10マクロタイルID1
::
  • フィールドオブジェクトのデータ構造と似ている

アニメーションセット

オフセット内容
0アニメーションID数
2オフセットv0
4v1
::
v0アニメーションID0内のキーフレームID数
v0+2〃 キーフレームID0のデータ
v0+6〃 キーフレームID1のデータ
::

キーフレームデータ

オフセット内容
0表示画像ID
2表示長さ

0x58C2B8+r4(ブロック4)

オフセット内容
0データ数
4エフェクトID0の各種データ
56〃 ID1
::
  • 1データ52バイト
  • エフェクト表示のためのデータ(組み合わせ等?)
  • 味方PTの技エフェクトはまずこのブロック4を参照する
    敵PTの場合も敵PTオフセット部分のブロック4を参照する

0x60350C(ラスボスの戦闘中カラーパレット)

  • 敵PT6体のうち1人を除いた5体のパレットだけここに記載されている

0x6035AC(文字アセンブリ)

  • 文字は文字パーツ32個のアセンブリになっている
  • マクロブロックの並び順を考慮すると文字パーツ[0]~[31]と文字画素は以下のように対応する
    X
    Y0~78~15
    0[0][16]
    1[1][17]
    :::
    15[15][31]
  • 文字パーツは基本的にそのIDのビット列と同等のインデックス番号列が呼び出される
    • ビット列をインデックス番号列に変換する処理を省いて結果を直接呼んでいると解釈できる
  • 呼び出すインデックス番号列は使用パレットにより適切に切り替えられる
    • 赤文字等はパレットではなくインデックス番号が変更される
内容データパレット備考
戦闘中のシステムアイコン0x6135CC0x61440Cパレットは2セット(32色)
キャラ顔画像0x6146AC0x625E2C
属性アニメ画像0x626DEC0x628DECパレットは2セット(32色)
アイテム名接頭画像0x62922C0x61440C
ブラウニーブラウンのロゴ0x6244CC0x624ECC背景は0x6242CC~
任天堂のロゴ0x624F0C0x625E0C

キャラ顔画像一覧に移動
属性アニメ画像一覧に移動


0862c910(チャットログ)


0x699AA4(タイトル画像)

オフセット内容
0データ数v
4オフセットw0
8w1
::
4*v+4このブロックの終端のオフセット
w0タイトルロゴ画像データ1("MagicalVacation")のLZ77圧縮データ
w1〃 2("マジカルバケーション")
w2タイトルロゴ画像のカラーパレット(16色×3パレット)
w3タイトル開始直後のレンズフレア画像データ
w4〃 カラーパレット(16色)
w5タイトル画面背景画像パーツ
w6〃 カラーパレット(256色)
w7タイトル画面背景画像アセンブリ

0x6A55E8(プロローグ)

オフセット内容
0データ数v
4オフセットw0
8w1
::
4*v+4このブロックの終端のオフセット
w0タイトル画面無操作待機後のプロローグ画像データ1(LZ77)
w1〃 カラーパレット1(256色)
w2〃 画像データ2(LZ77)
::
w7〃 カラーパレット4(256色)
w8プロローグテキストオフセットリスト
w9プロローグテキスト
w10プロローグ専用文字画像データ
w11〃 カラーパレット(16色)

0x6A55E8+w8(プロローグテキストオフセットリスト)

オフセット内容
w8オフセットx0
w8+2x1
::
w9-2xx
w9+x0タイトル画面無操作待機後のプロローグテキスト1
w9+x1〃 2
w9+x2〃 3
w9+x3〃 4
w9+x4ニューゲームの主人公(男の子)プロローグテキスト1
w9+x5〃 2
::
w9+x10ニューゲームの主人公(女の子)プロローグテキスト1
w9+x11〃 2
::

0x6A55E8+w10(プロローグ専用文字画像データ)
マクロブロック縦2個×横2個×256文字

  0 1 2 3 4 5 6 7 8 9 A B C D E F
00: 一大戦争歴史魔導師法呼者多命落
10:国打撃受相手民伏実験事故死出伝火
20:日後平和人男次走回王小村少年精霊
30:見道石木枝知座込話姿無気味思視老
40:紳士家訪来陸使好仲良目肩集数校長
50:務学通決意寮向語私要職教全世界最
60:自由動 3「」・?!、。っィェォ
70:あアいイうウえエおオかカきキくク
80:けケこコさサしシすスせセそソたタ
90:ちチつツてテとトなナにニぬヌねネ
A0:のノはハひヒふフへヘほホまマみミ
B0:むムめメもモやヤゆユよヨらラりリ
C0:るルれレろロわワをヲんン ヴがガ
D0:ぎギぐグげゲごゴざザじジずズぜゼ
E0:ぞゾだダ隠剣聖ヅでデどドばバびビ
F0:ぶブべベぼボ前パ女ピぷプぺペぽポ

0x6D0A5C(クラスメイト紹介)

オフセット内容
0データ数y
4オフセットz0
8z1
::
4*y+4このブロックの終端のオフセット
z0クラスメイト紹介(キルシュ)画像パーツ(LZ77)
z1〃 カラーパレット(256色)
z2〃 画像アセンブリ
z3ブルーベリー画像パーツ(LZ77)
::
z45クラスメイト紹介テキストオフセットリスト
z46クラスメイト紹介テキスト
z47〃 専用文字アセンブリ
z48〃 カラーパレット(16色)
z49
z50

0x6D0A5C+z45(クラスメイト紹介テキストオフセットリスト)

オフセット内容
z45オフセットg0
z45+2g1
::
z46-2gx
z46+g0クラスメイト紹介(キルシュ)テキスト
z46+g1〃 ブルーベリー
::

0x6D0A5C+z47(クラスメイト紹介専用文字アセンブリ)
32パーツ×256文字

  0 1 2 3 4 5 6 7 8 9 A B C D E F
00: 火魔法得意男子熱血漢正義感強水
10:使女体弱優等生石無口心優風負嫌闇
20:人話好愛真面目雷毒刃一美詩絵画興
30:味音古代機械1万年以上前作木怖獣
40:動物遊大虫○○○○○○○○○○○
50:○○○○○○○○○○○○○○○○
60:○あアいイうウえエおオかカきキく
70:クけケこコさサしシすスせセそソた
80:タちチつツてテとトなナにニぬヌね
90:ネのノはハひヒふフへヘほホまマみ
A0:ミむムめメもモやヤゆユよヨらラり
B0:リるルれレろロわワをヲんン@ヴが
C0:ガぎギぐグげゲごゴざザじジずズぜ
D0:ゼぞゾだダぢヂづヅでデどドばバび
E0:ビぶブべベぼボぱパぴピぷプぺペぽ
F0:ポァィェっッゃゅょャュョー・、。

0x6EFB10(ニューゲームプロローグ画像)

オフセット内容
0データ数h
4オフセットi0
8i1
::
4*h+4このブロックの終端のオフセット
i0ニューゲームプロローグ画像1(LZ77)
i1〃 カラーパレット1
i2〃 画像2
i3〃 カラーパレット2
::

0x733BBC(エピローグ)

オフセット内容
0データ数h
4オフセットi0
8i1
::
4*h+4このブロックの終端のオフセット
i0エピローグ画像1(LZ77)
i1〃 カラーパレット1(256色)
i2〃 画像2
i3〃 カラーパレット2
::
i12主人公エピローグ画像1
i13〃 カラーパレット1(16色)
::
i46エピローグテキストのオフセットリスト
i47エピローグテキスト
i48エピローグ専用文字アセンブリ
i49〃 カラーパレット(16色)

0x733BBC+i48(エピローグ専用文字アセンブリ)
32パーツ×416文字

  0 1 2 3 4 5 6 7 8 9 a b c d e f
000: 憑魔法使間宿主噂広侵略戦争準備
010:進者意向動彼対等渡合力感支配下半
020:年要仲刃ャゅ看守伝投獄姉擁派閥国
030:掌握単身幽閉面会訪日最後決覚悟目
040:前現小少ュ口言葉何満足聞涙拘束解
050:ょ流二度無20続平和手我人公学校
060:教互助新時代改革更強敵求出大陸踏
070:破3以上ョ跡ー説残自在移術冒険火
080:皮及風87才没各1称号得死様々土
090:地名呪・方、融旅数多倒病村救経験
0a0:中知識見情報一冊本届関詰重源。消
0b0:息誰「」あアいイうウえエおオかカ
0c0:きキくクけケこコさサしシすスせセ
0d0:そソたタちチつツてテとトなナにニ
0e0:ぬヌねネのノはハひヒふフへヘほホ
0f0:まマみミむムめメもモやヤゆユよヨ
  0 1 2 3 4 5 6 7 8 9 a b c d e f
100:らラりリるルれレろロわワをんンヴ
110:がガぎギぐグげゲごゴざザじジずズ
120:ぜゼぞゾだダぢヂづヅでデどドバビ
130:ブベボパピプペポっッァィゥェォゃ
140:界英雄美女浮水研究親交深卒業近丘
150:鳥声過歴史政治哲講師基金作集安全
160:暮保護区格闘技組独帽子住匠珍入貧
170:供分与臨海来事枚絵描起語結婚帰熱
180:血漢夫待送造岸打行不明博士書外島
190:物協然古家相棒加論文発表びぼ世 

0x77BA3C(クラスメイトエピローグ画像)

オフセット内容
0データ数h
4オフセットi0
8i1
::
4*h+4このブロックの終端のオフセット
i0エピローグ画像(キルシュ)(LZ77)
i1〃 カラーパレット(16色)
i2〃 タイル配置
i3〃 ブルーベリー
::
i12〃 ペシュ
i13
i14
i15
i16〃 カラーパレット
i17〃 配置
i18〃 レモン
::
  • クラスメイト並び順的にガナッシュの位置にはペシュのオフセットが記載

0x790E60(メニュー枠画像)

オフセット内容
0データ数h
4オフセットi0
8i1
::
4*h+4このブロックの終端のオフセット
i0ウィンドウの画像データ
i1〃 パレット
i2ウィンドウタイトルの画像データ
i3〃 パレット
i4ウィンドウタイトル(通信アイテム交換用?)1
i5〃 2
  • パレットの中身は2つとも同一

0x7924C0(味方キャラ画像)

オフセット内容
0データ数j
4オフセットk0
8k1
::
4*j+4このブロックの終端のオフセット
k0小さいキャラ顔画像データ1
k1〃 2
k2〃 3
k3カラーパレット1
k4〃 2
k5〃 3
k6後姿(フォーメーション用)画像データ1
k7〃 2
k8〃 3
k9メニュー用画像データ
k10〃 カラーパレット
  • ミニアイコンは魔バスのパーティ操作や極意セット時に使用
  • パレットはミニアイコンとキャラ後姿で共用
  • 各リストは最大16キャラ分のデータを含む
    リスト内容備考
    1クラスメイト(オリーブまで)
    2セサミ,マジックドール8種パレットは9キャラ分のみ
    3放浪キャラ,主人公(闇,光)

0x7A322C(ニューゲーム画像)

オフセット内容
0データ数m
4オフセットn0
8オフセットn1
::
4*m+4このブロックの終端のオフセット
n0ニューゲームのメニュー画像データ
n1〃 カラーパレット
n2濁点と半濁点画像?
n3グレーアウト文字(漢字/ぬ)カラーパレット
n4ニューゲーム主人公の背景画像
n5〃 カラーパレット
n6主人公画像パレット
n7主人公(男の子)画像データ(LZ77)
n8〃 女の子

0x7A715C(主人公画像)

オフセット内容
0データ数p
4オフセットq0
8q1
::
4*p+4このブロックの終端のオフセット
q0主人公(男の子)画像データ
q1〃 カラーパレット
q2主人公(女の子)画像データ
q3〃 カラーパレット
q4闇主人公(男の子)画像データ
q5〃 カラーパレット
q6闇主人公(女の子)画像データ
q7〃 カラーパレット
q8光主人公(男の子)画像データ
q9〃 カラーパレット
q10光主人公(女の子)画像データ
q11〃 カラーパレット
  • フィールド上の移動やアミーゴ時のアニメ差分が含まれる

0x7C2254(システムテキスト)

オフセット内容
0データ数r
4オフセットs0
8s1
::
4*r+4このブロックの終端のオフセット
s0定型文オフセットリスト
s1定型文
s2select説明文オフセットリスト
s3select説明文
s4魔法の手帳オフセットリスト
s5魔法の手帳
s6モンスター図鑑オフセットリスト
s7モンスター図鑑
s8種族図鑑オフセットリスト
s9種族図鑑
s10MD辞典オフセットリスト
s11MD辞典
s12漢字の読みオフセットリスト
s13漢字の読み
s14ニューゲームの属性紹介オフセットリスト
s15ニューゲームの属性紹介

0x7C2254+s0(定型文オフセットリスト)

オフセット内容
s0オフセットt0
s0+2t1
::
s1-2tx
s1+t0定型文1
s1+t1〃 2
::
  • 他リストも同様

0x7DB750(文字パーツ)

開始アドレス主な使用インデックス番号
0x7DB7500
0x7DBB501
::
0x7DF35015

没ネタ「タル船遊泳」についての考察

小ネタに移動