Tactics Ogre - Let Us Cling Together
Tactics Ogre Memory Map
Offset | Description | *m |
---|---|---|
0059 | BGM | |
0091 | 戦闘ユニットID | |
055D | ブルーチームコントローラ1 | |
055E | レッドチームコントローラ1 | |
055F | ブルーチームコントローラ2 | |
0560 | レッドチームコントローラ2 | |
05BF | 攻撃処理の種類 4:魔法 6 | |
~~~~ | ~ | ~ |
0603 | 8bit | |
0604 | 8bit | |
0643 | 8bit | |
0644 | 8bit | |
0683 | 8bit | |
0684 | 8bit | |
06C3 | 8bit | |
06C4 | 8bit | |
0703 | 敵味方別ユニットカラー | 8bit |
0704 | ユニットグラ更新用グラフィック表示OFFフラグ? | 8bit |
0743 | 8bit | |
0743 | 8bit | |
0744 | 8bit | |
0783 | 8bit | |
0783 | 8bit | |
0784 | 8bit | |
07C3 | 8bit | |
~~~~ | ~ | ~ |
0803 | 16bit | |
~~~~ | ~ | ~ |
0843 | 8bit | |
0844 | 8bit | |
0883 | 8bit | |
0884 | 8bit | |
08C3 | 8bit | |
08C4 | 8bit | |
0903 | 8bit | |
0904 | 8bit | |
~~~~ | ~ | ~ |
0943 | 16bit | |
0983 | 16bit | |
~~~~ | ~ | ~ |
0A03 | 8bit | |
0A04 | キャラx座標 | 8bit |
0A43 | 8bit | |
0A44 | キャラy座標 | 8bit |
0A83 | 8bit | |
0A84 | キャラ高さ(0.5区切り) | 8bit |
0AC3 | 8bit | |
0AC4 | 8bit | |
0B03 | 8bit | |
0B04 | 8bit | |
0B43 | 8bit | |
0B44 | 8bit | |
0B83 | 8bit | |
0B84 | 8bit | |
0BC3 | 8bit | |
0BC4 | 8bit | |
~~~~ | ~ | ~ |
0C03 | 16bit | |
~~~~ | ~ | ~ |
0C43 | ステータス画面上敵味方別ユニットカラー | 8bit |
0C44 | 8bit | |
~~~~ | ~ | ~ |
16BC | 現在位置 | |
16BE | マップID1 | |
16C0 | マップID2 | |
16C2 | 死者の宮殿階数 | |
16C4 | 実マップID | |
16C5 | ||
16C6 | ||
16C8 | マップx座標の範囲 | |
16CA | マップy座標の範囲 | |
16CC | 最大ster? | |
16D6 | ||
16EC | 選択パネルの範囲2ずつ | |
16F2 | ||
1789 | エフェクト番号/埋もれた財宝 | |
178A | ||
178C | エフェクト回数?(効果4、範囲8) | |
178E | エフェクト詳細 | |
1790 | 2A12Aの値 | |
1791 | (29F13h)/16 AND 0Fh | |
1792 | ||
17A0 | 追加効果ID | |
17A1 | ||
17A8 | ||
17AC | ||
17AE | キャラ(戦闘画面) | |
17AF | クラス(戦闘画面) | |
17D6 | アラインメント(戦闘画面) | |
17D7 | エレメント(戦闘画面) | |
17FE | Lv(戦闘画面) | |
17FF | 取得済Exp(戦闘画面) | |
1826 | Hp(戦闘画面) | |
184E | MHp(戦闘画面) | |
1876 | Mp(戦闘画面) | |
189E | MMp(戦闘画面) | |
18C6 | Str(戦闘画面) | |
18EE | Int(戦闘画面) | |
1916 | Agi(戦闘画面) | |
193E | Dex(戦闘画面) | |
1966 | Vit(戦闘画面) | |
198E | Mem(戦闘画面) | |
19B6 | Luk(戦闘画面) | |
19B7 | 忠誠度(戦闘画面) | |
19DE | キャラ状態*3 | |
19DF | キャラ状態2?*3 | |
1A06 | 獲得Exp(戦闘画面) | |
1A07 | ||
1A2E | 敵味方(戦闘画面) | |
1A2F | キャラ番号(戦闘画面) | |
1A56 | 所属ユニオン(戦闘画面) | |
1A57 | 所属民族(戦闘画面) | |
1A7E | 左上の装備 (戦闘画面) | |
1A7F | 右上の装備 (戦闘画面) | |
1AA6 | 左下の装備 (戦闘画面) | |
1AA7 | 右下の装備 (戦闘画面) | |
1ACE | 1番目の魔法・SP (戦闘画面) | |
1ACF | 2番目の魔法・SP (戦闘画面) | |
1AF6 | 3番目の魔法・SP (戦闘画面) | |
1AF7 | 4番目の魔法・SP (戦闘画面) | |
1B1E | 左上装備アイテムの状態 | |
1B1F | 右上装備アイテムの状態 | |
1B46 | 左下装備アイテムの状態 | |
1B47 | 右下装備アイテムの状態 | |
1B6E | キャラの向き | |
1B6F | ||
~~~~ | ~ | ~ |
1B96 | 残りWT | 16bit |
1BBE | 16bit | |
1BE6 | 16bit | |
1C0E | 16bit | |
1C36 | 16bit | |
1C5E | 16bit | |
1C86 | 16bit | |
1CAE | 16bit | |
~~~~ | ~ | ~ |
1CD6 | キャラx座標 | 8bit |
1CD7 | キャラy座標 | 8bit |
~~~~ | ~ | ~ |
1CFE | 行動ポイント | 16bit |
~~~~ | ~ | ~ |
1D26 | 作戦*2 | 8bit |
1D27 | 作戦対象キャラ | 8bit |
1D4E | 殺害人数 | 8bit |
1D76 | 8bit | |
1D77 | 8bit | |
~~~~ | ~ | ~ |
1D9E | 16bit | |
~~~~ | ~ | ~ |
1DC6 | キャラ高さ(1区切り) | 8bit |
1DC7 | 移動タイプ | 8bit |
1DEE | 移動力 | 8bit |
1DEF | 425ADに対応 | 8bit |
1E17 | 8bit | |
~~~~ | ~ | ~ |
1E3E | 座標データにおける戦闘ユニットID? | 16bit |
~~~~ | ~ | ~ |
1E66 | クラス(汎用) | 8bit |
1E67 | エレメント(汎用) | 8bit |
1E68 | Lv(汎用) | 8bit |
1E69 | 取得済Exp(汎用) | 8bit |
1E6A | Hp(汎用) | 8bit |
1E6C | MHp(汎用) | 8bit |
1E6E | Mp(汎用) | 8bit |
1E70 | MMp(汎用) | 8bit |
1E72 | Str(汎用) | 8bit |
1E7A | Vit(汎用) | 8bit |
1E74 | Int(汎用) | 8bit |
1E7C | Men(汎用) | 8bit |
1E76 | Agi(汎用) | 8bit |
1E78 | Dex(汎用) | 8bit |
1E7E | Luk(汎用) | 8bit |
1E7F | アラインメント(汎用) | 8bit |
1E83 | 左上装備(汎用) | 8bit |
1E84 | 右上装備(汎用) | 8bit |
1E85 | 左下装備(汎用) | 8bit |
1E86 | 右下装備(汎用) | 8bit |
1E87 | 1番目魔法・SP(汎用) | 8bit |
1E88 | 2番目魔法・SP(汎用) | 8bit |
1E89 | 3番目魔法・SP(汎用) | 8bit |
1E8A | 4番目魔法・SP(汎用) | 8bit |
1E8F | 所属ユニオン(汎用) | 8bit |
1E90 | 所属民族(汎用) | 8bit |
1E9D | 忠誠度(汎用) | 8bit |
1E9F | キャラ(汎用) | 8bit |
1EA1 | 天気? | 8bit |
1EA2 | 天気 | 8bit |
1EA3 | 8bit | |
1EE7 | 8bit | |
1EF0 | 使用武器・スペシャルID | 8bit |
~~~~ | ~ | |
7E2000 | ||
7E4000 | ||
7E31FB | 雇用ユニットのクラス | |
7E3203 | 雇用ユニットの紹介料 | |
7E3B38 | 両手アイテム装備フラグ | |
7E3B39 | 片手アイテム装備フラグ | |
7E3B3A | 指輪装備フラグ | |
7E3B3B | 兜装備フラグ | |
7E3B3C | 首輪装備フラグ | |
7E3B3D | 鎧装備フラグ | |
7E3B3E | 靴装備フラグ | |
7E40A7 | 戦闘会話の名前(最初はFFFF) | |
7E40B7 | 戦闘会話の始め(「) | |
7EB2A4 | 効果? | |
7EB2AC | キャラ(編成画面) | |
7EB2AD | クラス(編成画面) | |
7EB2F2 | アラインメント(編成画面) | |
7EB2F3 | エレメント(編成画面) | |
7EB338 | Lv(編成画面) | |
7EB339 | 取得済Exp(編成画面) | |
7EB37E | Hp(編成画面) | |
7EB3C4 | MHp(編成画面) | |
7EB40A | Mp(編成画面) | |
7EB450 | MMp(編成画面) | |
7EB496 | Str(編成画面) | |
7EB4DC | Vit(編成画面) | |
7EB522 | Int(編成画面) | |
7EB568 | Men(編成画面) | |
7EB5AE | Agi(編成画面) | |
7EB5F4 | Dex(編成画面) | |
7EB63A | Luk(編成画面) | |
7EB63B | 忠誠度(編成画面) | |
7EB680 | 所属ユニオン(編成画面) | |
7EB681 | 所属民族(編成画面) | |
7EB6C6 | 左上の装備(編成画面) | |
7EB6C7 | 右上の装備(編成画面) | |
7EB70C | 左下の装備(編成画面) | |
7EB70D | 右下の装備(編成画面) | |
7EB752 | 1番目魔法・SP(編成画面) | |
7EB752 | 2番目魔法・SP(編成画面) | |
7EB798 | 3番目魔法・SP(編成画面) | |
7EB798 | 4番目魔法・SP(編成画面) | |
7EBA77 | スナップドラゴン剣名前の定義 | |
7EBAAA | 戦闘時の敵の名前 | |
7EBB54 | ユニオン名 | |
7EBB65 | ||
7EBD86 | 年月日 | |
7EBD89 | トレーニングや戦闘の区別 | |
7EBD8A | 軍資金 | |
7EBD92 | 戦死者数 | |
7EBD94 | スナップドラゴン剣属性 | |
7EBD95 | スナップドラゴン剣WT | |
7EBD96 | スナップドラゴン剣Str | |
7EBD98 | スナップドラゴン剣Int | |
7EBD9A | スナップドラゴン剣Agi | |
7EBD9C | スナップドラゴン剣Dex | |
7EBD9E | スナップドラゴン剣Vit | |
7EBDA0 | スナップドラゴン剣Men | |
7EBDA2 | スナップドラゴン剣Luc | |
7EBDA3 | スナップドラゴン剣攻撃効果 | |
7EBDC4-7EBE43 | マップビット | |
7EBE4C | ||
7EBE4E | キャラ | |
7EBE4F | クラス | |
7EBE76 | 戦闘ID | |
7EBE80 | ||
7ED2DF | 使用アイテム・スペシャルID | |
7ED2E0 | 戦闘中の行動 | |
7ED35F | MISSフラグ | |
7ED360 | ノックバックフラグ | |
7ED3DF | 指定パネルの位置,マップ座標用[2] | |
7ED3E1 | 攻撃効果[2]*1 | |
7ED3E5 | 追加効果[2]*1 | |
7EF3DF | 物理攻撃予想ダメージ | |
7EF3E0 | 魔法攻撃予想ダメージ | |
7EF3E1 | 攻撃予想命中率 | |
7EF3E3 | 反撃予想ダメージ | |
7EF3E5 | 反撃予想命中率 | |
7EFBCF-7EFBEE | ||
7EFC79 | 主人公誕生月 | |
7EFC9F | 主人公誕生日 | |
7EFCAC | カオスフレーム | |
7F8000 | ||
7F9800 | ||
7FB000 | ||
7FC800 | ster | |
7FCC00 | 地形 | |
7FD000 | 2/4パネルグラフィック | |
7FD400 | パネルグラフィック | |
7FD800 | カーソルの高さ | |
7FDC00 | キャラの位置 | |
7FE000 | 画面に関して1 | |
7FEC00 | 画面に関して2 | |
7FF800 |
*1 効果は4ずつ離れてる.内容的に魔法・SPの効果と同じ
Value | Description |
---|---|
0000 | (なし) |
0004 | (処理停止) |
0008 | MP追加ダメージ |
000C | HP追加ダメージ |
0010 | HP回復? 00に値 |
0014 | MP追加ダメージ |
0018 | 死亡 |
001C | ? |
0020 | 石化 |
0024 | 毒 |
0028 | 麻痺 |
002C | 睡眠 |
0030 | 魅了 |
0034 | 石化回復 |
0038 | 毒回復 |
003C | 麻痺回復 |
0040 | 睡眠回復 |
0044 | 魅了回復 |
0048 | WT0 |
004C | クイック |
0050 | スロウ |
0054 | ストップ |
0058 | パワーダウン |
005C | パワーアップ |
0060 | ? |
0064 | ? |
0068 | ? |
006C | ? |
0070 | ? |
0074 | ? |
0078 | ノックバック |
007C | ? |
0080 | ? |
00C0 | miss |
00C4 | HP追加ダメージ |
00CC | 死亡 |
00E0 | ガード |
00E4 | LvUP |
00E8 | HP追加ダメージ |
00EC | ? |
00F0 | 麻痺回復 |
00F4(48) | より↑危険 |
*2
Value | Description |
---|---|
00 | マニュアル |
01 | 突撃 |
02 | 攻撃援護 |
03 | 回復援護 |
04 | 避難 |
05 | トレジャー拾得 |
06 | 待機 |
07 | 何もしない |
11 | 鬼神のごとく戦え |
12 | 友の影となれ |
13 | 冥き生命を救え |
14 | 我が魂を惜しめ |
15 | 虎児を得よ |
*3
19DE
Value | Description |
---|---|
01 | 復活 |
02 | 石化 |
04 | スタン |
08 | 睡眠 |
10 | 毒 |
20 | スロウ |
40 | クイック |
80 | ストップ |
19DF
Value | Description |
---|---|
01 | チャーム |
02 | |
04 | |
08 | |
10 | |
20 | |
40 | 透明 |
80 | ダメージモーション |
Unknown RAM
Cルートを最初から通しでクリアするまでプレイして変化が何も無かったRAMのリストです。 さらにプログラム領域の逆汗結果からGrep検索して出てきたRAMアドレスを差し引いています。 プレイしている間使われなかっただけかもしれないので、使えるかどうか不明。 7E2000
以降はどうたっかは自分でも不明。
008C おまけパッチ2で使用
008D TO_EXで使用
00D0
00D1
00D2
00D3
00D4
00D5
00EE
00EF
00F0
00F1
00F2
0553
0554
0555
0556
0557
0558
05CD
05CE
05CF
05D0
05D1
05D2
05D3
05D4
05D5
05D6
05D7
05D8
05F2
05F3
07C4
07C6
07C8
07CA
07CC
07CE
07D0
07D2
07D4
07D6
07D8
07DA
07DC
07DE
07E0
07E2
07E4
07E6
07E8
07EA
07EC
07EE
07F0
07F2
07F4
07F6
07F8
07FA
07FC
07FE
0802
/*
0CB7 ここからは使わない方が無難
0CB8 一時的なデータ保存に使うなら良いかも
0CB9
0CBA
0CBB
0CBC
0CBD
0CBF
0CC0
0CC1
0CC2
0CF7
0CF8
0CF9
0CFA
0CFB
0CFC
0CFD
0CFE
0CFF
0D00
0D01
0D02
0D3B
0D3C
0D3D
0D3E
0D3F
0D40
0D41
0D42
0D77
0D78
0D79
0D7A
0D7B
0D7C
0D7D
0D7E
0D7F
0D80
0D81
0D82
0DB7
0DB8
0DB9
0DBA
0DBB
0DBC
0DBD
0DBE
0DBF
0DC0
0DC1
0DC2
0DF7
0DF8
0DF9
0DFA
0DFB
0DFC
0DFD
0DFE
0DFF
0E01
0E37
0E38
0E3B
0E3C
0E3F
0E40
0EB5
0EB6
0EB7
0EB8
0EB9
0EBA
0EBB
0EBC
0EBD
0EBE
0EBF
0EC0
0EC1
0EC2
0EC3
0EC4
0F31
0F32
0F33
0F34
0F35
0F36
0F37
0F38
0F39
0F3A
0F3B
0F3C
0F3D
0F3E
0F3F
0F40
0F41
0F43
0F44
0F45
0F46
0F47
0F48
0FFB
0FFC
0FFD
0FFE
0FFF
1001
1002
1003
1004
1005
1006
1007
1008
10C7
116F
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
117A
117B
117C
117D
117E
117F
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
118B
118F
1191
1193
1195
1197
1199
119B
119D
119F
11A1
11A3
11A5
11A7
11A9
11AB
11AD
11AF
11B1
11B3
11B5
11B7
11B9
11BB
11BD
11BF
11C1
11C3
11C5
11C7
11CC
11CD
11D8
11D9
11DA
11DB
11DC
11DD
11DE
11DF
11E0
11E1
11E2
11E3
11E4
11E5
11E6
11E7
11E8
11E9
11EA
11EB
11EC
11ED
11EE
11EF
11F8
11F9
1200
1202
120E
120F ここまで
*/
124A
16EE
16EF
16F0
16F1
1763
176C
177E
1787
1788
1D4F TO_EXで使用
1D51 TO_EXで使用
1D53 TO_EXで使用
1D55 TO_EXで使用
1D57 TO_EXで使用
1D59 TO_EXで使用
1D5B TO_EXで使用
1D5D TO_EXで使用
1D5F TO_EXで使用
1D61 TO_EXで使用
1D63 TO_EXで使用
1D65 TO_EXで使用
1D67 TO_EXで使用
1D69 TO_EXで使用
1D6B TO_EXで使用
1D6D TO_EXで使用
1D6F TO_EXで使用
1D71 TO_EXで使用
1D73 TO_EXで使用
1D75 TO_EXで使用
/*
1EB0 この辺りも使わない方が良いかも
1EB1
1EB2
1EB3
1EB4
1EB5
1EB6
1EB7
1EB8
1EB9
1EBA
1EBB
1EBC
1EC0
1EC1
1EC2
1EC3
1EC4
1EC5
1EC6
1EC7
1EC8
1EC9
1ECA
1ECB
1ECC
1ECD
1ECE
1ECF
1ED1
1ED2
1ED3
1ED4
1ED5
1ED6
1ED7
1ED8
1ED9
1EDA
1EDB
1EDC
1EDD
1EDE
1EDF
1EE0
1EE1
1EE2
1EE3
1EE4
1EE5
1EED
1EEE
1EEF
1EF4
1EF5
1EFA
1EFB
1EFC
この辺りからスタック領域
スタックポインタの範囲内にあるデータを触らなければ大丈夫?
ROM Map
Offset | Description |
---|---|
0038D-0038E |
天候変化カウント戦闘開始時(Defaultは1000WT) |
0D6EB |
? |
0D6ED |
? |
0EB96 |
顔グラフィック |
1034D-1034E |
毒カウント初期値(毒状態になった直後、Defaultは200) |
10388~10389 |
睡眠状態の効果時間 |
10471~10472 |
クイックムーブの効果時間 |
104AC~104AD |
スロウムーブの効果時間 |
104F3~104F4 |
ドミニオンの効果時間 |
2DC0C~2DC0D |
ヒート&メルトウェポン効果時間 |
151EB |
クラスチェンジ画面グラフィック |
19D60-19D64 |
弓の放物線の射出角度? |
20715 |
? |
2263F |
22953対応 (((2263Fh) - A953) / 2 + キャラの向き / 2 + 2 ) * 2 で変動 (4 バイトずつ) |
22641 |
ユニットグラフィック (4バイトずつ) |
22642 |
ユニットパレットかもしれない? |
22883-22952 |
対応 |
22953-22B6D |
対応アドレス |
22B6E |
? |
244E7 |
1EE7対応 |
244EB |
1EE7対応 |
267F3 |
? |
28E75 |
? |
29093 |
? |
2909D |
249AC9対応 |
29526 |
? |
29F13 |
1789/2対応 |
29F7E |
エフェクト表示方法 |
2A054 |
エフェクト表示回数? |
2A12A |
? |
2A700 |
? |
2BD85 |
? |
306C2 |
16BE*2/ |
306F2 |
16BE*2/ |
30722 |
? |
32546 |
範囲パネル数[3] |
32560 |
範囲パネルの位置 |
334BB |
天候/魔法・SPのRa天候補正1? |
334C0 |
天候/魔法・SPのRa天候補正2? |
40C32 |
魔法・SP/範囲の有無 |
40CC8 |
魔法・SP/効果 |
40D5E |
魔法・SP/追加効果1 |
40DF4 |
魔法・SP/追加効果2 |
40E8A |
魔法・SP/敵味方やアンデッド判定 |
40F20 |
魔法・SP/敵味方やアンデッド判定2? |
40FB6 |
魔法・SP/HIT率算出方法 |
4104C |
魔法・SP/追加効果1のHit率算出方法 |
410E2 |
魔法・SP/追加効果2のHit率算出方法 |
41178 |
魔法・SP/効果値計算方式 |
4120E |
魔法・SP/追加効果値1計算方式 |
412A4 |
魔法・SP/追加効果値2計算方式 |
4133A |
魔法・SP/攻撃魔法SPの属性 |
413D0 |
魔法・SP/追加効果1の対象変化 |
41466 |
魔法・SP/追加効果2の対象変化 |
414FC |
41628対応アドレス |
41628 |
魔法・SP/攻撃力のRaRd補正 |
4174E |
41878対応アドレス |
41878 |
魔法・SP/命中率RaRd補正? |
4194E |
41A70対応アドレス |
41A70 |
? |
41B07 |
成仏スペシャルに関わる何か?(ここで成仏と消滅を分類してる希ガス) |
41B9D |
魔法・SP/敵リーダーに対する効果の有無 |
41C33 |
魔法・SP/殺害数カウントする攻撃効果 |
41C6E |
EL/アイテムEL補正 |
41C87 |
AL/アイテム聖闇補正 |
41C8D |
AL/天候補正 |
41CAB |
? |
425C9 |
$B0 (選択ユニットの状態, 03が自軍) / 225F2F 以降にあるパレットデータのどれがどの状態であるか |
4245F |
? |
425E5 |
? |
42665 |
クラス/2 /多分獣とか竜の判定 |
426E5 |
クラス/特技修得レベル 1バイト目にスペシャルID、2バイト目に修得レベル |
42702 |
クラス/基本キャラグラフィック |
427F2 |
クラス/ユニットのパレット |
428F2 |
クラス/種族? |
429E2 |
クラス/固有キャラID |
42AD2 |
クラス/初期クラス 凡用クラスは変えない方がいいかも |
42BC2 |
クラス/エレメント |
42CB0 |
クラス/アラインメント |
42D9E |
クラス(bit)/Lサイズユニットグラフィックフラグ |
42DBE |
クラス/所持できる魔法の数 |
42EAD |
クラス/初期Lv |
42F9B |
クラス/初期HP 2バイト |
430BB |
クラス/HP成長率 |
4314B |
クラス/初期MP 2バイト |
4326B |
クラス/MP成長率 |
432FB |
クラス/初期STR |
4338B |
クラス/STR成長率 |
4341B |
クラス/初期VIT |
434AB |
クラス/VIT成長率 |
4353B |
クラス/初期INT |
435CB |
クラス/INT成長率 |
4365B |
クラス/初期MEN |
436EB |
クラス/MEN成長率 |
4377B |
クラス/初期AGI |
4380B |
クラス/AGI成長率 |
4389B |
クラス/初期DEX |
4392B |
クラス/DEX成長率 |
439BB |
クラス/初期LUK |
43A4B |
クラス/WT |
43ADC |
クラス/物理耐性 |
43B6E |
クラス/風耐性 |
43BFF |
クラス/地耐性 |
43C90 |
クラス/火耐性 |
43D21 |
クラス/水耐性 |
43DB2 |
クラス/聖耐性 |
43E43 |
クラス/闇耐性 |
43ED3 |
? |
43EF4 |
クラス/ダブルアタック可不可 |
43FE3 |
クラス/得意武器 |
440D3 |
クラス/ユニット定義?? |
441C2 |
クラス/投射タイプ 01 投石 02 手裏剣 03 指弾 |
442B1 |
クラス/使用可能魔法タイプ |
443A0 |
クラス/スペシャル1 |
4448F |
クラス/スペシャル2 |
4457E |
クラス/スペシャル3 |
4466D |
クラス/スペシャル4 |
4475B |
クラス/移動タイプ |
44849 |
クラス/歩数 |
44937 |
クラス/忠誠度? |
44A25 |
クラス/天候耐性 |
44B14 |
? |
44D3E |
アイテム種/処理上での種類 |
44F0D |
アイテム種/直接攻撃するフラグ |
44F61 |
アイテム種/投射攻撃するフラグ |
45066 |
? |
45081 |
? |
4509C |
? |
45147 |
スナップ剣開始番号 |
4514B |
スナップ剣終了番号 |
451B9 |
アイテムパレット |
451D9 |
アイテム/種類 |
452C9 |
アイテム/属性 |
453B9 |
アイテム/装備部位 01両手武器 02片手武器(盾含む) 03指輪 04頭装備 05首飾り 06体装備 07足装備 08道具 |
454A9 |
アイテム/装備部位(リスト) 01頭 02手 03体 04靴 05道具 |
4557C |
アイテム/射程 |
45654 |
アイテム/重量 |
4572D |
アイテム/STR |
4580D |
アイテム/INT |
458ED |
アイテム/AGI |
459CD |
アイテム/DEX |
45AAD |
アイテム/VIT |
45B8D |
アイテム/MEN |
45C6D |
アイテム/LUK |
45D4D |
アイテム/物理RES |
45E2D |
アイテム/風RES |
45F0D |
アイテム/炎RES |
45FED |
アイテム/地RES |
460CD |
アイテム/水RES |
461AD |
アイテム/聖RES |
4628D |
アイテム/闇RES |
4646F |
アイテム/値段(2バイト) 2桁目から |
46612 |
アイテム/STR成長率UP |
466E4 |
アイテム/INT成長率UP |
467B4 |
アイテム/AGI成長率UP |
46884 |
アイテム/DEX成長率UP |
46956 |
アイテム/VIT成長率UP |
46A26 |
アイテム/MEN成長率UP |
46AF6 |
アイテム/LUK成長率UP |
46BC5 |
アイテム/特性(攻) |
46CB5 |
アイテム/使用効果 |
46D85 |
アイテム/特性(防) 07恐怖 08野獣 09竜 0A人形 0C対竜 0D対石化 0E対麻痺 0F耐眠 11対異常 12対魔 |
46E75 |
アイテム/特性(常) 01飛行 02ワープ 03溶岩 04水上 05HP回復 06MP回復 07恐怖 08野獣 09竜 0A人形 |
46F66 |
アイテム/武器種(射程?) 00通常武器 銃、アイテム含む 01槍 02弓 、凡用銃含む 03鞭 |
47047 |
魔法・SP/種類と消費MP |
47172 |
魔法・SP/属性 |
47208 |
魔法・SP/射程 |
4729E |
魔法・SP/攻撃方法 |
47431 |
魔法・SP/行使可能ユニット |
474A1 |
魔法 ・ SP / 2 / 上位4bitが4以上だとダメージ計算が必殺技 (STR + Dex / 2) になる |
474F1 |
魔法・SP/2 / |
475C4 |
? |
49231 |
Lサイズユニット出撃制限人数 |
57885 |
アイテム/ |
582DD |
マップID算出補数 |
582F5 |
? |
58407 |
? |
5841F |
実マップID/5875D選択用 |
58677-58693 |
地形効果表示(00:表示しない、01:表示する) |
58695-5870B |
地形効果(風火地水) |
5870D-5872A |
地形攻撃効果 |
5872B |
攻撃効果65の対天気地形攻撃効果 |
58730 |
攻撃効果66の対天気地形攻撃効果 |
58735-58752 |
地形防御効果 |
58753 |
防御効果65の対天気地形攻撃効果 |
58758 |
防御効果66の対天気地形攻撃効果 |
5875D |
マップ毎の地形とパネルグラフィックの対応関係 |
58DDD |
範囲パネルグラフィック? |
59911 |
? |
59695 |
? |
59D52 |
現在地/2 /ランダム戦闘の発生のしやすさ |
59F0F |
敵雑魚ユニット出撃数 |
5A18F |
戦闘BGM |
64279 |
敵名前アドレス |
64F55 |
? |
6972D |
向きによる補正値 |
6A9AA |
? |
6B764 |
? |
6C1B3-6C1BD |
? |
6C220-6C229 |
反撃可能アイテム種 |
70000 |
エフェクトデータアドレスその1 |
780BD |
? |
D0880 |
戦闘マップに関して |
D88E4 |
? |
D894D |
? |
D8979 |
? |
D8911 |
? |
EA0CC |
キャラ対応 性別か? |
F1C07 |
16C0/16C0の初期値から決定 |
110000 |
マップデータ1 |
11C1B5 |
? |
11C1B7 |
? |
120000 |
マップデータ2? |
124E38 |
? |
128000 |
? |
129C1F |
マップデータ3 |
133B85 |
マップデータアドレス |
1E8000 |
敵ユニットデータアドレス 7EBE76対応 |
1F4C7D |
イベントデータ共通部分 |
1F8003 |
データアドレス |
20533A |
敵ユニットデータ共通部分 |
20CD80 |
イベントデータアドレス[3] |
249AC9 |
エフェクトデータアドレスその2 |
2FF994 |
財宝関連 |
EEE49 チュートリアル作成関数
03:343B E0 9600 |*ww| cpx.w 0096h // INT + MEN:150
03:3441 E0 2C01 |*ww| cpx.w 012Ch // INT + MEN:300
6:CC87 64 00 // 召喚数カウント用Int+Men値
882A-8946
138837
タインマウスのx,yの大きさ
Topography ID / 地形ID
ID | Description |
---|---|
01 | 地肌 地+2風-2 |
02 | 砂地 水-2火+2 |
03 | 火山灰 水-3火+3 |
04 | 草地 水+1地-2火-1風+2 |
05 | 草むら 水+2地-3火-2風+3 |
06 | 雪原 水+2火-2 |
07 | 岩場 水-1地+2火+1風-2 |
08 | 砂利 水-2地+2火+2風-2 |
09 | 荒地 水-2地+2火+2風-2 |
0A | 湿地 水+2地-3火-2風+3 |
0B | 毒カビ 地+2風-2 |
0C | 溶岩石 水-2地+2火+2風-2 |
0D | タール 水-3水+3 |
0E | 氷原 水+3火-3 |
0F | 水路 水+2火-2 |
10 | 川 水+2火-2 |
11 | 湖 水+2火-2 |
12 | 海 水+2火-2 |
13 | 溶岩 水-3火+3 |
14 | 道 |
15 | 石床 |
16 | 屋根 水-1地-2火+1風+2 |
17 | 石壁 |
18 | 空 |
19 | 穴 |
1A | 城壁内側 |
1B | 城外 |
1C | 木床 水+1地-2火-1風+2 |
1D | 魔方陣 |
1E | ビルネの木 |
1F | 糸杉 |
20 | ブナの木 |
21 | トネリの木 |
22 | ココヤシ |
23 | アナナの木* 水+80地+2火-3風-2 |
24 | トチの木 |
25 | バオバの木 |
26 | ダアラの草 |
27 | ウディガ草 |
28 | 虫喰い草* 水+100地+2火-3風-2 |
29 | 泥穴草 |
2A | イバラ草 |
2B | ワイン樽 |
2C | 水樽 |
2D | 酒樽 |
2E | 船荷の箱 |
2F | 輸送用木箱 |
30 | 貯蔵箱 |
31 | 衣類箱 |
32 | 資材の箱 |
33 | 鍵付き木箱 |
34 | 石炭岩 |
35 | 砂岩 |
36 | 黒輝石 |
37 | 花崗岩 |
38 | 玄武岩 |
39 | ジネの木 |
3A | イチイの木 |
3B | 蛇紋岩 |
3C | れき岩 |
3D | ルクス草 |
3E | ドラン草 |
3F | 警備灯 水+76地+70火-3 進入不可 |
40 | 室内灯 水+74地+85火+1風-2 進入不可 |
41 | 警備灯 |
42 | 室内灯 |
43 | 鉄甲冑 水+74地+85火-1風+2 進入不可 |
44 | 銅甲冑 |
45 | 軽甲冑 |
46 | 重甲冑 |
47 | 白銀甲冑 |
48 | 女神像 |
49 | 腐った木 水+60地+70火-3 進入不可 |
4A | 枯れた木 水+65地+75火-3 |
4B | 焼けた木 |
4C | 噴煙 |
4D | 黄水晶 |
4E | 赤水晶 |
4F | 緑水晶 水+65地+50火-3 進入不可 |
50 | 青水晶 表示無し 進入可 |
51 | 白水晶 |
52 | 騎士像 水+65地+90火-1風-2 |
53 | 戦士像 |
54 | 僧侶像 表示無し 進入可 |
55 | 狂戦士像 表示無し 進入可 |
56 | 戦士像 |
57 | 老人像 |
58 | 騎士 水+55地+85火+1風-2 |
59 | 戦士 表示無し 進入可 |
5A | 僧侶 |
5B | 盗賊 |
5C | 戦士 表示無し 進入可 |
5D | 魔術師 表示無し 進入可 |
5E | がれき |
5F | 石柱 地+72火+80風+2 |
60 | 壷 表示無し 進入可 |
61 | 屋根 表示無し 進入可 |
62 | 石壁 表示無し 進入可 |
63 | 竜門 |
64 | (表示無し) 地+68火+100風+2 進入不可 |
65 | 移動 |
66 | 行動 表示無し 進入可 |
67 | 待機 |
68 | 環境 |
69 | 直接攻撃 |
6A | 投射攻撃 |
6B | 魔法 表示無し 進入可 |
6C | スペシャル 表示無し 進入可 |
6D | アイテム |
6E | 説得 |
6F | (表示無し) 進入可 |
70 | 中断 |
71 | オプション |
72 | 終了 |
73 | (表示無し) |
74 | ショップ |
75 | (表示無し) |
76 | 編成 |
77 | (表示無し) |
78 | データ |
79 | (表示無し) |
7A | セーブ |
7B | ロード 水+22地+65火+76風+70 進入不可 |
7C | (表示無し) 水-100火+74風+85 (表示無し) |
7D | マニュアル |
7E | (表示無し) 進入可 |
7F | (表示無し) 水-100火+74風+85 |
80 | 糸杉(障害物) |
81 | (障害物) |
82 | (障害物) |
83 | (障害物) |
84 | (障害物) |
85 | 石灰岩(障害物) |
86 | (障害物) |
87 | (障害物) |
88 | (障害物) |
89 | 警備灯(障害物) |
8A | 警備灯(障害物) |
8B | (障害物) |
8C | (障害物) |
8D | (障害物) |
8E | (障害物) |
8F | (障害物) |
90 | イチイの木(障害物) |
91 | (障害物) |
92 | (障害物) |
93 | (障害物) |
94 | (障害物) |
95 | (障害物) |
96 | (障害物) |
97 | 花崗岩(障害物) |
98 | (障害物) |
99 | (障害物) |
9A | (障害物) |
9B | (障害物) |
9C | 警備灯(障害物) |
9D | (障害物) |
9E | (障害物) |
9F | (障害物) |
A0 | (障害物) |
A1 | 鉄甲冑(障害物) |
A2 | 銅甲冑(障害物) |
A3 | (障害物) |
A4 | (障害物) |
A5 | (障害物) |
A6 | (障害物) |
A7 | (障害物) |
A8 | (障害物) |
A9 | (障害物) |
AA | (障害物) |
AB | (障害物) |
AC | (障害物) |
AD | (障害物) |
AE | (障害物) |
AF | (障害物) |
B0 | ショップ(障害物) |
B1 | (障害物) |
B2 | (障害物) 下に文字 |
B3 | (障害物) |
B4 | (障害物) |
B5 | (障害物) |
B6 | (障害物) |
B7 | (障害物) |
B8 | (障害物) |
B9 | 虫喰い草(障害物) |
BA | アナナの木(障害物) |
BB | (障害物) |
BC | (障害物) |
BD | (障害物) |
BE | (障害物) |
BF | (障害物) |
C0 | (障害物) |
C1 | (障害物) |
C2 | (障害物) |
C3 | (障害物) |
C4 | (障害物) |
C5 | (障害物) |
C6 | (障害物) |
C7 | (障害物) |
C8 | (障害物) |
C9 | (障害物) |
CA | (障害物) |
CB | (障害物) |
CC | (障害物) |
CD | (障害物) |
CE | ビルネの木(障害物) |
CF | ビルネの木(障害物) |
D0 | (障害物) |
D1 | ビルネの木(障害物) |
D2 | ビルネの木(障害物) |
D3 | (障害物) |
D4 | (障害物) |
D5 | (障害物) |
D6 | (障害物) |
D7 | (障害物) |
D8 | (障害物) |
D9 | (障害物) |
DA | (障害物) |
DB | (障害物) |
DC | (障害物) |
DD | (障害物) |
DE | (障害物) |
DF | 石灰岩(障害物) |
E0 | 室内灯(障害物) |
E1 | (障害物) |
E2 | (障害物) |
E3 | ロード(障害物) |
E4 | (障害物) |
E5 | (障害物) |
E6 | 命のカード(障害物) |
E7 | 糸杉(障害物) |
E8 | (障害物) |
E9 | 命のカード(障害物) |
EA | (障害物) 下に文字 |
EB | (障害物) |
EC | イチイの木(障害物) |
ED | 鉄甲冑(障害物) |
EE | (障害物) |
EF | (障害物) |
F0 | 緑水晶(障害物) |
F1 | (障害物) |
F2 | 戦士像(障害物) |
F3 | (障害物) |
F4 | 石灰岩(障害物) |
F5 | 焼けた木(障害物) |
F6 | (障害物) |
F7 | (障害物) |
F8 | 緑水晶(障害物) |
F9 | (障害物) |
FA | DEX (障害物) |
FB | (障害物) |
FC | (障害物) |
FD | トレジャー(障害物) |
FE | (障害物) |
FF | (障害物) |
Analysis of the Function Start Address / 解析した関数の開始アドレス
$80
攻撃
00:0085 5C 7EAF80 |*ww| jmp \80h,0AF7Eh ;>
魔法
00:0322 20 43E3 |*ww| jsr 0E343h//残りWT
イベント進行?
00:0333 A2 FF1F |*ww| ldx.w 1FFFh
タコ変身
00:086D 8B |*ww| phb
タコ変身
00:0875 BD AE17 |*ww| lda @17AEh,x//キャラ
範囲表示?
00:0916 48 |*ww| pha
初期化
00:214A 8B |*ww| phb
範囲選択時の画面について?
00:2492 8B |*ww| phb
00:2759 5A |*ww| phy
確率計算
00:286F 8B |*ww| phb
29A7,x
00:2943 8B |*ww| phb
擬似正規分布処理
00:2CDF 8B |*ww| phb
確率計算
00:2DC0 48 |*ww| pha
BGM変更?
00:2EF2 8B |*ww| phb
ノーマル進入不可地形のsterを1下げて返す
00:4276 8B |*ww| phb
ノーマル進入不可地形のsterを1下げて返す
00:427E 4A |*ww| lsr a
残りWT決定
00:6355 22 1F9286 |*ww| jsl \86h,921Fh
直接攻撃
00:674D 20 92FA |*ww| jsr 0FA92h//
投射攻撃
00:67AC 20 92FA |*ww| jsr 0FA92h
魔法攻撃
00:6862 22 8AA180 |*ww| jsl \80h,0A18Ah
スペシャル攻撃
00:68D6 20 92FA |*ww| jsr 0FA92h
アイテム使用
00:6975 20 92FA |*ww| jsr 0FA92h
スペシャル攻撃
00:69FB 20 92FA |*ww| jsr 0FA92h
エフェクト表示速度?
00:6B12 7B |*ww| tdc
選択メニューを消す?
00:7363 7B |*ww| tdc
直接攻撃開始
C0/7ABC: A9 00 LDA #$00
投射攻撃開始
C0/7AF1: A9 01 LDA #$01
スペシャル使用開始
C0/7B2B: A9 02 LDA #$02
魔法使用開始
C0/7B55: A9 03 LDA #$03
アイテム使用開始
C0/7B7F: A9 04 LDA #$04
$81
顔リスト
00:EB96 00 00 |*ww| brk.b 00h
解凍プログラム1
00:F79F 8B |*ww| phb
圧縮データ読み出し
00:F860 A0 0100 |*ww| ldy.w 0001h
展開後総バイト数読み込み
00:F86E C2 20 |*ww| rep.b 20h ;m = 16bit
フラグ読み込み
C0/F8A6: A9 FF LDA #$FF//データを8個扱うフラグ
圧縮チェック
00:F8B0 06 06 |*ww| asl !06h//非圧縮フラグを左シフト
非圧縮データ
00:F8B4 BD 0000 |*ww| lda @0000h,x
総バイト数チェック
00:F8BB C4 0E |*ww| cpy !0Eh
8フラグチェック
00:F8BF 06 07 |*ww| asl !07h
圧縮データ
00:F8C5 BD 0000 |*ww| lda @0000h,x
圧縮データバイト数取得
00:F996 6C 0A00 |*ww| jmp (@000Ah) ;>
解凍プログラム2
00:F9B8 8B |*ww| phb
マップデータ読み取り
00:FB56 8B |*ww| phb
$82
A/2*11+B824を1D9E
01:0AF0 4A |*ww| lsr a
A/2*11+B824をX、7EをA
01:0B09 4A |*ww| lsr a
キャラ情報移し替え
01:0B24 8B |*ww| phb
1000制限
01:0BDA C9 E803 |*ww| cmp.w 03E8h
Lvアップ
01:1146 8B |*ww| phb
なんかのアドレス?
01:1618 08 |*ww| php
クラスチェンジ画面の停止ユニット?
01:5090 8B |*ww| phb
クラスチェンジ画面の停止ユニット?
01:5149 A5 A4 |*ww| lda !0A4h
Sサイズクラスの停止グラフィック番号
01:51EB 00 00 |*ww| brk.b 00h
Lサイズクラスの停止グラフィック番号
01:525D 01 00 |*ww| ora (!00h,x)
自軍+敵
01:59AC 8B |*ww| phb
自軍+ゲスト+敵
01:59D0 8B |*ww| phb
敵データ解凍
01:5A8E 8B |*ww| phb
戦闘マップ敵作成
01:5BCF 48 |*ww| pha
自軍戦闘データコピー
01:5C66 8B |*ww| phb
敵作成?
01:5D0F 8B |*ww| phb
敵作成
01:5D19 20 09DA |*ww| jsr 0DA09h//
マップ作成
01:5E25 8B |*ww| phb
$83
追加効果2番目アクション
01:8E7A AE 8C17 |*ww| ldx @178Ch
対象者ナンバー取得
01:93E2 8B |*ww| phb
対象者ナンバー取得
01:93EA C2 20 |*ww| rep.b 20h ;m = 16bit
19526,x
01:9520 AA |*ww| tax
銃系弾道計算
01:97F8 85 00 |*ww| sta !00h
弓系弾道計算
01:9945 85 00 |*ww| sta !00h//0:弓
弓の放物線に関して
01:9D4F C2 20 |*ww| rep.b 20h ;m = 16bit
水系地形チェック
01:9ED2 8B |*ww| phb
水系地形チェック
01:9EDA BF 00CC7F |*ww| lda \7Fh,@0CC00h,x//地形
エフェクト解凍
C1/A498: A9 8E LDA #$8E
座標値獲得
01:AA34 8B |*ww| phb
A44/32 or A04 -> A,X
01:AA3C 7B |*ww| tdc
各種効果へジャンプ
01:B335 3A |*ww| dec a
草焼き
01:EE2D E2 20 |*ww| sep.b 20h ;m = 8bit
魔法・SP効果読み取り
01:F8B0 A2 0000 |*ww| ldx.w 0000h
$84
使用武器グラフィック
02:22F6 85 1E |*ww| sta !1Eh//使用武器
ユニットグラフィック
02:2387 EB |*ww| XBA
ネクロマンシーより
02:25BB EB |*ww| xba
殴るときのグラフィックとか!
02:4314 8B |*ww| phb
殴るときのモーション
02:43CC 8B |*ww| phb
$85
リーンカーネイト1
02:E1D0 8B |*ww| phb
リーンカーネイトで転生するクラス
02:E286 01 0E |*ww| ora (!0Eh,x)
マップ座標値取得
02:E66D 7B |*ww| tdc
装備取得
02:EBDD 7B |*ww| tdc
装備アドレス
02:EC06 7E 1A7F |*ww| ror @7F1Ah,x
敵死亡処理?
02:EC0E 8B |*ww| phb
敵死亡敵リッチも含む?
02:EC36 22 97999B |*ww| jsl \9Bh,9997h//不明
ECADに対応する値
02:EDB4 06 04 |*ww| asl !04h
追加効果1番目アクション
02:EDBE 4B |*ww| phk
AK転生Luk判定と復活転生判定呼び出しin 16bit mode
02:F48E 8B |*ww| phb
復活・転生判定処理
02:F4BC 8B |*ww| phb
敵判定
02:F53A BD 2E1A |*ww| lda @1A2Eh,x//敵味方
聖石判定
C2/F543: A5 A3 LDA $A3
聖石判定
C2/F563: C9 BF CMP #$BF//祝福の聖石
聖石フラグON
02:F56C 68 |*ww| pla
死者の指輪判定
C2/F571: A9 A1 LDA #$A1//死者の指輪
AL判定と判定続行フラグON
02:F58A BD D617 |*ww| lda @17D6h,x//アラインメント
リッチ転生のみ続行フラグON
C2/F594: A9 01 LDA #$01//リッチ転生のみ続行フラグ
初期化
02:F597 7B |*ww| tdc
♀ユニット判定
02:F599 BD D717 |*ww| lda @17D7h,x//エレメント
クラス判定
02:F5A6 64 01 |*ww| stz !01h
AK転生可能クラス
02:F5CF 0C |*ww| 0C//リッチ
リッチ転生可能クラス
02:F5D9 09 |*ww| 09//ウィザード
デニム判定
02:F5E0 BD AE17 |*ww| lda @17AEh,x//キャラ
味方判定
02:F5EF BD 2E1A |*ww| lda @1A2Eh,x//敵味方
転生ステータス判定
02:F5F7 64 01 |*ww| stz !01h
転生ステータス条件
02:F655 72 00 |*ww| adc (!00h)
条件比較対象値のアドレス
02:F671 9E 18 |*ww| 189E//MHP
if キャラ状態/2 setC: 3C -> B1C8
02:F7EE 8B |*ww| phb
$86
*//残りWT
03:0B71 F0 09 |*ww| beq 0B7Ch ;>
*//残りWT
03:0C7C C2 20 |*ww| rep.b 20h ;m = 16bit
*//回復・充魔効果
03:116C 8B |*ww| phb
*//範囲パネル作成
C3/23EB: 8B PHB
*//マップに魔法・SPの範囲が入るかどうか?
03:24D6 A5 00 |*ww| lda !00h
*//魔法・SP範囲作成か!?
03:2BB2 8B |*ww| phb
*//キャラの地形取得
03:2DB7 7B |*ww| tdc
*//水系地形判定
03:2DE1 20 E5AD |*ww| jsr 0ADE5h
*//水系地形判定
03:2DE5 BF 00CC7F |*ww| lda \7Fh,@0CC00h,x//地形
*//スペシャルと範囲用INT+MEN判定
03:33D1 DA |*ww| phx
*//近スペ以外
C3/33F6: 7B TDC
*//魔法SP攻撃補正取得
03:345B 8B |*ww| phb
$87
*//片手装備
03:CE06 A2 0200 |*ww| ldx.w 0002h
*//♀キャラクラスチェンジ?
03:EFB2 20 D1F1 |*ww| jsr 0F1D1h//
*//クラスチェンジ画面の選択カーソル位置
03:F087 AD 661E |*ww| lda @1E66h
**//クラスチェンジ画面の出現ユニットグラフィックに関して?
03:F1DC A0 0000 |*ww| ldy.w 0000h
*//クラスチェンジ可能ユニットの名前とか?
03:F399 AD 661E |*ww| lda @1E66h
*//クラスチェンジ画面移行時のクラスによるカーソルの位置
03:F537 AD 661E |*ww| lda @1E66h
*//♀ユニットクラスチェンジ?
03:F721 22 DFA388 |*ww| jsl \88h,0A3DFh
$88
自軍以外作成
C4/0741: A9 0A LDA #$0A
敵データアドレス設定
04:07C2 8B |*ww| phb
基本キャラグラフィック
04:2112 12 94 |*ww| ora (!94h)
基本キャラグラフィック
04:2138 BD AF17 |*ww| lda @17AFh,x//キャラ
一般キャラと固有キャラの区別
04:23D1 DA |*ww| phx
たくさん割ったり
04:23DF DA |*ww| phx
アンデッド判定?
04:2412 DA |*ww| phx
範囲確認?
04:246D DA |*ww| phx
死亡者?
04:2482 48 |*ww| pha
対獣効果
04:248E 48 |*ww| pha
対竜効果
04:249A 48 |*ww| pha
対ゴーレム効果
04:24A6 48 |*ww| pha
タコ判定
C4/24B2: C9 29 CMP #$29//オクトパス
タコ弱体化
C4/24C6: C9 29 CMP #$29//オクトパス
タコ強化
C4/24E2: C9 29 CMP #$29//オクトパス
スナップドラゴン剣属性
04:4CE5 DA |*ww| phx
アイテムの種類取得
04:4D2B 7B |*ww| tdc
攻撃の種類判定、xには武器の種類
04:4D31 7B |*ww| tdc
アイテム属性取得
04:4D59 DA |*ww| phx
武器射程
04:4D6E 7B |*ww| tdc
重量算出
04:4D95 DA |*ww| phx
アイテムSTR取得
04:4DAF DA |*ww| phx
アイテムINT取得
04:4DC7 DA |*ww| phx
アイテムAGI取得
04:4DE5 DA |*ww| phx
アイテムLuk取得
04:4E5D DA |*ww| phx
アイテム物理RES取得
04:4E78 7B |*ww| tdc
アイテム風RES取得
04:4E84 7B |*ww| tdc
アイテム火RES取得
04:4E90 7B |*ww| tdc
アイテム地RES取得
04:4E9C 7B |*ww| tdc
アイテム水RES取得
04:4EA8 7B |*ww| tdc
アイテム聖RES取得
04:4EB4 7B |*ww| tdc
アイテム闇RES取得
04:4EC0 7B |*ww| tdc
アイテム使用効果
04:4ED2 7B |*ww| tdc
アイテム攻撃特性
04:4ED8 DA |*ww| phx
アイテム防御特性
04:4EED 7B |*ww| tdc
アイテム通常特性取得
04:4EF3 7B |*ww| tdc
武器種別
04:4EF9 7B |*ww| tdc
武器の直接攻撃判定
04:4EFF DA |*ww| phx
投石判定?
04:4F28 DA |*ww| phx
STR取得用直接武器判定-
04:4F7C DA |*ww| phx
STR取得用アクセサリ判定
04:4FA4 DA |*ww| phx
INT取得用攻撃武器判定-
04:4FB8 DA |*ww| phx
DEX取得用攻撃武器判定-
04:4FCC DA |*ww| phx
MEN取得用攻撃武器判定-
04:4FE0 DA |*ww| phx
-
04:4FF4 DA |*ww| phx
防御用VIT-
04:5008 DA |*ww| phx
防御用
04:501C DA |*ww| phx
スペシャル種類
04:50FD DA |*ww| phx
スペシャル消費MP
04:510E DA |*ww| phx
スペシャル消費MP100Limited
04:5121 DA |*ww| phx
スペシャル属性
04:5138 DA |*ww| phx
スナップ剣の処理
04:5144 7B |*ww| tdc
重量算出
04:7571 DA |*ww| phx
$8B
戦闘音楽?
05:9ED3 8B |*ww| phb
$8D
なんかの解凍
06:82D4 8B |*ww| phb
消費MPに関して
06:8C9C DA |*ww| phx
消費MPに関して
06:8CBD DA |*ww| phx
物理攻撃?
06:8D32 A2 BEC8 |*ww| ldx.w 0C8BEh
剣装備取得
06:8EA4 8B |*ww| phb
直接攻撃の種類判定
06:9066 8B |*ww| phb
武器の直接攻撃判定
06:90F6 F0 13 |*ww| beq 910Bh ;>
素手攻撃の種類
06:910C BF D2C088 |*ww| lda \88h,@0C0D2h,x//素手攻撃の種類
攻撃ダメージVa*Ra/100-Vd*Rd/100計算
06:929A 8B |*ww| phb
攻撃値取得
*06:92D1 E9 92 |*ww| 92E9//物理攻撃用STR+DEX/2
防御値取得
*06:92DD 9A 93 |*ww| 939A//物理防御用VIT+STR/2取得
物理攻撃用
06:92E9 7B |*ww| tda
投射攻撃用
06:92F1 7B |*ww| tdc
物理攻撃用
06:9302 20 F6F7 |*ww| jsr 0F7F6h//使用武器Str取得?
物理攻撃用STR+DEX/2
06:9308 A6 0C |*ww| ldx !0Ch
必殺技攻撃用STR+DEX/2取得
06:9324 AF DFD27E |*ww| lda \7Eh,@0D2DFh
魔法・SP用攻撃用Int+MEN/2取得
06:934C A6 0C |*ww| ldx !0Ch
魔法・SP用MEN+STR/3取得
06:9368 A6 0C |*ww| ldx !0Ch
物理防御VIT+STR/2
06:939A A6 0E |*ww| ldx !0Eh
魔法防御VIT+MEN/2
06:93B3 A6 0E |*ww| ldx !0Eh
ダブルアタックway判定
06:93CC AD F01E |*ww| lda @1EF0h
Ra算出 in 8bit mode
06:93EA D4 04 |*ww| pei
Rd算出 in 8bit mode
06:9426 D4 04 |*ww| pei
対竜攻撃効果
06:9452 AF E0D27E |*ww| lda \7Eh,@0D2E0h
対竜防御効果
06:9474 A6 0C |*ww| ldx !0Ch
恐怖効果
06:9491 A6 0C |*ww| ldx !0Ch//攻撃
周囲の恐怖キャラカウント
06:94DF DA |*ww| phx
獣支援効果
06:9519 A6 0C |*ww| ldx !0Ch
獣支援カウント
06:953F DA |*ww| phx
竜支援効果
06:9579 A6 0C |*ww| ldx !0Ch
竜支援カウント
06:95A1 DA |*ww| phx
ゴーレム支援効果
06:95DB A6 0C |*ww| ldx !0Ch
ゴーレム支援カウント
06:9603 DA |*ww| phx
物理攻撃命中処理
06:963D 8B |*ww| phb
回避用能力値取得
06:96CA C2 21 |*ww| rep.b 21h ;m = 16bit
キャラの向きによる修正
06:96EE 5A |*ww| phy
向きによる補正値
06:972D 32 |*ww| 50
Luc計算
06:9731 A6 0E |*ww| ldx !0Eh//攻撃者ナンバー
way判定+盾攻撃?
06:9746 AF E0D27E |*ww| lda \7Eh,@0D2E0h
素手攻撃
06:977D C9 11 |*ww| cmp.w 11h//素手
投石・手裏剣・指弾
06:97AD C9 01 |*ww| cmp.w 01h//投射攻撃
Au-Duの重量差
06:97F1 8B |*ww| phb
攻撃処理並びにクリティカル判定?
06:9844 8B |*ww| phb
ダメージ算出
06:98A7 A6 0C |*ww| ldx !0Ch
攻撃処理
06:98E4 8B |*ww| phb
HP,MP制限in 16bit mode
06:997A A5 02 |*ww| lda !02h
地形攻撃効果修正
06:9A58 A6 0C |*ww| ldx !0Ch
使用武器属性一致修正
06:9A87 D4 00 |*ww| pei
天気による変動
06:9AAF D4 00 |*ww| pei//!00hをスタックへ
得意武器修正
06:9AE1 7B |*ww| tdc
地形防御効果
06:9B0E A6 0E |*ww| ldx !0Eh
天気抵抗修正
06:9B3D D4 00 |*ww| pei
魔法・SP効果処理
06:9BA7 8B |*ww| phb
効果なし
C6/9BD6: A9 7E LDA #$7E
miss処理
06:9C21 8B |*ww| phb
魔法・SP命中回避率
06:9CD2 DA |*ww| phx
魔法・SP命中率
06:9E04 DA |*ww| phx
物理攻撃
06:A0D0 22 3A9E88 |*ww| jsl \88h,9E3Ah
タコ以外
06:A693 A2 5500 |*ww| ldx.w 0055h
SP処理
06:A7DF 64 B8 |*ww| stz !0B8h
魔法・SP?
06:AAD5 22 C1BC8D |*ww| jsl \8Dh,0BCC1h//範囲作成
HP追加ダメージ系
06:B306 22 DAB182 |*ww| jsl \82h,0B1DAh
ネクロマンシー
06:B39D 8B |*ww| phb
テレポート?
06:B4CE 8B |*ww| phb
獲得exp算出
06:B79F 8B |*ww| phb
通常攻撃時のExp算出
06:B7F7: 09 00 ORA #$00
とどめを刺した時のExp算出
C6/B82A: 09 00 ORA #$00
Lv差+1=4
C6/B841: A9 64 LDA #$64
Lv差+1=3
C6/B846: A9 64 LDA #$64
Lv差+1=2
C6/B84B: A9 46 LDA #$46
Lv差+1=1
C6/B850: A9 0A LDA #$0A
Lv差+1=0以上
C6/B855: A9 01 LDA #$01
物理攻撃処理
C6/B87F: A9 01 LDA #$01
投射魔法・SP処理
C6/B919: C9 02 CMP #$02//投射魔法・SP
キャラ有無判定?
06:B9B8 7B |*ww| tdc
SP
06:B9D7 8B |*ww| phb
魔法・SP種類と追加効果判定
06:BA4B 8B |*ww| phb
追加効果2
06:BAB6 A0 0000 |*ww| ldy.w 0000h
スペシャル
06:BB19 7B |*ww| tdc
通常ダメージ系
06:BB4E 7B |*ww| tdc
キャラ状態と有無
06:C280 DA |*ww| phx
キャラ状態による恐怖・支援効果の有無
06:C2A5 BD AE17 |*ww| lda @17AEh,x//キャラ見た目
装備チェック
06:C5CA BD 7E1A |*ww| lda @1A7Eh,x//左上装備
画面処理
06:C600 22 8AA180 |*ww| jsl \80h,0A18Ah
復活系魔法・SP
06:CB7F 48 |*ww| pha
召喚数カウント
06:CC1F 8B |*ww| phb
召喚数カウント用Int+Men値
06:CC87 6400 |*ww| 100
説得処理
06:CFE2 A6 93 |*ww| ldx !93h
死亡処理?
06:D0AF A6 39 |*ww| ldx !39h
敵の攻撃か?
06:D711 8B |*ww| phb
魔法処理?
06:D786 8B |*ww| phb
殺害人数カウント
06:DBE2 DA |*ww| phx
装備に関して?
06:DD0B 8B |*ww| phb
命中・回避用Ra、Rd算出
06:DEBA 8B |*ww| phb
地形効果修正
06:DF1B 5A |*ww| phy
属性一致修正
06:DF58 A5 10 |*ww| lda !10h
アライメントによる属性修正
06:DF82 A5 10 |*ww| lda !10h
天気修正
06:DFA7 A5 10 |*ww| lda !10h
得意武器修正
06:DFF6 A5 10 |*ww| lda !10h
魔法・SPダメージ計算方式
06:E021 8B |*ww| phb
0
06:E0C8 64 00 |*ww| stz !00h
防御者HP減少値
06:E0CD A6 0E |*ww| ldx !0Eh
攻撃者HP減少値
06:E0DD A6 0C |*ww| ldx !0Ch
防御者HP/2
06:E0ED A6 0E |*ww| ldx !0Eh
攻撃者INT/2
06:E0FA A6 0C |*ww| ldx !0Ch
攻撃者HP
06:E107 A6 0C |*ww| ldx !0Ch
防御者HP*75/100
06:E113 A6 0E |*ww| ldx !0Eh
攻撃者DEX
06:E127 A6 0C |*ww| ldx !0Ch
剣のSTR*2
06:E133 A6 0C |*ww| ldx !0Ch
攻撃者STR
06:E144 A6 0C |*ww| ldx !0Ch
防御者MP減少値
06:E150 A6 0E |*ww| ldx !0Eh
防御者MP*90/100
06:E160 A6 0E |*ww| ldx !0Eh
攻撃者HP/2
06:E174 A6 0C |*ww| ldx !0Ch
防御者VIT/4
06:E181 A6 0E |*ww| ldx !0Eh
防御者MP/2
06:E18F A6 0E |*ww| ldx !0Eh
攻撃者(VIT+MEN)/4
06:E19C A6 0C |*ww| ldx !0Ch
25
06:E1AD C2 20 |*ww| rep.b 20h ;m = 16bit
50
06:E1B7 C2 20 |*ww| rep.b 20h ;m = 16bit
100
06:E1C1 C2 20 |*ww| rep.b 20h ;m = 16bit
防御者MHP/2
06:E1CB A6 0E |*ww| ldx !0Eh
防御者MP*99/100
06:E1D8 A6 0E |*ww| ldx !0Eh
攻撃者HP*99/100
06:E1EC A6 0C |*ww| ldx !0Ch
攻撃者VIT/10
06:E200 A6 0C |*ww| ldx !0Ch
防御者HP/10
06:E222 A6 0E |*ww| ldx !0Eh
防御者HP/3
06:E244 A6 0E |*ww| ldx !0Eh
攻撃者MHP/2
06:E266 A6 0C |*ww| ldx !0Ch
与ダメージ/5?
06:E273 A6 14 |*ww| ldx !14h
与ダメージ/10
06:E2B0 7B |*ww| tdc
通常処理
06:E2D8 A6 0C |*ww| ldx !0Ch
ヒーリング系
06:E2E5 A6 0C |*ww| ldx !0Ch
通常処理/2
06:E2EE A6 0C |*ww| ldx !0Ch
攻撃者Lv
06:E308 A6 0C |*ww| ldx !0Ch
攻撃者Lv*2
06:E312 A6 0C |*ww| ldx !0Ch
与ダメージ値
06:E31D A6 14 |*ww| ldx !14h
通常処理/4
06:E32D A6 0C |*ww| ldx !0Ch
防御者HP/5
06:E34B A6 0E |*ww| ldx !0Eh
4の正規分布乱数?
C6/E36D: A9 04 LDA #$04
150
06:E378 C2 20 |*ww| rep.b 20h ;m = 16bit
敵味方とかアンデッド判定
06:E382 8B |*ww| phb
魔法効果読み取り
06:E448 8B |*ww| phb
サモン系チェック
06:E663: C9 4C CMP #$4C//サモンハーネラ
魔法・SP効果判定
06:E66F: 48 PHA
28以下
06:E688 68 |*ww| pla
27
06:E68D 68 |*ww| pla
2E
06:E69D 68 |*ww| pla
29以上2C以下
06:E6AB 68 |*ww| pla
3A
06:E6B5: 68 PLA
HP,MP削り系分岐
06:E6E6 A5 02 |*ww| lda !02h
魔法・SPダメージ通常処理
06:E7C4 8B |*ww| phb
敵ダメージ?
C6/E801: 7B TDC
ヒーリング系処理
06:E93A 8B |*ww| phb
魔法・SP用Ra
06:E9B9 D4 04 |*ww| pei
魔法・SP用Rd
06:E9E3 D4 04 |*ww| pei
!00h*!04h/100
06:EA12 DA |*ww| phx
命中回避1~100制限
06:EA40 C2 20 |*ww| rep.b 20h ;m = 16bit
999制限
06:EA58 C2 20 |*ww| rep.b 20h ;m = 16bit
ダメージ最大最小制限
06:EA6C C2 20 |*ww| rep.b 20h ;m = 16bit
200制限
06:EA84 C2 20 |*ww| rep.b 20h ;m = 16bit
マイナス修正
06:EA98 C2 21 |*ww| rep.b 21h ;m = 16bit
100~-100修正
06:EAA4 C9 80 |*ww| cmp.w 080h
敵Ra?
06:EAB8 8B |*ww| phb
RES取得
06:EC79 A5 0A |*ww| lda !0Ah
物理RES取得
06:ED18 8B |*ww| phb
アイテム物理Res取得
06:ED80 AA |*ww| tax
風Res取得
06:ED89 8B |*ww| phb
アクセサリのみSTR参照
06:F0AF DA |*ww| phx
直接攻撃STR参照
06:F119 DA |*ww| phx
攻撃用DEX参照
06:F183 DA |*ww| phx
攻撃用INT取得
06:F1E6 DA |*ww| phx
攻撃用MEN取得
06:F249 DA |*ww| phx
防御用MEN参照
06:F2B3 DA |*ww| phx
防御用VIT参照
06:F31D DA |*ww| phx
防御用STR参照
06:F380 DA |*ww| phx
全AGI取得
06:F3EA DA |*ww| phx
全DEX取得
06:F44D DA |*ww| phx
全INT取得
06:F4B0 DA |*ww| phx
全MEN取得
06:F513 DA |*ww| phx
LUK取得
06:F57D DA |*ww| phx
ヒート・メルトウェポン処理
06:F5D6 B9 1E1B |*ww| lda @1B1Eh,y//
Rndか?
06:F620 A9 14 |*ww| lda.w 14h
Rnd処理
06:F628 8B |*ww| phb
回避用Rnd値算出?
06:F65E 8B |*ww| phb
ダメージモーション
06:F6B6 D4 06 |*ww| pei
効果防御判定
06:F893 DA |*ww| phx
殴ったときの効果処理
06:F8DE 8B |*ww| phb
恐怖・支援キャラの位置判定
06:F97B DA |*ww| phx
直接攻撃予想処理
C6/F9A2: A9 01 LDA #$01
投射攻撃予想処理
C6/FA3B: A9 01 LDA #$01
魔法・SP予想処理
C6/FA95: A9 01 LDA #$01
HP,MP制限
06:FB21 9B |*ww| txy
物理攻撃予想DMG計算
06:FBE4 7B |*ww| tdc
物理攻撃予想DMGと命中率
06:FC7F DA |*ww| phx
魔法・SPの予想DMGと回避率
06:FCC7 DA |*ww| phx
追加効果の退魔
C6/FD12: D4 12 PEI $12
魔法・SPダメージ
06:FD35 D4 12 |*ww| pei
魔法・SP必中判定と回避率計算
06:FDA3 7B |*ww| tdc
$99
戦闘マップ作成
0C:8001 AA |*ww| tax
戦闘イベント!
0C:810E 8B |*ww| phb
マップ番号判定?16、17はもしや雑魚マップ?
0C:8160 DA |*ww| phx
マップ16判定
0C:8181 22 608199 |*ww| jsl \99h,8160h
長すぎ
0C:8257 F4 0000 |*ww| pea
イベントでぇす
0C:897B A6 00 |*ww| ldx !00h
イベント?
0C:901B E2 20 |*ww| sep.b 20h ;m = 8bit
イベントFF以外は2001-2008スキップ
0C:D71E BD 0000 |*ww| lda @0000h,x
戦闘イベントデータ展開
0C:D759 C2 20 |*ww| rep.b 20h ;m = 16bit
戦闘イベント・移動
0C:D7E2 8B |*ww| phb
イベント1以外
CC/D828: 7B TDC
イベント1
0C:D8A9 E8 |*ww| inx
移動タイプ取得
0C:D921 DA |*ww| phx
STER決定
0C:D931 DA |*ww| phx
町でのイベント戦闘
0C:EB4E EB |*ww| xba
町でのイベント戦闘
0C:EC12 4A |*ww| lsr a
町でのイベント戦闘
0C:ECA0 22 4B9F9E |*ww| jsl \9Eh,9F4Bh
$9A
デニム以外ダメージ?
0D:021D A6 93 |*ww| ldx !93h
マップ+ユニット
0D:0E03 DA |*ww| phx
一般キャラと固有キャラの区別
0D:1369 48 |*ww| pha
死者の宮殿か?
0D:1396 22 3BA180 |*ww| jsl \80h,0A13Bh
ユニット名削除?
0D:14A1 8B |*ww| phb
キャラ能力値初期化
0D:1749 A2 0000 |*ww| ldx.w 0000h
!5C、!5Aに2000h
0D:21BC 64 C1 |*ww| stz !0C1h
ゲスト用転移石チェック
0D:21E6 BD AE17 |*ww| lda @17AEh,x//キャラ
$9B
地形攻撃効果修正 in 8bit mode
0D:880C 8B |*ww| phb
地形防御効果
0D:8874 8B |*ww| phb
地形攻撃効果修正
0D:88E4 BF 0D878B |*ww| lda \8Bh,@870Dh,x//地形攻撃効果
地形防御効果
0D:8911 BF 35878B |*ww| lda \8Bh,@8735h,x//地形防御効果
風属性キャラの地形修正
0D:8936 7B |*ww| tdc
火属性キャラの地形修正
0D:894C 7B |*ww| tdc
地属性キャラの地形修正
0D:8962 7B |*ww| tdc
水属性キャラの地形修正
0D:8978 7B |*ww| tdc
-100~100修正
0D:8992 09 0000 |*ww| ora.w 0000h//0チェック
ゲストキャラのエレメント決定?
0D:8F39 8B |*ww| phb
ゲストクラス?
0D:8F6D 35 34 |*ww| and !34h,x
キャラ座標決定
0D:8FAB 8B |*ww| phb
キャラ移動可不可判定
0D:906D 8B |*ww| phb
水系地形のsterを1下げて返す
0D:90E3 8B |*ww| phb
歩数取得
0D:9131 7B |*ww| tdc
移動タイプ取得
0D:913E 8B |*ww| phb
アイテム通常特性取得
0D:91E3 5A |*ww| phy
アイテム防御特性
0D:923F 5A |*ww| phy
SPの防御効果チェック
0D:92BC AF E0D27E |*ww| lda \7Eh,@0D2E0h
SPの防御効果チェック
0D:92E4 8B |*ww| phb
対竜攻撃効果
0D:930F DA |*ww| phx
続々・恐怖キャラアイテムカウント
0D:936C DA |*ww| phx
獣支援カウント
0D:93BF DA |*ww| phx
竜支援カウント
0D:9402 DA |*ww| phx
ゴーレム支援カウント
0D:9441 DA |*ww| phx
装備四点セット取得
0D:9480 8B |*ww| phb
装備四点セット取得
0D:94C0 A2 0000 |*ww| ldx.w 0000h//以下、アイテムIDソート
装備四点セット
0D:9538 1B |*ww| tcs
最初の質問とか?
0D:A8BB 8B |*ww| phb
$9C
埋もれた財宝判定
0E:764E 20 9DF7 |*ww| jsr 0F79Dh
Lukによる拾得アイテム決定
0E:76C7 84 00 |*ww| sty !00h
拾得アイテムに関するデータ解凍
0E:794D 48 |*ww| pha
$9D
デニムチェック
CE/A2F6: C9 34 CMP #$34
内部データコピー
0E:B941 AD 9F1E |*ww| lda @1E9Fh
デニム初期ステータス決定
0E:BBA0 48 |*ww| pha
最初の質問後のデニムステータス決定
0E:BC1E: 7B TDC
最初の質問によるステータス変化
0E:BCCD A2 0000 |*ww| ldx.w 0000h
チュートリアルキャラ作成
0E:EC8A 48 |*ww| pha//aはEE526
チュートリアル作成関数
0E:EE49 22 C8F381 |*ww| jsl \81h,0F3C8h
$9E
データ初期化
0F:1F4B 8B |*ww| phb
能力値初期化
0F:1FDA 9E AE17 |*ww| stz @17AEh,x//キャラ
変数初期化
0F:20AB 9E 0306 |*ww| stz @0603h,x
Sサイズの使用するリスト(デフォルト)
0F:25B3 01 02 |*ww| ora (!02h,x)
Lサイズの使用するリスト(デフォルト)
0F:25E6 23 24 |*ww| and !24h,s
クラスチェンジ可/不可?
0F:30C1 AA |*ww| tax
$9F
距離や1D26決定
0F:DE46 C2 20 |*ww| rep.b 20h ;m = 16bit
Event
イベントについてのまとめ(あまりやる気無し)
//引数 X:イベントID(7EBE76対応)
//引数 X:イベントID(7EBE76対応)
0D:0E03 DA |*ww| phx
0D:0E04 D4 06 |*ww| pei
0D:0E06 D4 04 |*ww| pei
0D:0E08 D4 02 |*ww| pei
0D:0E0A D4 00 |*ww| pei
0D:0E0C 22 98A99D |*ww| jsl \9Dh,0A998h
0D:0E10 22 70A180 |*ww| jsl \80h,0A170h
0D:0E14 64 36 |*ww| stz !36h
0D:0E16 22 A1949A |*ww| jsl \9Ah,94A1h //ユニット名削除
0D:0E1A 22 B08982 |*ww| jsl \82h,89B0h
0D:0E1E 22 DD8982 |*ww| jsl \82h,89DDh
0D:0E22 22 C88982 |*ww| jsl \82h,89C8h
0D:0E26 22 BCA19A |*ww| jsl \9Ah,0A1BCh //!5C、!5A
0D:0E2A 22 538B81 |*ww| jsl \81h,8B53h //
0D:0E2E A3 01 |*ww| lda !01h,s
0D:0E30 3A |*ww| dec a
0D:0E31 83 01 |*ww| sta !01h,s
0D:0E33 7B |*ww| tdc
0D:0E34 A3 02 |*ww| lda !02h,s
0D:0E36 3A |*ww| dec a
0D:0E37 AA |*ww| tax
0D:0E38 A3 01 |*ww| lda !01h,s
0D:0E3A 22 6F889A |*ww| jsl \9Ah,886Fh //マップ選択
0D:0E3E C2 20 |*ww| rep.b 20h ;m = 16bit
0D:0E40 83 09 |*ww| sta !09h,s //イベントID更新
0D:0E42 E2 20 |*ww| sep.b 20h ;m = 8bit
0D:0E44 22 018099 |*ww| jsl \99h,8001h //マップ作成
0D:0E48 C2 20 |*ww| rep.b 20h ;m = 16bit
0D:0E4A A3 03 |*ww| lda !03h,s
0D:0E4C AA |*ww| tax
0D:0E4D A3 05 |*ww| lda !05h,s
0D:0E4F A8 |*ww| tay
0D:0E50 E2 20 |*ww| sep.b 20h ;m = 8bit
0D:0E52 A3 07 |*ww| lda !07h,s
0D:0E54 22 D0D982 |*ww| jsl \82h,0D9D0h //自軍+ゲスト+敵作成
0D:0E58 22 3C979B |*ww| jsl \9Bh,973Ch //17AE→7EF3EBへ690h回コピー+自軍初期パラメータ展開とか
0D:0E5C C2 20 |*ww| rep.b 20h ;m = 16bit
0D:0E5E A3 09 |*ww| lda !09h,s //イベントID
0D:0E60 AA |*ww| tax
0D:0E61 E2 20 |*ww| sep.b 20h ;m = 8bit
0D:0E63 22 0E8199 |*ww| jsl \99h,810Eh //初期化がメイン?
0D:0E67 C2 20 |*ww| rep.b 20h ;m = 16bit
0D:0E69 A3 09 |*ww| lda !09h,s //イベントID
0D:0E6B E2 20 |*ww| sep.b 20h ;m = 8bit
0D:0E6D 22 928799 |*ww| jsl \99h,8792h
0D:0E71 A5 E6 |*ww| lda !0E6h
CD/0E73: C9 FF CMP #$FF
CD/0E75: D0 04 BNE $0E7B
CD/0E77: 22 D7 87 99 JSR $9987D7
CD/0E7B: A3 01 LDA $01,S
0D:0E7D 22 E58799 |*ww| jsl \99h,87E5h
0D:0E81 20 128F |*ww| jsr 8F12h //イベント開始
0D:0E84 22 178899 |*ww| jsl \99h,8817h
0D:0E88 FA |*ww| plx
0D:0E89 86 00 |*ww| stx !00h
0D:0E8B FA |*ww| plx
0D:0E8C 86 02 |*ww| stx !02h
0D:0E8E FA |*ww| plx
0D:0E8F 86 04 |*ww| stx !04h
0D:0E91 FA |*ww| plx
0D:0E92 86 06 |*ww| stx !06h
0D:0E94 FA |*ww| plx
0D:0E95 60 |*ww| rts
//マップ作成
0C:8001 AA |*ww| tax
0C:8078 20 85D7 |*ww| jsr 0D785h //イベント毎のマップデータ解凍
//マップIDとか天気とか
0C:808D 22 25DE82 |*ww| jsl \82h,0DE25h //マップ作成
0C:8091 22 93E082 |*ww| jsl \82h,0E093h //マップグラフィック展開
0C:80AB 22 25DE82 |*ww| jsl \82h,0DE25h //マップ作成
0C:80AF 22 93E082 |*ww| jsl \82h,0E093h //マップグラフィック展開
//マップ作成についてはTO_map.txt参照
//イベント開始
9A/8F12: 228AA180 JSR $80A18A
9A/8F16: 22F58799 JSR $9987F5 //イベント命令実行
9A/8F1A: C9FF CMP #$FF
9A/8F1C: D0F4 BNE $8F12
9A/8F1E: 60 RTS
//イベント命令実行
0C:87F5 8B |*ww| phb
9A/8F16: 22F58799 JSR $9987F5
0C:8A23 E2 20 |*ww| sep.b 20h ;m = 8bit
0C:8A25 A6 E1 |*ww| ldx !0E1h
0C:8A27 BC 0600 |*ww| ldy @0006h,x
0C:8A2A 84 E3 |*ww| sty !0E3h
0C:8A2C BD 0800 |*ww| lda @0008h,x
0C:8A2F 85 E5 |*ww| sta !0E5h
0C:8A31 E2 20 |*ww| sep.b 20h ;m = 8bit
0C:8A33 A6 E1 |*ww| ldx !0E1h
0C:8A35 7B |*ww| tdc
0C:8A36 BD 0B00 |*ww| lda @000Bh,x
0C:8A39 F0 0A |*ww| beq 8A45h ;>
0C:8A3B 3A |*ww| dec a
0C:8A3C C2 20 |*ww| rep.b 20h ;m = 16bit
0C:8A3E 0A |*ww| asl a
0C:8A3F AA |*ww| tax
0C:8A40 E2 20 |*ww| sep.b 20h ;m = 8bit
0C:8A42 7C 5D8A |*ww| jmp (@8A5Dh,x) ;>
0C:8A45 7B |*ww| tdc
0C:8A46 A7 E3 |*ww| lda [!0E3h]
99/8A48: C9FF CMP #$FF
99/8A4A: D008 BNE $8A54
0C:8A4C C2 20 |*ww| rep.b 20h ;m = 16bit
0C:8A4E E6 E3 |*ww| inc !0E3h
0C:8A50 A7 E3 |*ww| lda [!0E3h]
0C:8A52 E6 E3 |*ww| inc !0E3h
0C:8A54 C2 20 |*ww| rep.b 20h ;m = 16bit
0C:8A56 0A |*ww| asl a
0C:8A57 AA |*ww| tax
0C:8A58 E6 E3 |*ww| inc !0E3h
0C:8A5A 7C 778A |*ww| jmp (@8A77h,x) ;>
C8A42とC8A5Aで各イベント命令毎で分岐
以下は分岐先アドレスリスト
99/8A5D: BC90
99/8A5F: C990
99/8A61: F190
99/8A63: 0091
99/8A65: 0B91
99/8A67: 1B91
99/8A69: 2691
99/8A6B: 3C91
99/8A6D: 5491
99/8A6F: 7D91
99/8A71: A691
99/8A73: B391
99/8A75: EA91
99/8A77: 0192
99/8A79: 0B92
99/8A7B: 1592
99/8A7D: 2692
99/8A7F: 3792
99/8A81: 4F92
99/8A83: 6092
99/8A85: 7192
99/8A87: 8192
99/8A89: 8E92
99/8A8B: 9B92
99/8A8D: A892
99/8A8F: B592
99/8A91: BF92
99/8A93: 718C
99/8A95: 318A
99/8A97: F092
99/8A99: 2093
99/8A9B: 718C
99/8A9D: 5093
99/8A9F: E793
99/8AA1: 718C
99/8AA3: BB9B
99/8AA5: DC9B
99/8AA7: 0D9C
99/8AA9: 189C
99/8AAB: 4A9C
99/8AAD: 919C
99/8AAF: D09C
99/8AB1: DA9C
99/8AB3: DA9C
99/8AB5: 718C
99/8AB7: 738C
99/8AB9: 7998
99/8ABB: 9D99
99/8ABD: 928C
99/8ABF: 0B99
99/8AC1: 2F9A
99/8AC3: 0399
99/8AC5: 279A
99/8AC7: ED94
99/8AC9: F196
99/8ACB: 7697
99/8ACD: F897
99/8ACF: E594
99/8AD1: E996
99/8AD3: 7F98
99/8AD5: A399
99/8AD7: 6A9F
99/8AD9: 969F
99/8ADB: 2EBD
99/8ADD: DAC2
99/8ADF: 00C5
99/8AE1: 12C5
99/8AE3: CEC0
99/8AE5: 28C7
99/8AE7: 28C8
99/8AE9: 43C8
99/8AEB: ABBE
99/8AED: EA9C
99/8AEF: F39C
99/8AF1: F7C5
99/8AF3: 5EB2
99/8AF5: 56B2
99/8AF7: D0B2
99/8AF9: C4B2
99/8AFB: DA9C
99/8AFD: DA9C
99/8AFF: EEBC
99/8B01: DE9C
99/8B03: DE9C
99/8B05: E69F
99/8B07: DE9C
99/8B09: DE9C
99/8B0B: EFB5
99/8B0D: EFB5
99/8B0F: B89A
99/8B11: 659E
99/8B13: DE9E
99/8B15: E99E
99/8B17: BAB1
99/8B19: 389F
99/8B1B: ABC7
99/8B1D: EFC7
99/8B1F: 25C5
99/8B21: 3AC4
99/8B23: 75C4
99/8B25: 5EC8
99/8B27: BD9F
99/8B29: FD9F
99/8B2B: 27A0
99/8B2D: C0BE
99/8B2F: 73C0
99/8B31: EDC0
99/8B33: 2BC0
99/8B35: FAC3
99/8B37: FD9B
99/8B39: 05BC
99/8B3B: E4BC
99/8B3D: DAC2
99/8B3F: 49A0
99/8B41: 1B90
99/8B43: 94A0
99/8B45: DCA0
99/8B47: EDC2
99/8B49: F88F
99/8B4B: EB8F
99/8B4D: 49BE
99/8B4F: 6890
99/8B51: 8690
99/8B53: A190
99/8B55: 629F
99/8B57: 21BD
99/8B59: 0AC5
99/8B5B: E4C5
99/8B5D: 32C4
99/8B5F: 6DC4
99/8B61: F59F
99/8B63: 1FA0
99/8B65: B2BE
99/8B67: 6BC0
99/8B69: E3C0
99/8B6B: ECC3
99/8B6D: E5C2
99/8B6F: 41BE
99/8B71: B0C5
99/8B73: 76BB
99/8B75: C7BB
99/8B77: 6EBB
99/8B79: BFBB
99/8B7B: 66A1
99/8B7D: E6AE
99/8B7F: AAAD
99/8B81: B59A
99/8B83: 5CBB
99/8B85: C992
99/8B87: 63BF
99/8B89: C6BF
99/8B8B: ABC0
99/8B8D: 8EB1
99/8B8F: EFBA
99/8B91: 34BB
99/8B93: E5BA
99/8B95: 2ABB
99/8B97: ABB9
99/8B99: A3B9
99/8B9B: F9C7
99/8B9D: 0BC8
99/8B9F: 03C8
99/8BA1: 86AD
99/8BA3: 74B9
99/8BA5: 66B9
99/8BA7: 0BB9
99/8BA9: 03B9
99/8BAB: 2FC5
99/8BAD: B89A
99/8BAF: ADBA
99/8BB1: A3B8
99/8BB3: 91B8
99/8BB5: F5B7
99/8BB7: EDB7
99/8BB9: A3B7
99/8BBB: 9BB7
99/8BBD: CCB7
99/8BBF: C4B7
99/8BC1: 7CB7
99/8BC3: 74B7
99/8BC5: E1C4
99/8BC7: 3BC7
99/8BC9: 51C7
99/8BCB: 63C7
99/8BCD: 75C7
99/8BCF: 87C7
99/8BD1: 37B8
99/8BD3: 42B8
99/8BD5: DCC4
99/8BD7: 8394
99/8BD9: 8796
99/8BDB: 7D94
99/8BDD: 8196
99/8BDF: 0B99
99/8BE1: 2F9A
99/8BE3: 0399
99/8BE5: 279A
99/8BE7: 5093
99/8BE9: E793
99/8BEB: 239C
99/8BED: 6A9C
99/8BEF: 7F98
99/8BF1: A399
99/8BF3: 7998
99/8BF5: 9D99
99/8BF7: 7794
99/8BF9: 7B96
99/8BFB: 7398
99/8BFD: 9799
99/8BFF: 7398
99/8C01: 9799
99/8C03: 7194
99/8C05: 7596
99/8C07: 6D98
99/8C09: 9199
99/8C0B: 6D98
99/8C0D: 9199
99/8C0F: 9EB8
99/8C11: 83B8
99/8C13: 1FB8
99/8C15: 2BB8
99/8C17: 39C5
99/8C19: E48D
99/8C1B: 448E
99/8C1D: AD8E
99/8C1F: DE9C
99/8C21: DE9C
99/8C23: 899D
99/8C25: F79D
99/8C27: BD9C
99/8C29: DA92
99/8C2B: E492
99/8C2D: B19C
99/8C2F: 549D
99/8C31: FC9C
99/8C33: 68B1
99/8C35: FCA0
99/8C37: 6DB7
99/8C39: 99C7
99/8C3B: 1DB7
99/8C3D: 15B7
99/8C3F: E1B8
99/8C41: F2B8
99/8C43: FAB5
99/8C45: F2B5
99/8C47: EFB5
99/8C49: EAB5
99/8C4B: 87BF
99/8C4D: B6B6
99/8C4F: 44B5
99/8C51: 3CB5
99/8C53: ACB5
99/8C55: A4B5
99/8C57: 56B6
99/8C59: 4EB6
99/8C5B: D1AD
99/8C5D: ACAE
99/8C5F: AA8F
99/8C61: 848D
99/8C63: 1EB4
99/8C65: D3B3
99/8C67: D08C
99/8C69: 89B3
99/8C6B: 3BB3
99/8C6D: F89E
99/8C6F: E19C
イベントを完全に制御するには全てのアドレス先のルーチンを解析しなければならない。
が、そんなもんやってられんとです・・・
//イベント毎のマップデータ構造
識別子? FFでデータを展開せずに終了
16C0 マップID1
16BE マップID2 この2つの関係はTO_MapID.txt参照
1EA2 天気
591,571,595,575
592,572,596,576
593,573,597,577
594,574,598,578
7EBD89 戦闘かトレーニングかの区別
TO_MapID
16C4 16C0 16BE 582DD 16BC
00 00:港町ゴリアテ 00:町① 0
01 01:古都ライム 16
02 02:港町アシュトン 08
03 03:------(港町ゴリアテ)
04 04:------(港町ゴリアテ)
05 05:------(港町ゴリアテ)
06 06:------(港町ゴリアテ)
07 07:------(港町ゴリアテ)
08 08:------(港町ゴリアテ)
09 09:古都ライム 16
0A 0A:古都ライム
0B 0B:古都ライム
0C 0C:古都ライム
0D 0D:------(古都ライム)
0E 0E:港町ゴリアテ
0F 0F:------(港町ゴリアテ)
10 00:ウェアラムの町 01:町② 10 1D
11 00:バルマムッサの町 02:町③ 11
12 01:グリムスビーの町 22
13 02:バルマムッサの町 0C
14 03:バルマムッサの町
15 04:バルマムッサの町
16 05:------(バルマムッサの町)
17 06:------(バルマムッサの町)
18 07:------(バルマムッサの町)
19 00:アルモリカ城城門前 03:アルモリカ城外周 19 18
1A 01:------(クラス紹介)
1B 00:コリタニ城城門前 04:コリタニ城外周 1B 0A
1C 00:ブリガンテス城南 05:ブリガンテス城外周 1C 04
1D 01:ブリガンテス城西 04
1E 00:フィダック城南 06:フィダック城外周 1E 0E
1F 01:フィダック城西 0E
20 00:バーシニア城城門前 07:バーシニア城外周 20 1B
21 01:バーシニア城中庭
22 00:ハイム城裏門前 08:ハイム城外周 22 1E
23 01:ハイム城城門前
24 02:ハイム城南
25 03:ハイム城中庭
26 00:アルモリカ城城内 09:城内① 26
27 01:バーシニア城城内
28 02:------(ハイム城牢獄)
29 00:ブリガンテス城城内 0A:城内② 29
2A 01:コリタニ城城内
2B 00:フィダック城城内 0B:城内③ 2B
2C 01:------(チュートリアル)
2D 02:------(テスト)
2E 00:ハイム城城内 0C:城内④ 2E
2F 00:クァドリガ砦 0D:砦 2F 14
30 01:ボード砦 1F
31 02:ダムサ砦 05
32 03:ゲッコー砦 23
33 04:ゲルド砦 1A
34 00:1F 空中庭園入口 0E:空中庭園(地上) 34 20
35 01:6F 青の回廊
36 02:2F 水蛇の背
37 03:3F 拳を握る男
38 04:4F 鐘を鳴らす女
39 05:5F 黄玉の涙
3A 06:7F 奏でる黒髪
3B 07:8F 至福の夢
3C 08:9F 美酒の祭壇
3D 09:10F 蜜月の日々
3E 0A:11F 牙を剥く獣
3F 0B:12F 赤の回廊
40 0C:13F 時を刻む音色
41 0D:14F 警戒の間
42 0E:15F 星を眺める者
43 0F:16F 黒の回廊
44 10:17F 白の回廊
45 11:18F 天と地の狭間
46 00:バハンナ高原 0F:雪原 46 09
47 01:マドュラ氷原 03
48 00:タインマウスの丘 10:平地 48 12
49 01:ランベスの丘 0D
4A 02:ゴルボルザ平原 17
4B 03:ベルモルーゼ台地 02
4C 04:ゾード湿原 0B
4D 05:ボーテーゲン平原 01
4E 06:スウォンジーの森 10
4F 07:ニムラハバの森 21
50 08:ボルドュー湖畔 11
51 09:------(テスト)
52 00:ボルダー砂漠 11:荒地 52 1C
53 01:ヨルオムザ峡谷 15
54 00:ウェオブリ山 12:火山 54 0F
55 01:ヘドン山 07
56 02:死者の宮殿最深部
57 00:ハーネラの神殿 13:神殿 57
58 01:ゾショネルの神殿
59 02:バーサの神殿
5A 03:グルーザの神殿
5B 04:バンハムーバの神殿 04
5C 00:死者の宮殿B1 14:死者の宮殿(最深部を除く) 5C 00
5D 01:死者の宮殿B2
5E 02:死者の宮殿B3
5F 03:死者の宮殿B4
60 04:死者の宮殿B5
61 05:死者の宮殿B10
62 06:死者の宮殿B15
63 07:死者の宮殿B20
64 08:死者の宮殿B25
65 09:死者の宮殿B30
66 0A:死者の宮殿B35
67 0B:死者の宮殿B40
68 0C:死者の宮殿B45
69 0D:死者の宮殿B50
6A 0E:死者の宮殿B55
6B 0F:死者の宮殿B60
6C 10:死者の宮殿B65
6D 11:死者の宮殿B70
6E 12:死者の宮殿B75
6F 13:死者の宮殿B80
70 14:死者の宮殿B85
71 15:死者の宮殿B90
72 16:死者の宮殿B95
73 17:死者の宮殿BXX(汎用)
74 00:地下墓地入口 15:空中庭園(地下) 74
75 01:旧時代の遺跡
76 02:封印の間
77 03:封印の間(ラストステージ)
-- -- ?? 76
-- -- ?? 78
参考:ogre.org
Map / TO_Map
・表記について
ster:7FC800-
地形:7FCC00-
パネグラ2:7FD000-
パネグラ1:7FD400-
カーソルの高さ:7FD800-
地形=フィルタ(パネグラ1):パネグラ1のIDを5875D-を通して地形IDに変換
X&Y:ビット論理積演算
X|Y:ビット論理和演算
bitX~bitY:Y番目のビットをbit0にした時の値
x:16C8(マップのx座標最大値+1)
y:16CA(マップのy座標最大値+1)
マップデータ1:解凍した地形データの3番目以降の値(開始は0番)
マップデータ2:解凍した地形データのx*y+3番目以降の値
15E25
引数 16BE:マップID1 マップグループID
16C0:マップID2 16BEのグループの中のID
16C4:実マップID
展開1 多分パレット
110000,X なんかのアドレスリスト。多分マップデータ
5841F,X 5875D選択用 マップ詳細IDをXに *20を16C6に
5875D+16C6
5875Dマップ毎の地形とパネルグラフィックの対応関係
01:5E79 22 B8F981 |*ww| jsl \81h,F9B8h//展開
A:圧縮データ上位アドレス(8bit) X:圧縮データ下位アドレス [$20]:展開アドレス(24bit)7F0000
[$AC]:54 @$20 @AL|@$20 60 ; $20:7F AL:A2
[$23]:@X @X @AL
$OE 圧縮データ先頭2バイト
$0A 先頭2バイト+展開アドレス下位16bit
$0C 80,40:MVN回数保存用
タインマウス
[$23]:A2B2B5 1132B5
・データ構造
展開するRAMアドレス範囲
展開するRAMアドレス範囲
以下圧縮データ
bit7:RAM2RAM
コピー回数=bit6~bit3+3
コピー元アドレス=コピー先アドレス-(bit2~bit0と後ろの1バイト(ビッグエンディアン)+1)
ex.88 07→ 4回MVN コピー先アドレスより8前からコピー
bit6:ROM2RAM
コピー回数=bit5~bit0+1
現アドレスへフラグの次以降の値をコピー
ex.52 XX XX ・・・→13h(19)回MVN
bit5:ZERO2RAM
コピー回数=bit4~0+1
現アドレスへ0をコピー
ex.37→18h(24)回0をコピー
それ以下:RAM2RAM
コピー回数=フラグの次の値&C0/4|(bit3~bit0)+4
コピー元アドレス=コピー先アドレス-(フラグの次の値のbit1~bit0とさらに後ろの1バイト(ビッグエンディアン)+1)
ex.18 40 00→1Ch(28)回MVN 現アドレスの1前からコピー
0:バンク切り替え
読取アドレスをバンク+1、下位16bitを8000にする
展開2 地形グラフィックデータ
12292E,X:16BE*20だっけ?
展開1の先頭2バイト7F0000→$A6
その次の2バイト7F0002→$A8
展開アドレスリミッタを$20と$AAへ
01:5EA8 22 9FF781 |*ww| jsl \81h,@F79Fh,x//展開
A:圧縮データ上位アドレス(8bit)(A4) X:圧縮データ下位アドレス(B5F6)
[$20]:展開開始RAMアドレス-1(7F0A40) [$23]:コピー用データ(A59C1F) 129C1F,16BE*20
[$AC]:54 @$22(7F) @$25(A5) 60
$28:A4
$06:圧縮フラグ、シフトさせてビットのOn/Offを見る
$07:8bitカウンタ、FFをシフトさせて8回
$09:圧縮フラグANDフィルタ用、圧縮フラグを下位何bitアドレスとして使うか
$0A:LSRフィルタ回数(圧縮フラグの上位何bitをフラグとしてみるか)
$0C:MVN回数
$0E:バイト数リミッタ
$23:@$23+4(9C23)
フラグ0
上位bit+3回MVN
下位bit,次のデータの3バイト+9C23
・データ構造
展開データ? 129C1F
データ種類?(1)
フラグとして上位何bitを使うか、81:F997以降に有るlsr群のどこからスタートするかでbitが決まる
展開データバイト数
展開データバイト数
以降コピー用データ
展開データ? 1235F6
圧縮フラグ
アドレスor単体コピー
圧縮フラグを左シフト→Cフラグが0→MVN用
上位4bit+3回MVN
下位4bitととなりのバイト+(A5)9C23がコピーアドレス
ex.A0 00→Dh(13)回MVN A59C23が開始アドレス
圧縮フラグを左シフト→Cフラグが1→単体コピー
ex.1C→そのままコピー
展開3
$22←7E
$5C 何コレ?(2000)RAM展開先のアドレス下位16bitか?
$20←$5C
7FD000 & 1F = 7FD400 パネルグラフィック
5875D,(X:パネルグラフィックID)(範囲20h:15E54) = 地形ID
133B35,16C4*3 マップデータアドレスリストが詰まってます
圧縮データ
01:5EC9 22 56FB81 |*ww| jsl \81h,0FB56h//マップデータ展開
A:圧縮データ上位アドレス(8bit) X:圧縮データ下位アドレス [$20]:展開アドレス(24bit)(7E:2000)
[$26]:圧縮データアドレス(A7882A)
[$23]:データの処理範囲+[$26]+1(SEC)+2(INC$26*2) @AL(A7) = 処理する圧縮データのmaxアドレス
$0E:展開アドレスのバイト数リミッタ
$0C:展開先maxアドレス
$08:16カウンタ(Fを入れて-1していく)
・マップデータ構造
展開アドレスのバイト数リミッタ
展開アドレスのバイト数リミッタ
データの処理範囲
展開用データがたくさんなので略
フラグ(データの処理範囲+1バイト目)
フラグ(ビッグエンディアンと思って良い)
以降フラグの並び
138840 ROM2RAM 再帰フラグ
BE8D
1011 1110 1000 1101
C683
1100 0110 1000 0011
24B5
0010 0
138844 RAM2RAM +0or+200フラグ 7E:2000-7E:231Aまで
24B5
100 1011 0101
138946
00C3
0000 0000 1100 001
残り1は余り
0 19
1 18
・ROM2RAM
1と0がくっつく
0が連続で出た時、それ以前の10の連続した組み合わせ分だけ階層が下がる。最後にくっついた1の時のYの値が現在値になる
雪崩中に、直前に書き込んだYの値を各階層でのY+200で書き込む
先頭では1の連続を多くしないといけない
最後尾は少なくとも0を2連続させないといけない
1が出た時は y+=2
0が連続でたあと1が出るとYが変化する以前の値になる
再帰フラグ1
再帰(サブルーチン1階層上げ)
この回は飛ばす
Y += 2
再帰フラグ0
単体だけだとサブルーチン階層変わらず
再帰フラグ数-1だけ離れたところに書き込む
再帰フラグ2連続目0
同じYで25xxに値を書込む
直前に書き込んだYの値を各階層でのY+200で書き込む
最後だけは+200はせずにYで書き込む
連続先頭以前の書込み回数*2だけsage
再帰フラグ3連続目0
2連続目で連続先頭以前の書込み回数*2だけsageってるのでそのY+200に値を書き込む
また、sage
/*
圧縮フラグが0→$7E:231B,y+フラグ1で読み飛ばしたバイト*2に書込み
→次もフラグが0→$7E:251B,yに書込み→以前書き込んだy+200に今書き込んだyを書き込む→以前書き込んだyってやつをさらに以前書き込んだy+200hに書き込む→以前書き込んだ
23xxでアドレスを書いて終わってると次は25xxに書込み
*/
・RAM2RAM
基本はフラグ16回転で、ただし、フラグの意味は231B~か251B~のどちらを指定するかのフラグ
231Bまたは251Bからスタートして目的のデータを格納してるアドレスに辿り着くまでフラグで指定しつつ
アドレスに格納されたアドレスで右往左往しながら目指す。
プログラム的には冗長が少なくても実行速度に難ありだよなぁ
133B85 マップデータアドレスリスト,X:使用マップID
13882A タインマウス先頭データ
$OCは何に使われてる?
展開先オフセットと展開先2の上限として
展開後のマップに関するデータ
16C8:x最大値
16CA:y最大値
16CC:不明
16CE:FFA0+(sterが0かFFの個数)*10h
16D0:(x+y)*10h-A0-(sterが0かFFの個数)*10h
16D2:FFA8
16D4:(x+y)*8+16CC*8-78h
16CC-16D4が何に使われるのかはまだ未解明
・マップデータ2≧E0
ster=0
カーソルの高さ=マップデータ1(0以下は0)
パネグラ2=0
パネグラ1=0
地形=マップデータ2 & 3 +18
・マップデータ2<E0
ster=マップデータ1
カーソルの高さ=マップデータ1(0以下は0)
パネグラ2=マップデータ2
パネグラ1=マップデータ2 & 1F
地形=フィルタ(パネグラ1)
・パネルフィルタ
7EBD89で分岐するのと7EBDC4-E43をフラグに使うのがある。
両方とも16BEで場合分けする。
7EBD89はトレーニングは0C、イベント戦闘は0A。それ以外は不明
7EBDC4-E43はビットそれぞれがマップパネルに対応している(20h*20hのマップパネルを80h*8h)
ただ、調べた限りではいつも0なのでいつ展開されるのかはよくわからない
7EBD89≧12 7EBD89<6
3.アルモリカ城外周
ifパネグラ2&1F==12 パネグラ2=13 パネグラ1=13 地形=フィルタ(パネグラ1)
4.コリタニ城外周
ifパネグラ2&1F==14 パネグラ2=15 パネグラ1=15 地形=フィルタ(パネグラ1)
ifパネグラ2&1F==12 パネグラ2=13 パネグラ1=13 地形=フィルタ(パネグラ1)
5.ブリガンテス城外周
ifパネグラ2&1F==16 パネグラ2=13 パネグラ1=13 地形=フィルタ(パネグラ1)
ifパネグラ2&1F==04 パネグラ2=12 パネグラ1=12 地形=フィルタ(パネグラ1)
6.フィダック城外周
ifパネグラ2&1F==12 パネグラ2=13 パネグラ1=13 地形=フィルタ(パネグラ1)
7.バーシニア城外周
ifパネグラ2&1F==12 パネグラ2=13 パネグラ1=13 地形=フィルタ(パネグラ1)
ifパネグラ2&1F==14 パネグラ2=15 パネグラ1=15 地形=フィルタ(パネグラ1)
8.ハイム城外周
ifパネグラ2&1F==12 パネグラ2=13 パネグラ1=13 地形=フィルタ(パネグラ1)
9.城内①
ifパネグラ2&1F==15 パネグラ2=16 パネグラ1=16 地形=フィルタ(パネグラ1)
A.城内②
ifパネグラ2&1F==15 パネグラ2=16 パネグラ1=16 地形=フィルタ(パネグラ1)
B.城内③
ifパネグラ2&1F==15 パネグラ2=16 パネグラ1=16 地形=フィルタ(パネグラ1)
C.城内④
ifパネグラ2&1F==15 パネグラ2=16 パネグラ1=16 地形=フィルタ(パネグラ1)
6≦7EBD89<12
3.アルモリカ城外周
ifパネグラ2&1F==1F パネグラ2=(パネグラ2&E0-40)|1E パネグラ1=(パネグラ2&E0-40)|1E&1F 地形=フィルタ(パネグラ1) ster-=2 カーソルの高さ-=2
4.コリタニ城外周
ifパネグラ2&1F==1F パネグラ2=(パネグラ2&E0-40)|1E パネグラ1=(パネグラ2&E0-40)|1E&1F 地形=フィルタ(パネグラ1) ster-=2 カーソルの高さ-=2
6.フィダック城外周
ifパネグラ2&1F==1F パネグラ2=(パネグラ2&E0-40)|1E パネグラ1=(パネグラ2&E0-40)|1E&1F 地形=フィルタ(パネグラ1) ster-=2 カーソルの高さ-=2
8.ハイム城外周
ifパネグラ2&1F==1F パネグラ2=(パネグラ2&E0-40)|1E パネグラ1=(パネグラ2&E0-40)|1E&1F 地形=フィルタ(パネグラ1) ster-=2 カーソルの高さ-=2
※パネグラ2&E0-40は0以下のときは0
7EBDC4-E43のビットが立っている場合
16BE*2をインデックスにしてパネグラ2が0の場合は306C2-、0以外では306F2-にあるオフセットアドレス2バイトを取得
30000+オフセットアドレスにある値とパネグラ2&1Fを比較
同値であれば30000+オフセットアドレス+1の値をパネグラ1,2とフィルタを通して地形に
同値でなければオフセットアドレスを+2して、最下位桁の値が繰り上がるまで繰り返し
ex.
パネグラ2=3 16BE=5 として
306F2+5*2の値は872A
3072Aの値とパネグラ2(3)を比較
同値でないので3072Cと比較
同値でないので3072Eと比較
同値でないが+2すると30730で桁上がりしているので終了
パネグラ1,2、地形は変化せず
イベントデータ
0C:D780 22 9FF781 |*ww| jsl \81h,0F79Fh
[$20]:展開先アドレス(7E2000) [$23]:共通データ(BECC7D:1F4C7D)
AL:展開データ上位8bit X:展開データ下位16bit
タインマウス:CFF901(27F901)最初の2バイトは展開後サイズ
圧縮方式は4
上位3bitをフラグに使う
$0A:フラグに使う上位bit数(3)+F997
$09:下位5bit
$07:FF:8bitカウンタ?
$06:回転用フラグ
$0C:MVN回数
$0E:展開総バイト数
ぶっちゃけ敵パラメータと同じ
展開後
FFor 2種類あるのか?
16C0 後で変更
16BE 後で変更
1EA2:天候2
591,595,571,575
2バイト目
593,597,573,577
2バイト目
7EBD89
マップ
7F2000-7F7FFFを「80 02」で埋める
<Y>
$10=00
X=01
Y=01
JSR $E0F6
Y+=01
if Y!=maxY goto <Y>
<X>
$10=01
X=01
Y=01
JSR $E0F6
X+=01
if Y!=maxX goto <X>
$E0F6//サブルーチン
$04=00
$06=00
$07=01
$09=ster
$0A=x
$0B=y
$0C=FF
$0E=座標値
$22=00
$11=1F
$12=1F
x
$10=01
$0D=sterのx次
$05=パネグラ2のx次上位3bit
$20=(x+y+1+16CC-ster)*40+maxY+x-y-1+1
y
$10=00
$0D=sterのy次
$05=パネグラ2のy次上位3bit
$20=(x+y+1+16CC-ster)*40+maxY+x-y-1
if ster!=0 goto <ster!=0>
<ster==0>
$12+=01
$10を反転
x
$0A+=01 //maxXを越えると終了
$0E+=01
if $12>カーソルの高さのx前 $12 = カーソルの高さのx前//この前に座標値を増やしているのに注意
y
$0B+=01 //maxYを越えると終了
$0E+=20
if $12>カーソルの高さのy前 $12 = カーソルの高さのy前
$0C=$09
$09=$0D //sterの次
x
$0D=sterのy次 //マイナスは0
y
$0D=sterのx次
if $09==0 goto <ster==0> //ループ
x
$20=(x+y+1+16CC-ster)*40+maxY+x-y-1
y
$20=(x+y+1+16CC-ster)*40+maxY+x-y-1+1
if $09==$0C
if $04!=0 $07=09
else if $05!=0 $07=01
else $07=09
else if !($09 & 80) $07=01
else if $04!=0
if $0C-$04<$09 $07=0B //※正確には「桁下がりが起きたら」
else if $05!=0 $07=01
else $07=0B
else if $05!=0 $07=01
else $07=0B
if $0C==0
if $09-$12<=0 //※正確には「桁下がりが起きたら」
if !(7D8000,x & F0) $06=01 //インデックスは$20
else $06=00
else $06=$09-$12+1
if $09-$11<0||$09-$11+2<$06 goto <ster!=0> //※正確には「桁下がりが起きたら」
else $06=$09-$11+2
else if $09-$0C>0 $06+=$09-$0C+1
<ster!=0>
$04=パネグラ2>>5 //パネグラ2の上位3bit インデックスは$0E:座標値
if $04!=0
if $22=<$04+1 $22=$04+1
$08=パネグラ2&1F //パネグラ2の下位5bit
if $08>=18
if $10==0 A=パネグラ2のx前 //$10:xとyの区別
else A=パネグラ2のy前 //ただし、ster==0を通ると反転しているので注意
if A&1F==$08
if $0C==$09 $08+=01
if $0D==0 $03=01
else goto <62EA>
if $10==0 goto <62B2>
<629B>
x+=01 //x方向へ+1
if ster<0 goto <62EA>
else ster!=0 goto <62C7>
$03+=01
$00=カーソルの高さ
<62B2>
x+=20 //y方向へ+1
if ster<0 goto <62EA>
else ster!=0 goto <62C7>
$03+=01
$00=カーソルの高さ
goto <629B> //ループ
<62C7>
if $00>ster $00=ster
$11=$03+$09
if $09-$00+$03<0 $03=01
else $03=$09-$00+$03
if $09>$03 goto <$09>$03>
<62EA>
if $10==0 $05=パネグラ2のy次>>5 //インデックスは座標値
else $05=パネグラ2のx次>>5
if $05+$09-$0D<0 $03=01
else
$03=$05+$09-$0D
if $05!=0 $03+=01
if $0D==0 $03+=01
<$09>$03>
$02=00
JSR $E375 //引数は$07
$02+=01
$03-=01
if $03==0 goto <ster==0> //ループ
JSR $E375 //引数は03
$02+=01
$03-=01
if $03==0 goto <ster==0> //ループ
<6335>
if $02!=$09
JSR $E375 //引数は05
$02+=01
$03-=01
if $03!=0 goto <6335> //ループ
else goto <ster==0> //ループ
else
JSR $E375 //引数は07
goto <ster==0> //ループ
$E375//サブルーチン
if $06!=0
$06-=01
$7F8000,x=$7F8000,x&F0|(引数+$10) //インデックスは$20
$7F9800,x=$0A
$7FB000,x=$0B
JSR $E453
$7F2000,x=戻り値|2000 //インデックスは$20*2
$20=$20/2+40
if $22!=0 $22-=01
else if $22!=0
$22-=01
$7F8000,x=$7F8000,x&F0|(引数+$10) //インデックスは$20
JSR $E453
$7F2000,x=戻り値|2000 //インデックスは$20*2
$20=$20/2+40
if $06!=0 $062-=01
else
if $7F8000,x&F0==0 //インデックスは$20
$7F8000,x|=$7F8000,x&F0*10
JSR $E453
$7F5000,x=戻り値 //インデックスは$20*2
$20=$20/2+40
if $06!=0 $06-=01
if $22!=0 $22-=01
$E453//サブルーチン
switch ($E375の引数)
case 00:
戻り値=0280
break
case 01:
X=7F0004,y //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは$7F0000,x&00FF*4
break
case 02:
X=7F0004,y //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは($7F0000,x&00FF*2+1)*2
break
case 03:
X=7F0004,y //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは$7F0001,x&00FF*4
break
case 04:
X=7F0004,y //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは($7F0001,x&00FF*2+1)*2
break
case 05:
X=$02+7F0004,x //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは$7F0002,x&00FF*4
break
case 06:
X=$02+7F0004,x //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは($7F0001,x&00FF*2+1)*2
break
case 07:
X=7F0004,y //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは$7F0002,x&00FF*4
break
case 08:
X=7F0004,y //インデックスは$08*2
戻り値=2番目の解凍データ,x //インデックスは($7F0002,x&00FF*2+1)*2
break
case 09:
Y=パネグラ2のx前,x&1F*20|$08 //インデックスは$0E:座標値
戻り値=2番目の解凍データ,y //インデックスは(($7F0000+($7F0000)),x)&00FF*4
break
case 0A:
Y=パネグラ2のy前,x&1F*20|$08 //インデックスは$0E:座標値
戻り値=2番目の解凍データ,y //インデックスは((($7F0000+($7F0000)),x)&00FF*2+1)*2
break
case 0B:
Y=パネグラのx前,y&1F*2+(7F0002),y //インデックスは(sterのx前,x-ster,x)*2
Y=7F0000,y //インデックスは$08$0C&00FF+$7F0000,y
戻り値=2番目の解凍データ,y //インデックスはY&00FF*4
break
case 0C:
Y=パネグラのy前,y&1F*2+(7F0002),y //インデックスは(sterのy前,x-ster,x)*2
Y=7F0000,y //インデックスは$08$09&00FF+$7F0000,y
戻り値=2番目の解凍データ,y //インデックスはY&00FF*4
break
Files
- TO_EX-1554957862467.zip
- TO_graaddr-1554957879044.zip
- TO_Patch-1554957885444.zip
- TO_ZOC-1554957889023.zip
Files & Information discovered by 546◆rbsENsUukE.