Mise à jour 2.37
07/06/2026
v2.37.0BETA
Seymour
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 switchfield→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 281current<max/2). Opcodes arithmétiques prouvés (* 0x16etc.). #11 RÉEL livré : un snippet gardé « If HP below X% → force command » = l'idiomeHP*100 < maxHP*X(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 : nouveauFfxLib/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 ;--ai3PASS. 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
v2.36.0.1
v2.37.1BETA
Seymour
SPHERE GRID CANVAS : visuels AUTHENTIQUES (vraies icônes FFX via l'atlas de l'éditeur) + nœuds lisibles + avertissement LIVE de rupture + couleurs/légende/glow/hover/son
- Le propriétaire a demandé de « le rendre joli + avertissements auto » et a signalé que la v1 était un petit cercle sans icône. Trouvaille clé : l'éditeur avait DÉJÀ le magnifique renderer de l'Explorer (
SphereGridPreview_Control+Assets/SphereGrid/icon_atlas.png) — donc j'ai volé le vrai atlas (et abandonné les game-icons.net que j'avais ajoutés). Maintenant le Canvas : (1) vraies icônes FFX — un orbe coloré + le spriteicon_atlas.pngparAppearanceType(STR/DEF/MAG/HP/MP/white/black/special/skill/lock) OU un badge texte (AGI/ACC/EVA/LCK…), exactement comme l'Explorer, viaSphereGridNodeVisualInfoconstruit depuispanel.bin(le mêmeCreatePreviewVisual/BuildShortLabel). (2) nœuds LISIBLES — orbe ~12px (était 5.5) + le zoom par défaut s'ouvre à un niveau lisible (plus de 828 nœuds entassés) + LOD (points quand zoomé pour la vue d'ensemble) + viewport cull. (3) avertissement LIVE de rupture — draguer un nœud <40u OU croiser un lien le rend rouge instantanément + une bannière, sans clic Validate (un check bon marché du seul nœud déplacé, par frame). (4) couleurs de catégorie + une légende, un glow pulsant sur la sélection (DispatcherTimer), un éclairage hover et du son viaAudioStudio_Service(SFX UI FFX fournis ; autorisé car le projet est PRIVÉ — la correction du propriétaire). PAS d'image AI — c'est le vrai sprite du jeu déjà livré dans l'éditeur. Build 0 erreur ; l'éditeur démarre sans crash
v2.37.0
v2.37.2BETA
Seymour
Monster AI Editor : #8 vraies cibles NOMMÉES (Self / enemies / allies / Character#N…) — le parser a craqué les sentinelles
- Suivant « regardez les parsers » :
FFXDataParser/ScriptConstants.putEnum("btlActor")EST exactement la carte de sentinelles de cible qu'IDA n'avait pas livrée (le resolver ATEL a expiré). Maintenant nommées et corpus-consistent : -13/0xFFF3 = Self (prouvé), -14/0xFFF2 = FrontlineChars (les « ennemis » du monstre = les persos joueur ; la sentinelle littérale la plus commune, 272×), -6/-7/-8 = Character #1/#2/#3, -15/0xFFF1 = AllMonsters (les « alliés » du monstre — correspond à Mistral→heal monsters), -17 = LastAttacker, -5 = AllActors, -3 = TargetActors, -20 = AllAeons,0x10NN = MonsterType… (ennemi/allié est du POV du monstre). Donc le 🎯 Change target (v2.33.0) cesse d'être « copier par exemple » et devient un dropdown de mode de cible NOMMÉ — le « one / all enemies / all allies » que le propriétaire voulait dans #8 depuis le début ; la liste d'actions montre « alvo: FrontlineChars » ; et le désassemblage / éditeur d'opérande glose les sentinelles (0xFFE9–0xFFFF, la plage sans ambiguïté) comme « (alvo: Self/…) ». NouveauFfxLib/Ai/AiTargetNames.cs(btlActor, même provenance publique que les tables func/property du codec) ; câblé dans le dropdown +AiScript_File.OperandGloss. Porte--ai2/--ai3PASS (RT0 byte-identique intact — gloss only, zéro octets changés) ; éditeur 0 erreur. Honnête : Self est byte-prouvé ; le reste des noms vient de RE publique + corpus-consistant (sémantique fine = RT2)
v2.37.1
v2.37.3BETA
Seymour
SPHERE GRID CANVAS : les nœuds se mettent à l'échelle avec le zoom + icônes vectorielles propres (l'atlas recadrait mal)
- Retour du propriétaire sur v2.37.1 : l'atlas de l'Explorer (
icon_atlas.png) recadrait mal ses cellules (Lv1-4 et beaucoup d'autres moches) et les nœuds rétrécissaient en zoomant (taille constante à l'écran → perdus dans l'espacement). Deux fixes : (1) le rayon s'adapte au zoom —CurrentNodeRadius = clamp(26×scale, 5..42px), donc zoom-in = un orbe PLUS GROS (icône lisible), zoom-out = plus petit (vue d'ensemble) ; l'icône/le texte s'adaptent avec. (2) icônes vectorielles — retour aux glyphes game-icons.net (CC BY) (SphereGridIcons.cs, chemin SVG →Geometry.Parse) qui se mettent à l'échelle crisp à tout zoom, sans recadrage (l'atlas bitmap est abandonné) : les cadenas = un badge propre « L{n} » (Lv1-4 jamais recadrés), les stats ont une icône (HP/MP/Strength/Defense/Magic/Agility/Bonne étoile/ability), le reste = un badge texte mis à l'échelle (ACC/EVA/MDF/WHT/BLK/SPL/SKL). Garde l'orbe coloré par catégorie + glow/hover/légende/avertissement-live/son. Build 0 erreur ; attribution CC-BY dansSPHERE_GRID_ICON_CREDITS.txt
v2.37.2