Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DQ9 アイテムリポップタイマー

index.htmlをローカルで開くだけで動く独立ツールです。89 areaの静的pickup定義、マップ名、アイテム名、座標、area別respawn countを同梱しています。ネットワーク要求、ROM、WebMCP接続、エミュレータ実行中メモリの読み込みは不要です。

通常の使い方

  1. 読込方法で通常ロードまたは中断データ継続を選び、.savまたは.dsvを読み込みます。通常ロードは実機の初回初期化を適用し、中断データ継続は保存中のremainingとavailabilityを維持します。
  2. 必要なら現在timerをJSON保存で1 area 1 object、または現在timerをCSV保存で1採取point 1行の現在値一覧を保存します。
  3. セーブを使わず通常ロード直後から始める場合は、泉グループを選び「通常ロードとして開始」を押します。89 areaをduration step × 3分で登録します。共有60秒位相は不明なので、最初の1 countには最大60秒の幅があります。
  4. 以後にゲーム内で採取した地点はareaを選び、「選択地点の採取を記録」で更新します。area別の30~360 countが自動設定されます。
  5. 一覧の「出現数」は現在数 / 最大数、最大までの残り周期、途中でタイマーを再始動する回数を示します。補充判定ごとに出現数を1個ずつ見積もり、地点の最大数に達するとそのタイマーを停止します。採取後はその地点を記録すると再開します。
  6. 既存countを変えず位相だけ補正する場合は、ゲーム内timer countが減った瞬間に「60秒位相だけを今同期」を押します。

ゲーム内schedulerは全areaで共有する60.0秒周期で、採取時にはresetされません。位相同期済みなら手動記録を次のglobal tickへ揃えます。未同期でも利用できますが、最初の1 countに最大60秒の不確かさがあります。

セーブ読込

64KiBセーブの二重化slot内にあるtimer tableを、固定offset slotBase + 0x3448(絶対位置0x34480xB448)から読みます。泉グループは各slotのslotBase + 0x3444から取得し、ID 0~7を画面の日本語名へ変換します。固定位置で署名が一致しない形式では、既知89 areaのpointCountminimumrespawnUnitsを使って候補を探索します。

通常ロードでは、timer wordのbit31が1かつ保存availability(bits 17~24)が0以外の地点を、duration step(bits 25~28)× 3分へ初期化し、availabilityを0にします。条件外の地点は保存中の残り時間を維持します。保存wordとロード後wordは別々に保持され、JSON/CSVにも両方を出力します。この処理はAT乱数に依存しません。

中断データ継続では通常ロード初期化を適用せず、選択copyの保存remainingとavailabilityをそのまま外部タイマーへ読み込みます。

ゲーム内の実際の補充数はAT乱数で変わり、外部ツールから完全追跡できません。本ツールは固定1個で見積もります。実際に一度に複数個補充された場合は最大到達を遅めに表示しますが、0個の回が続いた場合は早めに停止する可能性があります。

中断セーブを含む二重化copyのどちらが採用されるかを示す確定済みカウンタは、本調査の対象外です。両copyの署名が同等なら画面に警告し、利用者が記録を選べるようにしています。

表示の確度

  • 1 countはupdateItemPickupRespawnTimers @ 0x0208F588の定数と分岐から、正確に60.0 game elapsed secondsです。
  • 通常87 areaと特殊izmitm area 98/99、合計89 areaを収録しています。通常areaは364 point座標を収録しています。
  • area 5の例は「西セントシュタイン / どくがのこな(item 0x5605)/ 30 count / 3 points」です。
  • availabilityは保存timer word bits17..24です。Finderが使うruntime node +0x04と同一視しません。
  • 通常ロード初期化はmain:0208F514のlisting、menu.dstからの反復動的観測、selector 0~7の全word比較で確認しています。

生成元

  • data/scenario/flditem.pac(NitroFS file ID 6976、NARC 126 members)
  • data/map/maplist9.bin(field/map IDとfield code)
  • data/bin/izmitm.bin(特殊area 98/99)
  • 動的観測済みanchor: area 5/6/18/19/20

完全表はdata/pickup-reference.jsondata/pickup-reference.csvです。ローカルファイル直開きでも動くよう、実行時は同内容のdata/pickup-reference.jsを読み込み、fetch()には依存しません。

通常ロード初回時間の一覧はpickup-location-list-initial-load.csv、89地点の早見表はpickup-respawn-quick-reference-initial-load.csvです。再生成には次を使います。

node 'generate-pickup-location-csv-initial-load.mjs'
node 'generate-pickup-respawn-quick-reference-initial-load.mjs'

Sound credits

告知音「警告音 サイレン05」はOtoLogic提供、CC BY 4.0ライセンスです。

  • File: data/Warning-Siren05-03(Fast-Short).mp3
  • Source: 「警告音 サイレン05」by OtoLogic
  • 再生音量は本ツールの音量スライダーで調整します。

About

This visualizes when the next item will respawn

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages