DQM2 不思議な鍵の出現率とランク(2020/08/02更新)

GB版DQM2

以下の情報は全て解析によるもの。

パーティの強さと不思議な鍵の関係(エクセルファイル)
手に入る確率の一覧

重要なこと
・鍵は、入手時のパーティにのみ依存。鑑定前に決まっている
格闘場だろうが異世界のダンジョン最下層だろうが同じ
・入手時のパーティランク(後述)がそのまま鍵ランクとなる。
・鍵束にあるのと全く同じ名前の鍵は入手できない(未鑑定状態のものを含む)
鍵名の後半が一致する鍵は出ないように思える
・(20/08/02追記)鍵名の後半が一致する鍵は、極めて低い確率で出る(追記終わり)
・「まおう」の鍵は鍵ランクが80~89で3%、90~99で5%の確率で出現
79以下では出現しない
・「さいごの」と名がつく鍵は80~89で1%、90~99で4%
79以下では出現しない
・ただし、鍵名の前半と後半の決定には連続する乱数を使っているため、名前の組み合わせには多少偏りがある


・鑑定料は(鍵ランク+1)×10

・パーティランクの求め方
まず、パーティの各モンスターの「強さ値」を以下で求める。
A=最大HP+最大MP+攻撃+防御+素早さ+賢さ-Lv×24 (ただし0未満なら0とする)
B=(最大HP+最大MP+攻撃+防御)×2+素早さ+賢さ
強さ値=A/50+B/100
(割り算のたびに切り捨て)

強さ値の平均がパーティランク(ただし99以上なら99)
※各モンスターの強さ値は100を超えていても構わない
例えば強さ値が120のモンスターと60のモンスターの2匹パーティなら、パーティランクは90になる。

以下、鍵について、主に自分用メモ
鍵の情報はC707から4byteずつ、「マルタ」「砂漠」「海賊」…以下、不思議な鍵とシナリオ鍵の別なく、入手順に保存。
またC787から2byteずつ(対応する位置に)、地形とマップの種類を保存
○鍵情報詳細
・1byte目
FFで存在しない状態
FEで「不思議な鍵」状態
00で鑑定直後
1度使うと80
上位2bit目がクリアフラグ(不思議・シナリオ共通)
シナリオ鍵は「01」マルタ、「02」海賊
・2byte目:レア度(鍵名前半)
シナリオ鍵ではFF
・3byte目:出現系統(鍵名後半)
シナリオ鍵ではFF
・4byte目
鍵のランク。鑑定料及び出現モンスターの強さはこれにより決まる模様
シナリオ鍵の場合は「80」
・C787以降
1byte目が種類(海・浮遊大陸…etc)、2byte目がマップの種類。
何種類あるのかなどは未調査


以下解析の中身とか


概要
ROM12 689Aからがメイン
(C943)を0にする
call C91Fで鍵束がいっぱいかチェック(多分)
call 6955で鍵名決定ルーチンの本体を呼び出し
その後鍵名のダブりチェック
後半が違うならOKなので68C8でjr nz,68F7
後半が同じで前半が違う場合68CFでjr nz,68E9して、(C943)をinc。そののち、これが14h未満なら68D2に飛んで、鍵の決め直し、14hならこれで決定。
後半が同じで前半も同じならそのまま68D1に進んで鍵の決め直し


鍵名決定本体

ROM12 6955から
aにCCE2(パーティランク)
FFC6にa
bに60
ROM60 6916から
aにFFC6
FFC9にa
Hに0,Lにa
aに0Ah
call16C1で割り算。HL=HL/a、a=mod(HL,a)
a=L
afをプッシュ

aをswap
HL=6969+a
call695C
 call09E3乱数再計算
 CCE1の下7bitが64h未満ならaに。さもなくば再計算
c=a
b=0
aに(HL)を代入(6969付近)
aがc以上になるまでHLとbを+1
a=b
FFC7にa

afをポップ
c=3Ch
call1672。HL=c*a,b=c,c=0
HL=HL+6A09
call695C
 call09E3乱数再計算
 CCE1の下7bitが64h未満ならaに。さもなくば再計算
c=a
b=0
aに(HL)を代入(6A09付近)
aがc以上になるまでHLとbを+1
a=b
FFC8にa

FFC7,FFC8,FFC9を鍵情報2~4byte目に入れて終了


(ROM60の6969:イルルカ共通)
14 28 37 46 50 5a 5f 64 00 00 00 00 00 00 00 00
0f 1e 2d 3c 4b 55 5a 5f 64 00 00 00 00 00 00 00
00 0a 19 28 37 46 50 5a 5f 64 00 00 00 00 00 00
00 00 0f 1e 2d 3c 4b 55 5a 5f 64 00 00 00 00 00
00 00 05 0f 19 28 37 46 50 5a 5f 64 00 00 00 00
00 00 03 08 12 21 30 44 4e 58 5d 62 64 00 00 00
00 00 03 08 12 1c 26 35 44 53 58 5d 62 64 00 00
00 00 00 02 05 0f 19 28 37 46 50 5a 5f 62 64 00
00 00 00 00 03 08 0d 12 21 30 3f 49 53 5d 62 64
00 00 00 00 00 05 0a 0f 19 23 2d 37 46 55 5f 64

