Mise à jour 2.66
10/06/2026
v2.66.0BETAMINOR
Seymour
Blitzball ROSTER (stats/croissance des 60 joueurs) MAINTENANT MODIFIABLE dans le FICHIER DE JEU — écrivain de variable ATEL `.ebp` PROUVÉ (RT0 byte-identique + mutation isolée)
- Le premier écrivain qui édite la base de Blitzball dans un FICHIER DE JEU, pas la sauvegarde. Les stats de base + courbes de croissance des 60 joueurs vivent DANS
bltz0002.ebpcomme variables ATEL0x126..0x12E(8 stats × 60 joueurs × 4 floatsa,b,c,growthType; formule de croissance décodée :gt -1→1,0→a+b·Lv,1→a+b·Lv^c,2→a+b·Lv−c·Lv²,3→a+b·Lv+c·Lv²). Nouvelle primitiveEvent_File.PatchEventDataElement(varId, idx, bytes)(FfxLib/Event/Event_File.AtelVar.cs) : un patcher de variable eventData ATEL in-place, préservant la longueur via le hookScriptChunkOverrideexistant →Write()re-emballe byte-identique sauf la tranche éditée. Nouvelle classe de fichier lecture/écritureFfxLib/Blitzball/BlitzballRoster_File.cs(décode/édite la croissance 60×8) + porteTools/BlitzballRosterRt0.cs(--blitzball-roster-rt0). PROUVÉ : lecture byte-exact vs le dump FFXDataParser (joueur0 HP =70 + 30·Lv + 0.711·Lv²) ; no-edit Read→Write byte-identique (5,445,248 B) ; 480/480 growthType valide ; un patch single-float isolé aux 4 octets de l'élément cible à l'offset prédit (@0x491680). RE (la pièce manquante) : la base de valeur des variables =worker0_header + 0x30(résolu robustement, pas de hardcode). Honnêteté : SEULEMENT les stats/croissance sont des données de fichier ; les noms = macro de chaîne0x700+idx(écrivain existe, câblage en attente), positions/définitions de technique/moteur de match = EXE (IDA-pending), techs apprises/coût/contrat/niveau/EXP = save (hors périmètre du fichier de jeu). Pas encore d'UI (prochain =BlitzballRosterEditor). (NOUVELLE capacité : premier écrivain de roster Blitzball dans un fichier de jeu). Ne touche pas la sauvegarde (CHAPPU/checksum), le runtime, SIN, ni d'autres voies ; ajoute seulement de nouveaux fichiers + 1 dispatchProgram.cs. Build 0 erreur / 361 warning ;--blitzball-roster-rt0PASS (no-edit byte-identique + mutation isolée). Docs :docs/reverse/FFX_BLITZBALL_ROSTER_BASE_RE_2026-06-10.md+docs/ai/BLITZBALL_100PCT_EDITOR_CHECKLIST_2026-06-10.md
v2.65.3
v2.66.0.1BETAREVISION
Seymour
Blitzball : noms des joueurs CONFIRMÉS modifiables (chunk 7 macrodic) + accesseur en-voie
- (code entre mais comportement inchangé — accesseur pas encore consommé ; RE/préparation). Décodé le vrai
new_uspc/menu/macrodic.dcpet prouvé que les noms des 60 joueurs = macro0x700+idx= chunk 7 (charset FFXbyte−0x0F; 101 entrées) :0x702=Datto,0x703=Letty,0x704=Jassu,0x705=Botta,0x706=Keepa,0x707=Bickson… ;0x700/0x701référencent les personnages principaux renommables (Tidus/Wakka). → Déjà modifiable AUJOURD'HUI via le moduleMacroExplorer(lit+écritmacrodic.dcpavec SafeWriter/undo/validation/round-trip). Nouvel accesseur en lecture seuleFfxLib/Blitzball/BlitzballPlayerNames.cs(index↔macro0x700+idx,TryGetName) comme préparation pour la future UIBlitzballRosterEditorafin d'afficher/modifier le nom en ligne. Ne touche pasMacroExplorer(voie texte) ni d'autres voies ; ajoute seulement 1 fichier + docs. Build 0 erreur / 361 warning. Docs :docs/reverse/FFX_BLITZBALL_ROSTER_BASE_RE_2026-06-10.md §3+docs/ai/BLITZBALL_100PCT_EDITOR_CHECKLIST_2026-06-10.md
v2.66.0