Aggiornamento 2.14
06/06/2026
v2.14.0BETA
Seymour
Il decoder testo JP legge i KANJI a 2 byte (risultato visibile del crack di oggi):
- il codec lossless
FfxEncodingora riconosce i lead di font-bank a 2 byte (0x06/0x26-0x2F, provati indocs/reverse/FFX_EVENT_TEXT_ENCODING_CRACKED_2026-06-06.md) e mostra ref glyph leggibili —<FTCX:n>(i kanji di questo evento),<K:n>(kanji dibase.ftc),<F2/F3/F5:n>(altre bank) — invece dei vecchi<C..>+<MISS>illeggibile. Encoder completamente simmetrico (token↔byte esatti). Nuovo gate--jptext-rt0PROVA sul corpus eventi (367 file, (letterale tecnico: PROVES)18.935 script JP, 15.467 con glyph a 2 byte): glyph drift = 0 + codec idempotente (gli alias a singolo byte preesistenti si canonicalizzano una volta e poi restano fissi = safe; no-edit restituisce già i byte originali). Giova direttamente a (letterale tecnico: pre-existing) (letterale tecnico: single-byte)BattleTextExplorer(usa il codec lossless).offline_ci= 23 gate PASS. csproj bump (capacità visibile all'utente). (letterale tecnico: user-visible)
v2.14.1BETA
Seymour
Il Save MonMagic ora è byte-safe (l'ultimo writer che driftava, ucciso):
Ability_Command.WriteListha ricevuto un percorso preserve-only: cattura gli offset originali del text-pool alla read e, su un save SENZA modifica di testo, (letterale tecnico: WITHOUT)ri-emette il pool originale verbatim (letterale tecnico: re-emits) (piazzando ogni script al suo offset originale, così le stringhe condivise — es. i tanti campi vuoti di monmagic tutti a offset 0 — restano CONDIVISE invece di essere duplicati). Verifica read-back: qualsiasi modifica di testo che cambia lunghezza/contenuto ricade nel solito append. Questo uccide il drift di monmagic (letterale tecnico: e.g) (letterale tecnico: SHARED) (letterale tecnico: Read-back) (letterale tecnico: content-changing)senza il dedup che rompeva command/item (precedentemente confutato). GateAbilityCommandLab: command/item RT0 4/4 + monmagic RT0 4/4 (era 0/4 drift) + edit a 1 flag localizzato per tutti; monmagic PROMOSSO a CERTIFIED (letterale tecnico: PROMOTED) (un drift ora FA FALLIRE il gate). (letterale tecnico: FAILS)offline_ciPASS. csproj bump (il Save monmagic dell'editor kernel ora è byte-fedele). (letterale tecnico: byte-faithful)
v2.14.2BETA
Seymour
BattleTextExplorer guadagna la source JP (kanji reali, niente più `<MISS>`) + 2 nuovi gate:
BattleTextExplorer_DataModel.ReloadSourcesora caricajppc/battle/kernel/btl_txt.binattraverso ilJpDecoder— il risultato visibile visibile del crack a 2 byte (v2.14.0). Provato headless dal nuovo gate--btltext-jp-decode(Tools/BtlTextJpDecodeRt0):btl_txt.binJP = 128 voci / 451 parole → 44 kanji emergono come<K:n>(bankbase.ftc), 0<MISS>, con un round-trip lossless 451/451 (decode→encode==bytes). La realtà ha raffinato l'ipotesi: il testo battle usa solo la bank comune<K:n>(niente<FTCX>/F2/F3/F5— quelli sono per-evento). Bug phantom-flag fixato: (letterale tecnico: Phantom-flag) il flag--btltexttable-rt0era pubblicizzato nell'header diBtlTextTableRt0.csma mai cablato inProgram.cs— eseguirlo in background cascava nella GUI (WinExe, 0 stdout) e "moriva senza output". Ora cablato (default JP, fallback lingua): JP PASS (3982/3982) + US PASS (1910/1910).--wave1-rt0ancora 12/12 PASS;--btltext-jp-decodecablato inoffline_ci.ps1→ 25 gate PASS (era 24). (I 2 gate sarebbero doc-only; il csproj bump è per la source JP nella UI dell'explorer.)
v2.14.3BETA
Seymour
Monster Commands (monmagic) crash all'apertura UCCISO + persistenza workspace + nomi Aurora: (letterale tecnico: open-crash) (letterale tecnico: KILLED)
- Crash: aprire "Monster Commands 1/2" uccideva l'editor (NPE in
Ability_Command.WriteList→WriteBytesIntoTextFile, sparato nelBuildFile()del ctor). Causa principale: il modello era stato rinominatoUnusedText1/2*→JapaneseOnlyText1/2*e aveva guadagnatoOriginal*Offset(v2.14.1 preserve-only), ma i wrapper UI (KernelCommands_Wrapper,MonsterStatSheet_Wrapper) mantenevano i VECCHI nomi e non avevano gli offset → (letterale tecnico: OLD)PropertyUtil.CopyPropertiesscartava quei campi suWrap/Unwrap→ null → il preserve-only falliva, cadeva nella rebuild append, e NPEava sui campi JP-only vuoti di monmagic. Fix: round-trip completo in entrambi i wrapper (rename +Original*Offset) +FfxEncoding.WriteBytesIntoTextFilenull-safe. Nuovo gate--kernelcmd-roundtrip(Tools/KernelCommandRoundtripRt0) prova il PERCORSO GUI esatto ( (letterale tecnico: EXACT GUI)ReadList→Wrap→Unwrap→WriteList) byte-identico 4/4 (letterale tecnico: byte-identical) (command/item/monmagic1/2) — che l'AbilityCommandLab(percorso diretto) strutturalmente non poteva vedere. Cablato inoffline_ci→ 26 gate PASS. - Persistenza workspace: la cartella
mastercaricata viene salvata in%LocalAppData%\FFXProjectEditor\last-project.txte auto-ripristinata allo startup (letterale tecnico: auto-restored) (priorità: arg CLI → ultimo caricato → default). Carichi una volta, ricordato per sempre; niente più default sulla cartella Steam-mod. - Logger globale dei crash (
%LocalAppData%\FFXProjectEditor\crash.log, viaUtils/CrashLog) + load difensivo inKernelCommands(errore rosso esplicativo invece di uccidere l'app). - Aurora Chamber: gli anchor mostri ora mostrano il NOME (letterale tecnico: NAME) (
🔴 <name>) invece di "monster (live)". - Ride-along doc-only: (letterale tecnico: Doc-only) (letterale tecnico: ride-along)
docs/governance/FFX_EDITOR_UI_CONVENTIONS.md(standard pannello = Shop Explorer, non un DataGrid a 50 colonne) + regola DINPUT8 revocata (la sonda è libera) + note multi-lingua/MagicViewer nella checklist. csproj bump (feature UI). (letterale tecnico: multi-language)