===== CG画像テーブル ===== GBAGE上では"1744~"\\ Image - compressed\\ TSA - raw\\ Palette - raw\\ \\ CG画像テーブルは、AC0524 から12バイトごと に、0-9まで合計10個あります。(10*12=120バイト)\\ \\ ==== 0:ED3人組 ==== ^Address|AC0524|{{data:CG画像:0.PNG}}|||| ^Table|AC0394| ::: |||| ^TSA|B04F70| ::: |||| ^Pal|B07E78| ::: |||| ^row1|AD247C| ::: |||| ^row2|AD2A4C^row3|AD324C^row4|AD3A70| ^row5|AD42D4^row6|AD4B2C^row7|AD53AC| ^row8|AD5C14^row9|AD6484^row10|AD6CE4| ==== 1:女王を抱えるエイリーク ==== ^Address|AC0530|{{data:CG画像:1.PNG}}|||| ^Table|AC03BC| ::: |||| ^TSA|B05424| ::: |||| ^Pal|B07F38| ::: |||| ^row1|AD74EC| ::: |||| ^row2|AD7C78^row3|AD8490^row4|AD8CA4| ^row5|AD94B0^row6|AD9CC4^row7|ADA508| ^row8|ADACB0^row9|ADB4A4^row10|ADBCB8| ==== 2:魔石研究 ==== ^Address|AC053C|{{data:CG画像:2.PNG}}|||| ^Table|AC03E4| ::: |||| ^TSA|B058D8| ::: |||| ^Pal|B07FF8| ::: |||| ^row1|ADC494| ::: |||| ^row2|ADCCC4^row3|ADD51C^row4|ADDD78| ^row5|ADE5EC^row6|ADEE6C^row7|ADF6C8| ^row8|ADFEC8^row9|AE0624^row10|AE0DE8| ==== 3:ドラゴンナイト ==== ^Address|AC0548|{{data:CG画像:3.PNG}}|||| ^Table|AC040C| ::: |||| ^TSA|B05D8C| ::: |||| ^Pal|B080B8| ::: |||| ^row1|AE15E4| ::: |||| ^row2|AE1DB4^row3|AE258C^row4|AE2D04| ^row5|AE3510^row6|AE3d30^row7|AE4584| ^row8|AE4DB4^row9|AE5580^row10|AE5DB8| ==== 4:ゼトとエイリーク ==== ^Address|AC0554|{{data:CG画像:4.PNG}}|||| ^Table|AC0434| ::: |||| ^TSA|B06240| ::: |||| ^Pal|B08178| ::: |||| ^row1|AE661C| ::: |||| ^row2|AE6E58^row3|AE76BC^row4|AE7F20| ^row5|AE8780^row6|AE8FF8^row7|AE9864| ^row8|AEA080^row9|AEA8B0^row10|AEB0C8| ==== 5:魔王と聖石 ==== ^Address|AC0560|{{data:CG画像:5.PNG}}|||| ^Table|AC045C| ::: |||| ^TSA|B066F4| ::: |||| ^Pal|B08238| ::: |||| ^row1|AEB8C8| ::: |||| ^row2|AEC078^row3|AEC85C^row4|AED054| ^row5|AED890^row6|AEE0CC^row7|AEE928| ^row8|AEF158^row9|AEF960^row10|AF0118| ==== 6:ゼト訓練 ==== ^Address|AC056C|{{data:CG画像:6.PNG}}|||| ^Table|AC0484| ::: |||| ^TSA|B06BA8| ::: |||| ^Pal|B082F8| ::: |||| ^row1|AF0858| ::: |||| ^row2|AF106C^row3|AF18C0^row4|AF2114| ^row5|AF2970^row6|AF31E4^row7|AF3A60| ^row8|AF42D4^row9|AF4B28^row10|AF5378| ==== 7:ペガサスナイト ==== ^Address|AC0578|{{data:CG画像:7.PNG}}|||| ^Table|AC04AC| ::: |||| ^TSA|B0705C| ::: |||| ^Pal|B083B8| ::: |||| ^row1|AF5B88| ::: |||| ^row2|AF6198^row3|AF6974^row4|AF7178| ^row5|AF79AC^row6|AF81D8^row7|AF8A34| ^row8|AF9284^row9|AF9AA0^row10|AFA288| ==== 8:ラーチェル乗馬 ==== ^Address|AC0584|{{data:CG画像:8.PNG}}|||| ^Table|AC04D4| ::: |||| ^TSA|B07510| ::: |||| ^Pal|B08478| ::: |||| ^row1|AFAACC| ::: |||| ^row2|AFB244^row3|AFBA90^row4|AFC304| ^row5|AFCB6C^row6|AFD380^row7|AFDBC0| ^row8|AFE41C^row9|AFEC80^row10|AFF4AC| ==== 9:踊り子と町の人 ==== ^Address|AC0590|{{data:CG画像:9.PNG}}|||| ^Table|AC04FC| ::: |||| ^TSA|B079C4| ::: |||| ^Pal|B08538| ::: |||| ^row1|AFFCA0| ::: |||| ^row2|B00488^row3|B00CC0^row4|B01514| ^row5|B01D64^row6|B025B8^row7|B02E04| ^row8|B03674^row9|B03ED0^row10|B04728| ==== 構造体イメージ ==== 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 ==== 画像の変更方法 ==== まだわかりません。\\ 専用ツールを作らないとダメかも。\\