01 00 02 03 04 05 00 00 06 07 00 09 0c 0f 12 00 00 00 15 18 1b 1e 21 24 00 26 29 2c 2f 00 32 35 00 38 3b 3e 41 44 00 47 4a 4d 50 53 00 00 00 55 57 5a 00 5c 5e 61 64 00
01 00 02 03 04 05 00 00 06 07 00 09 0c 0f 12 00 00 00 15 18 1b 1e 21 24 00 26 29 2c 2f 00 32 35 00 38 3b 3e 41 44 00 47 4a 4d 50 53 00 00 00 55 57 5a 00 5c 5e 61 64 00
01 00 02 03 04 05 00 00 06 07 00 09 0c 0f 12 00 00 00 15 18 1b 1e 21 24 00 26 29 2c 2f 00 32 35 00 38 3b 3e 41 44 00 47 4a 4d 50 53 00 00 00 55 57 5a 00 5c 5e 61 64 00
01 02 03 04 05 06 07 08 09 0a 00 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 4a 4c 4e 50 52 54 56 58 5a 5c 5e 60 62 64
01 02 03 04 05 06 07 08 09 0a 00 0c 0e 10 12 14 16 18 1a 1c 1e 20 22 24 26 28 2a 2c 2e 30 32 34 36 38 3a 3c 3e 40 42 44 46 48 4a 4c 4e 50 52 54 56 58 5a 5c 5e 60 62 64
06 0c 12 18 1e 23 28 2d 32 37 00 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64
06 0c 12 18 1e 23 28 2d 32 37 00 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64
06 0c 12 18 1e 23 28 2d 32 37 00 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64
06 0c 12 18 1e 23 28 2d 32 37 3a 3b 00 3c 3d 3f 41 42 00 00 00 00 43 00 46 47 00 00 48 4b 00 00 4d 00 4e 4f 50 00 51 52 53 00 54 00 55 57 58 5a 5b 00 5e 60 62 00 00 64
06 0c 12 18 1d 22 27 2c 31 36 3b 3c 00 3d 3e 40 41 42 00 00 00 00 43 00 46 47 00 00 48 4b 00 00 4d 00 4e 4f 50 00 51 52 53 00 54 00 55 57 58 5a 5b 00 5e 60 62 00 00 64




強さ値とパーティランクの計算の部分


Lv=2 A056
MHP=16 A05D
MMP=32 A061
AT=48 A063
DF=64 A065
SP=80 A067
IN=96 A069

SP,IN→DF,AT→HP,MP→Lvの順で読み取り

1672。掛け算。HL=c*a,b=c,c=0
16C1。割り算。HL=HL/a、a=mod(HL,a)
1FC1。アドレス計算。HL=A000h+A5h*a+c
1F70。ロード。FFC6に(HL)をロード
1F79。ロード。FFC6,FFC7に(HL)と(HL+1)をロード

ROM61 40D7
c=67h
call 1F79 A067をFFC6,FFC7へ
HLにFFC6,FFC7(SP)を読み込み
AFをポップ
AFをプッシュ
c=69h
CALL 1F79 A069をFFC6,FFC7へ
deにFFC6,FFC7(IN)読み込み
HL=HL+de これをFFC8,FFC9にロード(SP+IN)
HLを半分に
c=63h
call 1F79 A063をFFC6,FFC7へ
HLをプッシュ((SP+IN)/2)
HLにFFC8,FFC9をロード(SP+IN)
deにFFC6,FFC7(AT)を読み込み
HL=HL+de これをFFC8,FFC9にロード(SP+IN+AT)
HLにFFC8,FFC9をロード(SP+IN)
HLをポップ((SP+IN)/2)
deにFFC6,FFC7(AT)を読み込み
HL=HL+de ((SP+IN)/2+AT)
c=65h
call 1F79 A065をFFC6,FFC7へ

以下繰り返し
418Aの時点で
FFC6,FFC7=MMP、FFC8,FFC9=MHP+MMP+AT+DF+SP+IN
HL=MHP+MMP+AT+DF+(SP+IN)/2

a=32h
call 16C1 HL=HL/32h
FFCA,FFCBにHLを加える
c=56h
call 1F70 A056をFFC6にロード
aにFFC6(Lv)をロード
c=18h
call 1672 HL=c*a
HL=FFC8,FFC9-HL ただし、0未満は0
FFCC,FFCDにHLを加える

これをパーティ人数分する
HL=FFCA,FFCB+FFCC,FFCD
aにC6FD(パーティ人数っぽい)をロード
call 16C1
a=Lが63h以上なら63hにする
CCE2にaをロード



