Mise à jour 2.17
06/06/2026
v2.17.0BETA
Seymour
Magic Viewer FINALISÉ (workflow parallèle à 3 voies) : visualiseur web câblé dans l'éditeur + menus polis + RE root+88 fermée :
- Voie A — visualiseur web câblé dans l'éditeur :
FFXMagicViewerWeb(construit par Codex — Spell Index, Package Graph, Texture Stack, Runtime Evidence, Effect Stage, Crosswalk + 6 index/catalogue) était orphelin (pas de bouton éditeur). Nouveau bouton de nav « Magic Viewer (Web) 🪄 » (groupe Extras, à côté de « PS3 Magic (HD) ») +MagicViewerLauncher.csqui sertRuntimeTools/FFXMagicViewerWebviapython -m http.server(port 8766, distinct de celui d'Aurora 8765) et ouvre le navigateur — recette identique à Aurora/MapViewer (HTTP est obligatoire : app.jsfetch()son catalogue →file://ferait un CORS hang). N'a PAS utilisé le cheminfile://de SpiraForgeHub. - Voie B — 2 menus de magie polis (lecture seule, pas d'écrivain) : PS2
Magic Effectsa gagné la recherche (package/lane + kernel/lane) et un état vide honnête (message actionnable vs un panneau vide) ; la carte « Counts » ne fait plus écho à « Summary ». PS3Magic (HD): le décodage des vignettes est passé hors du thread UI (les dossiers lourds ne gèlent plus — les lignes montrent « pending » et arrivent en streaming viaDispatcher, avec un jeton de génération contre les passes périmées), recherche par nom de texture, et les boutons Open Folder/Open File lient désormaisIsEnabled(plus de clic mort). (Les noms de sorts par id restent BLOQUÉS — aucune table de noms n'existe ; la jointuremagic.bin→magic_####est un pont causal bloqué ; non fabriqué.) - Voie C — RE root+88 (Pass12, doc-only, appliquée à la vraie db
FFX_recon.i64) : fermé les deux points ouverts de Pass11. (1) Qui peuple la racine runtime :sub_7FD9A0installeFFX_Magic_RuntimeRootTable[0x12A4080]UNE FOIS au bootstrap (chargement du bin) et metroot+88à zéro ; les phases n'échangent pas la table — elles réutilisent la même racine et mutent en place. (2) Dernier écrivain root+88 :sub_817200= gestionnaire d'opcode 0x21 dansFFX_Magic_OpcodeHandlerTable(0xC48EC8) ; sur la famille0x1000il écritroot+84=root+88=même curseur dans la copie de travail, réécrit dans la racine à la fin de la phase. 5 renommages + commentaires[pass12]appliqués/sauvegardés dans la vraie db. Docdocs/reverse/FFX_MAGIC_ROOT88_WRITER_PASS12_2026-06-06.md. (Honnête : sort→opcode concret, timing précis du moteur et couverture complète de l'écrivain restent BLOQUÉS.) - bump csproj (vraie UI : lancement + polish). (La voie C est RE/doc-only mais atterrit dans la même entrée.)