Atualização 2.34
07/06/2026
v2.34.0BETA
Seymour
Battle Tracker: ele WORKS (lê a batalha ao vivo) — leitura inicial automática, status honesto + lock de escrita RT2
- O Battle Tracker abria vazio (dois painéis em branco, "Load Ingame" inerte). A causa era NOT os endereços — I provou contra RAM vivo (FFX.exe PID 24716, batalha
azit03_01) que a cadeia inteira está correta:ADDR_BATTLE_ACTIVE(rva0xD2A8E0)=1,ENEMY_LIST/PLAYER_LIST(rva0xD34460/0xD334CC) resolvem, stride0xF90, offsetsMemoryChr(Id@0xE,Max_hp@0x594,Hp@0x5D0,In_battle@0xDC8) batem, slots de formação[0,4,6]== os 3 players comIn_battle=1. O backend (Binarysharp.MSharpx64 lendo o FFX x86) também funciona —new MemorySharp+Read<byte>(rva, isRelative:true)retorna o valor certo. A causa era UX: oDataModelnunca disparava a primeira leitura (oArenaTrackerlê no ctor; o Battle Tracker não lia), e o timer só lia com Auto-Refresh ativo. Fix: (1) leitura inicial no construtor; (2) o timer mantém o status honesto a cada tick e auto-populates o primeiro snapshot quando uma batalha começa (sem precisar alternar Auto-Refresh) e limpa na saída da batalha; (3)ReadInfoembrulhado em try/catch que expõe o erro + guards (ponteiro nulo / bytes nulos / slot out-of-range); (4)MemSharp_Service.IsAvailable()não lança mais no attach +IsAttached; (5) o UI ganhou um banner de status ("FFX não encontrado" / "attachado, sem batalha" / "Em batalha: nome · N inimigos, M aliados") e um lock de escrita RT2 (checkbox, default OFF = read-only) gateando o botão renomeado "⚠ Write para game". Nova ferramenta de verificação:RuntimeTools/BattleTrackerProbe(prova o caminho de leitura ao vivo com o mesmo DLL). Arquivos:Modules/BattleTracker/{BattleTracker_DataModel.cs, BattleTracker_Control.axaml},Services/MemSharp_Service.cs,RuntimeTools/BattleTrackerProbe/*, docdocs/reverse/FFX_BATTLE_TRACKER_LIVE_READ_PROVEN_2026-06-07.md. Build do módulo OK (validado numa worktree HEAD limpa; o build completo do editor é quebrado peloAiTargetOptionWIP de outra lane, não relacionado a esta mudança). Honesto: READ provado na tela/RAM; escritas (Load Ingame →WriteProcessMemory) permanecem RT2 (jogo aberto + lock ativo)
v2.33.0