プレーンHTML | Wikiマークアップ
data:cg画像

CG画像テーブル

GBAGE上では“1744~”
Image - compressed
TSA - raw
Palette - raw

CG画像テーブルは、AC0524 から12バイトごと に、0-9まで合計10個あります。(10*12=120バイト)

0:ED3人組

AddressAC0524
TableAC0394
TSAB04F70
PalB07E78
row1AD247C
row2AD2A4Crow3AD324Crow4AD3A70
row5AD42D4row6AD4B2Crow7AD53AC
row8AD5C14row9AD6484row10AD6CE4

1:女王を抱えるエイリーク

AddressAC0530
TableAC03BC
TSAB05424
PalB07F38
row1AD74EC
row2AD7C78row3AD8490row4AD8CA4
row5AD94B0row6AD9CC4row7ADA508
row8ADACB0row9ADB4A4row10ADBCB8

2:魔石研究

AddressAC053C
TableAC03E4
TSAB058D8
PalB07FF8
row1ADC494
row2ADCCC4row3ADD51Crow4ADDD78
row5ADE5ECrow6ADEE6Crow7ADF6C8
row8ADFEC8row9AE0624row10AE0DE8

3:ドラゴンナイト

AddressAC0548
TableAC040C
TSAB05D8C
PalB080B8
row1AE15E4
row2AE1DB4row3AE258Crow4AE2D04
row5AE3510row6AE3d30row7AE4584
row8AE4DB4row9AE5580row10AE5DB8

4:ゼトとエイリーク

AddressAC0554
TableAC0434
TSAB06240
PalB08178
row1AE661C
row2AE6E58row3AE76BCrow4AE7F20
row5AE8780row6AE8FF8row7AE9864
row8AEA080row9AEA8B0row10AEB0C8

5:魔王と聖石

AddressAC0560
TableAC045C
TSAB066F4
PalB08238
row1AEB8C8
row2AEC078row3AEC85Crow4AED054
row5AED890row6AEE0CCrow7AEE928
row8AEF158row9AEF960row10AF0118

6:ゼト訓練

AddressAC056C
TableAC0484
TSAB06BA8
PalB082F8
row1AF0858
row2AF106Crow3AF18C0row4AF2114
row5AF2970row6AF31E4row7AF3A60
row8AF42D4row9AF4B28row10AF5378

7:ペガサスナイト

AddressAC0578
TableAC04AC
TSAB0705C
PalB083B8
row1AF5B88
row2AF6198row3AF6974row4AF7178
row5AF79ACrow6AF81D8row7AF8A34
row8AF9284row9AF9AA0row10AFA288

8:ラーチェル乗馬

AddressAC0584
TableAC04D4
TSAB07510
PalB08478
row1AFAACC
row2AFB244row3AFBA90row4AFC304
row5AFCB6Crow6AFD380row7AFDBC0
row8AFE41Crow9AFEC80row10AFF4AC

9:踊り子と町の人

AddressAC0590
TableAC04FC
TSAB079C4
PalB08538
row1AFFCA0
row2B00488row3B00CC0row4B01514
row5B01D64row6B025B8row7B02E04
row8B03674row9B03ED0row10B04728

構造体イメージ

struct split10image_list{
 split10image* table;
 tsa*         tsa;
 pallet*      pallet;
}; sizeof(Table) == 4*3 = 12バイト

struct split10image{
 image*    row1; //圧縮画像10個
 image*    row2;
 image*    row3;
 image*    row4;
 image*    row5;
 image*    row6;
 image*    row7;
 image*    row8;
 image*    row9;
 image*    row10;
};

ソースコード

ディフォルトでは、CGを表示させられないので、唯一表示できる0:ED3人組を表示する命令を拡張して、表示できるようにします。
関数080bb17cが、3人組を表示する専用命令とかしているので、これを拡張します。

show_10split_image_hook.asm

;3人組みを表示する関数を拡張して、ED挿絵を表示できるようにする フック部
;
;3人組を描画する関数をフックする.
;

@thumb

;ジャンプ.
@org	$080bb182
ldr	r4, =$08E4FD50
mov	pc, r4

show_10split_image.asm

;3人組みを表示する関数を拡張して、ED挿絵を表示できるようにする 本体
;
;ED3人組を表示するコード
;221A0000
;42210000 00000200
;221A0000
;↓↓Nで切り替えられるようにする↓↓
;221A0000
;42210[N]00 00000200
;221A0000
;
;画像表示後、マップがおかしくなる時がある。
;その時は、適当に背景を描画して背景消去してください。背景付き会話でも可。
;画像表示時間を延ばしたいときは、 後ろの221A0000の前にウェイト命令を。
;
;N=
;[0]->0x08ac0524 ED3人組
;[1]->0x08AC0530 王女を抱えるエイリーク
;[2]->0x08ac053c 魔石研究
;[3]->0x08AC0548 ドラゴンナイト
;[4]->0x08AC0554 ゼトとエイリーク
;[5]->0x08AC0560 魔王と聖石
;[6]->0x08AC056C ゼト訓練
;[7]->0x08AC0578 ペガサスナイト
;[8]->0x08AC0584 ラーチェル乗馬
;[9]->0x08AC0590 踊り子と町の人
;
@thumb
@org	$08E4FD50
 
mov r4,r5           ;r5のメモリ位置がどうしても必要
 
mov r5,r8           ;元の処理をする
push	{r5, r6, r7}
mov	r9, r0
mov	r7, r1
mov	r8, r2
mov	r10, r3         ;ここまで元処理
 
mov r0,r4           ;元r5のメモリ位置 + 0x38 = 現在のイベント命令 スクリプトコードへのポインタ
add r0,#0x38
 
ldr r0,[r0]         ; 現在のイベント命令 スクリプトコードへ
ldrb r6,[r0,#0x2]   ; イベント命令 スクリプトコードへ 番号をとる.
 
mov r0,#0x0C
mul r6,r0           ; 1つ 12バイト区切り 番号*12バイト
ldr r0,=$0x08ac0524
add r6,r6,r0        ;$0x08ac0524 + (12バイト*個数)
                    ;
                    ;struct split10image_list{
                    ; split10image* table;
                    ; tsa*         tsa;
                    ; pallet*      pallet;
                    ;}; sizeof() == 4*3 = 12バイト
                    ;
                    ;struct split10image{
                    ; image*    row1; //圧縮画像10個
                    ; image*    row2;
                    ; image*    row3;
                    ; image*    row4;
                    ; image*    row5;
                    ; image*    row6;
                    ; image*    row7;
                    ; image*    row8;
                    ; image*    row9;
                    ; image*    row10;
                    ;};
                    ;
 
;元に戻す.
ldr	r0, =$080bb196  ;080bb196 2500     	mov	r5, #0        //r5=0
mov	pc, r0

画像の変更方法

まだわかりません。
専用ツールを作らないとダメかも。

data/cg画像.txt · 最終更新: 2018/09/09 18:46 by aera