Mise à jour 2.34
07/06/2026
v2.34.0BETA
Seymour
Battle Tracker : ça MARCHE (lit la bataille en direct) — lecture initiale auto, statut honnête + un verrou d'écriture RT2
- Le Battle Tracker s'ouvrait vide (deux panneaux vides, « Load Ingame » inerte). La cause n'était PAS les adresses — j'ai prouvé contre la RAM en direct (FFX.exe PID 24716, bataille
azit03_01) que toute la chaîne est correcte :ADDR_BATTLE_ACTIVE(rva0xD2A8E0)=1,ENEMY_LIST/PLAYER_LIST(rva0xD34460/0xD334CC) se résolvent, stride0xF90, offsetsMemoryChr(Id@0xE,Max_hp@0x594,Hp@0x5D0,In_battle@0xDC8) correspondent, slots de formation[0,4,6]== les 3 joueurs avecIn_battle=1. Le backend (Binarysharp.MSharpx64 lisant le FFX x86) fonctionne aussi —new MemorySharp+Read<byte>(rva, isRelative:true)renvoie la bonne valeur. La cause était l'UX : leDataModelne déclenchait jamais la première lecture (l'ArenaTrackerlit dans son ctor ; le Battle Tracker non), et le minuteur ne lisait qu'avec Auto-Refresh activé. Correctif : (1) lecture initiale dans le constructeur ; (2) le minuteur garde le statut honnête à chaque tick et auto-remplit le premier instantané dès qu'une bataille démarre (pas besoin d'activer Auto-Refresh) et efface à la sortie de bataille ; (3)ReadInfoenveloppé dans un try/catch qui remonte l'erreur + gardes (pointeur null / octets nuls / slot hors plage) ; (4)MemSharp_Service.IsAvailable()ne lève plus à l'attache +IsAttached; (5) l'UI a gagné une bannière de statut (« FFX not found » / « attached, no battle » / « In battle: name · N enemies, M allies ») et un verrou d'écriture RT2 (case à cocher, défaut OFF = lecture seule) gardant le bouton renommé «⚠ Write to game». Nouvel outil de vérification :RuntimeTools/BattleTrackerProbe(prouve le chemin de lecture en direct avec la même DLL). Fichiers :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 du module OK (validé dans un worktree HEAD propre ; le build complet de l'éditeur est cassé par le WIPAiTargetOptiond'une autre voie, sans rapport avec ce changement). Honnête : LECTURE prouvée à l'écran/RAM ; écritures (Load Ingame →WriteProcessMemory) restent RT2 (jeu ouvert + verrou posé)
v2.33.0