本節は RAM または ROM の値のごく一部を書き換えることにより再現可能な特殊な状況を撮影した画像群を展示する。 通常のプログラム実行条件下では決して表に現れることのない特殊データ、 またはデバッグ専用のデータあるいは挙動をお見せしたい。
ID の付いたデータについては 付録 B データ の対応する CSV ファイルで参照して欲しい。
3.12 モンスター で言及したモンスターオブジェクトのうち、怪しいものを見ていく。
名前、属性値定義、グラフィックにおいてデータの完成度に違いがある。
「ダミー17」を除き、オールゼロ・無効値で埋められている。
その「ダミー17」も、よく見ればオブジェクトは ID #$2F
のモンスター「ジャミ」のコピーだ。
表 3.1 ボツモンスター
ID | 名前 |
---|---|
#$7E
|
ダミー17 |
#$C0
|
ドードリアン |
#$CB
|
ダミー19 |
#$CC
|
ダミー20 |
#$D2
|
ダミー21 |
#$D3
|
ブルーマッコイ |
#$D4
|
ダミー22 |
#$DA
|
オーシャンキング |
ここにいるのは、本来ならば主人公の仲間としてパーティーにいるキャラクターの「中身」だ。 3.4 仲間キャラクター構造体 で述べるように、 「めいれいさせろ」の対象にならない仲間キャラクターの戦闘時の特性が定義されたオブジェクトだ。
「!のつま」の「!」部分は主人公の名前で置き換えられるようだ。
ここでは 3.13 アイテム の執筆過程で発見した謎のアイテム 5 件の存在を示す画像を展示する。
付録 B データ に収録したデータから推察されるように、 これらは全てボツアイテムのようである。 オブジェクトのほとんどすべての属性がゼロで定義されている。 それゆえ、結果的にアイテム分類がすべて武器扱いとなり、 買値は 0 ゴールドに設定され、かつ捨てることも許可されているという共通の性質がある。 インパスの呪文による鑑定メッセージがまったく設定されていないという点も同じだが、 ボツメッセージらしきものが実は一部存在する。こちらは後ほどお見せする。
個々のボツアイテムを見ていこう。
ID #$7E
のアイテムの名前は定番アイテム「とうぞくのカギ」だ。
本書直前版ではうっかり見落としていたが、本作ではボツアイテムなのだった。
ただ、移動中の道具コマンドハンドラーは実装されており、
これは我々の想像通りの振る舞いをするようだ。
ID #$BA
のアイテムの名前は「まほうのふくろ」だ。
戦闘中における道具コマンドのそれらしい振る舞いがコードに残存している。
「○○○○は まほうのふくろを つかった!」のような定型メッセージはなく、 いきなり空行。そのあとに「なんと なかみは ひのきのぼうだった!」と表示される。 なお、中身のアイテム名は固定ではない様子。 さらに次のページで「なんと なかみは まだ できていない!」と表示される。
ID #$BE
のアイテムの名前は「あくまのおもちゃ」だ。
これに対するインパス鑑定メッセージ用データと思しきテキストが ROM 中にあるので画像で示す。
「なにやら 持っているだけで 不幸を招きそうだ」とのことだ。
ID #$C3
のアイテムの名前は「モンスターほいほい」だ。
これに対するインパス鑑定メッセージ用データと思しきテキストが ROM 中にあるので画像で示す。
「これを しかけておけば 魔物を つかまえることが できるよう」 な機能を備えさせたかったようだ。
ここでは謎のウィンドウを見ていこう。 現在、ウィンドウの実装詳細については解明されていないことのほうが多く、こういう画像を撮影することが本書執筆陣の限界だ。
この小さなエラーウィンドウだけは、発見の経緯が他とは異なる。
「はなす」ときに表示されるテキストの解析作業時に、試行錯誤の末得られた状況の撮影画像だ。
アドレス $7E0000[F0:F4]
あたりの値をデタラメに入力しておき、
任意の街の人に話しかける。すると出力テキストもデタラメなものになり、
そのあとに画像に示す小ウィンドウが画面中央付近に出現する。
ID #$8D
のウィンドウは「スピード」という表題が付けられている。
項目は「1ばいそく」「2ばいそく」「4ばいそく」「8ばいそく」からなるメニュー型ウィンドウだ。
残念なことに ROM 中にコマンドハンドラーが現存していないので、その機能は窺い知れない。
何かの速度が倍増するような機能が実機で備わっていれば相当素晴らしかっただろう。
ID #$8F
のウィンドウは見るからにデバッガー専用メニューだ。
項目は「フラグセット」「スピードチェンジ」「レベルチェンジ」「マップチェック」「セーブ」「オブジェチェック」「サウンドテスト」「インチキルーラ」からなる。
3.1.3.2 スピード ウィンドウはおそらく本メニューアイテム「スピードチェンジ」のサブメニューだったのだろう。
ID #$90
のウィンドウは「レベル」という表題の付いたものだ。
項目が「レベル1」「レベル2」「レベル4」しかない小さなメニューなので、
どういう機能にせよ、あまり役に立ちそうに思えない。
3.1.3.3 デバッグウィンドウ の「レベルチェンジ」のサブメニューと推察される。
ゲーム中では日の目を見ることはなかったが、3.4 仲間キャラクター構造体 で述べるように、 仲間キャラクターにはモンスターじいさんとルイーダそれぞれに対して預けるのを禁止するフラグ属性がある。
戦闘コマンド解析中に「パルプンテ」によるランダムイベントのために用意されていたと思われるコード片 ($20EC2A
) を発見した。
そこで、これが発生するようにプログラムを一部書き換えて、実際に何が起こるかを観測した。
その結果、期待通りの事象が発生した。画像を次に示す:
このイベントが発動すると、次の条件がすべて満たされているときに限り、敵モンスターが戦うのをやめて仲間にして欲しいと言う:
敵陣が最後の一頭である
モンスターじいさんのところに空きがある
馬車がある
馬車のドアが閉じていない
敵陣の最後の一頭が仲間になり得るモンスターである
同一種モンスターが 3 キャラクター未満である
今いるパーティーが 8 キャラクター編成だと、画像に示したようにすごすごと帰っていくのだが、 パーティーに空きがあると仲間に加わり、馬車に飛び乗って戦闘終了となる。
このランダムイベントが製品版に残っていたらと思うと、ワクワクするではないか。