本節ではテキスト出力について見ていく。本質的には SFC 版ドラクエ 6 と同じ構造だ。
戦闘モードのテキスト処理は、各種定数の違いを除けば前作 4.3.1 戦闘モード と同じ設計だ。 細部の違いはあるものの、ほとんど同じ実装とみなしてよい。 したがって、戦闘モードのテキスト処理に関係する機能を次の表に示してこの節を終える:
表 5.1 重要な戦闘モードテキスト機能
アドレス | 分類 | 意味 |
---|---|---|
$C152A4
|
データ | メッセージ格納アドレス計算配列 |
$C1A867
|
サブルーチン | 戦闘モードテキスト出力(実引数を ID とする) |
$C1A87A
|
サブルーチン | 戦闘モードテキスト出力(A レジスター値を ID とする) |
$C1ABC0
|
サブルーチン | 戦闘モードテキスト出力共通部 |
$C1AC61
|
サブルーチン | メッセージ ID を入力して、データ格納アドレスを $A0:$A3 に出力する |
$C1ACCE
|
サブルーチン | 必要に応じて文字コードを変換する |
$C1AD4A
|
データ | 濁点文字コードから濁点を抜いた文字コードへの対応を与える配列 |
$C1AD73
|
データ | 半濁点文字コードから半濁点を抜いた文字コードへの対応を与える配列 |
$C1AD7D
|
データ | ある文字コードから「~」や「+」へ変換するための配列 |
$FC9C22
|
データ | メッセージデータ |
移動モードのテキスト処理は、各種定数の違いを除けば前作 5.1.2 移動モード と同じ設計だ。 細部の違いはあるものの、ほとんど同じ実装とみなしてよい。 また、BRK 命令が移動モードにおけるテキスト出力を実行することも同じだ。 したがって、移動モードのテキスト処理に関係する機能を次の表に示してこの節を終える:
表 5.2 重要な移動モードテキスト機能
アドレス | 分類 | 意味 |
---|---|---|
$C0FFA8
|
BRK ハンドラー | $C1A944 または $C1A92E を実行する |
$C10CD5
|
データ | 小から大への文字コード変換対応 |
$C1A8EA
|
サブルーチン | (type 1) 移動モードテキスト出力(実引数を ID とする) |
$C1A900
|
サブルーチン | (type 1) 移動モードテキスト出力(A レジスターを ID とする) |
$C1A917
|
サブルーチン | (type 1) 移動モードテキスト出力(A レジスターを ID とする) |
$C1A92E
|
サブルーチン | (type 1) 移動モードテキスト出力(実引数を ID とする) |
$C1A944
|
サブルーチン | (type 1) 移動モードテキスト出力(実引数を ID とする) |
$C1A95A
|
サブルーチン | (type 1) 移動モードテキスト出力(A レジスターを ID とする) |
$C1A971
|
サブルーチン | (type 1) 移動モードテキスト出力(A レジスターを ID とする) |
$C1A988
|
サブルーチン | (type 1) 移動モードテキスト出力(実引数を ID とする) |
$C1A9D3
|
サブルーチン | (type 1) 移動モードテキスト出力(実引数を ID とする) |
$C1AA21
|
サブルーチン | (type 2) 移動モードテキスト出力(A レジスターを ID とする) |
$C1AA6B
|
サブルーチン | (type 1) 移動モードテキスト出力(A レジスターを ID とする) |
$C1AAB2
|
サブルーチン | (type 1) 移動モードテキスト出力(A レジスターを ID とする) |
$C1AF1D
|
サブルーチン | (type 1) 移動モードテキスト出力共通部 |
$C1AF44
|
サブルーチン | (type 2) 移動モードテキスト出力共通部 |
$C1AFB9
|
サブルーチン | メッセージ ID に対応するデータ格納アドレスと復号用マスクビットを得る |
$C1B01C
|
データ | マスクビット配列 |
$C1B024
|
サブルーチン | データ格納アドレスと復号用マスクビットを基にハフマン符号を復号、取得する |
$C1B078
|
サブルーチン | 小フォント文字コードを対応する大フォント文字コードに変換する |
$C15331
|
データ | メッセージ格納アドレス計算配列 |
$C159D3
|
データ | ハフマン木ノード (OFF) |
$C161A7
|
データ | ハフマン木ノード (ON) |
$C737B1
|
サブルーチン | $C1A971 または $C1A95A を実行する |
$C737BE
|
サブルーチン | $C1A8EA または $C1A8D4 を実行する |
$C737CB
|
サブルーチン | $C1A917 または $C1A900 を実行する |
$FCC258
|
データ | メッセージデータ |
抽出した戦闘モードおよび移動モードにおける全テキストデータそれぞれを UTF-8 テキストファイルとして 付録 B データ で提供する。