見れば分かる通り、内部計算的には、
  A=最大HP+最大MP+攻撃+防御+素早さ+賢さ-Lv×24 (ただし0未満なら0とする)
  B=最大HP+最大MP+攻撃+防御+(素早さ+賢さ)/2
  強さ値=A/50+B/50
で、計算しているが、全く問題がないことを確認した上で、冒頭のように式変形を行った。

コメント

No title

凄く参考になりました。今でもGB版DQM2をプレイしている方がたくさんいるのですね。びっくりしました。

Re: No title

そう言っていただけると励みになります。ありがとうございます。
良いゲームなので、今でもプレイされている方は結構いるんじゃないかと思ってます。

No title

>鍵名の後半が一致する鍵は出ないように思える

私の鍵束に現在「さいごのあくまのかぎ」と「ひみつのあくまのかぎ」が同時に存在しています。
以前「かがやくまおうのかぎ」を所持していたにもかかわらず「しずかなまおうのかぎ」を入手した記憶もあります。
後半の名称が同じ鍵は確かに非常に出にくいですが、バグか仕様かは不明ながら全く出現しないわけではないようです。

Re: No title

情報ありがとうございます。
この部分に関しては解析をしていないため、
・普通に出る
・出にくくしてある
・絶対に出ないようにしたはずがバグっているため低確率で出る
のどれが正しいのかはわかりません。不確かな情報を削除しました。

後日改めて調査予定です。(7月中を目処にしておきます。気長にお待ちください)

No title

ご返信ありがとうございます。まさかお返事を頂けるとは思わず、確認が遅れ申し訳ありません。
ここの鍵関連の踏み込んだ情報にはお世話になりっぱなしで頭が上がりません。調査結果を楽しみに待っています。

こちらで確認できた鍵の名前被りは先の2例のみなので、被りが「まおう」「あくま」以外でも起こりうる現象なのかどうかはわかりません。
現在900時間以上プレイしていますが高レベル帯ではそれでも全く出現しない組み合わせの鍵(鳥+竜、スライム+水、他いろいろ)が結構あるなど、名前被り以外にも鍵の抽選に関してはおかしな要素がかなり見つかりそうな気がします。

Re: No title

名前被りについて調査を行い、記事・エクセルファイルを更新しました

「名前被りの鍵が出る確率は極めて低いが0ではない」が結論です。
具体的には「鍵名の後半が被った場合、20回までやり直す」という処理がはいっています。
20回目まで被り続けた場合、最終的に被ることになりますが、自然に遭遇する確率はおよそ0.1%程度と考えられます。
私も通常プレイを400時間程度はしたのですが、名前被りに遭遇することはありませんでしたね……。
この現象自体は、全ての名前の鍵で起きうるようです。

>高レベル帯ではそれでも全く出現しない組み合わせの鍵(鳥+竜、スライム+水、他いろいろ)が結構ある
これについては2014年の時点ですでに調査済みであり、エクセルファイルに記載があります。
ご指摘の通り、「うみ」(スライム+水)、「とう」(鳥+ドラゴン)を始め、56種類のうち17種類が高ランクでは出現しません。
確率テーブルがそのように作ってあるため、これはバグではなく意図されたものと考えられます。
ちなみに、中ランク(パーティランク50~79)では「まおう」と「ほし」以外の全ての鍵が出ますが、「ほし」が出ないのはバグだと考えています。


今後も、何かあればお気軽にコメントください。
新規に調査することはあまりしないかもしれませんが、既存の内容に対する誤りの指摘・疑問などについては対応するつもりです。

No title

調査お疲れ様です。

>名前被り
つまり鍵の重複が出ないようにするための処理を超低確率を乗り越えてたまたまくぐり抜けた鍵が、あのひみつのあくまのかぎだったのですね。納得しました。
>高レベル
何らかの理由で通常のプレイでは絶対に出ないような状態になっているのは薄々察していましたが、
そもそも抽選テーブルに存在していないのですね。
これでずっと欲しかった「さいごの鳥+竜のかぎ」の入手をすっぱり諦められそうです…w

詳細な解説ありがとうございました。
これからもひっそりと応援しています。

No title

まだやってますか?ww

コメントの投稿

管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

プロフィール

hide(ハイド)

Author:hide(ハイド)

○やりこみとか

DQMキャラバンハートRTA
3:57:15

(11年5月21日)

GB版DQM2
低レベルボス攻略

(14年5月6日)

ぱるメロ
旧曲10780pts %表
ツアー3628630
(12年3月~14年9月)

ポケモン不思議のダンジョン
赤の救助隊
RTA 2:49:59

(14年12月5日)

ポケモン不思議のダンジョン
赤の救助隊
状況再現ありRTA 2:26:36

(15年3月9日)

DQM系データ

フリーノベルゲ攻略

最新記事
カテゴリ
リンク
最新コメント
月別アーカイブ