Update 2.23
6/7/2026
v2.23.0BETA
Seymour
SPELL NAME in the magic viewers (PS3 Magic HD): best-effort join (owner-authorized)
- The owner told me to show the name even without the byte-proven join ("agora é pra fazer caralho", 2026-06-07 — an explicit override of the no-fabricate rule). New
MagicSpellNameResolver(FfxLib/Dictionaries): magic_#### (id 0..1023, 12-bit) → triesCommandCharacter→CommandMonster1→CommandMonster2→Item(allDictionary<ushort,string>), returnsname ~source(e.g.Firaga ~char-cmd) ormagic_####when unmapped. Wired into PS3 Magic (HD) (Ps3MagicBrowser):Ps3MagicEntry.SpellNameDisplaybecomes the list title + detail header, and search matches by name. Honest: the~sourceflags it as a NON-byte-proven hypothesis (the catalog says "no names proved"); the owner verifies on screen and we refine the offset/dict if any name is wrong. Build 0 errors
v2.22.0
v2.23.1BETA
Seymour
Formation Editor: pre-filled slots now SHOW the monster name (load display fix)
- The owner flagged that the 8 formation slots opened with an EMPTY ComboBox for slots that already had a value (raw 10DEh/10E2h) — the name only appeared AFTER picking manually (even the empty FFFFh slots showed blank instead of "(Vazio)"). Cause: an Avalonia gotcha — the
SelectedItemset on load (object initializer) is applied before the per-row ComboBoxes materialize theirItemsSource(bound via RelativeSource), so the selection doesn't resolve and stays blank. Fix: after populatingSlots, re-apply eachSelectedMonster(toggle null→value) on aDispatcher.UIThread.Post(..., Background)so the ComboBox re-resolves against a populated Items list. Guarded byslotsSyncingso it does not mark dirty (load stays "Changed: false" until a real edit). Build 0 errors
v2.23.0
v2.23.2BETA
Seymour
Aurora: "Reload battle from disk" (reflects other modules' saves on the map)
- The owner edited the formation in the Formation Editor and the monsters didn't appear on the Aurora map. Investigation: the pipeline is correct — Aurora binds
formation slot[i] → monster-live anchor[i]withMonsterId/Model(/work/phyre_chr_anim/models/mNNN/mNNN_animated.gltf, 340 HD models exist, server-root URL right). The cause was cached state:RefreshCatalogreloads only the scene list, NOT the open battle's bytes — so a formation edit made elsewhere wouldn't reflect until re-selecting. Fix: newReloadSelectedBattle()(re-fires the battle read = re-reads chunk2 formation + chunk3 anchors from disk) + a "🔄 Reload battle from disk" button next to "Render". (Battle Explorer already had "Refresh" + recreates fresh on every nav — A was already there for it.) The combined root cause of "Changed: False" + "no monsters on the map" was the formation save not persisting — fixed in v2.23.1 (combo-blank). Build 0 errors
v2.23.1
v2.23.3BETA
Seymour
Formation Editor: a monster ADDED to an empty slot now inherits the "live on field" flag
- The owner added monsters to slots 04-07 and they weren't recognized as live (Aurora "only 4 live monsters"). On-screen proof: the original slots (00-03) carry raw
10DEh/10E2h(high nibble0x1000); the added ones came out0030h/0136h(high nibble0x0000).0x1000is the ACTIVE-formation-monster flag — the writer stamped0when filling a slot that wasFFFFh. Fix (FormationSlotRow): when filling an empty slot, inherit the high nibble from a SIBLING live slot of the same battle (per-battle, no guessing; default0x1000if the formation was fully empty). Still slot-only byte-safe (FormationSlotLab gate 858/858). Extra diagnosis (NOT a save-side bug): save and read use the SAME path (GetPathBattle); the problem was the VALUE, not the side. Honest: (1)0x1000=live is an evidence-based hypothesis from the on-screen proof — test in-game; (2) the Aurora MAP only has the monster anchors the ARENA (chunk3) defines (e.g. 4) — adding a monster beyond that needs a new arena anchor (arena authoring = out of this fix's scope). Build 0 errors
v2.23.2