Update 2.11
5.6.2026
v2.11.0BETA
Seymour
🧠 KI-ASSEMBLER PRODUCTIZED (ein brauchbarer Monster-KI-Editor):
- der Codec-Wunsch „die KI 100% frei bearbeiten" wurde zum FEATURE. Neu in der
FfxLib/Ai+Modules/MonsterAiEditor-lane: - Verhaltensbibliothek (
AiSnippetLibrary): parametrisierte Vorlagen, deren Bytes bewährte Corpus-Idiome spiegeln — linear (force-cmd/perform-cmd/grant-field/set-stat/raw-call) und bedingt (in-K-Rotation, On-Event-Force-Command für Counter/Phase). - Pre-Flight-Validator (
AiValidator): Opcode∈48, HasOperand vs 0x80, hängende Branch/Entrypoints (benennt welchen, statt des undurchsichtigen Throw), Operandenbereiche, RT0, Rebuild-Dry-Run, Grow/Shrink;SaveAssemblerist jetzt defensiv (verweigert das Schreiben bei Fehlern). - Freundlicher Befehlsauswähler (
AiCommandId): performCommand-Operand ↔ Name über(cat<<12)|idüberCommandCharacter/CommandMonster1_Dictionary; UI-Dropdown (kein rohes Hex mehr). - Neue Codec-Primitive (
AiScript_File):GrowWorkerJumpTable(fügt Tombola zur Jump-Tabelle eines Workers hinzu — ermöglicht einen NEUEN Branch) +AppendGuardedAction(stellt eine geschützte Aktion einem Entrypoint voran, wobei der ursprüngliche Handler erhalten bleibt) +OperandKindOf. - UI in
MonsterAiEditor: Behavior-Library-Karte + Validate-Schaltfläche/Report + Befehls-Dropdown. - Gate
AiScriptLab --ai2PASS (echtes Corpus, 361): Jump-Grow 898/898 Al Bhedomobil, Guarded-Action 692/692 (erster+letzter Entrypoint) + synthetischer Schutzwall 1/1, Validator sauber 346/346, AiCommandId 620/620, Positive-Catch 8/8/8 (jumpOOB über den Editor-Pfad). Ursprüngliches--RT0 361/361 intakt. - Ein 4-Agenten-Adversarial-Review fand und behob 2 Bugs (Sentinel-Self-Loop one-past-end;
OperandKindim Editor-Save-Pfad verworfen), jetzt durch das Gate abgesichert. Docs:docs/reverse/FFX_AI_JUMPTABLE_GROW_PROVEN_2026-06-05.md+docs/ai/FFX_AI_ASSEMBLER_PRODUCTIZED_2026-06-05.md. - ⚠️ Struktur OFFLINE bewiesen; In-Game-Verhalten (RT2) wartet auf Halysons OK (Probe). Vorlagen „Verbündeten mit < 25% HP heilen" und „Raserei in Zug N" NICHT ausgeliefert (HP-Feld-/Turn-Counter-Anker nicht byte-bestätigt).
SUCESSOR_FFX_HD_MODELOS_MASTER_2026-06-05.mdfür sum/npc geschlossen. - Texturen (manifest-getrieben):
extract-texture-batchinRuntimeTools/PhyreModelExportLabbekam--from-manifest, das die<id>.ahwin32g_fileNames[](autoritatives Asset-Manifest) liest und die EXAKTE Textur extrahiert, die das Spiel lädt. 305 PNGs (pc/npc/sum), Provenienz-Maptexture-provenance-map.json, 0 stille Abweichungen. RE: dieahwin32ist ein lesbarer C-Header — löst Querverweise (c906←c106,c908←c108,c806←c805) UND Multi-Texturen (c101+c101_01,n238+n238_hair,n356←n238_hair) ohne IDA. Bonus-Fund: NPC-Rig-Vererbungsschlüssel =0x6NNNin der.chr(nXXX→kNNN-Map, 222/222 gültig). Docdocs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md. - Bake (Mesh+Textur+Anim): Treiber
work/_scratch_mgrp/bake_cast.pyüberphyre_chr_gate. Statisch 253/253 (gesamter Cast texturiert, sauber). Animiert: sum eigene Motion, npc erbtskl/<base>. - Visuelles QA (Workflow, 21 Vision-Agenten): 248 animierte über F3D triagiert — 157 sauber / 58 Torsion / 33 explodiert. Bind-Picker (rest/A1) an den 33 hat nicht behoben.
- 🔧 Blender-KORREKTUR (2026-06-06): F3D hat bei skinnierter Animation GELOGEN. Blender-Diagnose (Mesh
EXPLODE_RATIO≈1.0, kein Wachstum) + ehrlicher Eevee-Render bewiesen, dass die „explodierten" einen intakten Körper haben, nur ein Glied/Accessoire gestreckt. Re-QA (8 Agenten über Blender-Renders) korrigiert auf 175 sauber (71%) / 59 Torsion (24%) / 14 explodiert (6%) — 20 Modelle gerettet, der Offline-Bake war immer ~94% nutzbar. Die 14 echten = 11 Aeons + 3 npc (nicht-humanoide Rigs; brauchen Mocap/Parent-Map-RE). Regel aktualisiert: der BLENDER-Screen entscheidet, F3D lügt. Pipelinework/_scratch_mgrp/blender_{diagnose,render_anim,batch_render}.py. - 🎯 RETARGET GELÖST via
--retarget-delta(2026-06-06): 175→215 sauber (87%). Neuesphyre_chr_gate-Flag, das vererbte Motion als Delta von Frame0 auf den npc-REST (M=restLocal·inv(m0)·mf), wobei die npc-Proportionen statt der Basis erhalten bleiben. IDA-RE bewies, dass das.chr@0x30-Remap bereits angewendet war — die Ursache war das Rest-Pose-Retarget, nicht das Remap (DocFFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md). Pilot+Batch von 73 fudidos + Blender-Re-QA + Per-Model-Keep-Best: +40 sauber, 44 gerettet, NULL-Regression (1 behalten, weil es regressieren würde). NPC animiert = 200/222 sauber (90%), 0 explodiert; 8 Aeons immer noch explodiert (Mesh-immun → Mocap). Löst das MASTER §2.4 „A1-universal" ohne A1. - 🐉 GESAMTER CAST offline geschlossen (2026-06-06): 498/643 sauber (77%), 90% nutzbar. Ehrliches Blender-QA + Retarget-Delta + Keep-Best auf den Rest erweitert: obj/wep/pc (46 sauber/55, Party sauber) UND die 340 MONSTER. Das alte Monster-QA (bbox) behauptete „0 Explosionen" = eine Lüge; ehrliches Blender-QA (29 Agenten) fand 127 echte fudidos; Retarget-Delta an den 66 geerbten → 36 befördert, Monster 206→237 sauber. Gesamt animiert (643): 498 sauber / 86 Torsion / 51 explodiert / 8 blank. Rest (9%) = divergentes Mesh / degeneriertes Bind → Mocap/Mesh-RE, nicht Retarget.
- obj/wep/pc (2026-06-06): gleiche Pipeline erweitert — statisch obj 110/110 + wep 79/79 + pc 34/49 (15 pc-Fehler = Dummy-
c8xx-Tombola ohne PS2-.chr). Gesamter HD-Cast statisch = 476 Modelle. obj/wep meist rigide (spärliche Animation 25/7); Screen-Stichprobe: f001/w001/c004=Auron sauber. - Galerie
work/cast_hd_gallery.html(Model-Viewer, statisch/anim-Umschalter, sum/npc/obj/wep/pc-Filter). Alles inwork/(gitignored): nur die COMMANDS sind Code. Kein csproj-Bump (Lab/RE in RuntimeTools).FFX_TOOLBOX_DISCOVERY_PLAYBOOK_2026-06-05.md): ein Online-Sweep + Lizenzprüfung externer FFX-HD/PS2 (VBF, Phyre, Kernel-.bin, ATEL, FMOD, TM2, FMV) und Editor-NuGets. Geprüfte Schlüsselfunde: External File Loader (ffgriever, BSD-2) Loose-File ohne Repack, Kaitai Struct (C#-Runtime MIT) zur Generierung von C#+JS-Readern, fahrenheit (MIT, C#) Hook+DLL-Mod-Framework, und die Bestätigung, dass FFXDataParser KEINE LIZENZ hat (nur zum Studium). Die Spaltetested?ist noch❌— Oracle-Test gegen das lokale Corpus ausstehend, Plan im Doc selbst enthalten. Nur Doc: kein csproj-Bump (Lab/RE-Doc-only-Regel). 58gepackten Dossiers;- einem Manifest pro Dossier;
- einer Git-sicheren Spiegelkopie unter
docs/history/DOSSIÊ FFX 01-06-2026/; - einem Ausschlussbericht für die einzelne riesige externe Binärdatei, die durch GitHub-Größenlimits blockiert ist.
- separaten Workshop-spezifischen Wissensbasen;
- einem aggregierten Master-Atlas;
- Root-
KNOWLEDGE_BASE.mdals einzigem Einstiegspunkt; - einem offiziellen Merge-Plan;
- einem
Pt6/Pt9-Annex abhängiger Workshops; - formalen technischen Familienlinien für das Projekt.
merge in docsExtras nowExtras laterfrozen researchhistorical cleanupps3dataffx_ps2- Executive-Abschluss
- Kompendium der Unter-Workshops
- Runtime-/KI-Atlas
- Nachfolger-Bootstrap
- kurzes Reifegrad-Board
Extras now-UrteilExtras later-Urteil- Grenzen des eingefrorenen Forschungsstands
- abgeleitete
Pt67-Produktrolle ps3datavsffx_ps2-Split- Provenienz-Regelbuch
- obligatorische Zitierfacetten ### Hinzugefügt
important.bina_ability.binReadNo-Edit Byte IdentityReread- additive Text-Token-Kontrakte in
FFXProjectEditor/FfxLib/Text/* - eine reine Validierungs-/Round-Trip-Entscheidungs-Utility
TextLabTools/TextContractHarnessals erster produktionsseitiger Smoke-Consumerdocs/history/BATTLE_AI_FRONTIER_2026-05-31.mddocs/history/MODELVIEWER_BINDING_FRONTIER_2026-05-31.mddocs/history/PT23_TO_PT34_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT34_CHANGELOGS.mddocs/history/PT23_TO_PT34_BRANCH_MAP.mddocs/history/PT23_TO_PT45_CODE_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_CHANGELOGS.mddocs/history/PT23_TO_PT45_BRANCH_MAP.mdKNOWLEDGE_BASE.mddocs/history/PT2_TO_PT11_KNOWLEDGE_BASE.mddocs/history/PT12_TO_PT22_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_KNOWLEDGE_BASE.mddocs/history/PT2_TO_PT45_MASTER_KNOWLEDGE_BASE.mddocs/history/PT6_PT9_DEPENDENT_WORKSHOPS_ANNEX.mddocs/history/NON_FFX_EDITOR_THREADS_ANNEX.mddocs/history/PT_FAMILY_LINES_ANNEX.mddocs/history/OFFICIAL_MERGE_PLAN_2026-05-31.mddocs/history/PS3DATA_FULL_TREE_RESEARCH_PLAN.mddocs/history/PS2_FULL_TREE_RESEARCH_PLAN.mddocs/history/PT50_TO_PT58_ABSORPTION_PLAN.mddocs/history/PT52_TO_PT58_CLOSEOUT_REPORT_2026-05-31.mddocs/history/PT50_PT51_HISTORICAL_CLEANUP_2026-05-31.mddocs/history/PT6_TEMPORARY_CLOSEOUT_2026-05-31.mddocs/history/PT6_CHILD_WORKSHOPS_COMPENDIUM.mddocs/history/PT6_RUNTIME_AI_DISCOVERY_ATLAS.mddocs/history/PT6_SUCCESSOR_BOOTSTRAP.mdhistory/pt23-battleai-structurehistory/pt24-exactlaunch-seamhistory/pt25-selectorbank-materializationhistory/pt26-battlestate-diffhistory/pt27-routereplay-truthhistory/pt28-battlecapacity-prephistory/pt29-keyitem-crashfixhistory/pt30-autoability-crashfixhistory/pt31-geometryviewport-blockhistory/pt32-chrcarrier-decodehistory/pt33-aislice-payloadhistory/pt34-legacybridge-narrowing### GeändertCurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlocked- operationelle Wrapper für die
Extras / ps3data-Linie - nützliche
Pt6 / Pt23-KI-Mikro-Workshops mit erhaltenem Wissen und archivsicherem Status merge nowmerge laterExtras/read-onlyknowledge onlyPt56,Pt52,Pt54,Pt58= jetzt im Software-Teil angreifenPt57und Teile vonPt53/Pt55= später angreifen, weiterhin read-onlyPt53,Pt55,Pt57= aggressive Forschung ohne ÜbertreibungPt50,Pt51= historisches Cleanup, bevor sie als saubere Quellen zählenMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### Validiert- Zweck
- Nutzen
- Merge-Wahrscheinlichkeit
- Mini-Changelog pro Workshop
binding truth-Sprache- starke Verengung für
owner/target/parentage/commit - Guardrail-Basis für
Pt6undPt23 formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truthvsactor-surface truthPt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabals Teil des Runtime-/KI-Erbes, auch ohne Writer- oder Patcher-Anspruch.- Basis der alten Welle
Pt2..Pt11 - Basis der mittleren Welle
Pt12..Pt22 - Basis der schweren Welle
Pt23..Pt45 - ein einziger aggregierter Atlas mit Memory/Runtime/Binding/Guardrails
- Satelliten von
Pt6 - Satelliten von
Pt9 - produktionsseitige Ausnahmen
Pt29/30 Model Viewer / BindingBattle / AI / Runtime TruthText SafetyKernel / ShopTooling / Safety / ReleaseProduction Crashfixes### Anmerkungen ### Geplant ### Offene AufgabenTextSourceCapabilityIndex*StringExplorer-UI-Wiring0x10 + 0x120x13### Blockiert ## [v2.13.0] - 2026-06-05 ### Hinzugefügt ### Anmerkungen ## [v2.12.0] - 2026-06-05 ### HinzugefügtFfxLib/BattleMap/BattleArenaPositionWriter.csstempelt die X/Y/Z jedes Akteurs im Chunk3-Anker-Array IN PLACE neu (Monster im Feld = Zeiger+0x20; außerdem Party/Aeon/Staging perrole), nur Werte: fasst Header/Zeiger/Anzahl/andere Chunks nie an, erhält W wörtlich. Da die Battle→Szene-Transformation IDENTITY ist (IDA-belegt, v2.10.0.1), wird eine im Szenenraum gewählte Koordinate wörtlich geschrieben. Gleiches Slot-sicheres Muster wieFormationSlotWriter(Bodyguard + einmaliges BackupWriteLooseFile). ### Validiert RT0 (keine Bearbeitung == byte-identisch) 862/862, NUR-POSITION (Diff auf das+0x20-Array beschränkt) 862/862, RE-READ 862/862, + SAVE-LIFECYCLE (keine Bearbeitung/Bearbeitung/Wiederherstellung auf einer temporären Kopie) PASS. BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab (zuvor ausgelassen). Vollständige CI PASS (7/7 Gates): ReverseHarness, AiScriptLab, FormationSlotLab, AbilityCommandLab + die 3 neuen. ### Zurückgestellt offline; der In-Game-Bildschirm ist der Schiedsrichter. Monster-Slot hinzufügen/entfernen (Anzahl variieren) = strukturell (Rebuild), als Nächstes. ## [v2.11.1] - 2026-06-05 ### Hinzugefügt die die Dialogzeilen nach Textinhalt filtert, und (2) einen Sprachfilter (Englisch/Japanisch-Kontrollkästchen, Englisch standardmäßig) — zuvor wurden JP und EN in der GLEICHEN Liste ausgegeben (Japanisch zuerst = eine Wand aus Japanisch).EventExplorer_DataModel(allTextRows+ApplyTextFilter, Englisch zuerst) + axaml (Such-TextBox + JP/EN-Kontrollkästchen CheckBoxes). Berührt den Writer NICHT (Tier 1 bleibt--event-rt0397/397 + Bearbeitung 12/12). ### Anmerkungen Übersetzungs-Injektion, außerhalb des Writer-Umfangs). Die Wortsuche ist innerhalb des ausgewählten Events. ## [v2.10.0.1] - 2026-06-05 ### Nachgewiesen (RE / IDA, offline) kopiert die Chunk3- (battle-lokalen) Koordinaten WÖRTLICH in den Welt-Knoten des Akteurs — kein Flip-Z, keine Skalierung, keine Rotation; nur Y erhält eine pro-Akteur-Modellhöhe (actor+0x534). Da die.dae.phyre-Szene == der rohe Phyre- Vertex-Frame 1:1 ist, gilt P_scene(X,Y,Z) = P_battle(X,Y,Z) (s=1, R=I, T=0). Belegte Kette:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000; Chunk3-Basis0x112A9B0; kopiert 4 Floats wörtlich; Akteur-Welt @+0x3B0) →FFX_Battle_ResolveActorPlacement(0x7A9AE0) →FFX_Battle_GetActorByIndex(0x794030, stride0xF90== RT2). Die Flip-Z-Vermutung war ein Artefakt der Einbeziehung von Off-Field-Staging-Zeilen (Party-Rückseite Z≈-168). Doc:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(+ Umbenennungs-Warteschlange für die echte.i64). ### Geändert (Aurora Chamber — Ehrlichkeit) zeichnet Anker direkt in Szenen-Koordinaten (Standard war bereits Identität) und der Flip-Z-Umschalter wird WIDERLEGT/Vergleich;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven. ### Zurückgestellt≈ chunk3bestätigen (Rest ~0) + den exakten Y-Term messen. Probe von Halyson AUTORISIERT; es fehlt nur das geöffnete Spiel (READ über die bestehende Probe, kein neuer Code). SPIRA FORGE bleibt pausiert. ## [v2.10.0] - 2026-06-05 ### Hinzugefügt Container) ist nicht mehr read-only. Das Bearbeiten von Cutscene-/Event-Dialogen ist jetzt ein BUTTON.FfxLib/Event/Event_File.Write.cs(neu): byte-faithful EV01 — jeder Chunk neu auf0x40ausgerichtet, die absolute Offset-Tabelle + EOF-Terminator neu berechnet (Magic +0xFFFFFFFF-Schutzwall erhalten). Keine Bearbeitung = garantiert VERBATIM; bearbeiteter Text nutztTextTable_File.Write(Chunks JP=1/EN=4); ATEL-Script (0), Unbekannt 2 und FTCX (3) byte-für-byte erhalten. Tier-2-HookScriptChunkOverride(Re-Stitch eines bearbeiteten Chunk-0).Event_File.cs: erfasst den rohen Header + die Texttabellen; toleriert Null-Pointer-Feld-String-Einträge (8 Dateien), indem der Chunk wörtlich erhalten bleibt (dokumentierte text-bearbeitbare Grenze).TextTable_File.Write-additive Überladung (includeTrailingPadding): Tabelle+Pool ohne internes Padding ausgeben (der Container re-padded auf 0x40). Bricht--textstr-rt0NICHT (Standard = Legacy-Verhalten).Modules/EventExplorerwurde zum Dialog-EDITOR: bearbeitbare JP/EN-Strings (TwoWay-TextBox) + ein „Save dialogue"-Button, der die.ebp. (FfxLib/Ai/AiScript_File.cs, read-only als Donor verwendet), der das Event-Script liest/bearbeitet (gleiche AiFile-Familie).- Byte-lokaler Operand-PATCH BELEGT (12/12): das Bearbeiten eines Chunk-0-Operanden ändert nur diese Bytes; der Container re-stitcht anderswo identisch; das Re-Read trägt den neuen Operanden.
- GROW () ist eine AppendCode dokumentierte Grenze: der Donor
AppendCode(für Battle gebaut, Deskriptoren in DATA) verschiebt die header-residenten Deskriptoren, die Event-Scripts nutzen, nicht ([0x38..scriptStart)) — braucht eine event-bewusste Relocation (abzustimmen mit der AI-Assembler-Spur lane). ### Validiert 12/12** (String tauschen → repacken → re-read: bearbeiteter String passt, unberührte Chunks wörtlich, idempotent). 397/397; byte-lokaler Operand-Patch 12/12. Editor baut 0 Fehler. (0 Brüche), EOF==Dateigröße,0xFFFFFFFF-Schutzwall. Docs indocs/reverse/FFX_EVENT_*_2026-06-05.md. ### Ehrlichkeit / Zurückgestellt text-bearbeitbar). Tier 2 = Patch belegt; append/grow + strukturelles Authoring = Tier 3, dokumentiert, nicht geschlossen. Verifikation bevorzugt offline-Byte-RT0; In-Game-RT2 des bearbeiteten Dialogs wird weiterhin empfohlen. ## [v2.9.0] - 2026-06-05 ### Hinzugefügt btlmap-Szenen-Katalog) mit dem MapViewer und hebt Akteur-Koordinaten aus chunk3 heraus. Aurora & Bianca gewidmet. 💛 - Scene Picker konsumiert
BattleMapCatalog_File/BattlefieldSceneResolver(read-only) — listet/wählt Szenen nach Bereich und Map-Key. - Render treibt
PhyreMapExportLab(On-Demand-glTF-Export der btlmap-Szene) und öffnetFFXMapViewerWebüber den?catalog=/?map=/?actors=-Deep-Link — einen Mini-Katalog pro Szene, der nie das gemeinsamecatalog.jsonberührt nochapp.js. - Coordinates über den neuen
FfxLib/BattleMap/BattleArenaAnchors_File.cs-Reader (pure/Avalonia-frei): dekodiert chunk3 (96-B-Bereichsdatensatz, Zeiger+0x10..+0x2C, Live-Monster+0x20, 16-B-XYZW-Y-up-Elemente), listet die battle-lokalen Anker und exportiert JSON für das Encounter-Authoring. Anker-Gizmos aus?actors=+ ein „pick"-Modus (y=0-Ebenen-Raycast → Weltkoordinaten). Nicht-intrusiv (hooktwindow.ffxMapViewerDebug; no-ops ohne?actors/pick; bearbeitetapp.js). ### Validiert klyt00_00/sins02_00/mihn00_00 == doc-belegte Koordinaten); Korpus 862/862 sauber (0 NaN/Inf, W==0 bei Live-Monstern); deterministisch; BIANCA→Szene→Battle→Anker-Pipeline 52/52 gemappte Szenen tragen Anker. 10.804 Dreiecke,gatePass: true). Editor baut mit 0 Fehlern (in einem isolierten HEAD-Worktree verifiziert). ### Ehrlichkeit / Zurückgestellt UNCALIBRATED** (P_scene = R·s·P_battle + T; flip-Z/yaw-180 ungelöst) — Anker sind roh battle-lokal, nicht engine-exakt. Probe-Kalibrierung = Wave 3 (braucht Halysons OK). SPIRA FORGE bleibt PAUSIERT; Aurora KONSUMIERT nur MapViewer + BIANCA (read-only/additiv), startet den Hub nie. ## [v2.8.0] - 2026-06-05 ### Hinzugefügt (katalogisiert die 25 Bereiche / 56 Szenen des HD-ps3data/btlmap—<area>NN_<variant>mitmdl/d3d11/<leaf>.dae.phyre) +FfxLib/BattleMap/BattlefieldSceneResolver.cs. Pure/Avalonia-frei, kompiliert in den Editor (0 Fehler). „azit03" e.g), NICHT dasbattlefield-u16 (das ist eine globale Arena-ID, die über Karten geteilt wird —bf=1061spannt nagi/test/tori/zzzz). Doc:docs/reverse/FFX_BATTLEFIELD_SCENE_BRIDGE_2026-06-05.md. Zeiger+0x20(float32 X,Y,Z,W; Y-up; W=0; 16-Byte-Stride; Formations-Slot ↔ Eintrag). Party+0x10, Aeon+0x18, Kamera+0x2C. Doc:docs/reverse/FFX_BATTLE_FORMATION_POSITION_CHUNK3_DECODED_2026-06-05.md. (-- export --ps3-root <ps3data> --area btlmap/azit/azit03_a). Actor-Overlay-Plan + Probe-Koordinaten-Kalibrierung (DESIGN):docs/ai/FFX_AURORA_COORDINATE_SYSTEM_AND_CALIBRATION_2026-06-05.md(Probe nur mit Halysons OK). ### Validiert deterministisch; 56/56 Szenen mit genau einem Primärmodell; Brücke mit 0 unerklärten Fehlern (22 HD-Waisen- Karten = geschnitten/PS2-only ERWARTET; 4 Waisen-Szenen bika04/grid00/nagi03/sfia00 = Boss/Story ERWARTET). ### Zurückgestellt die DINPUT8 Probe braucht Halysons OK und SPIRA FORGE ist PAUSIERT. ## [v2.7.1] - 2026-06-05 ### Hinzugefügt / Validiert WeaponNameTable, MacroDictionary, NameDescriptionTextTable, NameDescriptionTextPrefixTable, BtlTextTable, SphereGrid, ShopGearCatalog, BukiGetTreasureCatalog, AlBhedDictionary, PointerScriptTable, BattleTextTable, ShopTable. Preserve-only-Muster (WriteIdentityfür die lossy-rebuild). Neues Gate-SweepTools/Wave1Rt0.cs. ## [v2.7.0] - 2026-06-05 ### Hinzugefügt tauscht die AiFile-Partition gegen eine ANDERE Länge, 16-padded die AiFile, verschiebt spätere Abschnitte und schreibt die Header-Abschnitts-Zeiger (m###.bin), schreibt die AiFile wörtlich (kein codeLength-Clobber). Die AI-Assembler-UI speichert jetzt GROW/SHRINK (war nur length-preserving). Clobber-Ursache dokumentiert + per Design behoben (Option B: minimale Oberfläche, berührtMonster_File.WriteNICHT →--monster-rt0bleibt 361/361). VM aus Worker-Anzahlen + datalen pro Al Bhedomobil (rund 16) (NICHT partition/DeclaredLength/codeLength) und vertraut den In-File-Zeigern → Grow-Relocation wird berücksichtigt und trailing-Pad ist sicher. (goldene Regel: rename-queue.) ### Validiert (insert → grow-aware splice → Re-Read sauber + Tail/Header wörtlich erhalten + 16-aligned + idempotent), SHRINK 346/346 (ein nicht-zielgerichtetes Instr entfernen → negatives Delta → Re-Read sauber + Tail erhalten).--monster-rt0361/361 (keine Regression). Korpus-Ausrichtung: 16/32/64/128/256, 0 trailing-Pad. (free-edit)"**-Karte mit der editierbaren Instruktionsliste (opcode/operand/remove) + Insert/Save Structural + Vorschau gerendert. Screenshotwork/spira_forge_qa/monster_ai_assembler_v01.png. ### Zurückgestellt Erzwingen eines Battles über die DINPUT8 Probe (geteilt) — unter Halysons explizitem OK. Offline + RE belegen die Byte/Spiel-Sicherheit; der In-Game-Bildschirm ist der endgültige Schiedsrichter. ## [v2.6.0] - 2026-06-05 ### Hinzugefügt (insert / remove / modify) auf dem byte-lokalen Operand-Editor. Die neu gebaute AiFile stammt ausAiScript_File.Rebuild(RT0-proven: relokiert Entrypoints + Jump-Tables über eine old→new-Map). Editierbare Liste (opcode/operand hex + remove-Checkbox), insert-after-selected, Delta-Vorschau. Save ist nur für length-preserving-Edits aktiviert (codeLength unverändert) → byte-sicherer Splice viaSpliceAiFileIntoMonster. GROW/SHRINK ist LAB (ehrliche Meldung): der Loose-File-Save braucht ein header-bewusstes Monster-Relayout + Ausrichtungs-Padding + In-Game-Beweis. --ctbbase-rt0→CtbBase_File(ctb_base.bin), preserve-only.--mixtable-rt0→MixTable_File(prepare.bin), preserve-only.--aiasm-rt0→ beweist den AI-Assembler-strukturellen Save (No-Edit-Rebuild + Relayout + Splice byte-identisch) und misst die Korpus-AiFile→WorkerFile-Ausrichtung. ### Validiert length-preserving-Editing ist byte-sicher. Grow=LAB (Ursache:Monster_File-0x34-Header überlapptAiFile[0..4)= codeLength + eine Längenänderung bricht die WorkerFile-Ausrichtung; Korpus ist 16/32/64/128/256-aligned, 0 trailing-Pad). ### Blockiert / LAB ## [v2.5.0] - 2026-06-05 ### Hinzugefügt bereit (Open Spector,Capture Next Frame,Export Last Capture) plus ein erstesMaterial Debug-Panel mit Live-Inventar der geladenen glTF-Materialien, einem Selektor, Fact-Chips und Textur-Karten pro Slot (map,normalMap,aoMap,envMap, usw.). hält fest, was gelandet ist, was validiert wurde und was explizit außerhalb des Beweises bleibt. ### Validiert Controls erschienen, und dasMaterial Debug-Panel wurde aus dem geladenen glTF befüllt. vertrauenswürdig bereitstellt, degradiert der Viewer zuFrame preview unavailable/Texture preview unavailable on this source surfacestatt vorzugeben, gültige visuelle Beweise zu zeigen. ## [v2.4.4] - 2026-06-05 ### Hinzugefügt Battles** des Feldes; die Auswahl eines Battles publiziertFieldContext.SelectedBattleIdund der Formation Editor springt direkt zu diesem Battle (lädt dessen Formation). Setzt das „Klicke eine Zone, tausche die Formation" des Masterplans über die gemeinsame Spine um, ohne Shell-Plumbing.FieldContexthatSelectedBattleId/SelectBattle. ### Validiert 37 BattleIds ohne Ordner + 37 Ordner nie referenziert (spezielle/Event-Battles) — die Übergabe filtert auf die existierenden. Editor sprang zum geladenen Battle). Screenshotwork/spira_forge_qa/handoff_encounter_to_formation_v04.png. ## [v2.4.3.1] - 2026-06-05 ### Reverse Engineering / Nachweis (CONTINUE_AQUI_PERNAS_HD): die „52m_skeletonMatrices→ 79 Joints"-Weltkarte lebt in der Phyre-Datei, nicht in IDA.- Die Skin-Palette ist
PMatrix4[0..51](verlinkt ausPMesh-Feld 12); sie entspricht den Live-m_skeletonMatricesbyte-für-byte (maxDist=0.00000). - Die Slot→Node-Map ist das
intbei Offset 12 jedesPSkeletonJointBounds[j](52 Tombola → 52 Nodes, Bijektion). - Das Zusammensetzen von
m_defaultPosedurchm_matrixParentsreproduziert den authored inverse-bind EXAKT:0/52Nodes divergieren. Also ist--hd-defpose+--hd-parentsbereits der echte Bind des Spiels. - Grundursache der historischen Spule: ein Bake ohne
--hd-defpose/--hd-parentsfällt aufinvBind = PMatrix4[52+b](rohe LOCAL-Matrix) zurück → das Mesh explodiert. Das Defpose+Parents-Rezept ist der Fix und ist bereits der Galerie-Standard. - Neue read-only-Proben:
work/_scratch_mgrp/phyre_palette_probe(lokalisiert die Palette, beweist, dass der Bind exakt ist, emittiertnode_to_slot.json) undphyre_legs_probe(Matcher; illustriert die Coincident-Translation-Falle). ### Validiert c007 (Rikku) — in erzwungener Ruhe, Battle (id5_c4318 t0.0–0.9), 4 Wadenwinkel in tiefer Hocke und Multi-Clip (c4333/c4365/c4886). Numerisch: Bein-Joint-Lokal/Welt-Matrizen sind perfekte Rigids (scale=1, det=+1, ortho 0.0000). Kein IDA. Vollständiger Beweis indocs/reverse/FFX_HD_SKIN_PALETTE_DECODED_LEGS_NOT_BIND_2026-06-05.md. ## [v2.4.3] - 2026-06-05 ### Hinzugefügt zertifizieren, die nie byte-gated waren, und 4 weitere konkrete editierbare Basis-Familien schließen: --keyitem-rt0(Tools/KeyItemRt0) →KeyItem_File(important.bin), preserve-only-Writer (klont die Original-Bytes + stempelt nurPrimerByte10/OrderingByte13).--treasure-rt0(Tools/TreasureRt0) →Treasure_File(takara.bin), Full-Decode-Round-Trip (4 Bytes/Eintrag).--customization-rt0(Tools/CustomizationRt0) →Customization_File-Gear kaizou.bin + Aeon sum_grow.bin (erhält das Header-Präfix/Suffix + re-emittelt die dekodierten Einträge).--autoability-rt0(Tools/AutoAbilityRt0) →AutoAbility_File.WriteAbilities(a_ability.bin, DATA- Abschnitt), preserve-only-Writer. (Liestarms_rate.binnur, um den Read-Vertrag zu erfüllen; schreibt NICHT und decktWriteAbilitiesAndText/text NICHT ab.) ### Validiert takara.bin (503 Einträge, 2012 B), kaizou.bin (125) + sum_grow.bin (77), a_ability.bin (134 Einträge, 19590 B). No-Edit-Save = byte-identisch; Edit = byte-lokal (gleiches preserve-only-Muster, das Monster/Encounter geschlossen hat). Hebt den historischen Vorbehalt „important.bin/a_ability.bin blocked for mutation-safe writer claims" teilweise auf: Feld- (Daten-Abschnitts-)Bearbeitung ist jetzt belegt; Text-Pool-Repack bleibt unbeansprucht (gleiches monmagic-artiges Drift-Risiko — außerhalb des Scopes dieses Gates). ## [v2.4.2] - 2026-06-05 ### Hinzugefügt Battles (z. B e.g.[m003 - Murussu, m003 - Murussu, m009 - Dingo]). Lazy-loaded + gecacht + begrenzt (≤90 sichtbare Battles; bei der vollständigen Liste fragt sie nach Filterung nach Bereich). Read-only; bringt das „Zones, die mit den Monstern bemalt sind, die dort spawnen" des Masterplans in den Editor (Encounter↔Formations-Verschmelzung sichtbar). ## [v2.4.1] - 2026-06-05 ### Hinzugefügt Produktions-Helfer (Slot-only-Guard + einmaliges Backup.spiraforge.bak+ Write). Wird jetzt vom Formation Editor (PersistSnapshot) UND vom Headless-Gate getestet — gleicher Code im Editor und im Test, keine Duplikation. ### Validiert Workspace/Asset, read-only respektiert): (a) No-Edit-Save = Disk byte-identisch + Backup==Original; (b) Edit-Save = slot-only auf Disk + Re-Read-Match + Backup erhalten; (c) Restore aus Backup = byte-identisch. PASS. Schließt die v0.2-Ehrlichkeits-Lücke (In-App-Save auf Disk belegt, reversibel). Korpus weiterhin 858/858;offline_ci4 Gates PASS. ## [v2.4.0] - 2026-06-05 ### Hinzugefügt Entries/Groups/Formations (VARIABLE Anzahlen + Create-Tabellen), vergibt frische , baut chunk0 + die Chunk-Tabelle neu, erhält dataOffsets Block-Sharing + Padding. Gate--encounter-rebuild-rt0. Die strukturelle Basis für „CREATE ENCOUNTERS". ### Validiert (4096/4096)** + Grow-Test (1 Formation hinzufügen, Ende 0x1000→0x1002, 2 Chunks intakt) gültig. frei; den trailing-Padding-Drift behoben. Ehrliche Notiz: die StringExplorerhelp_txt.bin-Registrierungen des sind in dieser Extraktion DEAD (Datei fehlt) — der Writer ist an einem echten Feld-String (spcodedic.bin). ## [v2.3.2] - 2026-06-05 ### Hinzugefügt (Ability_Command.ReadList→WriteList), denKernelCommandsbereits zum Speichern nutzt, der aber nie byte-gated war. Referenziert das Editor-Projekt (tiefe Dep-Baum), ruft nur statische FfxLib-Methoden. Inoffline_ci.ps1. ### Validiert (1 Byte) 4/4. PASS. Das ist die belegte Grundlage für das „New Black magic"-Feature (lebt in command.bin). ### Blockiert monmagic-Original teilt/deduped Text, währendWriteListneu-appendet (FfxEncoding.WriteBytesIntoTextFilenur appends; command/item sind pure-append → sie passen). Risiko: der KernelCommands-Save von bläht die Datei — Gate es, bis ein dedup-bewusster Writer besteht. Audit + Fix-Ziel MonMagic:docs/reverse/FFX_ABILITY_WRITER_AUDIT_2026-06-05.md. ## [v2.3.1] - 2026-06-04 ### Hinzugefügt EOF hinaus zeigt (kino03_*,mihn05_*,cdsp00_02): behandelt den über-EOF-Chunk (und darüber) als abwesend statt die ganze Datei abzulehnen; frühere Chunks (inkl. Formation @2) bleiben gültig. Diese Battles sind jetzt im Formation Editor bearbeitbar. ### Validiert Re-Read 858/858 PASS. Die früheren 843 unverändert. ## [v2.3.0] - 2026-06-04 ### Hinzugefügt Monster (16 Bytes) einer btl_*-Formation überBattle_File.WriteWithFormationSlots, byte-sicher slot-only. Konsumiert dieFieldContext-Spine (filtert Battles vorab nach dem ausgewählten Feld-Bereich des Hubs). Monster-Picker (Monster_Dictionary+ Empty, erhält das rohe High-Nibble). Save schreibt eine Workspace-Loose-File mit einem.spiraforge.bak-Backup +AssertSlotOnlyDiff-Bodyguard, viaByteSnapshotEditorSession(Undo/Discard). Offline, keine Probe.offline_ci.ps1(-BtlRoot-Param). Additive read-only-Member aufBattle_File(FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength). ### Validiert (15 _* damals für den Reader unparsebar — in v2.3.1 behoben.) ## [v2.2.0] - 2026-06-04 ### Hinzugefügt Spine, keyed byfield_token. Field-Picker gespeist von der Bridge-CSV (ps3data-map-btlmap-fieldid-bridge.csv, 357 Felder, structural-candidate). Die Auswahl eines Feldes publiziert inFieldContext(observable Singleton) und 2 Consumer reagieren read-only: Map-Deep-Link (?map=map/<area>/<field>für FFXMapViewerWeb) + Encounter-Peek (liestbtl.binviaEncounterTable_File, Kandidaten-Area↔Map-Join). CSV via csproj<Content>in den Output kopiert. Offline; der Picker läuft ohne Projekt. Kein Writer, keine Probe. ### Validiert Screenshotwork/spira_forge_qa/field_hub_v01.png. ## [v2.1.1] - 2026-06-04 ### Validiert--player-rt0-Gate:ply_save.bin(3098) +ply_rom.bin(2161) -> No-Edit-RT0 byte-identisch. (Writer existierten bereits slot-only; jetzt gated.) ## [v2.1.0] - 2026-06-04 ### Hinzugefügtbtl.binbyte-für-byte und stempelt nur die editierbaren Felder neu (TabelleId/Unknown0C, GruppeBattlefield/Danger/TotalWeight, FormationId/Weight).--encounter-rt0-Gate im Editor. ### Validiert ## [v2.0.0] - 2026-06-04 > NEUE ÄRA — MAJOR. Der Editor hat von „Offline-Dateibearbeitung" zu BELEGTEM LIVE-RUNTIME-EDITING gewechselt: das Bearbeiten des AI-Bytecodes eines Monsters im RAM und das Sehen der Verhaltensänderung auf dem Bildschirm, ohne Crash, reversibel — das oberste Ziel #1 des Projekts, verwirklicht. MAJOR = eine neue Fähigkeitsklasse (kein Vertrags-, Save- und Build-Bruch — wir haben nur hinzugefügt und gehärtet).-beta, weil RT2/God-Mode noch nicht in gated UI produktisiert sind. Meilenstein der Claude Code / VSCode-Welle + der Vereinigung mit dem 2. Codex-Account. ### Höhepunkte ändert sich auf dem Bildschirm — Flammenpudding Feuga→Blitzga, kein Crash, reversibel. Kette:enemy-list(0xD34460) ->MemoryChr.Ptr_script_chunks(+0xF78) -> Live-AiFile === Diskm0NN.binbyte-identisch. globale Ability aus — das Monster muss sie nicht „besitzen". Beweis: ein Skoll spuckte Ifrits Inferno auf dem Bildschirm. Daten-Reboot (Todes-Flags + KO), alles viaMemoryChr+ Probe. ### Hinzugefügt (+delta) -> eine gültige größere AiFile (der Weg zu „ADD AI", über das byte-lokale Budget hinaus). Jump-Labels + inferierter Worker-Typ), Operand-Edit + Loose-File-Save.FFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper),FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN,CODEX_MAPVIEWER_WATCH_JARVIS,FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Spira Forge). ### Geändert / Validiert StatSheet/Loot + Header-Signature/Padding erhalten (das Padding überlappteAiFile[0..3]). ### Blockiert / Zurückgestellt (ehrlich) (Spiel-geschlossener Rebuild). Player gefunden:FFX_FmodMusic_PlayTrackByIndex(181 Tracks); der PS2 ist auf HD gestubbed. ### Aus Labs / Multi-Agent übernommen Vereinigung mit dem 2. Codex-Account (MapViewer / Modell-Textur-Spur): der Exporter gibt jetzt Material-Rollen- Signale aus (TextureSampler1/normalMap/reflection/water/PhyreWaterShader), externer Viewer-Vergleich lane (glTF-Sample-Viewer als Oracle; Lücke exporter-seitig belegt, nicht Shell), und der Spira Forge-Masterplan- Kickoff. Multi-Agent-Koordination protokolliert indocs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.md. ## [v1.7.0] - 2026-06-04 ### HinzugefügtAppendCode: hängt Instruktionen am Ende an + relokiert den Daten-Abschnitt.Rebuild: insert/remove/modify eine Instruktion ÜBERALL + relokiert AUTOMATISCH alle Jumps + Entrypoints (old→new-Linker-Map) + den Daten-Abschnitt. Orphan-Branch (entfernte Instruktion) -> ehrlicher Fehler. ### Validiert Workers lösen auf, Post-Insertion-Entrypoint relokiert0x2D1→0x2D4von selbst; Grow-Test (AppendCode) RT0. ## [v1.6.0] - 2026-06-04 ### Validiert StatSheet/Loot + Header-Signature/Paddingerhalten (das überlappteAiFile[0..3]). ## [v1.5.0] - 2026-06-04 ### Validiert / Blockiert Swap BLOCKED** (FMOD-API__thiscall, Probe cdecl-only). DocFFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper). ## [v1.4.0] - 2026-06-04 ### Validiert (live) Ability aus — das Monster muss sie nicht „besitzen". Beweis: ein Skoll spuckte Ifrits Inferno auf dem Bildschirm. ## [v1.3.1] - 2026-06-04 ### Behoben / Live validiert Flags). Auto- (Scan-Status) live umgeschaltet. ## [v1.3.0] - 2026-06-04 ### Validiert (live) (POINTER_BATTLE_ENEMY_LIST 0xD34460, stride0xF90) + Probe. ## [v1.2.0] - 2026-06-04 ### Hinzugefügt Jump-Labels) + Operand-Edit + Loose-File-Save. ## [v1.1.0] - 2026-06-04 ### Validiert (🏆 HEADLINE — oberstes Ziel #1) Verhalten ändert sich auf dem Bildschirm (Flammenpudding Feuga→Blitzga), kein Crash, reversibel. **Ein-Kette:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte-identical. Doc:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md. ## [v1.0.0] - 2026-06-01 Reifemeilenstein für den Editor als echte Lese-, Validierungs- und Wissens-Navigationsplattform, mit genugExtras-Produktfläche, um ein ehrliches1.0zu rechtfertigen, auch wenn Runtime-, AI- und Body-Playback-Bosse noch offen sind. ### HöhepunktePS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### HinzugefügtMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraphSignature Groupin der ShellTxcCltPairExplorer- kalte
fmt/sps2-Metadaten ### Geändert ### Validiert read-onlydo not promoteno runtime proofwo zutreffendpipeline/support onlywo zutreffend ### Anmerkungenmagic solvedAI solvedModelViewer playback solved- breite Writer-Autorisierung ## [v0.11.0-beta.2] - 2026-06-01 Echte Produktentwicklung für die
Extras-Linie inmain. ### Höhepunkte masterffx_ps2ps3dataPS2 KnowledgeTextures (TM2)BIN-FTC AtlasProject / Pipeline### HinzugefügtExtrasSourceResolverExtrasEvidenceBadgeModelExtrasProvenanceModelExtrasReadonlyBoundaryModelExtrasFileOpenServiceCdIndexExplorerProjectDescriptorViewerAbmapSupportGraphdocs/history/PT52_BIN_FTC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT53_BATTLE_MAGIC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT54_PROJECT_ABMAP_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT56_TEXTURE_PALETTE_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT57_PRESENTATION_CONTAINER_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT58_FFX_PS2_OWNERSHIP_AND_LINKAGE_GUIDE_2026-06-01.md### Geändert ### Validiert- kein Writer
- kein Repack
- keine finalen Decode-Claims
- kein Mischen von kalter Forschung mit Runtime-Beweis ### Anmerkungen
kernel -> mag_* -> bat_eff## [v0.10.0-beta.1] - 2026-05-31 Main-Branch-Konsolidierungs-Beta nach der ersten starken Welle kuratierter Workshop-Absorption. ### Höhepunkte ### HinzugefügtShop ExplorerFfxLib/ShopAssets/Shop- einen gegurardeten Writer für
item_shop.binundarms_shop.bin NameDescriptionTextPrefixTable_Filereader + no-edit guardfürimportant.binreader + no-edit guardfüra_ability.bin### Geändert ### Validiert ### Zurückgestellt ### Blockiert ## [v0.9.0-beta.1] - 2026-05-31 Erste Version, die ehrlich die tatsächliche Größe des Editors und des Ökosystems um ihn herum annimmt. ### Höhepunkte des Hauptbranches ### In Main vorhandene Produktionsfläche ### Aus Workshops übernommenTextLabTools;ProductionAuditTools;- konservatives Text-/Monster-Harness und -Release.
PlayerGrowthEditor;CtbBaseEditor;MixTableEditor;- die historische Linie, die später
KeyItemEditor. AutoAbilityEditor;- konservative Parser aus
AutoAbility_File.csundArms_Rate.cs. Shop Explorer;FfxLib/Shop;Assets/Shop;- geschützter Writer für
item_shop.binundarms_shop.bin. ### Governance und Versionierung ### Validiert ### Weiterhin blockiert ### Warum dies noch Beta ist ## Historische semantische Rekonstruktion Wichtiger redaktioneller Hinweis: ## [v0.8.0-beta.1] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem das Ökosystem bereits als großer modularer Editor mit mehreren gleichzeitig aktiven spezialisierten Fronts arbeitet. ### Hauptoberfläche in diesem Stadium ### Ökosystem-Druck ### Noch fehlend ## [v0.7.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem sich die Hauptlinie von "mehr Module" zu "mehr Beweis" verschiebt. ### Hinzugefügt ### Geändert ### Noch nicht sicher ## [v0.6.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem die Kernel-Linie und die konservative Härtung der Sekundärsysteme aufhören, ein Versprechen zu sein, und Teil eines ernsthaften Editors werden. ### Hinzugefügt ### Geändert ### Noch fehlend ## [v0.5.0] - historische Rekonstruktion (offizielle SemVer vor Git) Meilenstein der starkenKernelTablesLab-Welle. ### Hinzugefügt ### Geändert ### Noch fehlend ## [v0.4.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem das Projekt lernt, in Text mit echten Kriterien "ja" und "nein" zu sagen. ### Hinzugefügt ### Geändert proven reader;conservative writer;blocked; ### Fehlt noch ## [v0.3.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem der Editor aufhört, nur ein Datei-Browser zu sein, und beginnt, KI, Runtime und hochwertige Gameplay-Oberflächen zu berühren. ### Hinzugefügt ### Geändert ### Noch fehlend ## [v0.2.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein der strukturellen Expansion des Editors in große sichtbare Systeme. ### Hinzugefügt ### Geändert ### Weiterhin fehlend ## [v0.1.0] - historische Rekonstruktion (offizielles SemVer vor Git) Ehrlicher Mindest-Meilenstein, bei dem bereits ein echter Editor existierte - weit über einem Wegwerf-Prototyp. ### Hinzugefügt ### Geändert ### Noch fehlend ## [baseline-2026-05-31] - 2026-05-31 Ehrlicher erster Import der Produktion in Git. ### Hinzugefügt ### Bewahrt ### Validierung ### Hinweise ## Workshop-Mini-Versionsverlauf Hinweis: ## [pt2-v0.3.0-superseded.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt3-v0.8.0-freeze.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt4-v0.5.0-hold.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt5-v0.9.0-final.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt6-v0.7.0-beta.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt7-v0.9.0-final.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt8-v0.7.0-freeze.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den HauptbranchShop Explorer;FfxLib/Shop;Assets/Shop;- Guardrails dokumentiert in
docs/history/PT8_SHOP_GUARDRAILS.md. ### Endstatus ## [pt9-v0.6.0-alpha.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt10-v0.2.0-final.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt11-v0.3.0-blocked.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt12-v0.3.0-package.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt13-v0.3.0-package.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt14-v0.2.0-architecture.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt15-v0.2.0-architecture.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt16-v0.2.0-architecture.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt17-v0.3.0-guardrail.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt18-v0.3.0-governance.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt19-v0.3.0-surface.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt20-v0.2.0-strategy.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ##v2.227.0.0(2026-08-08) — Visual-QA-Infrastruktur: opencode-FREE-Modelle inverboo_router.py(ehrliche Limits + Power-Vergleich). MINOR. Lane Jarvis-CLINE. [vorher:v2.226.0.0] ##v2.226.0.0(2026-08-08) — Visual-QA-Infrastruktur: OpenCode-Go-Integration (gpt-5.6-luna) +desc-Modus + humanisierter UX-Prompt + Report-Fix. MINOR. Lane Jarvis-CLINE. [previous:v2.225.2.0] ##v2.225.2.0(2026-08-06) — F7 Monster AI Swap: Status-on-ability über RAM. MINOR. Lane Jarvis-HOOK. [vorher:v2.225.1.0] ##v2.225.1.0(2026-08-06) — Schatzkarte: ATEL-Header-Parse + Glossary-Fix. PATCH. Lane Jarvis-CLINE. [prev:v2.225.0.0]
v2.11.0BETA
Seymour
🧠 KI-ASSEMBLER PRODUCTIZED (ein brauchbarer Monster-KI-Editor):
- der Codec-Wunsch „die KI 100% frei bearbeiten" wurde zum FEATURE. Neu in der
FfxLib/Ai+Modules/MonsterAiEditor-lane: - Verhaltensbibliothek (
AiSnippetLibrary): parametrisierte Vorlagen, deren Bytes bewährte Corpus-Idiome spiegeln — linear (force-cmd/perform-cmd/grant-field/set-stat/raw-call) und bedingt (in-K-Rotation, On-Event-Force-Command für Counter/Phase). - Pre-Flight-Validator (
AiValidator): Opcode∈48, HasOperand vs 0x80, hängende Branch/Entrypoints (benennt welchen, statt des undurchsichtigen Throw), Operandenbereiche, RT0, Rebuild-Dry-Run, Grow/Shrink;SaveAssemblerist jetzt defensiv (verweigert das Schreiben bei Fehlern). - Freundlicher Befehlsauswähler (
AiCommandId): performCommand-Operand ↔ Name über(cat<<12)|idüberCommandCharacter/CommandMonster1_Dictionary; UI-Dropdown (kein rohes Hex mehr). - Neue Codec-Primitive (
AiScript_File):GrowWorkerJumpTable(fügt Tombola zur Jump-Tabelle eines Workers hinzu — ermöglicht einen NEUEN Branch) +AppendGuardedAction(stellt eine geschützte Aktion einem Entrypoint voran, wobei der ursprüngliche Handler erhalten bleibt) +OperandKindOf. - UI in
MonsterAiEditor: Behavior-Library-Karte + Validate-Schaltfläche/Report + Befehls-Dropdown. - Gate
AiScriptLab --ai2PASS (echtes Corpus, 361): Jump-Grow 898/898 Al Bhedomobil, Guarded-Action 692/692 (erster+letzter Entrypoint) + synthetischer Schutzwall 1/1, Validator sauber 346/346, AiCommandId 620/620, Positive-Catch 8/8/8 (jumpOOB über den Editor-Pfad). Ursprüngliches--RT0 361/361 intakt. - Ein 4-Agenten-Adversarial-Review fand und behob 2 Bugs (Sentinel-Self-Loop one-past-end;
OperandKindim Editor-Save-Pfad verworfen), jetzt durch das Gate abgesichert. Docs:docs/reverse/FFX_AI_JUMPTABLE_GROW_PROVEN_2026-06-05.md+docs/ai/FFX_AI_ASSEMBLER_PRODUCTIZED_2026-06-05.md. - ⚠️ Struktur OFFLINE bewiesen; In-Game-Verhalten (RT2) wartet auf Halysons OK (Probe). Vorlagen „Verbündeten mit < 25% HP heilen" und „Raserei in Zug N" NICHT ausgeliefert (HP-Feld-/Turn-Counter-Anker nicht byte-bestätigt).
SUCESSOR_FFX_HD_MODELOS_MASTER_2026-06-05.mdfür sum/npc geschlossen. - Texturen (manifest-getrieben):
extract-texture-batchinRuntimeTools/PhyreModelExportLabbekam--from-manifest, das die<id>.ahwin32g_fileNames[](autoritatives Asset-Manifest) liest und die EXAKTE Textur extrahiert, die das Spiel lädt. 305 PNGs (pc/npc/sum), Provenienz-Maptexture-provenance-map.json, 0 stille Abweichungen. RE: dieahwin32ist ein lesbarer C-Header — löst Querverweise (c906←c106,c908←c108,c806←c805) UND Multi-Texturen (c101+c101_01,n238+n238_hair,n356←n238_hair) ohne IDA. Bonus-Fund: NPC-Rig-Vererbungsschlüssel =0x6NNNin der.chr(nXXX→kNNN-Map, 222/222 gültig). Docdocs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md. - Bake (Mesh+Textur+Anim): Treiber
work/_scratch_mgrp/bake_cast.pyüberphyre_chr_gate. Statisch 253/253 (gesamter Cast texturiert, sauber). Animiert: sum eigene Motion, npc erbtskl/<base>. - Visuelles QA (Workflow, 21 Vision-Agenten): 248 animierte über F3D triagiert — 157 sauber / 58 Torsion / 33 explodiert. Bind-Picker (rest/A1) an den 33 hat nicht behoben.
- 🔧 Blender-KORREKTUR (2026-06-06): F3D hat bei skinnierter Animation GELOGEN. Blender-Diagnose (Mesh
EXPLODE_RATIO≈1.0, kein Wachstum) + ehrlicher Eevee-Render bewiesen, dass die „explodierten" einen intakten Körper haben, nur ein Glied/Accessoire gestreckt. Re-QA (8 Agenten über Blender-Renders) korrigiert auf 175 sauber (71%) / 59 Torsion (24%) / 14 explodiert (6%) — 20 Modelle gerettet, der Offline-Bake war immer ~94% nutzbar. Die 14 echten = 11 Aeons + 3 npc (nicht-humanoide Rigs; brauchen Mocap/Parent-Map-RE). Regel aktualisiert: der BLENDER-Screen entscheidet, F3D lügt. Pipelinework/_scratch_mgrp/blender_{diagnose,render_anim,batch_render}.py. - 🎯 RETARGET GELÖST via
--retarget-delta(2026-06-06): 175→215 sauber (87%). Neuesphyre_chr_gate-Flag, das vererbte Motion als Delta von Frame0 auf den npc-REST (M=restLocal·inv(m0)·mf), wobei die npc-Proportionen statt der Basis erhalten bleiben. IDA-RE bewies, dass das.chr@0x30-Remap bereits angewendet war — die Ursache war das Rest-Pose-Retarget, nicht das Remap (DocFFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md). Pilot+Batch von 73 fudidos + Blender-Re-QA + Per-Model-Keep-Best: +40 sauber, 44 gerettet, NULL-Regression (1 behalten, weil es regressieren würde). NPC animiert = 200/222 sauber (90%), 0 explodiert; 8 Aeons immer noch explodiert (Mesh-immun → Mocap). Löst das MASTER §2.4 „A1-universal" ohne A1. - 🐉 GESAMTER CAST offline geschlossen (2026-06-06): 498/643 sauber (77%), 90% nutzbar. Ehrliches Blender-QA + Retarget-Delta + Keep-Best auf den Rest erweitert: obj/wep/pc (46 sauber/55, Party sauber) UND die 340 MONSTER. Das alte Monster-QA (bbox) behauptete „0 Explosionen" = eine Lüge; ehrliches Blender-QA (29 Agenten) fand 127 echte fudidos; Retarget-Delta an den 66 geerbten → 36 befördert, Monster 206→237 sauber. Gesamt animiert (643): 498 sauber / 86 Torsion / 51 explodiert / 8 blank. Rest (9%) = divergentes Mesh / degeneriertes Bind → Mocap/Mesh-RE, nicht Retarget.
- obj/wep/pc (2026-06-06): gleiche Pipeline erweitert — statisch obj 110/110 + wep 79/79 + pc 34/49 (15 pc-Fehler = Dummy-
c8xx-Tombola ohne PS2-.chr). Gesamter HD-Cast statisch = 476 Modelle. obj/wep meist rigide (spärliche Animation 25/7); Screen-Stichprobe: f001/w001/c004=Auron sauber. - Galerie
work/cast_hd_gallery.html(Model-Viewer, statisch/anim-Umschalter, sum/npc/obj/wep/pc-Filter). Alles inwork/(gitignored): nur die COMMANDS sind Code. Kein csproj-Bump (Lab/RE in RuntimeTools).FFX_TOOLBOX_DISCOVERY_PLAYBOOK_2026-06-05.md): ein Online-Sweep + Lizenzprüfung externer FFX-HD/PS2 (VBF, Phyre, Kernel-.bin, ATEL, FMOD, TM2, FMV) und Editor-NuGets. Geprüfte Schlüsselfunde: External File Loader (ffgriever, BSD-2) Loose-File ohne Repack, Kaitai Struct (C#-Runtime MIT) zur Generierung von C#+JS-Readern, fahrenheit (MIT, C#) Hook+DLL-Mod-Framework, und die Bestätigung, dass FFXDataParser KEINE LIZENZ hat (nur zum Studium). Die Spaltetested?ist noch❌— Oracle-Test gegen das lokale Corpus ausstehend, Plan im Doc selbst enthalten. Nur Doc: kein csproj-Bump (Lab/RE-Doc-only-Regel). 58gepackten Dossiers;- einem Manifest pro Dossier;
- einer Git-sicheren Spiegelkopie unter
docs/history/DOSSIÊ FFX 01-06-2026/; - einem Ausschlussbericht für die einzelne riesige externe Binärdatei, die durch GitHub-Größenlimits blockiert ist.
- separaten Workshop-spezifischen Wissensbasen;
- einem aggregierten Master-Atlas;
- Root-
KNOWLEDGE_BASE.mdals einzigem Einstiegspunkt; - einem offiziellen Merge-Plan;
- einem
Pt6/Pt9-Annex abhängiger Workshops; - formalen technischen Familienlinien für das Projekt.
merge in docsExtras nowExtras laterfrozen researchhistorical cleanupps3dataffx_ps2- Executive-Abschluss
- Kompendium der Unter-Workshops
- Runtime-/KI-Atlas
- Nachfolger-Bootstrap
- kurzes Reifegrad-Board
Extras now-UrteilExtras later-Urteil- Grenzen des eingefrorenen Forschungsstands
- abgeleitete
Pt67-Produktrolle ps3datavsffx_ps2-Split- Provenienz-Regelbuch
- obligatorische Zitierfacetten ### Hinzugefügt
important.bina_ability.binReadNo-Edit Byte IdentityReread- additive Text-Token-Kontrakte in
FFXProjectEditor/FfxLib/Text/* - eine reine Validierungs-/Round-Trip-Entscheidungs-Utility
TextLabTools/TextContractHarnessals erster produktionsseitiger Smoke-Consumerdocs/history/BATTLE_AI_FRONTIER_2026-05-31.mddocs/history/MODELVIEWER_BINDING_FRONTIER_2026-05-31.mddocs/history/PT23_TO_PT34_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT34_CHANGELOGS.mddocs/history/PT23_TO_PT34_BRANCH_MAP.mddocs/history/PT23_TO_PT45_CODE_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_CHANGELOGS.mddocs/history/PT23_TO_PT45_BRANCH_MAP.mdKNOWLEDGE_BASE.mddocs/history/PT2_TO_PT11_KNOWLEDGE_BASE.mddocs/history/PT12_TO_PT22_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_KNOWLEDGE_BASE.mddocs/history/PT2_TO_PT45_MASTER_KNOWLEDGE_BASE.mddocs/history/PT6_PT9_DEPENDENT_WORKSHOPS_ANNEX.mddocs/history/NON_FFX_EDITOR_THREADS_ANNEX.mddocs/history/PT_FAMILY_LINES_ANNEX.mddocs/history/OFFICIAL_MERGE_PLAN_2026-05-31.mddocs/history/PS3DATA_FULL_TREE_RESEARCH_PLAN.mddocs/history/PS2_FULL_TREE_RESEARCH_PLAN.mddocs/history/PT50_TO_PT58_ABSORPTION_PLAN.mddocs/history/PT52_TO_PT58_CLOSEOUT_REPORT_2026-05-31.mddocs/history/PT50_PT51_HISTORICAL_CLEANUP_2026-05-31.mddocs/history/PT6_TEMPORARY_CLOSEOUT_2026-05-31.mddocs/history/PT6_CHILD_WORKSHOPS_COMPENDIUM.mddocs/history/PT6_RUNTIME_AI_DISCOVERY_ATLAS.mddocs/history/PT6_SUCCESSOR_BOOTSTRAP.mdhistory/pt23-battleai-structurehistory/pt24-exactlaunch-seamhistory/pt25-selectorbank-materializationhistory/pt26-battlestate-diffhistory/pt27-routereplay-truthhistory/pt28-battlecapacity-prephistory/pt29-keyitem-crashfixhistory/pt30-autoability-crashfixhistory/pt31-geometryviewport-blockhistory/pt32-chrcarrier-decodehistory/pt33-aislice-payloadhistory/pt34-legacybridge-narrowing### GeändertCurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlocked- operationelle Wrapper für die
Extras / ps3data-Linie - nützliche
Pt6 / Pt23-KI-Mikro-Workshops mit erhaltenem Wissen und archivsicherem Status merge nowmerge laterExtras/read-onlyknowledge onlyPt56,Pt52,Pt54,Pt58= jetzt im Software-Teil angreifenPt57und Teile vonPt53/Pt55= später angreifen, weiterhin read-onlyPt53,Pt55,Pt57= aggressive Forschung ohne ÜbertreibungPt50,Pt51= historisches Cleanup, bevor sie als saubere Quellen zählenMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### Validiert- Zweck
- Nutzen
- Merge-Wahrscheinlichkeit
- Mini-Changelog pro Workshop
binding truth-Sprache- starke Verengung für
owner/target/parentage/commit - Guardrail-Basis für
Pt6undPt23 formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truthvsactor-surface truthPt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabals Teil des Runtime-/KI-Erbes, auch ohne Writer- oder Patcher-Anspruch.- Basis der alten Welle
Pt2..Pt11 - Basis der mittleren Welle
Pt12..Pt22 - Basis der schweren Welle
Pt23..Pt45 - ein einziger aggregierter Atlas mit Memory/Runtime/Binding/Guardrails
- Satelliten von
Pt6 - Satelliten von
Pt9 - produktionsseitige Ausnahmen
Pt29/30 Model Viewer / BindingBattle / AI / Runtime TruthText SafetyKernel / ShopTooling / Safety / ReleaseProduction Crashfixes### Anmerkungen ### Geplant ### Offene AufgabenTextSourceCapabilityIndex*StringExplorer-UI-Wiring0x10 + 0x120x13### Blockiert ## [v2.13.0] - 2026-06-05 ### Hinzugefügt ### Anmerkungen ## [v2.12.0] - 2026-06-05 ### HinzugefügtFfxLib/BattleMap/BattleArenaPositionWriter.csstempelt die X/Y/Z jedes Akteurs im Chunk3-Anker-Array IN PLACE neu (Monster im Feld = Zeiger+0x20; außerdem Party/Aeon/Staging perrole), nur Werte: fasst Header/Zeiger/Anzahl/andere Chunks nie an, erhält W wörtlich. Da die Battle→Szene-Transformation IDENTITY ist (IDA-belegt, v2.10.0.1), wird eine im Szenenraum gewählte Koordinate wörtlich geschrieben. Gleiches Slot-sicheres Muster wieFormationSlotWriter(Bodyguard + einmaliges BackupWriteLooseFile). ### Validiert RT0 (keine Bearbeitung == byte-identisch) 862/862, NUR-POSITION (Diff auf das+0x20-Array beschränkt) 862/862, RE-READ 862/862, + SAVE-LIFECYCLE (keine Bearbeitung/Bearbeitung/Wiederherstellung auf einer temporären Kopie) PASS. BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab (zuvor ausgelassen). Vollständige CI PASS (7/7 Gates): ReverseHarness, AiScriptLab, FormationSlotLab, AbilityCommandLab + die 3 neuen. ### Zurückgestellt offline; der In-Game-Bildschirm ist der Schiedsrichter. Monster-Slot hinzufügen/entfernen (Anzahl variieren) = strukturell (Rebuild), als Nächstes. ## [v2.11.1] - 2026-06-05 ### Hinzugefügt die die Dialogzeilen nach Textinhalt filtert, und (2) einen Sprachfilter (Englisch/Japanisch-Kontrollkästchen, Englisch standardmäßig) — zuvor wurden JP und EN in der GLEICHEN Liste ausgegeben (Japanisch zuerst = eine Wand aus Japanisch).EventExplorer_DataModel(allTextRows+ApplyTextFilter, Englisch zuerst) + axaml (Such-TextBox + JP/EN-Kontrollkästchen CheckBoxes). Berührt den Writer NICHT (Tier 1 bleibt--event-rt0397/397 + Bearbeitung 12/12). ### Anmerkungen Übersetzungs-Injektion, außerhalb des Writer-Umfangs). Die Wortsuche ist innerhalb des ausgewählten Events. ## [v2.10.0.1] - 2026-06-05 ### Nachgewiesen (RE / IDA, offline) kopiert die Chunk3- (battle-lokalen) Koordinaten WÖRTLICH in den Welt-Knoten des Akteurs — kein Flip-Z, keine Skalierung, keine Rotation; nur Y erhält eine pro-Akteur-Modellhöhe (actor+0x534). Da die.dae.phyre-Szene == der rohe Phyre- Vertex-Frame 1:1 ist, gilt P_scene(X,Y,Z) = P_battle(X,Y,Z) (s=1, R=I, T=0). Belegte Kette:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000; Chunk3-Basis0x112A9B0; kopiert 4 Floats wörtlich; Akteur-Welt @+0x3B0) →FFX_Battle_ResolveActorPlacement(0x7A9AE0) →FFX_Battle_GetActorByIndex(0x794030, stride0xF90== RT2). Die Flip-Z-Vermutung war ein Artefakt der Einbeziehung von Off-Field-Staging-Zeilen (Party-Rückseite Z≈-168). Doc:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(+ Umbenennungs-Warteschlange für die echte.i64). ### Geändert (Aurora Chamber — Ehrlichkeit) zeichnet Anker direkt in Szenen-Koordinaten (Standard war bereits Identität) und der Flip-Z-Umschalter wird WIDERLEGT/Vergleich;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven. ### Zurückgestellt≈ chunk3bestätigen (Rest ~0) + den exakten Y-Term messen. Probe von Halyson AUTORISIERT; es fehlt nur das geöffnete Spiel (READ über die bestehende Probe, kein neuer Code). SPIRA FORGE bleibt pausiert. ## [v2.10.0] - 2026-06-05 ### Hinzugefügt Container) ist nicht mehr read-only. Das Bearbeiten von Cutscene-/Event-Dialogen ist jetzt ein BUTTON.FfxLib/Event/Event_File.Write.cs(neu): byte-faithful EV01 — jeder Chunk neu auf0x40ausgerichtet, die absolute Offset-Tabelle + EOF-Terminator neu berechnet (Magic +0xFFFFFFFF-Schutzwall erhalten). Keine Bearbeitung = garantiert VERBATIM; bearbeiteter Text nutztTextTable_File.Write(Chunks JP=1/EN=4); ATEL-Script (0), Unbekannt 2 und FTCX (3) byte-für-byte erhalten. Tier-2-HookScriptChunkOverride(Re-Stitch eines bearbeiteten Chunk-0).Event_File.cs: erfasst den rohen Header + die Texttabellen; toleriert Null-Pointer-Feld-String-Einträge (8 Dateien), indem der Chunk wörtlich erhalten bleibt (dokumentierte text-bearbeitbare Grenze).TextTable_File.Write-additive Überladung (includeTrailingPadding): Tabelle+Pool ohne internes Padding ausgeben (der Container re-padded auf 0x40). Bricht--textstr-rt0NICHT (Standard = Legacy-Verhalten).Modules/EventExplorerwurde zum Dialog-EDITOR: bearbeitbare JP/EN-Strings (TwoWay-TextBox) + ein „Save dialogue"-Button, der die.ebp. (FfxLib/Ai/AiScript_File.cs, read-only als Donor verwendet), der das Event-Script liest/bearbeitet (gleiche AiFile-Familie).- Byte-lokaler Operand-PATCH BELEGT (12/12): das Bearbeiten eines Chunk-0-Operanden ändert nur diese Bytes; der Container re-stitcht anderswo identisch; das Re-Read trägt den neuen Operanden.
- GROW () ist eine AppendCode dokumentierte Grenze: der Donor
AppendCode(für Battle gebaut, Deskriptoren in DATA) verschiebt die header-residenten Deskriptoren, die Event-Scripts nutzen, nicht ([0x38..scriptStart)) — braucht eine event-bewusste Relocation (abzustimmen mit der AI-Assembler-Spur lane). ### Validiert 12/12** (String tauschen → repacken → re-read: bearbeiteter String passt, unberührte Chunks wörtlich, idempotent). 397/397; byte-lokaler Operand-Patch 12/12. Editor baut 0 Fehler. (0 Brüche), EOF==Dateigröße,0xFFFFFFFF-Schutzwall. Docs indocs/reverse/FFX_EVENT_*_2026-06-05.md. ### Ehrlichkeit / Zurückgestellt text-bearbeitbar). Tier 2 = Patch belegt; append/grow + strukturelles Authoring = Tier 3, dokumentiert, nicht geschlossen. Verifikation bevorzugt offline-Byte-RT0; In-Game-RT2 des bearbeiteten Dialogs wird weiterhin empfohlen. ## [v2.9.0] - 2026-06-05 ### Hinzugefügt btlmap-Szenen-Katalog) mit dem MapViewer und hebt Akteur-Koordinaten aus chunk3 heraus. Aurora & Bianca gewidmet. 💛 - Scene Picker konsumiert
BattleMapCatalog_File/BattlefieldSceneResolver(read-only) — listet/wählt Szenen nach Bereich und Map-Key. - Render treibt
PhyreMapExportLab(On-Demand-glTF-Export der btlmap-Szene) und öffnetFFXMapViewerWebüber den?catalog=/?map=/?actors=-Deep-Link — einen Mini-Katalog pro Szene, der nie das gemeinsamecatalog.jsonberührt nochapp.js. - Coordinates über den neuen
FfxLib/BattleMap/BattleArenaAnchors_File.cs-Reader (pure/Avalonia-frei): dekodiert chunk3 (96-B-Bereichsdatensatz, Zeiger+0x10..+0x2C, Live-Monster+0x20, 16-B-XYZW-Y-up-Elemente), listet die battle-lokalen Anker und exportiert JSON für das Encounter-Authoring. Anker-Gizmos aus?actors=+ ein „pick"-Modus (y=0-Ebenen-Raycast → Weltkoordinaten). Nicht-intrusiv (hooktwindow.ffxMapViewerDebug; no-ops ohne?actors/pick; bearbeitetapp.js). ### Validiert klyt00_00/sins02_00/mihn00_00 == doc-belegte Koordinaten); Korpus 862/862 sauber (0 NaN/Inf, W==0 bei Live-Monstern); deterministisch; BIANCA→Szene→Battle→Anker-Pipeline 52/52 gemappte Szenen tragen Anker. 10.804 Dreiecke,gatePass: true). Editor baut mit 0 Fehlern (in einem isolierten HEAD-Worktree verifiziert). ### Ehrlichkeit / Zurückgestellt UNCALIBRATED** (P_scene = R·s·P_battle + T; flip-Z/yaw-180 ungelöst) — Anker sind roh battle-lokal, nicht engine-exakt. Probe-Kalibrierung = Wave 3 (braucht Halysons OK). SPIRA FORGE bleibt PAUSIERT; Aurora KONSUMIERT nur MapViewer + BIANCA (read-only/additiv), startet den Hub nie. ## [v2.8.0] - 2026-06-05 ### Hinzugefügt (katalogisiert die 25 Bereiche / 56 Szenen des HD-ps3data/btlmap—<area>NN_<variant>mitmdl/d3d11/<leaf>.dae.phyre) +FfxLib/BattleMap/BattlefieldSceneResolver.cs. Pure/Avalonia-frei, kompiliert in den Editor (0 Fehler). „azit03" e.g), NICHT dasbattlefield-u16 (das ist eine globale Arena-ID, die über Karten geteilt wird —bf=1061spannt nagi/test/tori/zzzz). Doc:docs/reverse/FFX_BATTLEFIELD_SCENE_BRIDGE_2026-06-05.md. Zeiger+0x20(float32 X,Y,Z,W; Y-up; W=0; 16-Byte-Stride; Formations-Slot ↔ Eintrag). Party+0x10, Aeon+0x18, Kamera+0x2C. Doc:docs/reverse/FFX_BATTLE_FORMATION_POSITION_CHUNK3_DECODED_2026-06-05.md. (-- export --ps3-root <ps3data> --area btlmap/azit/azit03_a). Actor-Overlay-Plan + Probe-Koordinaten-Kalibrierung (DESIGN):docs/ai/FFX_AURORA_COORDINATE_SYSTEM_AND_CALIBRATION_2026-06-05.md(Probe nur mit Halysons OK). ### Validiert deterministisch; 56/56 Szenen mit genau einem Primärmodell; Brücke mit 0 unerklärten Fehlern (22 HD-Waisen- Karten = geschnitten/PS2-only ERWARTET; 4 Waisen-Szenen bika04/grid00/nagi03/sfia00 = Boss/Story ERWARTET). ### Zurückgestellt die DINPUT8 Probe braucht Halysons OK und SPIRA FORGE ist PAUSIERT. ## [v2.7.1] - 2026-06-05 ### Hinzugefügt / Validiert WeaponNameTable, MacroDictionary, NameDescriptionTextTable, NameDescriptionTextPrefixTable, BtlTextTable, SphereGrid, ShopGearCatalog, BukiGetTreasureCatalog, AlBhedDictionary, PointerScriptTable, BattleTextTable, ShopTable. Preserve-only-Muster (WriteIdentityfür die lossy-rebuild). Neues Gate-SweepTools/Wave1Rt0.cs. ## [v2.7.0] - 2026-06-05 ### Hinzugefügt tauscht die AiFile-Partition gegen eine ANDERE Länge, 16-padded die AiFile, verschiebt spätere Abschnitte und schreibt die Header-Abschnitts-Zeiger (m###.bin), schreibt die AiFile wörtlich (kein codeLength-Clobber). Die AI-Assembler-UI speichert jetzt GROW/SHRINK (war nur length-preserving). Clobber-Ursache dokumentiert + per Design behoben (Option B: minimale Oberfläche, berührtMonster_File.WriteNICHT →--monster-rt0bleibt 361/361). VM aus Worker-Anzahlen + datalen pro Al Bhedomobil (rund 16) (NICHT partition/DeclaredLength/codeLength) und vertraut den In-File-Zeigern → Grow-Relocation wird berücksichtigt und trailing-Pad ist sicher. (goldene Regel: rename-queue.) ### Validiert (insert → grow-aware splice → Re-Read sauber + Tail/Header wörtlich erhalten + 16-aligned + idempotent), SHRINK 346/346 (ein nicht-zielgerichtetes Instr entfernen → negatives Delta → Re-Read sauber + Tail erhalten).--monster-rt0361/361 (keine Regression). Korpus-Ausrichtung: 16/32/64/128/256, 0 trailing-Pad. (free-edit)"**-Karte mit der editierbaren Instruktionsliste (opcode/operand/remove) + Insert/Save Structural + Vorschau gerendert. Screenshotwork/spira_forge_qa/monster_ai_assembler_v01.png. ### Zurückgestellt Erzwingen eines Battles über die DINPUT8 Probe (geteilt) — unter Halysons explizitem OK. Offline + RE belegen die Byte/Spiel-Sicherheit; der In-Game-Bildschirm ist der endgültige Schiedsrichter. ## [v2.6.0] - 2026-06-05 ### Hinzugefügt (insert / remove / modify) auf dem byte-lokalen Operand-Editor. Die neu gebaute AiFile stammt ausAiScript_File.Rebuild(RT0-proven: relokiert Entrypoints + Jump-Tables über eine old→new-Map). Editierbare Liste (opcode/operand hex + remove-Checkbox), insert-after-selected, Delta-Vorschau. Save ist nur für length-preserving-Edits aktiviert (codeLength unverändert) → byte-sicherer Splice viaSpliceAiFileIntoMonster. GROW/SHRINK ist LAB (ehrliche Meldung): der Loose-File-Save braucht ein header-bewusstes Monster-Relayout + Ausrichtungs-Padding + In-Game-Beweis. --ctbbase-rt0→CtbBase_File(ctb_base.bin), preserve-only.--mixtable-rt0→MixTable_File(prepare.bin), preserve-only.--aiasm-rt0→ beweist den AI-Assembler-strukturellen Save (No-Edit-Rebuild + Relayout + Splice byte-identisch) und misst die Korpus-AiFile→WorkerFile-Ausrichtung. ### Validiert length-preserving-Editing ist byte-sicher. Grow=LAB (Ursache:Monster_File-0x34-Header überlapptAiFile[0..4)= codeLength + eine Längenänderung bricht die WorkerFile-Ausrichtung; Korpus ist 16/32/64/128/256-aligned, 0 trailing-Pad). ### Blockiert / LAB ## [v2.5.0] - 2026-06-05 ### Hinzugefügt bereit (Open Spector,Capture Next Frame,Export Last Capture) plus ein erstesMaterial Debug-Panel mit Live-Inventar der geladenen glTF-Materialien, einem Selektor, Fact-Chips und Textur-Karten pro Slot (map,normalMap,aoMap,envMap, usw.). hält fest, was gelandet ist, was validiert wurde und was explizit außerhalb des Beweises bleibt. ### Validiert Controls erschienen, und dasMaterial Debug-Panel wurde aus dem geladenen glTF befüllt. vertrauenswürdig bereitstellt, degradiert der Viewer zuFrame preview unavailable/Texture preview unavailable on this source surfacestatt vorzugeben, gültige visuelle Beweise zu zeigen. ## [v2.4.4] - 2026-06-05 ### Hinzugefügt Battles** des Feldes; die Auswahl eines Battles publiziertFieldContext.SelectedBattleIdund der Formation Editor springt direkt zu diesem Battle (lädt dessen Formation). Setzt das „Klicke eine Zone, tausche die Formation" des Masterplans über die gemeinsame Spine um, ohne Shell-Plumbing.FieldContexthatSelectedBattleId/SelectBattle. ### Validiert 37 BattleIds ohne Ordner + 37 Ordner nie referenziert (spezielle/Event-Battles) — die Übergabe filtert auf die existierenden. Editor sprang zum geladenen Battle). Screenshotwork/spira_forge_qa/handoff_encounter_to_formation_v04.png. ## [v2.4.3.1] - 2026-06-05 ### Reverse Engineering / Nachweis (CONTINUE_AQUI_PERNAS_HD): die „52m_skeletonMatrices→ 79 Joints"-Weltkarte lebt in der Phyre-Datei, nicht in IDA.- Die Skin-Palette ist
PMatrix4[0..51](verlinkt ausPMesh-Feld 12); sie entspricht den Live-m_skeletonMatricesbyte-für-byte (maxDist=0.00000). - Die Slot→Node-Map ist das
intbei Offset 12 jedesPSkeletonJointBounds[j](52 Tombola → 52 Nodes, Bijektion). - Das Zusammensetzen von
m_defaultPosedurchm_matrixParentsreproduziert den authored inverse-bind EXAKT:0/52Nodes divergieren. Also ist--hd-defpose+--hd-parentsbereits der echte Bind des Spiels. - Grundursache der historischen Spule: ein Bake ohne
--hd-defpose/--hd-parentsfällt aufinvBind = PMatrix4[52+b](rohe LOCAL-Matrix) zurück → das Mesh explodiert. Das Defpose+Parents-Rezept ist der Fix und ist bereits der Galerie-Standard. - Neue read-only-Proben:
work/_scratch_mgrp/phyre_palette_probe(lokalisiert die Palette, beweist, dass der Bind exakt ist, emittiertnode_to_slot.json) undphyre_legs_probe(Matcher; illustriert die Coincident-Translation-Falle). ### Validiert c007 (Rikku) — in erzwungener Ruhe, Battle (id5_c4318 t0.0–0.9), 4 Wadenwinkel in tiefer Hocke und Multi-Clip (c4333/c4365/c4886). Numerisch: Bein-Joint-Lokal/Welt-Matrizen sind perfekte Rigids (scale=1, det=+1, ortho 0.0000). Kein IDA. Vollständiger Beweis indocs/reverse/FFX_HD_SKIN_PALETTE_DECODED_LEGS_NOT_BIND_2026-06-05.md. ## [v2.4.3] - 2026-06-05 ### Hinzugefügt zertifizieren, die nie byte-gated waren, und 4 weitere konkrete editierbare Basis-Familien schließen: --keyitem-rt0(Tools/KeyItemRt0) →KeyItem_File(important.bin), preserve-only-Writer (klont die Original-Bytes + stempelt nurPrimerByte10/OrderingByte13).--treasure-rt0(Tools/TreasureRt0) →Treasure_File(takara.bin), Full-Decode-Round-Trip (4 Bytes/Eintrag).--customization-rt0(Tools/CustomizationRt0) →Customization_File-Gear kaizou.bin + Aeon sum_grow.bin (erhält das Header-Präfix/Suffix + re-emittelt die dekodierten Einträge).--autoability-rt0(Tools/AutoAbilityRt0) →AutoAbility_File.WriteAbilities(a_ability.bin, DATA- Abschnitt), preserve-only-Writer. (Liestarms_rate.binnur, um den Read-Vertrag zu erfüllen; schreibt NICHT und decktWriteAbilitiesAndText/text NICHT ab.) ### Validiert takara.bin (503 Einträge, 2012 B), kaizou.bin (125) + sum_grow.bin (77), a_ability.bin (134 Einträge, 19590 B). No-Edit-Save = byte-identisch; Edit = byte-lokal (gleiches preserve-only-Muster, das Monster/Encounter geschlossen hat). Hebt den historischen Vorbehalt „important.bin/a_ability.bin blocked for mutation-safe writer claims" teilweise auf: Feld- (Daten-Abschnitts-)Bearbeitung ist jetzt belegt; Text-Pool-Repack bleibt unbeansprucht (gleiches monmagic-artiges Drift-Risiko — außerhalb des Scopes dieses Gates). ## [v2.4.2] - 2026-06-05 ### Hinzugefügt Battles (z. B e.g.[m003 - Murussu, m003 - Murussu, m009 - Dingo]). Lazy-loaded + gecacht + begrenzt (≤90 sichtbare Battles; bei der vollständigen Liste fragt sie nach Filterung nach Bereich). Read-only; bringt das „Zones, die mit den Monstern bemalt sind, die dort spawnen" des Masterplans in den Editor (Encounter↔Formations-Verschmelzung sichtbar). ## [v2.4.1] - 2026-06-05 ### Hinzugefügt Produktions-Helfer (Slot-only-Guard + einmaliges Backup.spiraforge.bak+ Write). Wird jetzt vom Formation Editor (PersistSnapshot) UND vom Headless-Gate getestet — gleicher Code im Editor und im Test, keine Duplikation. ### Validiert Workspace/Asset, read-only respektiert): (a) No-Edit-Save = Disk byte-identisch + Backup==Original; (b) Edit-Save = slot-only auf Disk + Re-Read-Match + Backup erhalten; (c) Restore aus Backup = byte-identisch. PASS. Schließt die v0.2-Ehrlichkeits-Lücke (In-App-Save auf Disk belegt, reversibel). Korpus weiterhin 858/858;offline_ci4 Gates PASS. ## [v2.4.0] - 2026-06-05 ### Hinzugefügt Entries/Groups/Formations (VARIABLE Anzahlen + Create-Tabellen), vergibt frische , baut chunk0 + die Chunk-Tabelle neu, erhält dataOffsets Block-Sharing + Padding. Gate--encounter-rebuild-rt0. Die strukturelle Basis für „CREATE ENCOUNTERS". ### Validiert (4096/4096)** + Grow-Test (1 Formation hinzufügen, Ende 0x1000→0x1002, 2 Chunks intakt) gültig. frei; den trailing-Padding-Drift behoben. Ehrliche Notiz: die StringExplorerhelp_txt.bin-Registrierungen des sind in dieser Extraktion DEAD (Datei fehlt) — der Writer ist an einem echten Feld-String (spcodedic.bin). ## [v2.3.2] - 2026-06-05 ### Hinzugefügt (Ability_Command.ReadList→WriteList), denKernelCommandsbereits zum Speichern nutzt, der aber nie byte-gated war. Referenziert das Editor-Projekt (tiefe Dep-Baum), ruft nur statische FfxLib-Methoden. Inoffline_ci.ps1. ### Validiert (1 Byte) 4/4. PASS. Das ist die belegte Grundlage für das „New Black magic"-Feature (lebt in command.bin). ### Blockiert monmagic-Original teilt/deduped Text, währendWriteListneu-appendet (FfxEncoding.WriteBytesIntoTextFilenur appends; command/item sind pure-append → sie passen). Risiko: der KernelCommands-Save von bläht die Datei — Gate es, bis ein dedup-bewusster Writer besteht. Audit + Fix-Ziel MonMagic:docs/reverse/FFX_ABILITY_WRITER_AUDIT_2026-06-05.md. ## [v2.3.1] - 2026-06-04 ### Hinzugefügt EOF hinaus zeigt (kino03_*,mihn05_*,cdsp00_02): behandelt den über-EOF-Chunk (und darüber) als abwesend statt die ganze Datei abzulehnen; frühere Chunks (inkl. Formation @2) bleiben gültig. Diese Battles sind jetzt im Formation Editor bearbeitbar. ### Validiert Re-Read 858/858 PASS. Die früheren 843 unverändert. ## [v2.3.0] - 2026-06-04 ### Hinzugefügt Monster (16 Bytes) einer btl_*-Formation überBattle_File.WriteWithFormationSlots, byte-sicher slot-only. Konsumiert dieFieldContext-Spine (filtert Battles vorab nach dem ausgewählten Feld-Bereich des Hubs). Monster-Picker (Monster_Dictionary+ Empty, erhält das rohe High-Nibble). Save schreibt eine Workspace-Loose-File mit einem.spiraforge.bak-Backup +AssertSlotOnlyDiff-Bodyguard, viaByteSnapshotEditorSession(Undo/Discard). Offline, keine Probe.offline_ci.ps1(-BtlRoot-Param). Additive read-only-Member aufBattle_File(FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength). ### Validiert (15 _* damals für den Reader unparsebar — in v2.3.1 behoben.) ## [v2.2.0] - 2026-06-04 ### Hinzugefügt Spine, keyed byfield_token. Field-Picker gespeist von der Bridge-CSV (ps3data-map-btlmap-fieldid-bridge.csv, 357 Felder, structural-candidate). Die Auswahl eines Feldes publiziert inFieldContext(observable Singleton) und 2 Consumer reagieren read-only: Map-Deep-Link (?map=map/<area>/<field>für FFXMapViewerWeb) + Encounter-Peek (liestbtl.binviaEncounterTable_File, Kandidaten-Area↔Map-Join). CSV via csproj<Content>in den Output kopiert. Offline; der Picker läuft ohne Projekt. Kein Writer, keine Probe. ### Validiert Screenshotwork/spira_forge_qa/field_hub_v01.png. ## [v2.1.1] - 2026-06-04 ### Validiert--player-rt0-Gate:ply_save.bin(3098) +ply_rom.bin(2161) -> No-Edit-RT0 byte-identisch. (Writer existierten bereits slot-only; jetzt gated.) ## [v2.1.0] - 2026-06-04 ### Hinzugefügtbtl.binbyte-für-byte und stempelt nur die editierbaren Felder neu (TabelleId/Unknown0C, GruppeBattlefield/Danger/TotalWeight, FormationId/Weight).--encounter-rt0-Gate im Editor. ### Validiert ## [v2.0.0] - 2026-06-04 > NEUE ÄRA — MAJOR. Der Editor hat von „Offline-Dateibearbeitung" zu BELEGTEM LIVE-RUNTIME-EDITING gewechselt: das Bearbeiten des AI-Bytecodes eines Monsters im RAM und das Sehen der Verhaltensänderung auf dem Bildschirm, ohne Crash, reversibel — das oberste Ziel #1 des Projekts, verwirklicht. MAJOR = eine neue Fähigkeitsklasse (kein Vertrags-, Save- und Build-Bruch — wir haben nur hinzugefügt und gehärtet).-beta, weil RT2/God-Mode noch nicht in gated UI produktisiert sind. Meilenstein der Claude Code / VSCode-Welle + der Vereinigung mit dem 2. Codex-Account. ### Höhepunkte ändert sich auf dem Bildschirm — Flammenpudding Feuga→Blitzga, kein Crash, reversibel. Kette:enemy-list(0xD34460) ->MemoryChr.Ptr_script_chunks(+0xF78) -> Live-AiFile === Diskm0NN.binbyte-identisch. globale Ability aus — das Monster muss sie nicht „besitzen". Beweis: ein Skoll spuckte Ifrits Inferno auf dem Bildschirm. Daten-Reboot (Todes-Flags + KO), alles viaMemoryChr+ Probe. ### Hinzugefügt (+delta) -> eine gültige größere AiFile (der Weg zu „ADD AI", über das byte-lokale Budget hinaus). Jump-Labels + inferierter Worker-Typ), Operand-Edit + Loose-File-Save.FFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper),FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN,CODEX_MAPVIEWER_WATCH_JARVIS,FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Spira Forge). ### Geändert / Validiert StatSheet/Loot + Header-Signature/Padding erhalten (das Padding überlappteAiFile[0..3]). ### Blockiert / Zurückgestellt (ehrlich) (Spiel-geschlossener Rebuild). Player gefunden:FFX_FmodMusic_PlayTrackByIndex(181 Tracks); der PS2 ist auf HD gestubbed. ### Aus Labs / Multi-Agent übernommen Vereinigung mit dem 2. Codex-Account (MapViewer / Modell-Textur-Spur): der Exporter gibt jetzt Material-Rollen- Signale aus (TextureSampler1/normalMap/reflection/water/PhyreWaterShader), externer Viewer-Vergleich lane (glTF-Sample-Viewer als Oracle; Lücke exporter-seitig belegt, nicht Shell), und der Spira Forge-Masterplan- Kickoff. Multi-Agent-Koordination protokolliert indocs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.md. ## [v1.7.0] - 2026-06-04 ### HinzugefügtAppendCode: hängt Instruktionen am Ende an + relokiert den Daten-Abschnitt.Rebuild: insert/remove/modify eine Instruktion ÜBERALL + relokiert AUTOMATISCH alle Jumps + Entrypoints (old→new-Linker-Map) + den Daten-Abschnitt. Orphan-Branch (entfernte Instruktion) -> ehrlicher Fehler. ### Validiert Workers lösen auf, Post-Insertion-Entrypoint relokiert0x2D1→0x2D4von selbst; Grow-Test (AppendCode) RT0. ## [v1.6.0] - 2026-06-04 ### Validiert StatSheet/Loot + Header-Signature/Paddingerhalten (das überlappteAiFile[0..3]). ## [v1.5.0] - 2026-06-04 ### Validiert / Blockiert Swap BLOCKED** (FMOD-API__thiscall, Probe cdecl-only). DocFFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper). ## [v1.4.0] - 2026-06-04 ### Validiert (live) Ability aus — das Monster muss sie nicht „besitzen". Beweis: ein Skoll spuckte Ifrits Inferno auf dem Bildschirm. ## [v1.3.1] - 2026-06-04 ### Behoben / Live validiert Flags). Auto- (Scan-Status) live umgeschaltet. ## [v1.3.0] - 2026-06-04 ### Validiert (live) (POINTER_BATTLE_ENEMY_LIST 0xD34460, stride0xF90) + Probe. ## [v1.2.0] - 2026-06-04 ### Hinzugefügt Jump-Labels) + Operand-Edit + Loose-File-Save. ## [v1.1.0] - 2026-06-04 ### Validiert (🏆 HEADLINE — oberstes Ziel #1) Verhalten ändert sich auf dem Bildschirm (Flammenpudding Feuga→Blitzga), kein Crash, reversibel. **Ein-Kette:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte-identical. Doc:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md. ## [v1.0.0] - 2026-06-01 Reifemeilenstein für den Editor als echte Lese-, Validierungs- und Wissens-Navigationsplattform, mit genugExtras-Produktfläche, um ein ehrliches1.0zu rechtfertigen, auch wenn Runtime-, AI- und Body-Playback-Bosse noch offen sind. ### HöhepunktePS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### HinzugefügtMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraphSignature Groupin der ShellTxcCltPairExplorer- kalte
fmt/sps2-Metadaten ### Geändert ### Validiert read-onlydo not promoteno runtime proofwo zutreffendpipeline/support onlywo zutreffend ### Anmerkungenmagic solvedAI solvedModelViewer playback solved- breite Writer-Autorisierung ## [v0.11.0-beta.2] - 2026-06-01 Echte Produktentwicklung für die
Extras-Linie inmain. ### Höhepunkte masterffx_ps2ps3dataPS2 KnowledgeTextures (TM2)BIN-FTC AtlasProject / Pipeline### HinzugefügtExtrasSourceResolverExtrasEvidenceBadgeModelExtrasProvenanceModelExtrasReadonlyBoundaryModelExtrasFileOpenServiceCdIndexExplorerProjectDescriptorViewerAbmapSupportGraphdocs/history/PT52_BIN_FTC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT53_BATTLE_MAGIC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT54_PROJECT_ABMAP_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT56_TEXTURE_PALETTE_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT57_PRESENTATION_CONTAINER_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT58_FFX_PS2_OWNERSHIP_AND_LINKAGE_GUIDE_2026-06-01.md### Geändert ### Validiert- kein Writer
- kein Repack
- keine finalen Decode-Claims
- kein Mischen von kalter Forschung mit Runtime-Beweis ### Anmerkungen
kernel -> mag_* -> bat_eff## [v0.10.0-beta.1] - 2026-05-31 Main-Branch-Konsolidierungs-Beta nach der ersten starken Welle kuratierter Workshop-Absorption. ### Höhepunkte ### HinzugefügtShop ExplorerFfxLib/ShopAssets/Shop- einen gegurardeten Writer für
item_shop.binundarms_shop.bin NameDescriptionTextPrefixTable_Filereader + no-edit guardfürimportant.binreader + no-edit guardfüra_ability.bin### Geändert ### Validiert ### Zurückgestellt ### Blockiert ## [v0.9.0-beta.1] - 2026-05-31 Erste Version, die ehrlich die tatsächliche Größe des Editors und des Ökosystems um ihn herum annimmt. ### Höhepunkte des Hauptbranches ### In Main vorhandene Produktionsfläche ### Aus Workshops übernommenTextLabTools;ProductionAuditTools;- konservatives Text-/Monster-Harness und -Release.
PlayerGrowthEditor;CtbBaseEditor;MixTableEditor;- die historische Linie, die später
KeyItemEditor. AutoAbilityEditor;- konservative Parser aus
AutoAbility_File.csundArms_Rate.cs. Shop Explorer;FfxLib/Shop;Assets/Shop;- geschützter Writer für
item_shop.binundarms_shop.bin. ### Governance und Versionierung ### Validiert ### Weiterhin blockiert ### Warum dies noch Beta ist ## Historische semantische Rekonstruktion Wichtiger redaktioneller Hinweis: ## [v0.8.0-beta.1] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem das Ökosystem bereits als großer modularer Editor mit mehreren gleichzeitig aktiven spezialisierten Fronts arbeitet. ### Hauptoberfläche in diesem Stadium ### Ökosystem-Druck ### Noch fehlend ## [v0.7.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem sich die Hauptlinie von "mehr Module" zu "mehr Beweis" verschiebt. ### Hinzugefügt ### Geändert ### Noch nicht sicher ## [v0.6.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem die Kernel-Linie und die konservative Härtung der Sekundärsysteme aufhören, ein Versprechen zu sein, und Teil eines ernsthaften Editors werden. ### Hinzugefügt ### Geändert ### Noch fehlend ## [v0.5.0] - historische Rekonstruktion (offizielle SemVer vor Git) Meilenstein der starkenKernelTablesLab-Welle. ### Hinzugefügt ### Geändert ### Noch fehlend ## [v0.4.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem das Projekt lernt, in Text mit echten Kriterien "ja" und "nein" zu sagen. ### Hinzugefügt ### Geändert proven reader;conservative writer;blocked; ### Fehlt noch ## [v0.3.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein, in dem der Editor aufhört, nur ein Datei-Browser zu sein, und beginnt, KI, Runtime und hochwertige Gameplay-Oberflächen zu berühren. ### Hinzugefügt ### Geändert ### Noch fehlend ## [v0.2.0] - historische Rekonstruktion (offizielles SemVer vor Git) Meilenstein der strukturellen Expansion des Editors in große sichtbare Systeme. ### Hinzugefügt ### Geändert ### Weiterhin fehlend ## [v0.1.0] - historische Rekonstruktion (offizielles SemVer vor Git) Ehrlicher Mindest-Meilenstein, bei dem bereits ein echter Editor existierte - weit über einem Wegwerf-Prototyp. ### Hinzugefügt ### Geändert ### Noch fehlend ## [baseline-2026-05-31] - 2026-05-31 Ehrlicher erster Import der Produktion in Git. ### Hinzugefügt ### Bewahrt ### Validierung ### Hinweise ## Workshop-Mini-Versionsverlauf Hinweis: ## [pt2-v0.3.0-superseded.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt3-v0.8.0-freeze.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt4-v0.5.0-hold.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt5-v0.9.0-final.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt6-v0.7.0-beta.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt7-v0.9.0-final.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt8-v0.7.0-freeze.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den HauptbranchShop Explorer;FfxLib/Shop;Assets/Shop;- Guardrails dokumentiert in
docs/history/PT8_SHOP_GUARDRAILS.md. ### Endstatus ## [pt9-v0.6.0-alpha.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt10-v0.2.0-final.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt11-v0.3.0-blocked.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt12-v0.3.0-package.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt13-v0.3.0-package.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt14-v0.2.0-architecture.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt15-v0.2.0-architecture.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt16-v0.2.0-architecture.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt17-v0.3.0-guardrail.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt18-v0.3.0-governance.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt19-v0.3.0-surface.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus ## [pt20-v0.2.0-strategy.1] - 2026-05-31 ### Mission ### Entwicklung ### Ergebnis für den Hauptbranch ### Endstatus