Menu拡張

[66 6F 00 00 mn 00 02]で表示されるメニューの概要及び拡張手順の説明を行う。
スクリプト概要及び仕様説明
拡張手順

スクリプト概要及び仕様説明

メニューとは、以下のような「複数の選択肢がある」項目を指す。


◆メニュー呼び出しスクリプト
[66 6F 00 00 mn 00 02]
mnに入る値によって、様々なメニューが表示される。
mnについては、[こちら]を参照。

メニューは選択肢の台詞&選択肢の数を指定した「メニュー情報DB」と
メニューの横幅を指定した「メニュー横幅DB」から構成されている。

◆メニュー情報DB
[CH CH CH 08 ** 00 00 00]
CH CH CH:選択肢の台詞DBオフセット。
台詞DBは、以下のようなコードである。
[@@ @@ @@ 08 00 00 00 00...]以降繰り返し。
この[@@ @@ @@]に選択肢の台詞オフセットを指定する。
**:選択肢の個数指定。最大数は0x8?(これ以上の値では正しく表示されず)

◆メニュー横幅DB
1つのメニューにつき、1byte指定。
横幅目一杯に広げる場合(最大値)は0x1Cを指定する事。

拡張手順

※FRにおける拡張手順
以下のデータを抜き出す。
メニュー情報DB:0x3A557C~0x3A577Bの512(0x200)byte。
メニューの横幅DB:0x3A577C~0x3A57BBの64(0x40)byte。
これらを空き領域に貼り付け、それぞれの参照先を貼りつけた先頭部オフセットに置換。

0809c526 cmp r5, #3f
ここでメニューの個数制限を行っているので、ここの値を#FF(255)にでも変更。
以上でメニュー拡張は終了となる。