Update 2.222
8/2/2026
v2.222.0.0BETAMINOR
SeymourAug 2, 2026
VIEWERHUB F3.5 PART 1: edit mode in Aurora via SIDECAR (moving monsters in the scene)
- Edit sidecar in noclip (
src/FinalFantasyX/scenes.ts): the battle-preview now readsdata/FinalFantasyX/edits/<encId>.json(per-slot deltas:{ "actors": { "<slot>": { "position": [dx,dy,dz], "heading": rad, "scale": mult } } }) and applies them insetUpMonsters— position added, heading/scale multiplicative, on top of the vanilla encounter positions (fetch with try/catch: no sidecar = vanilla). SidecarEditsWriter(Modules/Common/ViewerHub/): idempotent per-slot merge (invariant culture, optional fields, preserves other slots).- ViewerShell — "Modo edição (sidecar)" panel (
battle-previewdesc gained theeditortool): Slot 0–7 + ΔX/ΔY/ΔZ + ΔHeading (rad) + ×Scale + "Aplicar edição ao battle" → writes the JSON into the noclip root (NoclipLocator+TryResolveEncounterfrom Aurora3DLauncher); reopening the battle applies the deltas. - Gate: build 0 errors; tests 4/4 PASS (
SidecarEditsWriterTests: create/merge/overwrite/null); noclip typecheck with no new errors (only the 2 pre-existing node_modules iobuffer/tiff);rsbuild buildbundle OK + deployed to the hub serve-dir (%TEMP%\ffx-studio-serve\noclip, data/ junction preserved). - F3.5 pending (next): canvas drag gizmo (click-select → drag → write sidecar), per-slot reset, reading the current btl positions into the panel. ### MINOR
v2.221.0.0
v2.222.1.0BETAMINOR
SeymourAug 2, 2026
i18n: JA/KO/ZH translated via DeepL API (96-97%) + language selector with 9 options
- Lane IFRT-2
- DeepL API (
work/_i18n_deepl_asia.py): 2,206 keys × 3 languages translated with token protection via XML tags (<ptkN/>+tag_handling=xml) — paths/filenames/acronyms preserved byte-for-byte (verified: 0 missing in all 3). Keys fromffx-mod-website/.env.local(DEEPL_API_KEY_2/3 fallback); free rate limit ~1 req/s. - Final coverage: JA 96.4% (2146), KO 96.8% (2154), ZH 95.3% (2122) — previously 0% (staging only). Examples: セッション制御 / 세션 제어 / 会话控件, 保存 / 저장 / 保存.
- 9-option selector:
Strings.cs(NormalizeLanguage/CurrentLanguage/ApplyCulture+ ja-JP/ko-KR/zh-CN) +Main_Window.axaml/.cs(3 MenuItems + Ja/Ko/Zh handlers) + self-localizedLangJapanese/Korean/Chinesekeys (日本語/한êµì–´/䏿–‡) in all 9 resx. - Orphan keys fix:
U_grupo_estrutura/U_grupo_reexisted only in the neutral — propagated to all 8 satellites with correct translation (構造/구조/结构). - Migrated 17 raw ViewerShell_Control.axaml literals (other lane's ViewerHub file): Aurora panel (Spira Reforge Studio, Ferramentas (Aurora), Battle:, Actors, Override 0e/, Cenas FFX:, Modo edição, Deltas por slot, Slot:/ΔX/ΔY/ΔZ/ΔHeading/×Scale + 3 buttons) →
U_*keys in 9 resx + props. - Gate: build 0 errors; suite 400/400 PASS; 9/9 aligned (2212 keys). In-game font-bank still pending (RT2) — this is editor UI only; the game needs the probe.
v2.222.0.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n ### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n ### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n### REVISION
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
LuluAug 2, 2026
KeThRes 37/37 resolved (BuildNodeChain NxM) + 28 payload fields in 6 U2/U3 families (subagents re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families with handler_addr=0x0 resolved: PppMem_BuildNodeChain_NxM wrappers (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; generic=0x764CA0). Header count u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 named fields in DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (real decompiles). ABI: shared runtime record +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 opcode->handler comments applied to the canonical DB (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.2BETAPATCH
SeymourAug 2, 2026
i18n: ES/FR/DE/IT completed via DeepL (95-97%) — reuse of the Asian DeepL pipeline
- Lane IFRT-2
work/_i18n_deepl_latins.py: translated ONLY keys still equal to EN (ES 388, FR 407, DE 504, IT 395) via DeepL with token protection (XML tags<ptkN/>+tag_handling=xml) — preserved the 441 manual ES translations and already-applied ones.- Final coverage: ES 96.9%, FR 96.5%, DE 95.9%, IT 96.6% (was 82.7/82.0/77.6/82.3). Combined with JA 96.4% / KO 96.8% / ZH 95.3%: 7 languages at 95%+.
- Gate: build 0 errors; suite 400/400 PASS; 9/9 aligned (2212 keys); 0 corrupted files (the 8 ES "missing" are legitimate manuals that don't cite filenames).
v2.222.1.1
v2.222.2.0BETAPATCH
LuluAug 2, 2026
GOAL 24H: Magic DLL Editor — 432 semantic fields, full scan 583/583, 500-edit fuzz RT0, WRITER pill + field-name filter
- F1: 83 families with semantic fields (432 fields) — 4 subagents decompiled U1/Rand/Draw/KeTh-Matrix; auto-extractor + HEAD-name merge; embedded 139 families.
- F2: 0117 resolves 255/302 slots with structured fields (84%); RT0 edit gate (pppScale.scale_x) byte-identity; 500-edit multi-family fuzz (242 targets/25 families) honoring R6 prefix guard and no-window families.
- F5: FULL SCAN 583/583 DLLs (0 failures), 434,502 named slots, 0 opcodes outside field_map (221 families); 453 RAW (0.1%); T4 runbook with named fields (vel_x, scale_x, flag_frame).
- F4 UI: WRITER pill in toolbar (read/write separation) + field-name filter (e.g.
vel_x). - Gates: Debug build 0 errors; MagicDll suite 74/74 PASS. Release build blocked by open editor (PID 65912) — rebuild after closing.
v2.222.1.2