情報が分散しているので、備忘録を兼ねるメモ
目次
タイトル画面関連
画像関連
画像アドレス
画像 | パレット | タイルマップ | パレットマップ | 使用場所 |
383604 (256色) | 3835A4 (RAW48色) | 385018 (32x20) | 00 | タイトル画面 タイトルロゴ(レイヤー0) |
385248 | 385228 (RAW) | 385B24 (32x20) | 0D | タイトル画面 リザードン(レイヤー1) |
385CF8 | 385CD8 (RAW) | 385FDC (32x20) | 0F | タイトル画面 上下の帯(レイヤー2) |
3860F0 | 38610C (32x20) | 0E | タイトル画面 背景(レイヤー3) | |
3861D0 | 3861B0 (RAW) | × | × | タイトル画面 赤 |
3863D0 | × | × | タイトル画面 ロゴの光 | |
386520 | 386500 (RAW) | × | × | タイトル画面 炎 |
※1レイヤー2において、パレット2番目から6番目までの色が16番目に変化し、点滅。
※2レイヤー1のパレット
スキップした場合:0x078E54
スキップしなかった場合:0x078724
????:0x078238
※3炎の出現位置
X座標:0x386958 - 0x386966
Y座標:0x079078
レイヤー1にアニメーション付与
クレジット:
https://www.pokecommunity.com/showthread.php?t=246740
●アニメーション導入方法
- 画像テーブルを作成
[AA][AA][AA][08][BB][CC] FF FF ....
A:画像アドレス, B:待機フレーム, C:次のページ番号(スタートが00)
画像形式は同じ、パレットとタイルマップは元オフセットを参照し、各フレーム共有
↑を必要なフレーム分繋げる
- 以下のRAM, テーブルアドレス, 待機フレーム数を変更し、空き領域に導入
.text .align 2 .thumb .thumb_func main: push {r0-r3} ldr r3, =(0x02AAAAAA) @RAM ldr r1, =(0x08BBBBBB) @テーブルアドレス ldrb r2, [r3, #0x01] lsl r2, r2, #0x03 add r1, r1, r2 ldrb r0, [r1, #0x04] ldrb r2, [r3, #0x00] cmp r2, r0 bge loadframe add r2, #0x01 strb r2, [r3, #0x00] b gamestart loadframe: mov r2, #0x00 strb r2, [r3, #0x00] ldrb r2, [r1, #0x05] strb r2, [r3, #0x01] ldr r0, [r1, #0x00] ldr r1, =(0x06004000) swi #0x12 gamestart: pop {r0-r3} ldr r1, [r0, #0x00] ldr r0, =(0x0000CCCC) @待機フレーム数 push {r3} ldr r3, =(0x08078398 + 01) bx r3 .align 2
- 以下を書き換え
0x078394:[07 49 08 47 08 BC]
0x0783B4:[DD DD DD 08](上記のアセンブリを配置したアドレス + 01)
赤ロゴ画像サイズ64*64化
アドレス | 変更前 | 変更後 |
0x3868B9 | 80 | 00 |
0x386935 | 04 | 08 |
赤ロゴ表示指定箇所
0x079184 | 赤ロゴX座標 |
0x079186 | 赤ロゴY座標 |
その他
再生されるBGMを変更
アドレス | 変更前 | 変更後 |
0x07828C | 8B 20 40 00 | YY 20 XX 30 |
ミュージックナンバー:0xAABBに変更する時
AAが0x01:XXに[FF], YYに[BB + 01]
AAが0x00:XXに[00], YYに[BB]
※ちなみに、博士が説明する時のBGM:0x0124も同じように変更できる。
アドレス:0x0813004A
リザードンの鳴き声を変更
0x078982 | タイトル画面開始時の鳴き声指定(ポケモンコード1byte指定) |
2byte指定を可能にする
- 以下のポケモンコードを変更し、空き領域に導入
.text .align 2 .thumb .thumb_func main: ldr r0, =0xAAAA @ポケモンコード mov r1, #0x00 ldr r2, =0x08071595 bl linker_r2 ldrb r0, [r4, #0x0C] ldr r2, =0x0807898D linker_r2: bx r2 .align 2
- 以下を書き換え
0x078984:[00 48 00 47 AA AA AA 08(上記のアセンブリを配置したアドレス + 01)]
リセットされるまでのフレーム数
0x0783B4 | タイトル画面のフレーム数(4byte) |
きのみ問題コマンド判定削除
アドレス | 変更後 |
0x0787DA | 11 E0 |