Update 2.217
8/2/2026
v2.217.0.0BETAMINOR
SeymourAug 2, 2026
Phase 4: FORMATION system (infinite slots + import window + delete double-check with 5s timer)
- Infinite slots:
modules\arena_formations\formation_XXX.json(auto-numbered — the lab exports the real layout + active profile tocompose_last_layout.json; the hook copies it to the next slot). - Windowless export: "Salvar Formação (export)" — one click, new slot.
- Import with window: "Importar Formação (janela)" — opens the formation list (▲▼ navigates, Enter applies) — applies the formation's scenario profile to
arena_layout_profiles.json(Build Preview shows the result). - Delete double-check + timer: in the window, "[Excluir selecionada]" → "Tem certeza?" popup → the "Excluir (Ns)" button shows the countdown (5s) and only deletes after zero (the button stays selectable the whole time — the "GOD" visible seconds) — or Cancelar denies instantly and leaves the window.
- Lab build 0 errors + ffx-hooks (with PolyHook) — deployed.
- RT2
Needs Testing: Build Preview → Salvar Formação → Importar Formação (window lists the slot) → Excluir selecionada → popup with "Excluir (5s→0)" → deletes; and Cancelar denies immediately. ### MINOR
v2.216.0.0
v2.217.0.1BETAPATCH
SeymourAug 2, 2026
FIX of the crash when opening the layout adjust (AV WRITE at 0xBD): the FFX native menu overflows with >17 rows
- Root cause: the native menu
O_COUNTwith 18+ rows (Phase 3 added "Ajustar Layout" + Phase 4 the formations → 19) makes the menu draw access out of its item buffer →AV WRITE pc=0x00A209A5 accessed=0x000000BD(confirmed inffx-hooks.log). - Fix (17 rows — the limit that worked): merges — (1) "Load Last Mix" became L on "Fight Last Mix" (L reloads the picks); (2) "Importar Formação" became L on "Formações" (Enter = save, L = import); (3) "Ajustar Layout" became L on "Build Preview" (L = adjust, Enter = compose).
kMaxRowCount +5,TotalRows = 17. - Adjust hints in ASCII (L/R value, U/D param — no unicode).
- ffx-hooks build 1,125,376 B (09:22) + Steam deploy.
- RT2: Custom Mix → Build Preview (Enter = map; L = adjust layout) → Formações (Enter = save; L = import) → Fight Last Mix (L = load picks) — no crash.
v2.217.0.0
v2.217.0.2BETAPATCH
SeymourAug 2, 2026
Layout adjust: dark overlay + clean central panel (adjust mode now hides the list — before it overlapped and looked ugly) + clear hint ("Left/Right value, Up/Down parameter")
- Menu/battle music:
arena_plus_music.flag.offcreated inmodules\(disables the Arena+ MusicHook that was holding the BGM — user restarts the game and music returns). Definitive fix (context condition for the override) stays for the next iteration.
v2.217.0.1
v2.217.1.0BETAPATCH
SeymourAug 2, 2026
i18n Wave 3a: remaining 258 repeated literals migrated (129 values × 2)
- Lane IFRT-2 (continuing Jarvis-CLINE/IFRIT)
- 127 new keys (
Common*) in all 9 resx (EN/PT; ES/FR/DE/IT/JA/KO/ZH = EN) + 2 reuses (SessionControls,CommonType). Covers the 129 values with 2+ occurrences left from Wave 2 (Monster, Encounter, Trigger, Formula, Flags, Slots, Strength/Defense, Base/Current HP/MP, Next state, Phase Rotation phases, guardrails, long sum_grow/kaizou descriptions...). - 258 replacements across 52 .axaml files (
{x:Static res:Strings.X});MonsterAiEditor2*excluded (hard rule). Fixedxmlns:resinAtlasEvidenceBadgeStrip.axaml(minimal header withoutmc:Ignorable). - Scripts:
_i18n_onda3_survey.py,_i18n_onda3_gen_keys.py,_i18n_onda3_migrate.py,_i18n_onda3_check.py(0 residuals) +_i18n_onda3_cs.py(injects props into Strings.cs). - Gate: build 0 errors; suite 381/381 PASS (with another lane's broken untracked
StudioWebServerTests.cstemporarily moved aside — unrelated to i18n; restored intact). Post-wave survey: 0 values with 2+ occurrences (2,014 → 1,759 unique remaining). - Pending: Wave 3b (1,759 unique per-file literals) — migration criteria to evaluate (many are technical values: hex, paths, numbers). ### MINOR ### MINOR ### MINOR
v2.217.0.0