データはXDF版(1999/11/10版DRAGON.X)のものであり、最新バグフィックス版ではここに記載の数値では期待動作をしません。

コマンドの どうぐ や そうび で仲間の名前が消えるバグの活用例
- 移動中コマンド-道具
- 移動中コマンド-装備
- 店での売買
- 預かり所
- 魔物の宝箱を開けたとき持ち物が一杯でアイテムを捨てるとき
- ルイーダでのアイテム交換
このバグは 闇が深い 奥が深い。
目次
- バグ発生パターン
- 活用例
- ベホマンの装備を変更する(難易度★)
- ゴーレムにアイテムを持たせる(難易度★)
- アイテム増殖(難易度★★)
- 序盤にアラキの法衣を手に入れる(難易度★★★)
- 序盤に雷雲の杖を手に入れる(難易度★★★★)
- ホークマンバグ
- 仕組み
- バグキャラのアイテムを手に入れる(難易度★★★★★)
- 魔物の宝を変更する(難易度★★★★★★★★)
- 預かり所に任意のコードを格納(難易度★★★★★★★★★★★★)
バグ発生パターン
リッチのメガンテ型
リッチのメガンテバグを参照
- 最も有名なパターン
- 主人公がパーティから外れないのが利点
- 利用可能な時期が終盤になるので実用性は若干下がる
主人公消失型
主人公を消してアイテムを渡せないメンバーだけのパーティを作る
- 早い段階で利用できるので実用性が高い
- 主人公消失による弊害が大きい
バシルーラでキャラが消失するバグを利用
バシルーラバグで主人公を消す
- 終盤なら簡単に再現できる
- 既存のセーブデータでとりあえず試してみるには適した方法
ノーセーブクリアバグを利用
ルイーダで主人公と別れる(主人公と別れずにルイーダのアイテム交換のみを利用する手もある)
- 本格的に使う場合に適した方法
- ノーセーブ削除を使った亜種なら序盤から簡単に利用できる
- ⇒ノーセーブクリアバグ
預かり所のオーバーランを利用
PT人数書き換えで主人公をパーティから消す(アラキ・主人公・ミシーナ⇒アラキなど)
- 手間が掛かる上にチャンスが一度しかないので主人公消失目的としては使いづらい
- 主人公消失が早すぎるのですぐにシナリオが進まなくなり嵌る
- ⇒預かり所のオーバーラン
活用例
難易度が高くなるほどTDQ2のメモリレイアウトとX68に関する知識がより多く必要になる。
ところどころにC言語やM68Kアセンブリ言語風のごちゃまぜ記法がありますが、フィーリングで読み進めてください。
ベホマンの装備を変更する(難易度★)
ゴーレムにアイテムを持たせる(難易度★)
メモ
- ルイーダのアイテム交換を利用するとゴーレムがリストから消える
アイテム増殖(難易度★★)
- 手軽に出来る割に実用性が高い
- サンチュが同行している間に可能
- サンチュと別れた後はパーティ入れ替え、ホンニンの加入、ルイーダのアイテム交換を利用するとできなくなることが多い
パーティ隊列
チオレ・トーイ・モーニ・サンチュのパーティの場合
アドレス |
No |
データ |
説明 |
PC隊列[5].b の先頭 |
0 |
$10 |
チオレ |
|
1 |
$04 |
トーイ |
|
2 |
$05 |
モーニ |
|
3 |
? |
(不定) |
|
4 |
? |
(不定) |
- |
5 |
? |
(不定) |
NPC含む隊列[32].w の先頭 |
6 |
$00 |
チオレ |
|
7 |
$10 |
チオレ |
|
8 |
$00 |
トーイ |
|
9 |
$04 |
トーイ |
|
10 |
$00 |
モーニ |
|
11 |
$05 |
モーニ |
|
12 |
$26 |
サンチュPCG番号 |
|
13 |
$0e |
サンチュパレット番号 |
手順
- アイテム増殖前にセーブ
- 増やしたいアイテムを PC隊列[12] (サンチュPCG番号)に渡す(ヴに渡したと出る)
- セーブせずに さくせん⇒ぼうけんをおわる
- さっきの冒険の書をロード
- PC隊列[12] がさっき渡したアイテムを持っているので取り戻す
メモ
- $26をキャラIDと誤認識し範囲外アドレスにアイテムを格納している
- 工夫すれば別の冒険の書にアイテムを渡すことも出来る
序盤にアラキの法衣を手に入れる(難易度★★★)
- アラキ(NPC)を隊列最後尾にしてから別れる
- ルイーダ開放後にチオレ一人PTにしてアイテムを交換
- ノーセーブクリアバグなら主人公と別れずにルイーダのアイテム交換も可能(アウカクとヤンをルイーダに登録する前)
- 方法によってヤンをルイーダに登録すべきタイミングが変わる
- チオレは装備できないので預かり所に預けるのが良い
- 工夫すればミシーナにアラキの法衣を装備させることも可能
序盤に雷雲の杖を手に入れる(難易度★★★★)
- コールバック放置バグで雷雲の杖を2本以上手に入れる
- シャウク(NPC)を隊列最後尾にしてから別れる
- 預かり所のオーバーランでミシーナと別れるときにチオレを加入させない
- アラキ加入時に二人PTにしないと隊列3番目にいたシャウク(NPC)の隊列Noが上書きされて消えてしまうため
- あとはアラキの法衣を手に入れる方法と同様
- シャウクは武術大会後に復帰するのでこのタイミングでの入手は手間の割に利点が少ない
TODO スクリーンショット
ホークマンバグ
データはXDF版(1999/11/10版DRAGON.X)のものであり、最新バグフィックス版ではここに記載の数値では期待動作をしません。
パーティ隊列の一つ上のバグキャラ (PC隊列[-1]) にカーソルを合わせたときに発生するバグ
- AI学習状態で現象が変わる
- 非常に危険なバグ
- AI学習状態によっては PC隊列[-1] にカーソルを合わせた時点でフリーズする
- 正常に見えてもシステムがどこかしら壊れているので、用が済んだらすぐにリセットした方が良い
- さくせん⇒ぼうけんをおわる⇒DOSにもどる は、やめたほうがいい
- X68実機で試すのは、やめたほうがいい
仕組み
- PC隊列[-1] が PC隊列[255] を参照している
- 実際には隊列データではなくAIのホークマン学習状態2バイト目が格納されている
- PC隊列[255] のデータをキャラIDと誤認識して所持品アドレスを算出する
- 参照アドレスが安全でも PC隊列[-1] にカーソルを合わせた時点でシステムがどこかしら壊れているので注意
バグキャラのアイテムを手に入れる(難易度★★★★★)

