Mise à jour 2.37
07/06/2026
Monster AI Editor : une condition PROUVÉE « If HP below X% » (IDA+corpus) + 222 champs de propriété nommés (fin de « campo 0xNN »). Halyson a dit d'utiliser IDA et a deviné « ce doit être un fichier de config où la ligne = un nombre » — les deux exacts. RE dans `FFX_recon.i64` : le dispatch natif ATEL = `handler = (FuncspaceTables[funcId>>12] + 16(funcId&0xFFF))` (slot +0 CALLPOPA / +12 CALL) ; `readChrProperty` (0x700F) = `0x7A4D70` → un switch `field→property` (`sub_7B2DD0`). Cross-référencé avec FFXDataParser/ScriptConstants.putBattleActorProperty (le « config » que le propriétaire a pressenti) + le corpus : champ 0x00 = HP (stat_hp, la propriété la plus lue du corpus — 306×), 0x02 = maxHP (137×), 0x119 = NearDeath (= cas IDA 281 `current<max/2`). Opcodes arithmétiques prouvés (` 0x16` etc.). #11 RÉEL livré : un snippet gardé « If HP below X% → force command » = l'idiome `HP100 < maxHPX` (champs 0/2 prouvés par le corpus) — le vrai boss-enrage, plus une devination (la version v2.35.0 antérieure était générique parce que le champ HP n'était pas prouvé ; maintenant il l'est). Nommage : nouveau `FfxLib/Ai/AiChrPropertyNames.cs` (222 champs nommés, même provenance publique que la table de noms de fonctions du codec) câblé dans le détecteur buff/stat → les actions de statut montrent désormais « Booster/Carapace/StatusPoison/HP/maxHP… » au lieu de « campo 0xNN ». Porte `--ai2` : HP%-enrage 346/346 + conditionnel 346/346 ; `--ai3` PASS. Docs : `docs/reverse/FFX_AI_NATIVE_DISPATCH_AND_CHRPROPERTY_FIELDMAP_2026-06-07.md` (+ rename-queue pour le `.i64`). Honnête : structure prouvée hors ligne, effet en jeu = RT2 ; la jauge 0xDA/218=HP%×256 existe dans IDA mais le corpus ne l'utilise pas (j'ai utilisé le chemin que l'IA utilise réellement, 0/2). Build éditeur rouge à cause du WIP de la voie Sphere Grid (non lié) ; tous mes fichiers sont FfxLib, validés par porte.
Lire les notes