タイトル画面関連

Last-modified: 2024-09-08 (日) 12:45:20

情報が分散しているので、備忘録を兼ねるメモ

タイトル画面関連

画像関連

画像アドレス

画像パレットタイルマップパレットマップ使用場所
383604
(256色)
3835A4
(RAW48色)
385018
(32x20)
00タイトル画面 タイトルロゴ(レイヤー0)
385248385228
(RAW)
385B24
(32x20)
0Dタイトル画面 リザードン(レイヤー1)
385CF8385CD8
(RAW)
385FDC
(32x20)
0Fタイトル画面 上下の帯(レイヤー2)
3860F038610C
(32x20)
0Eタイトル画面 背景(レイヤー3)
3861D03861B0
(RAW)
××タイトル画面 赤
3863D0××タイトル画面 ロゴの光
386520386500
(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

●アニメーション導入方法

  1. 画像テーブルを作成
    [AA][AA][AA][08][BB][CC] FF FF ....
    A:画像アドレス, B:待機フレーム, C:次のページ番号(スタートが00)
    画像形式は同じ、パレットとタイルマップは元オフセットを参照し、各フレーム共有
    ↑を必要なフレーム分繋げる
  1. 以下の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
  1. 以下を書き換え
    0x078394:[07 49 08 47 08 BC]
    0x0783B4:[DD DD DD 08](上記のアセンブリを配置したアドレス + 01)

赤ロゴ画像サイズ64*64化

アドレス変更前変更後
0x3868B98000
0x3869350408

赤ロゴ表示指定箇所

0x079184赤ロゴX座標
0x079186赤ロゴY座標

その他

再生されるBGMを変更

アドレス変更前変更後
0x07828C8B 20 40 00YY 20 XX 30

ミュージックナンバー:0xAABBに変更する時
AAが0x01:XXに[FF], YYに[BB + 01]
AAが0x00:XXに[00], YYに[BB]
※ちなみに、博士が説明する時のBGM:0x0124も同じように変更できる。
 アドレス:0x0813004A

リザードンの鳴き声を変更

0x078982タイトル画面開始時の鳴き声指定(ポケモンコード1byte指定)

2byte指定を可能にする

  1. 以下のポケモンコードを変更し、空き領域に導入
    .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
  1. 以下を書き換え
    0x078984:[00 48 00 47 AA AA AA 08(上記のアセンブリを配置したアドレス + 01)]

リセットされるまでのフレーム数

0x0783B4タイトル画面のフレーム数(4byte)

きのみ問題コマンド判定削除

アドレス変更後
0x0787DA11 E0