本節ではデバッグ機能について述べていく。 最初にデバッグ機能が有効である状態、すなわちデバッグモードの定義について説明する。 それから、デバッグモードが有効であるときに限り有効化が許される機能を制御するためのデバッグメニューを解説し、 さらに、デバッグ作業に有用なゲーム機能にアクセスしやすくなっているデバッグルーム群について記す。
ここではデバッグモードについて定義しておく。 この用語自体はゲーム中のものではないので、誰が考えてもこういう用語になると思うが、本書で独自に定義することにする。
プログラム中にはアドレス $C1FFFC
を参照して何らかの処理を分岐するようなものがいくつかある。
バンク $C1
にあるデータは ROM にある以上は読み取り専用なので、このような分岐命令の結果は常に一定となる。
実際には $C1FFEC
にある値は、製品版 ROM では #$0000
なのだが、
仮にこの値が別のもの、特に負の値であったならば、既存のプログラムの挙動は次に示すように変化しただろう:
$C1FFFE
の値が #$0001
のときに限り、
移動中に X ボタンを押しても、人の話を覚えなくなる。
この定数がプログラム中のどこに影響するかを調べるには、
コード LDA $C1FFFE
をロムイメージから grep するとよいだろう。
参考までに、記者が調査した当該定数を参照するサブルーチンのアドレスを以下に示しておく:
$C0250D
$C23391
$C301B5
,
$C302A8
#$FFFF
と #$8000
の 2 通りの値の場合を想定。$C466FE
$C6C288
,
$C6C2A4
,
$C6C471
,
$C6C48F
$C6C8F8
$C1FFFE
の値が 1 ならばおぼえる処理を呼ばない。$C6CBCB
$C6CBF7
$C7B737
$C1FFFE
を代入する処理。
このサブルーチンがどのように利用されるのかは不明。$C9064A
$CEFFEC
$C1FFFE
が非ゼロならば COP し続ける。未調査。
ここでデバッグモードを次のように定義する。
デバッグモードとは、定数 $C1FFFE
の値が負の数であるような状況のことだ。
デバッグモードではプレイヤーが移動中にコントローラーの L ボタンを押すと次の図に示すようなメニューウィンドウが出現する。
このウィンドウのことをデバッグメニューと呼ぶ。
デバッグメニューの各項目に対応する選択イベントハンドラーのマッピングがアドレス $C90680
に定義されている。
以下、各イベントハンドラーの振る舞いを簡単に説明する。
いんちきルーラは、不思議な力が働いたり、天井を頭にぶつけたりすることもなく、 パーティーを指定する場所へ移動するコマンドだ。 ルーラを利用できるメンバーがいなくてもよいし、MP がなくてもよい。
通常版ルーラとは異なり、場所リストとして構造体 $C8997A
のデータをすべて用いたものが
ウィンドウの複数ページに亘り表示される。
いんちきリレミトは、パーティーがリレミト可能な場所に現在いるならば、リレミトを唱えたかのように振る舞うコマンドだ。 リレミトを利用できるメンバーがいなくてもよいし、MP がなくてもよい。
レべルアップは、パーティーメンバーを一人指定して、職業レベルとキャラクターレベルの設定を行うコマンドだ。 ただし挙動に少々くせがある。
「職業レベルアップだけを行ないますか?」で「はい」を選択すると、 職業と職業経験値を入力することで、当該メンバーの職業状態を変更することになる。 まずは対象となるメンバーを選択するためのウィンドウが表示される。 次に職業リストが表示されるが、「???」と「やめる」については注意が要る。 これらを選択するとそれぞれドラゴンとはぐれメタルが選択されたものとみなされる。 最後に「キーばんめ」という数値入力ウィンドウが表示されるので、 職業経験値の増加分を入力する。
「職業レベルアップだけを行ないますか?」で「いいえ」を選択すると、 想像に反してキャラクターのレベル変更と、副作用として職業経歴データの消去が起こる。 まずは対象となるメンバーを選択するためのウィンドウが表示される。 次に「キーばんめ」という数値入力ウィンドウが表示されるので、 設定したいレベルをそのまま入力する。 具体的な処理の内容は、対象メンバーのレベルをいったん初期化してから、 指定のレベルに対応する経験値を算出して加算するというものだ。
これらのレベルアップについては、プレイヤーに対する通知処理は発生しない。
ふくろにいれるは、ふくろに収納することが可能な項目すべてに対して、 収納品目数を 1 だけ増加または減少させるコマンドだ。
このコマンドを選択すると突然「はい・いいえ」を選択させられる。 「はい」を選べば各品目を 1 個追加するが、 「いいえ」を選べば各品目を 1 個削除する。 いずれの品目も収納品目数の限界を超えることがないように処理する。
ひとじょうたいは、パーティーメンバーを一人指定して、健康状態を設定するコマンドだ。 状態を「しに」「ねむり」「どく」「もうどく」から一つ選べる。
ゲームじょうたいは次に示す各状態を示すウィンドウを表示するコマンドだ。 これによってゲーム状態を変更することはない。
$7E3D2B
の 1 ビット目をテストする。
$7E3D2B
の 2 ビット目と
$7E3E28
の 1 ビット目をテストする。
$7E3D2A
の 5 ビット目と
$7E3E28
の 2 ビット目をテストする。
せんたくせんとうは、魔物の群れを指定して戦闘を開始するコマンドだ。 後述する 4.1.3.6 戦闘デバッグ部屋 にいるガイコツに話しかけるのと同じ処理を呼び出す。
タイルせんとうは、戦闘地域を指定して戦闘を開始するコマンドだ。
この数値はすなわち $C6843C
配列の ID のことだ。
「キーばんめ」という数値入力ウィンドウが表示されるので、ここで数値を入力する。
現在いる場所が戦闘地域ならば、対応する値が初期値として示される。
#$0005
未満の入力値は無効扱いとなり、何も起こらない。
#$0075
以上の入力値は #$0074
にクリップされて処理される。
数値の入力が受け付けられると、現在どこにいようが直ちに魔物の群れが現れる。
サウンドを指定して音楽や効果音を再生するコマンドだ。 「キーばんめ」という数値入力ウィンドウが表示されるので、ここで数値を入力する。
数値の入力が受け付けられると、対応する音楽や効果音が再生される。
なお、現在の BGM が必ずしも停止するとは限らない。
#$00FE
以上の入力値は #$00FD
にクリップされて処理される。
以下の項目を列挙するサブウィンドウを表示する。
これを選択すると何やら質問される。 「はい」を選択すると、移動時に R ボタンを押すことで画面右下に座標ウィンドウが表示されるようになる。 「いいえ」を選択するか、またはウィンドウをキャンセルすると、 移動時に移動時に R ボタンを押すことで、もし所持していれば地図が表示されるようになる。
$7E3D00
の 6 ビット目の ON/OFF が切り替わる。
このフラグは戦闘中の BGM が再生されるかどうかを制御する。
通常戦闘曲、通常ボス戦曲、ラスボス戦曲の再生に影響する。
この節ではデバッグコマンドが「インチキフロア」や「テスト」と呼ぶ部屋群について、 そこへのアクセス手段および部屋群の概要を述べる。
これらの部屋はおそらくプログラム開発を援助する目的で、ゲーム本編とは独立したものとして設置されたものだろう。 デバッガーでも開発者でもない我々は製品版プログラムではこれらの部屋に到達することができないことになっている。 しかし、以下に述べるような非正規な手段を講じることでこれらの部屋にアクセスすることができる。
インチキフロア群に訪問する方法は色々と考えられる。
以下、最後の二つの方法について検討していく。
Cheat ツールを利用して、現在移動中のルーム ID を上書きすることで、強引にデバッグルームに入る方法がある。 何らかの PAR コード改造を利用できる環境であれば、最初に以下のコードを移動モード時に入力する。 2 バイト型としてセットする。
そして、今いる部屋から画面を切り替える。 記者の経験則だが、上向きに歩いて画面を切り替えるのが具合がよいようだ。 すると真っ暗なところに出る。 だいだい左上のほうに歩いてみるとそれらしき部屋にたどりつく。 以降の部屋探索にコードが干渉するため、この時点でコードは無効化すること。
ここで述べる方法は、アクションリプレイ誌 [ActionReplay99] で紹介されていたものだ。
まずタイトル画面から冒険の書メニュー画面に進む。 ここで以下のコードを 1 バイト 型として入力、ON にする。 するとデバッグメインルームに出てくる。 神父のセリフが終わったら、コードを OFF にする。
ただし、冒険がある程度進んでいないとダーマの神殿のたいまつの間に出てきてしまう。 この条件の特定については調査中。
各デバッグルームに対応する PAR コード表を次に示す。
コードすなわち ID の値が 2 バイト表現であるので、
$7E5E8E=0286h
とセットするか、
$7E5E8E=86h, $7E5E8F=02h
とセットすればよい。
表 4.3 PAR コード
コード | 場所 |
---|---|
#$0286
|
メインルーム |
#$0287
|
井戸の部屋 |
#$0288
|
カジノデバッグ部屋 |
#$0289
|
戦闘デバッグ部屋 |
#$028A
|
店屋デバッグ部屋 |
#$028B
|
フラグチェック部屋(モンスターと男) |
#$028C
|
フラグチェック部屋(モンスターと青い服の女) |
#$028D
|
フラグチェック部屋(モンスターとターニア) |
#$028E
|
フラグチェック部屋(老人) |
#$028F
|
フラグチェック部屋(アモス) |
#$0290
|
フラグチェック部屋(ミレーユ) |
#$0291
|
フラグチェック部屋(人魚) |
#$0292
|
フラグチェック部屋(ホルス) |
#$0293
|
フラグチェック部屋(ランド) |
#$0294
|
フラグチェック部屋(王さま) |
以降、デバッグルーム各部屋を巡ってみよう。
メインルームではいろいろなことができるだけでなく、他のデバッグルームに対するターミナルでもある。
左の商人は乗り物に関する質問をしてくる。セリフは
「船 手に入れる?」
「ひょうたん島 手に入れる?」
「ベッド 手に入れる?」
「じゅうたん 手に入れる?」だ。
各質問で「はい」と答えたときに、
それぞれの乗り物に搭乗可能なフラグが立つ。
具体的には $7E3D2E
の適切なビットが 1 になる。
画面上部の大臣はゴールドデバッグ担当だ。 「おかね ほしい?」「いっぱい ほしい?」ときかれる。 「はい」で「いっぱい あげる。」となり、所持金が 999,999 ゴールドになる。 「いいえ」だと「すこし あげる」となり、1,000 ゴールドもらえる。
大臣の隣りにいる商人はふくろデバッグ担当だ。
「あなた もう ふくろ もってる。 わたし もう ふくろ ないね。」といわれる。
ふくろを持っていない状態でこの商人に話しかけると、
$7E3D2D
の 7 ビット目が立ち、ふくろが使えるようになる。
神父はいつもの神父と同じはたらきをする。 ここでセーブすると「テスト」という場所になる。 試しにリセットして再開すると、ここからスタートとなる。
画面右側の詩人。 「マップチェックのための 設定を 行ないますか?」 「シナリオチェックは 出来ませんが よろしいですか?」 「マップチェックのための フラグを たてました」 などのセリフがある。 具体的にどうなるのかは(処理コードが長くて)確認することができなかった。
バーテン。 非常にマニアックな品揃えの道具の店だ。
画面右側の青い服の娘。
「最強と 呼ばれたい?」ときかれる。
「はい」と答えるとパーティー全員について経験値を #$FFFFFF
にしてレベルを更新し、
HP と MP と状態を回復し、
次にルイーダの酒場にいる者も含む仲間全員に呪文特技を全て習得させ、
最後に職業経験値を最大にする処理がなされる。
再現条件が不明だが、この最後の処理でフリーズすることがある。
バニー。 「パーティ先頭者の かっこよさ 10 あげる?」とたずねられる。 「はい」と答えると、パーティの先頭にいるキャラのかっこよさが 10 上がる。 かっこよさが限界値に近い場合は限界値になる。 そのあとも「もう 1 回 あげる?」ときかれる。 「はい」と答え続ける限り、かっこよさが 10 ずつ上がっていく。
画面左側の青い服の娘。 「もしも ひとりが さみしいのなら 泣いてもいいのよ この胸で。 → そして フラグが うずくのならば 起ててもいいのよ この指で。」 「はい」と答えるとエンディングのチャモロのシーンから始まる。 「いいえ」で 「どうせ その気が おきないのなら 捨てればいいのよ そんなもの。」となる。
赤い服の娘。 「もう どうなってもいい?」 「合体しちゃってもいい?」「はい」でショウカク、ズイカクの取調べシーンが見られる。 「いいえ」とすると、質問が変わり「しずくを たらしちゃってもいい?」ときかれる。 「はい」でゼニスの城浮上シーンが見られる。 さらに「いいえ」とすると、「せめて まわしちゃってもいい?」ときかれる。 「はい」でラスボス直前の扉の前に移動させられる。 なにもしないように返事をすると「いくぢなし……」となる。
画面下部の男。 「ここから先は 一般の人は 立ち入り禁止です。 → とりわけ デバッガーの方は えんりょして下さいね。」 ちなみにここから先はフラグチェック部屋だ。
青服娘とバニーの間のテーブルは実は宝箱になっている。 ここを調べるたびに「ちいさなメダル」が一枚入手できる。
BGM はカジノのものと同じだ。
メインルームの 4 つあるツボのうち、
一番右にあるものに乗っかるとこの部屋に出る。
一画面におさまるくらいの広さの部屋に、整然と井戸が 10 個配置されている。
それぞれに F01
から F10
まで名前がついている。
各井戸に乗るとフィールドマップに出る。
しかし実際に使うことができるのは F01
, F02
, F03
, F04
の 4
つだけであった。
F01
は上の世界のライフコッドの近く、
F02
は下の世界のトルッカの近く、F03
ははざまの世界スタート地点、
F04
は海底フィールドの海底神殿の前にそれぞれ画面が切り替わる。
それも通常のフィールドではなく、何かのチェック用に色がついている。
中央のツボに乗ると、メインルームの一番右のツボの上に戻る。
BGM は冒険の書メニューのものと同じだ。
中途半端な広さのルーム。 なんか空の背景が映り込んでいる。 ランドっぽい男が 5 人とネコ 1 匹がいる。
一番左の男はポーカーチェック用らしく、 「ノーマルポーカー やらない?」 「ハイローポーカー やらない?」とたずねられる。 「はい」と答えるとすぐにポーカーの画面に切り替わる。 この両者の違いはダブルアップのカード選択方法だ。
左から 2 番目の男はモンスターアニメーションチェック用らしい。 話しかけた途端に戦闘シーンになる。 いつものウインドウは出ず、かわりに画面上のほうにモンスター名を 数値で入力するウインドウが出る。 上の画像で言うと、十進数表記で我々にはわかりづらいが、222 がモンスター ID (4.14 モンスター参照)で、 左側の数字が入力用、右側がそのモンスターのアニメーション総数を表している。 0 から数えるので、グラコスの場合は 3 個ある。 背景はこの画像の海底のもので固定されている。
操作方法が独特で、モンスターの変更に L と R ボタンを用いる。
中央の男から右端の男までがスロットマシンだ。 コインの単位は 1 枚だ。 絵柄パターンは 3 マシンともすべて同じであり、 どのマシンもその 3 つのドラムの絵柄パターンが同じだ。
ネコにはセリフがない。
BGM はカジノのものと同じだ。
キャンセル歩行を ON にした状態で部屋中央部のプールのようなところに進むと、 どういうわけかトルッカ近くの海上に瞬間移動する。
戦闘デバッグ用のルーム。 背景がムドー戦の背景と同じものだ。
左端にいる男に話すと、 「経験値 ほしい?」ときかれる。 「はい」と答えると経験値が 16,777,215 になる。
占い師に話すと「呪文 おぼえる?」となり、 「はい」ですべての呪文・特技を使える状態になる。
中央のガイコツに話すといきなり画像のようなウインドウが出る。
グループ 00
から 03
の各モンスターと個数をセットすると、
さらに背景指定ウインドウが出る。
決定後戦闘シーンに突入する。
神父は教会と同じ。冒険の書に記録すると、場所が「テスト」になる。 リセットして再開するとこの場所からゲーム再開になる。
右端の女戦士は宿屋だ。 宿賃はひとり 2 ゴールドとなっている。
このルームの両側および下側画面切り替え地点に行くと、 メインルームの上側中央の出入口に移動する。
BGM は洞窟のものと同じだ。
部屋の左下から時計回りに よろず屋、どうぐの店、防具の店、武器屋、ダーマの神殿、ルイーダの店、 教会(神父)、命名神につかえる神官、教会(シスター)、ゴールド銀行、おしゃれなカジヤ、宿屋、 そして最後に何かのデバッグ用の老人がいる。
それぞれの店の品揃えは次の通り。 宿屋はひとり 2 ゴールドだ。
表 4.4 店屋メニュー
店の種類 | アイテム |
---|---|
よろず屋 | やくそう |
どくけしそう | |
かわのぼうし | |
きのぼうし | |
どうぐの店 | やくそう |
どくけしそう | |
せいすい | |
まじんのよろい | |
防具の店 | ぬののふく |
たびびとのふく | |
かわのよろい | |
うろこのよろい | |
くさりかたびら | |
せいどうのよろい | |
武器屋 | ひのきのぼう |
たけのやり | |
こんぼう | |
ブロンズナイフ | |
どうのつるぎ |
ここで冒険の書に記録したときの場所の名前は、 神父がライフコッド、シスターがシエーナにそれぞれなる。 実際リセットして再開すると、それぞれの教会からスタートとなる。
右下の老人に話すと、 「スライムに 転職できる フラグを たてますか?」きかれる。「いいえ」を選ぶと、 「ドラゴンに 転職できる フラグを たてますか?」ときかれる。さらに「いいえ」を選ぶと 「デバッグに 転職できる フラグを たてますか?」となる。 ここでは「はい」「いいえ」のどちらを選んでも会話が終了する。
このルームの出入口はメインルームの上側左出入口に対応している。
BGM は街のものと同じだ。
これ以降で紹介するフラグチェック部屋において、特に断りのない限りは フラグチェック用キャラのセリフはすべて「はい・いいえ」を尋ねられる。 プレイヤーが「はい」と答えると、その問いに対応するフラグがその時点での冒険の進行状況によらず、立ったことになる。 どの部屋においても各人が 1 フラグを担当する。ちなみに BGM は街のものと同じだ。
この部屋で聞くことのできるセリフは次のとおり。
表 4.5 フラグチェック部屋(モンスターと男)
セリフ | 「はい」と答えると |
---|---|
オープニング終了後 | |
道具袋 もらった | |
精霊のかんむり 手に入れた | |
精霊イベント開始 | |
村まつり 自由 | |
村まつり ナレーション | 花火からナレーションへ。 |
村まつり終了後 | |
試練の説明が 終った | |
兵士になった | |
ファルシオン つかまえた | |
馬車を 手に入れた | |
サンディとジョセフの寸劇を見た |
この部屋で聞くことのできるセリフは次のとおり。
表 4.6 フラグチェック部屋(モンスターと青い服の女)
セリフ | 「はい」と答えると |
---|---|
サンディ 入牢後 | |
ドックでミレーユと話した | 「はい」でも何も変化なし? |
夢見のしずくを 手に入れた | |
実体化後 | |
定期船に乗る | サンマリーノの船着場入口へ。 |
ニセ王子として 追い出された | |
M06の川が 赤く染まった | |
カガミのカギ入手後 | |
エリザ さらわれた | |
誘拐事件解決後 | |
バーバラに会う | つきかがみのとうの 5 階へ。 |
ラーの鏡入手後 |
この部屋で聞くことのできるセリフは次のとおり。
表 4.7 フラグチェック部屋(モンスターとターニア)
セリフ | 「はい」と答えると |
---|---|
王がシェーラに戻った後 | |
地底魔城に飛ぶ | ちていまじょうの地下 4 階へ。 |
ムドーが王に戻った後 | |
大臣の眠れぬ夜が明けた後 | |
下の世界 C01 回想イベント終った | |
王の書状を 受けとった | |
ゲント船の 進水イベント 終った | |
森と崖のイベント 2回目 終了 | |
ムドー城へ | ムドーのしろの 1 階へ。 |
ムドーを 倒した | |
M08での選択 アモスの処遇 | アモスを仲間にする? と追加質問をされる。 |
C08 棺桶を受け取った |
この部屋で聞くことのできるセリフは次のとおり。
表 4.8 フラグチェック部屋(老人)
セリフ | 「はい」と答えると |
---|---|
テリーの 戦闘イベント終った | |
旅人の洞窟 開通した | |
砂漠の町に 夜が来た | |
ゆーとぴあへ | フィールド上しあわせの国のある島の最南端のマスへ。 |
ジャミラス倒して ひょうたん島を 手に入れた | |
ホルスを 仲間にした | ホルスがパーティに。 |
ホルスが 洗礼の洞窟から 逃げ出した | |
C04 お祝いが終った | |
魔法の鍵を 受けとった | |
黄金のつるはしを 手に入れた | |
勇気のかけら 手に入れた | |
空飛ぶベッド 手に入れた |
この部屋で聞くことのできるセリフは次のとおり。
表 4.9 フラグチェック部屋(アモス)
セリフ | 「はい」と答えると |
---|---|
フォーン王の たのみを きいた | |
ミラルゴを たおした | |
イリカ姫 鏡から 助けられた | |
水門のカギ 手に入れた | |
隠し通路 発見した | |
ディーネを 仲間にした | |
マーメイドハープを 手に入れた | |
グラコス倒して 砂の器 入手した | |
マダンテ 入手した | |
ゴランと 話した | |
雪女の怒りが とけた | |
合い言葉を 聞いた | |
さびたつるぎを 入手した |
この部屋で聞くことのできるセリフは次のとおり。
表 4.10 フラグチェック部屋(ミレーユ)
セリフ | 「はい」と答えると |
---|---|
主人公分身 逃げ出した | |
ライフコッド 魔物におそわれている | |
ザコデーモン 倒した | |
下のライフコッド 魔物を 倒した | |
伝説のヨロイ 入手した | |
変装イベント スタート | |
変装イベント 終了 | |
剣を サリイに渡した | |
ラミアスのつるぎ 入手した | |
ヘルクラウドへの 道が 開けた | |
天空城 復活した | |
ペガサス合体 終了 |
この部屋で聞くことのできるセリフは次のとおり。
表 4.11 フラグチェック部屋(人魚)
セリフ | 「はい」と答えると |
---|---|
青いボタン ついた | |
レイドック城 記憶をたどる イベント終了 | |
ふるびたパイプを 受け取った | |
無気力フィルター解除 | |
モルガンの手紙を 読んだ | |
湖のイベント終了 | |
兵士の服 入手した | |
ドグマとゾゾゲルに 敗れた | ろうごくのまちの地下 3 階の牢屋の前へ。 |
M20 呪いを受けた | |
クリムトを 仲間にした | クリムトがパーティに。 |
はざまの城 落下後 | |
エンディングへ | 追加質問 |
最後のフラグキャラだけ追加質問がある。
ペガサス飛行を選ぶと海上の特定のマスへ移動させられ、歩行状態なので身動きが取れなくなる。 てんまのたづなを使うと、いきなりエンディングの動きになる。 まほうのじゅうたんで直接ゼニスのしろへいくと面白い。 スタッフスクロールはゼニス城が空へ浮遊するシーンからスタート。 後日シーンはチャモロのシーン。BGM が街のそれ。 ラストシーンはレイドック城の王室から。
画面下側にノーメッセージ娘がいる。 この先に画面切り替えポイントはない。
このルーム以降のフラグルームからすでに用意されているフラグキャラとの重複が出てくる。 この部屋で聞くことのできるセリフは次のとおり。
表 4.12 フラグチェック部屋(ホルス)
セリフ | 「はい」と答えると |
---|---|
オープニング終了後 | |
村まつり終了後 | |
くじけぬ心 入手後 | |
M05に 初めて 入った | |
サンディ 入牢後 | |
実体化後 | |
ニセ王子として 追い出された | |
カガミのカギ入手後 | |
ラーの鏡入手後 | |
王がシェーラに戻った後 | |
ムドーが王に戻った後 | |
王の書状を 受けとった |