更新 2.34
2026/6/7
v2.34.0BETA
Seymour
Battle Tracker: it WORKS (reads the live battle) — auto initial read, honest status + an RT2 戰鬥追蹤器開啟時為
- 空白(兩個空白麪板,「 Load ngame 」無反應)。原因是 NOT the addresses — I proved against live RAM (FFX.exe PID 24716, battle
azit03_01)證明整條鏈路是正確的:ADDR_BATTLE_ACTIVE(rva0xD2A8E0)=1、ENEMY_LIST/PLAYER_LIST(rva0xD34460/0xD334CC) 皆可解析、stride0xF90、MemoryChr偏移(Id@0xE,Max_hp@0x594,Hp@0x5D0,In_battle@0xDC8) match, formation slots[0,4,6]== 帶有In_battle=1的 3 名玩家。後端(Binarysharp.MSharpx64 reading the x86 FFX) also works —new MemorySharp+Read<byte>(rva, isRelative:true)回傳正 確的值。 UX: theDataModel從未 觸發首次 讀取(ArenaTrackerreads in its ctor; the Battle Tracker didn't), and the timer only read with Auto-Refresh 修正: (1) 在 建構子中進行初始讀 取;(2) 計時器 每個 tick 都 維持誠實狀態,並在 auto-populates the first snapshot when a battle starts (no need to toggle Auto-Refresh) and clears on battle exit; (3)ReadInfowrapped in try/catch that surfaces the error + guards (null pointer / null bytes / out-of-range slot); (4)MemSharp_Service.IsAvailable()在 attach +IsAttached; (5) the UI 狀 態橫 幅FFX not found" / "attached, no battle" / "In battle: name · N enemies, M allies") and an RT2 (核取方塊 ,預設 OFF = read-only),用來把關更名後的「⚠ Write to game」按鈕。新的驗證工具:RuntimeTools/BattleTrackerProbe(proves the live read path with the same DLL). Files:Modules/BattleTracker/{BattleTracker_DataModel.cs, BattleTracker_Control.axaml}、Services/MemSharp_Service.cs、RuntimeTools/BattleTrackerProbe/*、文件docs/reverse/FFX_BATTLE_TRACKER_LIVE_READ_PROVEN_2026-06-07.md. Module build OK (validated in a clean HEAD worktree; the full editor build is broken by another lane'sAiTargetOptionWIP, unrelated to this change). Honest: READ proven on screen/RAM寫入(遊 戲中載 入 →WriteProcessMemory) stay RT2 (game open + lock on)
v2.33.0