忍者ブログ

データ置き場

ニコ生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

DQ5フィールドエンカマップの公開

【調査と修正】
エミュレータ snes9x 上でlua bot を動かし先頭キャラのいる場所の地形ID $1AA0 を取得してマップをました。岩山などは壁抜けチートを使ってすり抜けていますが、建物に出入りしてしまいフィールドに戻る位置が半マス下にずれたりワープしたりしているのを確認し、確認できたものを修正しています。
【説明】
セルを選択するとそこのエンカウントテーブルを表示するようにしました(データ→入力規則→入力時メッセージ)。エンカウントエリアは16x16マス単位です。ドラクエ5の世界地図は他作品より少し広く272マスx272マスとなっています。海エンカについて遠藤さんのサイトを見ても陸のモンスター遭遇マップデータしか見当たらず、青年期前半は未調査で青年期後半では1テーブルしか確認できませんでした。

DL: DQ5フィールドマップ(.ods LibreOffice or OpenOffice)
DL2: フィールドマップ(.ods)と地形IDのテキストファイルとかのZIP

LlibreOfficeCalc, AppatchOpenOfficeで作成しています。ods形式ですがexcelでも開けるようです。逆に xlsx形式(エクセルと同じ拡張子)にして open officeやlibre officeで開いたところ、一部しか背景色を変更できておらず、ただ重いだけのファイルになっているようです・・・?

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

SFC版ドラクエ5ダメージ計算式

非会心・痛恨の打撃ダメージ計算式(敵味方共通)

調査対象:キラーマシンの攻撃(モンスター側→プレイヤー側)
敵味方共通のサブルーチン
※除算の端数(余り)は加算・減算前に切り捨て(無視)する!
A = atk/16
AD = atk - def/2
D = AD/2 = (atk - def/2)/2
rnd = [0,255]の乱数
※(A + 1)*rnd/256 は [0,A] の範囲の乱数

SR $103030 ($20B030)

直接攻撃のダメージ計算式
AD < 0
Yes No
D = 0
Yes No
プレイヤーが被弾
Yes(敵側の行動) No
D ≦ A
Yes(Noは右へ) No
D < 8
Yes No
D + 3*rnd/256 - 1 < 0
Yes No
ダメージ計算式
2*rnd/256 (A + 1)*rnd/256 0 D + 3*rnd/256 - 1 D*7/8 + (D/4 + 1)*rnd/256
最小
0 0 0 or D - 1 D*7/8
最大
1 A D + 1 D*7/8 + D/4


会心・痛恨の打撃ダメージ計算式1


カレンダー
10 2024/11 12
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]