Aggiornamento 2.66
10/06/2026
v2.66.0BETAMINOR
Seymour
Blitzball ROSTER (stat/crescita dei 60 giocatori) ORA MODIFICABILE nel FILE DI GIOCO — writer variabile ATEL (letterale tecnico: NOW EDITABLE) (letterale tecnico: GAME FILE)`.ebp` PROVATO (RT0 byte-identical + mutazione isolata). (letterale tecnico: ATEL-variable) (letterale tecnico: mutation-isolated)
- Il primo writer che modifica la base blitzball in un FILE DI GIOCO, non il save. (letterale tecnico: GAME FILE) Le stat base + curve di crescita dei 60 giocatori vivono DENTRO (letterale tecnico: INSIDE)
bltz0002.ebpcome variabili ATEL0x126..0x12E(8 stat × 60 giocatori × 4 floata,b,c,growthType; formula di crescita decodificata:gt -1→1,0→a+b·Lv,1→a+b·Lv^c,2→a+b·Lv−c·Lv²,3→a+b·Lv+c·Lv²). Nuovo primitivoEvent_File.PatchEventDataElement(varId, idx, bytes)(FfxLib/Event/Event_File.AtelVar.cs): un patcher variabile eventData ATEL in-place, (letterale tecnico: eventData-variable)length-preserving via l'hookScriptChunkOverrideesistente →Write()ri-pacchetta byte-identico tranne la slice modificata. Nuova classe file read/write (letterale tecnico: re-packs) (letterale tecnico: file-class)FfxLib/Blitzball/BlitzballRoster_File.cs(decodifica/modifica la crescita 60×8) + gateTools/BlitzballRosterRt0.cs(--blitzball-roster-rt0). PROVEN: (letterale tecnico: PROVEN) lettura byte-exact vs il dump FFXDataParser (player0 HP =70 + 30·Lv + 0.711·Lv²); no-edit Read→Write byte-identical (5,445,248 B); 480/480 growthType validi; una patch single-float isolata ai 4 byte dell'elemento target (letterale tecnico: target-element) all'offset previsto (@0x491680). RE (il pezzo mancante): la value-base delle variabili =worker0_header + 0x30(risolta robustamente, nessun hardcode). Onestà: SOLO stat/crescita sono dati di file; i nomi = macro stringa (letterale tecnico: ONLY) (letterale tecnico: file-data)0x700+idx(writer esiste, wiring pending), posizioni/definizioni-tecnica/motore-partita = EXE (IDA-pending) (letterale tecnico: technique-definitions) (letterale tecnico: match-engine), techs-apprese/costo/contratto/level/EXP = (letterale tecnico: learned-techs)save (fuori dallo scope file di gioco). (letterale tecnico: game-file)Nessuna UI ancora (prossimo =BlitzballRosterEditor). (NUOVA capability: primo writer roster blitzball in un file di gioco). Non tocca il save (CHAPPU/checksum), il runtime, SIN o altre lane; solo AGGIUNGE nuovi file + 1 dispatch (letterale tecnico: NEW) (letterale tecnico: ADDS)Program.cs. Build 0 errori / 361 warning;--blitzball-roster-rt0PASS (no-edit byte-identical + mutazione isolata). Docs: (letterale tecnico: byte-identical)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: nomi giocatore CONFERMATI modificabili (macrodic chunk 7) + accessor in-lane. (letterale tecnico: CONFIRMED) (letterale tecnico: accessor.)
- (il codice entra ma il comportamento non cambia — accessor non ancora consumato; RE/prep). Decodificato il
new_uspc/menu/macrodic.dcpreale e provato che i nomi dei 60 giocatori = macro0x700+idx= chunk 7 (charset FFXbyte−0x0F; 101 voci):0x702=Datto,0x703=Letty,0x704=Jassu,0x705=Botta,0x706=Keepa,0x707=Bickson…;0x700/0x701riferiscono i personaggi principali rinominabili (Tidus/Wakka). → Già modificabile OGGI (letterale tecnico: TODAY) via il moduloMacroExplorer(legge+scrivemacrodic.dcpcon SafeWriter/undo/validation/round-trip). Nuovo accessor read-onlyFfxLib/Blitzball/BlitzballPlayerNames.cs(index↔macro0x700+idx,TryGetName) come prep per la futura UIBlitzballRosterEditorper mostrare/modificare il nome inline. Non toccaMacroExplorer(text lane) o altre lane; aggiunge solo 1 file + docs. Build 0 errori / 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