PC隊列[-1] からパーティキャラへ道具を渡すときは コマンド⇒どうぐ を使わず預かり所経由で受け渡しを行う
- コマンド⇒どうぐ を使うとセーブ時や街へ入るときにフリーズしてしまう
- ディスクアクセス周りのプログラムが壊れているため
- コマンド⇒どうぐ 以外だと別の箇所が壊れるがディスクアクセス周りは無事なのでセーブや街の移動が出来る
- パーティキャラから PC隊列[-1] へ道具を渡すときは コマンド⇒どうぐ を使っても良い
- 変則的なケースでは、魔物の宝箱を開けたとき持ち物が一杯でアイテムを捨てる方法も使いどころがある
魔物の宝を変更する(難易度★★★★★★★★)

ホークマン学習状態
フタバ竜の宝のアドレスにアクセス
- PC隊列[255] を バグキャラ[$74] にセット
データ |
ホ |
マ |
ザ |
ヒ |
バ |
イ |
ギ |
メ |
$74 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
- ホークマンにイオ系/ヒャド系/ザキ系の攻撃を全て掛けた実績がある
- メラ系/キラ系/バギ系の攻撃をどれも掛けた実績がない
- ホークマンが特技1(マホトーン)使った実績がある
バグキャラ[$74]の所持品
フタバ竜の宝をミラーシールド(ドロップ率100%)にする例
アドレス |
No |
変更前 |
ID |
変更後 |
ID |
説明 |
$0adecc |
0 |
(なし) |
$00 |
ミラーシールド |
$5d |
フタバ竜:宝アイテムID |
|
1 |
(なし) |
$00 |
薬草 |
$62 |
フタバ竜:ドロップ率 |
|
2 |
(なし) |
$00 |
(なし) |
$00 |
殺人エイ:名前アドレス |
|
3 |
棘の鞭 |
$06 |
棘の鞭 |
$06 |
|
|
4 |
光のドレス |
$40 |
光のドレス |
$40 |
|
|
5 |
不思議な木の実 |
$6d |
不思議な木の実 |
$6d |
|
|
6 |
(なし) |
$00 |
(なし) |
$00 |
殺人エイ:HP40 |
|
7 |
布の服 |
$28 |
布の服 |
$28 |
|
|
8 |
(なし) |
$00 |
(なし) |
$00 |
殺人エイ:攻撃力50 |
|
9 |
魔法の法衣 |
$32 |
魔法の法衣 |
$32 |
|
- フタバ竜はドロップアイテムのない魔物なので PC隊列[255] にミラーシールドと薬草を順に渡すだけでいい
- 所持品変更の副作用で10バイト先の$0adecc[10]と$0adecc[11]が$00となり殺人エイの守備力が0になる
メモ
- ドロップアイテム化しているので何個でも手に入る
- リセットすると変更前に戻るのでリセット前にドロップさせないと変更に使ったアイテムを失ってしまう可能性がある
- 工夫すれば別の冒険の書にアイテムを渡すことも出来る
- 複数のセーブデータを併用すれば他の魔物の宝も変更できる
- 例えば、魔物の宝箱を開けたとき持ち物が一杯でアイテムを捨てる方法を使って、
おおみみず (PC隊列[255]=$68) の宝を押し出しで入れ替えることが可能
- ただしこの方法で変更できる種族は限られている
預かり所に任意のコードを格納(難易度★★★★★★★★★★★★)
- メモリ16MB超にアクセス可能な環境では何が起こるか未確認
- フロッピーディスクイメージでの起動(TDQ2_A.XDF/TDQ2_B.XDF)以外ではアドレスが変わる
- アドレスが変わる環境ではアドレス読み替えが必要で、その結果実現不可能になることもある
- デバイスドライバの変更やハードディスクイメージへのインストールでもアドレスがズレる
ホークマン学習状態
施設進入サブルーチンの関数ポインタ配列的なアドレスにアクセス
- PC隊列[255] を バグキャラ[$cb] にセット
データ |
ホ |
マ |
ザ |
ヒ |
バ |
イ |
ギ |
メ |
$cb |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
- ホークマンにメラ系/ギラ系/バギ系の攻撃を全て掛けた実績がある
- イオ系/ヒャド系/ザキ系の攻撃をどれも掛けた実績がない
- ホークマンが特技1(マホトーン)/特技2(ホイミ)を全て使った実績がある
バグキャラ[$cb]の所持品
ヨラン進入サブルーチン のアドレス($06f21c)を預かり所でアクセス可能なアドレス($0aac8c)に変更する
アドレス |
No |
変更前 |
ID |
変更後 |
ID |
$0b0224 |
0 |
(なし) |
$00 |
薬草 |
$62 |
|
1 |
棘の鞭 |
$06 |
毒蛾のナイフ |
$0a |
|
2 |
ぼー |
$f2 |
アラキの法衣 |
$ac |
|
3 |
マグマの杖 |
$1c |
ラーの鏡 |
$8c |
|
4 |
(なし) |
$00 |
(なし) |
$00 |
|
5 |
棘の鞭 |
$06 |
(なし) |
$00 |
|
6 |
ぼー |
$f2 |
(なし) |
$00 |
|
7 |
魔法の聖水 |
$68 |
(なし) |
$00 |
|
8 |
(なし) |
$00 |
(なし) |
$00 |
|
9 |
くさり鎌 |
$07 |
(なし) |
$00 |
- ぼー($f2) はバグアイテム
- 変更前の所持品が違う場合はアドレスがズレている環境なので実施してはいけない
- リセットすると変更前に戻るが、変更に使ったアイテムが消えてしまうので、用が済んだら所持品を取り返しておいた方が良い
- 実施中は下記の施設に入るとフリーズする($0b0224から20バイト破壊しているため)
- (預かり所コード完成前の)ヨラン
- 封印の洞窟
- コビアキムル
- ガイコビア
- イフットス
- 所持品[0] は薬草でなくても良い
- アドレス上位1バイトは無視されるので下位3バイトが$0aac8cなら何でも良い
- $00にすることができないので入手しやすい薬草とした
- 実機やメモリ16MB超にアクセス可能な環境ではどうなるかわからない
預かり所
例として、 トーイ所持品[0] のアイテムIDを+2するコードを示す
アドレス |
No |
アイテム |
ID |
機械語 |
ニーモニック |
コメント |
$0aac84 |
0 |
薬草 |
$62 |
6206f21c |
.dc.l $6206f21c |
ヨラン進入サブルーチン アドレス($06f21c) |
|
1 |
棘の鞭 |
$06 |
|
|
|
|
2 |
ぼー |
$f2 |
|
|
|
|
3 |
マグマの杖 |
$1c |
|
|
|
$0aac88 |
4 |
薬草 |
$62 |
6206b14c |
.dc.l $6206b14c |
トーイ所持品[0] アドレス($06b14c) |
|
5 |
毒蛾のナイフ |
$06 |
|
|
|
|
6 |
タンボーの服 |
$b1 |
|
|
|
|
7 |
幸福の帽子 |
$4c |
|
|
|
$0aac8c |
8 |
おお木づち |
$22 |
2260 |
movea.l -(a0),a1 |
サブルーチン先頭 |
|
9 |
星降る腕輪 |
$60 |
|
|
|
|
10 |
皮の盾 |
$54 |
5419 |
addq.b #2,(a1)+ |
トーイ所持品[0] のアイテムIDを+2 |
|
11 |
イミルフのピアス |
$19 |
|
|
|
|
12 |
おお木づち |
$22 |
2260 |
movea.l -(a0),a1 |
|
|
13 |
星降る腕輪 |
$60 |
|
|
|
$0aac92 |
14 |
不幸のかぶと |
$4e |
4e91 |
jsr (a1) |
ヨラン進入サブルーチン を呼び出す |
|
15 |
ガス玉 |
$91 |
|
|
|
|
16 |
不幸のかぶと |
$4e |
4e75 |
rts |
|
|
17 |
ルラミトの雌石 |
$75 |
|
|
|
- 最後に ヨラン進入サブルーチン を呼び直しておかないとデータ不整合でフリーズする($0aac92)
- 預かり所[11] は 鍛えた後のカロシスの剣($18) で良いが、
鍛える前のカロシスの剣($26) と紛らわしいので イミルフのピアス($19) とした
- 呼び出し元でa0にサブルーチン先頭アドレス($620aac8c)を入れているので利用したが、たまたまこの例ではうまく動いているだけである
コード実行
上記の準備の下でヨランに入った時点で、 トーイ所持品[0] のアイテムIDが+2される
TODO 古いメモなので記憶が曖昧。上記の内容で実際に出来るか念のため追試
メモ
トーイ所持品をコードの格納場所にする手もある
関連項目
[EOF]