Update 2.220
2.8.2026
v2.220.0.0BETAMINOR
Seymour2. Aug. 2026
VIEWERHUB F2: Magic/Model/Map-Viewer zum Hub migriert + Python in den Ruhestand
- Präfix-Routing in
StudioWebServer(MapPrefix): Multi-App auf einem Port —/= noclip serve-dir,/magic/= RuntimeTools/FFXMagicViewerWeb,/model/= FFXModelViewerWeb,/map/= FFXMapViewerWeb,/work/= repoRoot/work (Model Viewer absolute glTF-Assets). Längstes Präfix gewinnt;PrefixRouting_ServesAppUnderPrefix-Test (9/9). - Neue Descs in
ViewerHubService:magic-viewer,model-viewer,model-preview(model-preview.html für die MonEditor-Fusion/T-Pose),map-scene-editor;BuildUrl(descId, extraQuery)mit Cache-Busting für Web-Apps + Query (z. B.magic=004C);FindRepoRoot()(Assembly-Walk-up). ViewerShellakzeptiertextraQuery(MagicDllBrowser?magic=-Deep-Link).- MonEditor migriert: Modell-Vorschau (Fusion/T-Pose) nutzt jetzt den Hub (
model-preview+ id1/id2/label1/label2/tpose/fusion-Query) und den CommonWebView2Host— tschüss Python-Launcher 8767. - Aurora migriert:
AuroraViewerWindowundAuroraFieldExplorer_Controlnutzen den CommonWebView2Host(ModelViewerWeb-Namespace gelöscht). - RETIRED (git rm -f):
MagicViewerWeb/(Launcher + 3 Embeds),ModelViewerWeb/(Launcher + 3 Embeds + original WebView2Host),MapSceneEditorWeb/(Launcher + 3 Embeds),MonsterStudioWeb/MonsterStudioLauncher.cs(verwaister Browser-Launcher). Zero Python, zero duplizierter Launcher. - Verdrahtung:
Main_Window—ShowMagicViewer/ModelViewerWeb/ModelViewerEmbedded/MapSceneEditorEmbedded öffnen dieViewerShell(Embedded 3D Viewer); Legacy-Cases funktionieren weiter. - Gate: Build 0 Fehler; Tests 9/9 PASS; Editor-Smoke (Extras → Magic Viewer / Model Viewer / Map Scene Editor — alle in der Shell, ein Port 8769, Präfixe).
v2.219.2.3
v2.220.0.1BETAPATCH
Seymour2. Aug. 2026
i18n: finale Latin-Coverage ~78-83% (PT→ES-Dict 520 Begriffe + EN→ES 201 + UI-Map 42 Keys) + ES-Regenerierungs-Fix
- Lane IFRT-2
- PT→ES-Wörterbuch (
work/_i18n_pt_es_{1,2,3}.py, 520 Begriffe: Artikel/Pronomen/Adjektive/UI/Gameplay/Verben) — ES war das einzige Lateinische ohne PT-Coverage (PT-Dicts waren nur FR/DE/IT); +EN→ES (work/_i18n_en_es_1.py, 201 Begriffe: chance/selected/viewer/lab/writer + zusammengesetzte Phrasen „force battle"/„phase rotation"/„save editor"...). - Finale konsolidierte Pipeline (
work/_i18n_final_pipeline.py): vorkompilierte Regex (7 Wörterbücher), regeneriert die 4 Lateinischen aus dem Neutralen in der Reihenfolge glossary > domain > EN-Phrasen > EN-Wörter > PT > PT-ES/EN-ES; manuelles ES danach wieder obenauf (441) + 50 Waisen entfernt. - Key-basierte UI-Map (
work/_i18n_ui_map.py, 42 Common*/Action*/Lang*/Term*-Keys): Undo→Annuler/Rückgängig, Language→Langue/Sprache/Lingua, Owner→Propriétaire/Besitzer/Proprietario... zuletzt angewendet (force regeneriert aus der neutralen und würde überschreiben). - Finale Coverage: ES 83.4%, FR 82.7%, DE 78.3%, IT 82.9% (vs. 50/58/56/60% vor dieser Runde). Verbleibend = technischer Müll (hex/Pfade/IDs/Boss-Eigennamen), der per Hausregel EN bleibt.
- Gate: Build 0 Fehler; Suite 396/396 PASS; 9/9 resx ausgerichtet (2199 Keys). PT 10.2%; JA/KO/ZH gestaged (Font-Bank).
v2.220.0.0
v2.220.1.0BETAPATCH
Seymour2. Aug. 2026
Module deaktiviert (5) + MonEditor/Models auf Monster Studio + saubere Titel
- 100% DEAKTIVIERT (aus dem Katalog entfernt — aus der UI verschwunden; explizite Blöcke in
ModuleCatalogPolicy.csmit „🚫 DISABLED — NOT FUNCTIONAL — do NOT re-enable without RT2"):magic-effects(Magic Effects — völlig nicht funktional),ps3-magic(PS3 Magic HD — nicht funktional/redundant),magic-viewer-web(Magic Viewer Web — redundant mit dem Hub-Magic Studio),model-viewer-embedded(Duplikat von Model Viewer HD — beide öffnen die Shell),pointer-script-table(„??? / Wave-1 sem editor"-Platzhalter). - MonEditor → Models nutzt jetzt MONSTER STUDIO (noclip, echtes PS2-Skelett animiert):
monster_studio.tsakzeptiert?monster=<modelID hex>(Konstruktor-Parse + Dropdown-Sync) undMonEditor_DataModelleitet die modelID aus CatalogId ab (m021→0x1015) — die Vorschau des bearbeiteten Monsters öffnet animiert, nicht mehr die three.js-T-Pose. Dermodel-preview-Desc (T-Pose/Fusion) bleibt für zukünftige Nutzung verfügbar. „Open preview in browser"-Button ausgeblendet (never-browser-Regel). - Titel korrigiert:
map-scene-editorverlor das „Spira Forge ·" (SPIRA FORGE ist per Regel pausiert) + Notes/Scope auf den Hub aktualisiert (kein Python, kein Browser). - Gate: Build 0 Fehler; Smoke: Monster Editor → Models (animiertes Monster in Monster Studio) + Katalog ohne die 5 deaktivierten Karten.
v2.220.0.1
v2.220.2.0BETAPATCH
Seymour2. Aug. 2026
PS2-Modelle (RSD) deaktiviert (6. Modul)
ps2-rsd-models(Extras / PS2 Models RSD) — schreibgeschützter struktureller Zähler-Browser von RSD-Bundles (@RSD/@PLY/@MAT-Manifest + .tm2), kein 3D-Render/Edit/Writer — sehr geringer Wert, „sinnlos" für den Nutzer. Expliziter Disable-Block inModuleCatalogPolicy.cs. Der echte 3D-Modell-Viewer = Model Viewer / Monster Studio (ViewerHub).- Gate: Build 0 Fehler. Insgesamt deaktiviert: 6 (magic-effects, ps3-magic, magic-viewer-web, model-viewer-embedded, pointer-script-table, ps2-rsd-models).
v2.220.1.0
v2.220.3.0BETAPATCH
Seymour2. Aug. 2026
PS2-Wissen deaktiviert (7. Modul)
ps2-knowledge(Extras / PS2 Knowledge) — schreibgeschützter „Provenienz/Struktur"-Hub ohne Decoder/Playback/Writer — Nutzer: „no way to use this". Deaktivierter Block inModuleCatalogPolicy.cs. Das echte Wissen lebt in den Docs (KNOWLEDGE_BASE.md / docs/reverse/).- Gate: Build 0 Fehler. Insgesamt deaktiviert: 7.
v2.220.2.0
v2.220.3.1BETAREVISION
Seymour2. Aug. 2026
Technische Bereinigungen: konsolidierte Aufzeichnung des Legacy-Sweeps
- Doc
docs/ai/TECHNICAL_CLEANUP_2026-08-02.md— konsolidiert ALLES, was diese Session entfernt/deaktiviert wurde, weil es Legacy war, das nicht funktionierte, dupliziert und/oder von geringem strukturellem Wert war: - 7 Module DEAKTIVIERT (aus dem Katalog entfernt, mit „🚫 DISABLED — do NOT re-enable without RT2"-Blöcken):
magic-effects(Magic Effects — völlig nicht funktional),ps3-magic(PS3 Magic HD — nicht funktional/redundant),magic-viewer-web(Magic Viewer Web — Duplikat des Hub-Magic Studio),model-viewer-embedded(Duplikat von Model Viewer HD),pointer-script-table(„no editor"-Platzhalter),ps2-rsd-models(PS2 Models RSD — schreibgeschützte Zähler, kein Render/Edit/Writer),ps2-knowledge(PS2 Knowledge — ungenutzter schreibgeschützter Hub). - 14 Dateien GELÖSCHT (git rm -f, F2):
MagicViewerWeb/(Python-Launcher 8766 + 3 Embeds),ModelViewerWeb/(Python-Launcher 8767 + 3 Embeds + original WebView2Host),MapSceneEditorWeb/(Python-Launcher 8768 + 3 Embeds),MonsterStudioWeb/MonsterStudioLauncher.cs(verwaister Browser-Launcher). - Duplikation gelöst: 5 Viewer + 6 Inseln → 1 Hub (In-Process StudioWebServer, ein Port 8769, Präfix-Routing; 1 ViewerShell; deklarative Descs). Kein Python, kein externer Browser, kein geleakter Prozess.
- Sonstiges:
map-scene-editor-Titel bereinigt (kein „Spira Forge ·"); MonEditor „Open in browser"-Button ausgeblendet; MonEditor → Models zu Monster Studio migriert (?monster=); Aurora zum Common WebView2Host migriert.
v2.220.3.0
v2.220.4.0BETAPATCH
Seymour2. Aug. 2026
Model Viewer (HD) deaktiviert (8. Modul) — Option A+C genehmigt
model-viewer-web(Model Viewer HD) — BROKEN: alle 816 Katalog-glTFs zeigen auf/work/phyre_chr_anim/(fehlt auf der Platte — 0/816 laden; dokumentierte Diagnose). Monster Studio (ViewerHub) deckt „Monster ansehen" mit dem echten PS2-Renderer ab.- A+C: Eintrag deaktiviert (expliziter „🚫 DISABLED"-Block mit dem Re-Enable-Pfad) + Code und
model-viewer-Desc INTACT und bereit, damit die HD-Lane ihn reaktivieren kann (glTFs neu exportieren + Katalog korrekt zeigen + Block entfernen). Dermodel-preview(MonEditor-Fusion/T-Pose) bleibt aktiv (hängt nicht vom Eintrag ab). - Gate: Build 0 Fehler. Insgesamt deaktiviert: 8.
v2.220.3.1
v2.220.5.0BETAPATCH
Seymour2. Aug. 2026
Eigene Identität in der ViewerShell: URL weg, noclip Games/About bereinigt
- Shell v3 (FFX Mod Studio-Identität): Adressleiste/URL aus dem Header entfernt (Nutzerregel: keine loopback/URL-Betonung); „FFX Mod Studio"-Marke + Viewer-Titel + Status-Pill + Reload. Das Gesamtlayout (dunkel, 3D rechts) beibehalten.
- Skin bereinigt: die noclip-Panels schreiben ihren Titel in
data-title(Panel.setTitle →toplevel.dataset.title) — der Skin blendet jetztdiv[data-title="About"](noclip.website-Credits) unddiv[data-title="Games"](Wii/GC-Spielmenü) per robustem Attribut-Selektor + MutationObserver aus. Behalten: 3D-Canvas + funktionales Panel (Dropdowns) + Viewer Settings/Statistics (technisch, behalten). - Gate: Build 0 Fehler. Als Nächstes: FFX-Szenen-Navigation in der Shell (Zanarkand/Ruins/Besaid-Baum via noclip-Hash-Routing — F3).
v2.220.4.0
v2.220.5.1BETAPATCH
Seymour2. Aug. 2026
i18n: HAUSREGEL „Dateinamen nie übersetzen" angewendet und in der Pipeline geschützt
- Lane IFRT-2
- Bug vom Nutzer gefunden: das Domain-Wörterbuch (
command→commande/Kommando) beschädigte Dateinamen via\bcommand\b-Matching incommand.bin→ 9 beschädigte Dateien pro Sprache (command.bin→commande.bin,item.bin→objet.bin,FFX.exe→F.exe,ps3data\magic→ps3data\magie...). - Permanenter Fix:
PROTECT_REinfull_translatevon_i18n_final_pipeline.pyeingebettet — Pfade (magicFiles\FFX), Dateien mit Erweiterungen (command.bin,kaizou.bin,.dds.phyre,magic_####.dll), technische Akronyme (ATEL, DINPUT8, RT0, RT2, EBP, EV01, FTCX, MSEQ, VBF, DDS, GLTF, PHYRE, monmagic1/2, a_ability, arms_rate...) und Eigennamen (Tidus, Rikku, Yunalesca, Sin, Seymour...) werden vor der Übersetzung zu~PTK~-Platzhaltern und kehren byte-für-byte zurück. Gängige UI-Wörter (modules,command,item) bleiben frei. - Verifikation: 0 beschädigte Dateinamen über die 4 Lateinischen (ES 83.4% / FR 82.7% / DE 78.2% / IT 82.9% erhalten). Skripte:
_i18n_fix_filenames.py(chirurgischer Fix) +_i18n_protect_tokens.py(regeneriert mit Schutz). - Gate: Build 0 Fehler; Suite 396/396 PASS; 9/9 ausgerichtet.
v2.220.5.0
v2.220.6.0BETAMINOR
Seymour2. Aug. 2026
i18n: Sprachauswahl mit 6 Optionen (PT/EN/ES/FR/DE/IT) — die 4 übersetzten Lateinischen sind jetzt im Editor auswählbar
- Lane IFRT-2
Strings.cs:ResolveLanguage/SetLanguage/CurrentLanguage/NormalizeLanguage/ApplyCulturevon PT/EN aufpt|en|es|fr|de|iterweitert (CultureInfo pt-BR/es-ES/fr-FR/de-DE/it-IT); Persistenz (ui_lang.config) undFFX_UI_LANG-env akzeptieren alle 6; Standard bleibtpt.Main_Window.axaml: Der Selector-MenuFlyout hat 4 neue Einträge erhalten (LangSpanish/LangFrench/LangGerman/LangItalian) +MenuItem_Language_Es/Fr/De/It_Click-Handler im Code-Behind (gleicherApplyLanguage-Ablauf → sauberer Neustart).- Resx:
LangSpanish/French/German/Italian-Keys in allen 9 resx, selbst-lokalisiert (jede Sprache sieht ihren eigenen Namen: Français/Deutsch/Español/Italiano). - Gate: Build 0 Fehler; Suite 396/396 PASS; 9/9 ausgerichtet. Die ES 83.4% / FR 82.7% / DE 78.2% / IT 82.9%-Übersetzungen sind jetzt aus der UI erreichbar.
v2.220.5.1
v2.220.7.0BETAPATCH
Lulu2. Aug. 2026
Magic-DLL-Browser: Tabs in Structure | Runtime | RE gruppiert (Pill-Selektor) — beantwortet den UI-Vorschlag der Lane
- Entscheidung: den nützlichen Teil des Vorschlags (Gruppierung der 12 losen Tabs) auf den
MagicDllBrowser(Extras) anwenden — derMagicDllEditor(Baum+Slots) bleibt UNANGETASTET (stabil nach dem .rdata-Resolver-Fix). - Gruppen: Structure (Sections, Exports, Imports, WD3 Streams, Overlay Slots, PPP Opcodes) · Runtime (Sound/SeSep, Role Candidates) · RE (Family Comparator, Logical Decompile, Strings, Warnings).
- Implementierung: 3
tabPill/tabPillActive-Pills (Theme) +Button_SetTabGroup-Code-Behind (filtertTabItem.IsVisible+SelectedIndex; keine Daten/Binding-Änderungen). 2 neue i18n-Keys (U_grupo_estrutura,U_grupo_re; Runtime nutztModeRuntimewieder). - Gates: Build 0 Fehler; Suite 396/396 PASS (inkl. StringsIntegrity).
v2.220.6.0
v2.220.8.0BETAPATCH
Seymour2. Aug. 2026
SKIN-FIX: garantierte Skin-Anwendung (ExecuteScriptAsync-Fallback bei NavigationCompleted)
- \
- Diagnose (WebView2-Beweis):
AddScriptToExecuteOnDocumentCreatedAsynchat das Skript NICHT auf das Dokument angewendet (skin:falsedurch eine Probe aufNavigationCompletedbestätigt — der Skin lief nie, weshalb About/Games selbst mit dem richtigen Build und sauberen Caches blieben). - Fix:
WebView2Hostspeichert den Skin jetzt in_pendingSkinScriptund wendet ihn viaExecuteScriptAsyncaufNavigationCompletederneut an (das Dokument existiert zu diesem Zeitpunkt bereits — garantierte Anwendung, deckt Reloads ab).AddScriptToExecuteOnDocumentCreatedAsyncbleibt der erste Pfad (für zukünftige Dokumente). - Leichte permanente Diagnose:
NavigationCompletedschreibt bei jeder Navigation eine Probe (skin/hash/about/games) in%TEMP%\ffx-studio-diag.log— Werkzeug für die UI-lane. - Gate: Build 0 Fehler; Nutzer bestätigt: About und das Spielmenü (Games) sind aus dem Viewer verschwunden.
v2.220.7.0