Mise à jour 2.14
06/06/2026
v2.14.0BETA
Seymour
le décodeur de texte JP lit le KANJI 2-octets (le gain du crack d'aujourd'hui) :
- le codec sans perte
FfxEncodingreconnaît désormais les préfixes de banque de polices 2-octets (0x06/0x26-0x2F, prouvés dansdocs/reverse/FFX_EVENT_TEXT_ENCODING_CRACKED_2026-06-06.md) et fait apparaître des références de glyphes lisibles —<FTCX:n>(le kanji de cet événement),<K:n>(kanjibase.ftc),<F2/F3/F5:n>(autres banques) — au lieu de l'ancien<C..>+<MISS>brouillé. Encodeur entièrement symétrique (token↔octets exacts). Nouvelle porte--jptext-rt0PROUVE sur le corpus d'événements (367 fichiers, 18 935 scripts JP, 15 467 avec glyphes 2-octets) : dérive de glyphes = 0 + codec idempotent (les alias de caractères mono-octets préexistants se canonisent une fois puis restent fixes = sûr ; le no-edit renvoie déjà les octets d'origine). Bénéficie directement àBattleTextExplorer(utilise le codec sans perte).offline_ci= 23 portes PASS. Bump csproj (capacité visible par l'utilisateur)
v2.14.1BETA
Seymour
La sauvegarde MonMagic est désormais byte-safe (le dernier écrivain dérivant, tué) :
Ability_Command.WriteLista gagné un chemin preserve-only : il capture les offsets originaux du pool de texte à la lecture et, lors d'une sauvegarde SANS édition de texte, réémet le pool original verbatim (plaçant chaque script à son offset original, donc les chaînes partagées — ex. les nombreux champs vides de monmagic tous à l'offset 0 — restent PARTAGÉES au lieu d'être dupliquées). Vérification de relecture : toute édition de texte changeant la longueur/contenu retombe sur l'append habituel. Cela tue la dérive monmagic sans le dedup qui cassait command/item (réfuté précédemment). PorteAbilityCommandLab: command/item RT0 4/4 + monmagic RT0 4/4 (était 0/4 dérive) + édition à 1 drapeau localisée pour tous ; monmagic PROMU à CERTIFIED (une dérive échoue désormais la porte).offline_ciPASS. bump csproj (la sauvegarde monmagic de l'éditeur de kernel est désormais byte-fidèle)
v2.14.2BETA
Seymour
BattleTextExplorer gagne la source JP (vrais kanji, plus de `<MISS>`) + 2 nouvelles portes :
BattleTextExplorer_DataModel.ReloadSourcescharge désormaisjppc/battle/kernel/btl_txt.binvia leJpDecoder— le gain visible du crack 2-octets (v2.14.0). Prouvé headless par la nouvelle porte--btltext-jp-decode(Tools/BtlTextJpDecodeRt0) :btl_txt.binJP = 128 entrées / 451 mots → 44 kanji apparaissent comme<K:n>(banquebase.ftc), 0<MISS>, avec un round-trip sans perte 451/451 (decode→encode==octets). La réalité a affiné la supposition : le texte de bataille n'utilise que la banque commune<K:n>(pas de<FTCX>/F2/F3/F5— ceux-là sont par événement). Bug de drapeau fantôme corrigé : le drapeau--btltexttable-rt0était annoncé dans l'en-tête deBtlTextTableRt0.csmais jamais câblé dansProgram.cs— le lancer en arrière-plan retombait sur la GUI (WinExe, 0 stdout) et « mourait sans sortie ». Désormais câblé (JP par défaut, repli de langue) : JP PASS (3982/3982) + US PASS (1910/1910).--wave1-rt0toujours 12/12 PASS ;--btltext-jp-decodecâblé dansoffline_ci.ps1→ 25 portes PASS (était 24). (Les 2 portes seraient doc-only ; le bump csproj est pour la source JP dans l'UI de l'explorateur.)
v2.14.3BETA
Seymour
Monster Commands (monmagic) : crash à l'ouverture TUÉ + persistance du workspace + noms Aurora :
- Crash : ouvrir « Monster Commands 1/2 » tuait l'éditeur (NPE dans
Ability_Command.WriteList→WriteBytesIntoTextFile, déclenché dans leBuildFile()du ctor). Cause racine : le modèle a été renomméUnusedText1/2*→JapaneseOnlyText1/2*et a gagnéOriginal*Offset(v2.14.1 preserve-only), mais les wrappers UI (KernelCommands_Wrapper,MonsterStatSheet_Wrapper) gardaient les ANCIENS noms et manquaient les offsets →PropertyUtil.CopyPropertiessupprimait ces champs auWrap/Unwrap→ perte → le preserve-only échouait, retombait sur le rebuild append, et NPE sur les champs JP-only vides de monmagic. Correctif : round-trip complet dans les deux wrappers (renommage +Original*Offset) +FfxEncoding.WriteBytesIntoTextFilenull-safe. Nouvelle porte--kernelcmd-roundtrip(Tools/KernelCommandRoundtripRt0) prouve le chemin EXACT de la GUI (ReadList→Wrap→Unwrap→WriteList) byte-identique 4/4 (command/item/monmagic1/2) — que l'AbilityCommandLab(chemin direct) ne pouvait pas voir structurellement. Câblée dansoffline_ci→ 26 portes PASS. - Persistance du workspace : le dossier
masterchargé est sauvegardé dans%LocalAppData%\FFXProjectEditor\last-project.txtet auto-restauré au démarrage (priorité : argument CLI → dernier chargé → défauts). Chargé une fois, mémorisé pour toujours ; plus de repli par défaut sur le dossier du mod Steam. - Logger de crash global (
%LocalAppData%\FFXProjectEditor\crash.log, viaUtils/CrashLog) + chargement défensif dansKernelCommands(erreur rouge explicative au lieu de tuer l'app). - Aurora Chamber : les ancres de monstre affichent désormais le NOM (
🔴 <name>) au lieu de « monster (live) ». - Doc-only ride-along :
docs/governance/FFX_EDITOR_UI_CONVENTIONS.md(standard de panneau = Shop Explorer, pas un DataGrid à 50 colonnes) + règle DINPUT8 révoquée (la sonde est libre) + notes multi-langue/MagicViewer dans la checklist. bump csproj (fonctionnalités UI).