本節では文字列処理について述べる。 まず、いくつかの基本的な概念を簡単に説明する。 次に、プログラムがどのように文字列データにアクセスするかを簡単に述べる。 最後に、全文字列データを独自コードから UTF-8 に変換したテキストデータを作成する。
なお、本節で言う文字列とは SFC 版ドラクエ 6 でのそれと同じ定義とする。 4.2 文字列 の冒頭部を参照して欲しい。
4.2.1 概要 と同じだ。
前作同様。
前作同様。
半濁点・濁点分解処理らしきものがないことを除けば前作同様だ。
        半濁点・濁点だけを表す文字コードはそれぞれ #$03, #$04 となっている。
      
前作同様。
        文字列データはアドレス $FECFB7 から延々と配列されている。
        本作では ID を与えるだけで文字列データの特定ができる。
      
        配列 $C1591F に 16 の倍数ごとの ID の文字列データの格納アドレスをキャッシュしておくことで、
        実行時におけるアドレス計算の時間的複雑さが ID に対して線形にならないように工夫している。
        これについて詳細を知りたければ、サブルーチン $C1BA53 を確認して欲しい。
      
前作同様。
        このことについても、サブルーチン $C1BA53 の冒頭によると、
        定数データの参照という意味では文字列 ID としての有効な値の範囲の下端は
        #$0023 だ。
        それ未満の値は、仲間キャラクターの名前等を参照するために用いられる。
      
ここまで出てきた重要(および関連する)機能のアドレスを表にまとめておく。 後でウィンドウ解析を議論する際に参照して欲しい:
表 5.3 文字列機能
| アドレス | 分類 | 意味 | 
|---|---|---|
                    $C1591F
                   | 
                  データ | 文字列データ格納アドレス計算配列 | 
                    $C1BA53
                   | 
                  サブルーチン | 文字列 ID を入力して、データ格納アドレスを $BA に出力する | 
                
                    $C1BACC
                   | 
                  サブルーチン | アドレス [$BA] から 1 コード読み取り、シークを進める | 
                
                    $FECFB7
                   | 
                  データ | 文字列データ配列 | 
付録 B データ にアドレス $FECFB7 以降に表現されている全文字列データを UTF-8 に変換したテキストデータを置く。
前述のとおり、意味のあるダンプは ID が #$0023 以上のものに限る。