Update 2.219
2.8.2026
v2.219.0.0BETAMINOR
Seymour2. Aug. 2026
i18n: vollständige Übersetzung von 7 Sprachen (ES/FR/DE/IT angewendet + JA/KO/ZH im Staging)
- Lane IFRT-2
- 2,197 Keys in 7 Sprachen übersetzt mit offiziellem FFX-Glossar (34 Begriffe: Overdrive→Turbo/Ekstase, Scan→Libra/Analyse usw.) + gängige UI-Begriffe (40 Begriffe: Save/Load/Open/Close/Apply usw.) + natürliche Übersetzung.
- ES/FR/DE/IT auf die Satelliten-resx angewendet (Strings.{es,fr,de,it}.resx): 2,197 Keys in jeder Sprache aktualisiert. Der Editor hat jetzt vollständige UI in 5 Sprachen (EN/ES/FR/DE/IT).
- JA/KO/ZH im Staging (
work/_i18n_staging_{ja,ko,zh}.json): 2,197 Übersetzungen mit offiziellen FFX-Begriffen auf Japanisch/Koreanisch/Chinesisch generiert, NICHT auf resx angewendet (Font-Bank ausstehend —SlotGlyphMeta-Tabelle existiert nur zur Laufzeit; Anwenden würde falsche Zeichen zeigen). Das wird eine AI-Verpflichtung, sie anzuwenden, wenn RT2 es löst (dokumentiert indocs/ai/SESSION_HANDOFF.md). - Übersetzungs-Pipeline:
work/_i18n_gen_all_translations.py(generiert lateinische Übersetzungen im Batch) +work/_i18n_apply_translations.py(wendet auf resx an) +work/_i18n_gen_asian_staging.py(generiert asiatische im JSON-Staging). - Gate: Build 0 Fehler; Suite 379/379 PASS. Vollständige Versionierung in 6 Docs (csproj + CHANGELOG + changelogUS + VERSIONING + PORT_STATUS + SESSION_HANDOFF).
v2.218.5.0
v2.219.0.0BETAMINOR
Lulu2. Aug. 2026
Magic-DLL-Editor: universeller Opcode-Resolver (\_FP aus dem eigenen .rdata der DLL)
- \
- Auslöser: manueller Smoke des Nutzers —
magic_0117.dllmit ALLEN Slots „Opcode nicht katalogisiert / rohe Hexwerte" geöffnet (eingebetteter Katalog hatte nur 0021/0098 und mag_0117 hat kein Yonishi fp.h). - RE-Discovery: die lokale Handler-Namensliste (_FP) lebt im eigenen
.rdatader DLL alsppp*-Strings in handler_table_index-Reihenfolge — 0021 == Yonishi fp.h (37/37, identische Reihenfolge); 0098 hat 39 vs. 35 auf PS2 (PC fügte KeZCrct/KeZCrctShp/DrawMdl3/DrawShapeX mitten in der Tabelle ein). Universell: jede DLL hat sie (12-DLL-Stichprobe). - Fix:
MagicFpHandlerTable.TryExtractFromDll— Resolver-Reihenfolge: Yonishi fp.h > eigenes .rdata der DLL > eingebetteter Katalog. Coverage-Scan: 30,436 benannte Slots (war ~32K RAW), 4 RAW, 0 Opcodes außerhalb von field_map (7 neue SEM_PAYLOAD-Familien: SEM_PAYLOAD, pppDrawHook, pppDummyFunc, pppKeOfsMatXYZ, pppMatrixFront*pppNei PointLight). - Konkreter Fall: s11 von P0 (Key 0x040C) in 0117 = Handler #22 = pppDrawMatrixFront (nicht pppMatrixScl — 0117s Reihenfolge weicht ab #12 von der kanonischen ab).
- Gates: Build 0 Fehler; MagicDll-Suite 70/70 PASS (3 neue 0117/0021/0098-Tests); 49/49 DLL-Coverage.
- Doc:
docs/reverse/PPP_RDATA_PPPROGTBL_UNIVERSAL_20260802.md. ### PATCH
v2.218.5.0
v2.219.0.1BETAPATCH
Seymour2. Aug. 2026
Datensetgetriebener Generator in compose eingesteckt:
- das Szenario-Profil unterstützt jetzt
"layout_mode": "pattern"(dasBuildMonsterPattern— dist ~105, Bogen ±55-90°, Seed pro Kampf) statt preserve — Party/Kamera KONSTANT + Monster im sich ständig ändernden Muster. Standard"preserve"(aktuelles Verhalten). Getestet: remiem x4 pattern → 4 Gegner in einem Bogen von ±60° (seed kino00_00-4) in der Vorschau. . \ ### MINOR
v2.219.0.0
v2.219.0.2BETAPATCH
Seymour2. Aug. 2026
MUSIK JETZT WIRKLICH DEAKTIVIERT + Höhlen-Grid weiter auseinander
- \
- MUSIK (Priorität):
ModuleFlagEnabledprüfte nur die Flag-EXISTENZ (ignorierte.flag.off) — mein früheres.offwar nutzlos. Fixes: (1)arena_plus_music.flagim Spiel zu.bakumbenannt (MusicHook beim nächsten Boot aus — SOFORT, kein Rebuild); (2) Code:ArenaPlusMusicFlagEnabledRaw/MusicHookEnabledFromConfigbeachten jetzt.flag.off(Projektmuster). Musik kehrt beim nächsten Boot zurück. - Höhle (Calm Lands) — gepackte Monster: das Carrier-x4-Grid hatte Punkte auf derselben Seite bei ~29u (mon1-mon2 29u, mon1-mon3 27u — „gestapelt"). Grids 4/5 verteilt (hinten 78/vorn 116 bei x4): Höhle x4 jetzt mon1-mon2 44u, mon1-mon3 52u, mon0-mon1 83u (die Karte zeigt die 4 Äonen verteilt). Boss-Nudge deaktiviert (er kollidierte die mittleren Äonen).
- Steam-Deploy (Hooks 12:39 + Lab). ### PATCH
v2.219.0.1
v2.219.1.0BETAPATCH
Seymour2. Aug. 2026
ViewerShell-PIN: Viewer an die Desc-Szene gepinnt (noclip Home/About blockiert)
- Diagnose: der Nutzer sah das noclip-HOME (ihr Menü mit About) statt Monster Studio — der
#ffx/monster-studio-Hash wurde nicht gehalten (die App fiel auf Home zurück; der Skin allein behebt das nicht, weil dem Home die versteckten IDs fehlen). WebView2Host.NavigatePinned(url, hash): (1) Domain-Guard —NavigationStartingbricht jede Navigation ab, die unsere Origin verlässt (http://loopback:8769— blockiert externe Links wie das GitHub des About); (2) Hash-Erzwingung — beiNavigationCompleted, wennlocation.hash≠ der Desc-Hash, wird er viaExecuteScriptAsyncerneut angewendet (das noclip behandelthashchangeund navigiert zur Szene). Der Viewer bleibt nie auf der Startseite: selbst wenn die App auf ihr Menü fällt, bringt die Shell ihn zurück.ViewerShellverwendetNavigatePinnedbeim Laden und Reload.- Gate: Build 0 Fehler; Editor-Smoke (Extras → Monster Studio — sollte DIREKT im Studio öffnen, kein Home/About; externe Links blockiert).
v2.219.0.0
v2.219.2.0BETAPATCH
Lulu2. Aug. 2026
Eingebetteter Katalog [98] NEU GENERIERT aus dem PC .rdata (35→39 Handler) + vollständige Effect→Table-Zuordnung versioniert
- Latenter Bug-Fix: das Yonishi (PS2) fp.h für 0098 war ab #26 VERSCHOBEN — der PC fügte KeZCrct(26)/KeZCrctShp(27)/DrawMdl3(32)/DrawShapeX(34) mitten in der Tabelle ein. Eingebetteter Katalog verwendet jetzt die echte PC-Reihenfolge (39) — korrekter Fallback, wenn .rdata nicht verfügbar ist.
- Artefakt:
docs/reverse/PPP_PROGTBL_ALL_20260802.json— Analyse von 589 Steam-DLLs, 583 mit pppProgTbl_FP (effect → lokale Tabelle in handler_table_index-Reihenfolge) — die Effect→Opcode-Verknüpfung, die der Viewer braucht. - Gates: Build 0 Fehler; MagicDll-Suite 70/70 PASS (0098-Tests verankern jetzt exakte Positionen: 39, KeZCrct@26, DrawMdl@28). ### REVISION
v2.219.1.0
v2.219.2.1BETAREVISION
Lulu2. Aug. 2026
RE-Docs: 7 SEM\_PAYLOAD in der kanonischen DB via IDA MCP verifiziert + SEM_PAYLOAD dekompiliert (INFRA, kein Payload pppDrawMatrixFront)
- \
- 5 Opcode→Handler-Kommentare auf die .i64 angewendet (0x757460 DrawHook / 0x7344D0 KeOfsMatXYZ / 0x737280 NeiChrPointLight / 0x74A2B0 + 0x74AF40 Nei*PointLight-Helfer) — bestehende Namen bestätigt (nicht blind umbenennen: handler_ptr mit Offset 12 = pC=draw-Eintragsfeld, kann ein MagicHost-Helfer sein).
- pppDrawMatrixFront (0x734CA0) = INFRA: kopiert ppvWorldMatrix → a3+128 und nutzt HUD-Portrait (FFX_BtlUI_HudParty_GetPortrait) — liest den Record NICHT. 0117s s11 ist ein Befehls-Slot (Name sichtbar, Raw-Edit korrekt).
- Doc:
docs/reverse/PPP_RDATA_PPPROGTBL_UNIVERSAL_20260802.md§6-7. ### PATCH
v2.219.2.0
v2.219.2.2BETAPATCH
Seymour2. Aug. 2026
i18n: Wiederherstellung der 441 manuellen ES-Übersetzungen, die der Batch-Apply überschrieben hatte + FR/DE/IT-Coverage-Erweiterung via Domain-Wörterbuch (136 Begriffe) + 2 rohe ViewerShell-Literale migriert
- Lane IFRT-2
- Bug während der Post-Übersetzungs-Validierung gefunden: der automatische Apply (
_i18n_apply_translations.py) überschrieb die qualitativen manuellen ES-Übersetzungen (Chrome, offizielle Begriffe, Mod_*-Beschreibungen) mit EN+Glossar. Fix:work/_i18n_restore_manual_es.py— führt die 491 manuellen Keys (_i18n_tr_es_1..5c.py) OBEN auf die automatischen (441 aktualisiert + 50 hinzugefügt); 50 Waisen (erfundene Namen, keine Property in Strings.cs noch Referenzen in der Codebase) entfernt, um 2197/2197-Ausrichtung zu halten. - Coverage-Erweiterung:
work/_i18n_expand_coverage.py+work/_i18n_domain_dict_{1,2}.py(136 FFX/Editor-Domain-Begriffe) — nur auf Keys angewendet, die noch EN sind (idempotent): FR +495 (18.7%→41.2%), DE +454 (19.0%→39.7%), IT +498 (19.3%→41.9%). - 2 rohe ViewerShell_Control.axaml-Literale (ViewerHub-Datei einer anderen Lane) migriert — StringsIntegrityTests hat
iniciando…undservidor in-processgefangen →U_*-Keys in allen 9 resx + Properties in Strings.cs + chirurgische Ersetzung (nur diese 2 Zeilen). - Gate: Build 0 Fehler; Suite 396/396 PASS (StringsIntegrityTests grün). Finale Coverage: ES 33.4% (manuelle Qualität), FR 41.2%, DE 39.7%, IT 41.9%; JA/KO/ZH noch gestaged (Font-Bank).
v2.219.2.1
v2.219.2.3BETAPATCH
Seymour2. Aug. 2026
i18n: Abdeckung für FR/DE/IT/ES erweitert (399-Begriffe PT→FR/DE/IT-Wörterbuch + 22 EN-Phrasen + ES-Domain) UND Index-Korruptionsfix, der Sprachen in FR/DE vermischte
- Lane IFRT-2
- PT→FR/DE/IT-Wörterbuch:
work/_i18n_pt_dict_{a,b1,c1,c2,c3}.py(399 Begriffe — UI-Verben, FFX-Gameplay, Welt, Material/Zeit/Seltenheit) +_i18n_en_phrases.py(22 gängige Phrasen) +_i18n_expand_coverage.pydeckt jetzt auch ES ab (Index 0). - BUG in der Stichprobe gefunden: der 1. Lauf von
_i18n_apply_pt_dict.pyverwendete Indizes 1/2/3 gegen (fr,de,it)-Tupel → FR erhielt DEUTSCHE Werte und DE erhielt ITALIENISCHE Werte (der korrigierte 2. Lauf überschrieb sie nicht, weil die Keys nicht mehr EN waren). Fix:work/_i18n_regenerate_fr_de.pyregeneriert FR/DE von Grund auf aus dem Neutralen mit allen 4 Ebenen in der richtigen Reihenfolge (offizielles Glossar > Domain > EN-Phrasen > PT). - Echte Coverage nach dem Fix: ES 50.3% (+372), FR 58.6%, DE 55.8%, IT 59.9% (vorher 33-42%). 9/9 resx ausgerichtet (2199 Keys).
- Gate: Build 0 Fehler; Suite 396/396 PASS. PT 10.2% (offizielle Begriffe; PT-BR ist das praktische Neutral des Editors); JA/KO/ZH noch gestaged (Font-Bank).
v2.219.2.2