忍者ブログ

データ置き場

ニコ生RTA放送を見ていて湧いた疑問を調査してアップするかも。ほぼドラクエのみを扱うブログ風のマニアックなサイト

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SFC版ドラクエ5のエンカウント確率

SFC版ドラクエ5エンカウント判定はすでに解析済みのDQ1&2の判定とよく似た1歩(半マス)移動ごとに判定が行われる方式です。主にマップ切り替わりまたは直前エンカウントからの歩数、移動先の地形、エンカウントエリアによって確率(閾値)が変化します。
地形ID→基礎エンカ指数


  1. 建物の上などの条件でエンカウント判定をしない(詳細未解析)。
  2. 聖水・トヘロスの有効性判定(エリアレベル)
  3. 魔物のエサ、匂い袋により基礎エンカ指数を8倍する
  4. 歩数と地形に応じたエンカ指数の乗除
  5. エンカウントエリア別の遭遇係数にエンカ指数の乗除
  6. エンカ指数と線形合同法の乱数取得とによるエンカウント判定

1.建物の上などの条件でエンカウント判定をしない(詳細未解析)。

2.聖水・トヘロスの有効性判定(エリアレベル)

「主人公レベル>=エリアレベル」のとき聖水・トヘロスが有効です。ただし、街に入ると聖水・トヘロスは解除されます。また、魔物のエサ、匂い袋との併用はあとに使用したものの効果だけ発動されます。

3.魔物のエサ、匂い袋は基礎エンカ指数が8倍されます

フィールドで有効。1エンカウントで効果はなくなります。

4.歩数と地形に応じたエンカ指数の乗除

4.aフィールドの地形ごとの基礎エンカ指数$23F1E0
地形ID$1AA0基礎エンカ指数$01,s  歩数閾値$00(==256/基礎エンカ指数)
0海 02 128
1砂漠 07 36
2山 12 21
3岩山 00 ?
4毒沼 09 28
5茂み 07 36
6平地・橋 05 51
7森 09 28
8浅瀬 02 128
9海辺 02 128
10進入不可? 02 128
11樹林・塔 09 28
12建物の右端・右上 02 128

4.a’地形ごとの基礎エンカ指数補足
基礎エンカ指数$01,s条件(SR $0084CF内)
0x00 エンカウントテーブル番号がFF(ノーエンカウントエリア)
0x07 施設内・ダンジョンで地形IDが [0,127]
0x20 ダンジョン暗転時
0x00 トヘロス、聖水で 主人公レベル$7E2052 >= エリアレベル $1A99 の時(ノーエンカ)

フィールドで匂い袋効果中は8倍(1エンカウントのみ)


4.b単純歩数$02、歩数閾値$00 に応じたエンカ指数$01,s の乗算・除算処理@23/E85C
条件1(@23/E7F6)条件2条件3エンカ指数$01,s @23/E85C
$02 < $00 $02 <3 $01,s = 0(@23/E85)
$02 < $00 3 <= $02 $02<5 $01,s = $01,s/64
$02 < $00 5 <= $02 $02<7 $01,s = $01,s/16
$02 < $00 7 <= $02 $02<9 $01,s = $01,s/4
$02 < $00 9 <= $02 $02<11 $01,s = $01,s/2
$02 < $00 11 <= $02 A = (stack)/2: $01,s = $01,s/4 + $01,s/2
$02 >= $00 $02>=2*$00 $00=2*$00: $01,s = mod($01,s*4; 256)
$02 >= $00 $02<2*$00 $00=2*$00: $01,s = mod($01,s/2 + $01,s; 256)

5.エンカウントエリア別の遭遇係数(の分子X)とエンカ指数$01,s との乗除(×X/64)

X係数(端数切捨て)テーブル番号
16 0.25 ----
22 0.34375 ----
43 0.671875 8,34,37,51,64,75,80
64 1 その他
80 1.25 14
96 1.5 7,10,32,70
112 1.75 69
128 2 ----

6.エンカ指数と線形合同法の乱数取得とによるエンカウント判定

DQ5の乱数はXOR などのビット演算で求める乱数とここで用いる線形合同法の乱数(sr: 23/EAFD)があるようです。5.のエンカ指数が256以上のときと、乱数[0,255]<=エンカ指数の時にエンカウントします。1歩ごとに エンカ指数/256 の確率でエンカウント!?

まとめ?

どういう風になっているのかわかりにくいのでとりあえず同一地形を歩いた時の歩数とエンカウントの関係をプロットしてみました。(DQ5確率密度(その歩数ちょうどでエンカする確率))(DQ5確率分布(歩数≦横軸の値でエンカする確率))
DQ5確率密度(その歩数ちょうどでエンカする確率) DQ5確率分布(歩数≦横軸の値でエンカする確率)
 同じ歩数歩いても歩数カウントが溜まってからの方がエンカウントしやすく、直前までに歩いた地形はそれ以降の判定時には影響しない。
乱数[0,255]<=エンカ指数 のときエンカウント
計算結果とグラフ:SFCDQ5エンカウント確率.ods

参考サイト

SFC版DQ1&2エンカウント判定(Kriさん)
SFC版DQ5エンカウント制御 5.8. タイルエンカウント表 (プレハブ小屋showa_yojyoさん)
PS2版DQ5エンカウント判定や確率用語など(Maruさん)

2019年6月5日 dropbox のリンク修正

PR
Comment form
お名前
メールアドレス
URL
タイトル
コメント
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
プロフィール
HN:
bamboo
性別:
非公開
自己紹介:
2010年の3月ごろニコニコ生放送のゲーム放送でRTAを知ってよく見るようになった。
どちらかというとゲームはプレイするものじゃなくてプレイを"みる"ものだと思っている。
逆アセンブル解析というのをかじったものの放置していたが、某放送の影響で解析を再開。
2を初クリアしたのは2011.3.10。ブログの内容はSFC版ドラクエ1・2の解析がメイン。最近はjavascriptとかluaをある程度扱えるようになったので、botでルート検証とかできたらと思いつつも進んでいない。
要点をまとめたり文章書くのが苦手なので記事が長ったらしかったり、日本語のようで日本語でなかったりする。プログラム用語が使えるようになりたいかも。
ツイッター: https://twitter.com/bamb00h
ブログに公開せずツイートのみの情報もあり(twilog
バーコード
ブログ内検索
カウンター
忍者アナライズ
  Copyright 2024 データ置き場 All rights reserved.
Template Design by LockHeart|powered by NINJA TOOLS 忍者ブログ [PR]