Atualização 2.222
02/08/2026
v2.222.0.0BETAMINOR
Seymour2 de ago. de 2026
VIEWERHUB F3.5 PART 1: modo de edição na Aurora via SIDECAR (movendo monstros na cena)
- Sidecar de edição no noclip (
src/FinalFantasyX/scenes.ts): o battle-preview agora lêdata/FinalFantasyX/edits/<encId>.json(deltas per-slot:{ "actors": { "<slot>": { "position": [dx,dy,dz], "heading": rad, "scale": mult } } }) e os aplica nosetUpMonsters— posição somada, heading/scale multiplicativos, por cima das posições vanilla do encontro (fetch com try/catch: sem sidecar = vanilla). SidecarEditsWriter(Modules/Common/ViewerHub/): merge per-slot idempotente (cultura invariante, campos opcionais, preserva outros slots).- ViewerShell — painel "Modo edição (sidecar)" (a desc
battle-previewganhou a tooleditor): Slot 0–7 + ΔX/ΔY/ΔZ + ΔHeading (rad) + ×Scale + "Aplicar edição ao battle" → escreve o JSON na raiz do noclip (NoclipLocator+TryResolveEncounterdo Aurora3DLauncher); reabrir a batalha aplica os deltas. - Gate: build 0 erros; testes 4/4 PASS (
SidecarEditsWriterTests: create/merge/overwrite/null); typecheck do noclip sem novos erros (só os 2 preexistente do node_modules iobuffer/tiff); bundlersbuild buildOK + deployado no hub serve-dir (%TEMP%\ffx-studio-serve\noclip, junction data/ preservada). - F3.5 pendente (próximo): gizmo de drag no canvas (click-select → drag → escrever sidecar), reset per-slot, ler as posições atuais do btl no painel. ### MINOR
v2.221.0.0
v2.222.1.0BETAMINOR
Seymour2 de ago. de 2026
i18n: JA/KO/ZH traduzidos via DeepL API (96-97%) + seletor de idioma com 9 opções
- Lane IFRT-2
- API do DeepL (
work/_i18n_deepl_asia.py): 2.206 chaves × 3 idiomas traduzidas com proteção de token via tags XML (<ptkN/>+tag_handling=xml) — paths/filenames/acrônimos preservados byte-for-byte (verificado: 0 faltando nos 3). Chaves doffx-mod-website/.env.local(fallback DEEPL_API_KEY_2/3); limite de rate grátis ~1 req/s. - Cobertura final: JA 96.4% (2146), KO 96.8% (2154), ZH 95.3% (2122) — antes 0% (só staging). Exemplos: セッション制御 / 세션 제어 / 会话控件, 保存 / 저장 / 保存.
- Seletor de 9 opções:
Strings.cs(NormalizeLanguage/CurrentLanguage/ApplyCulture+ ja-JP/ko-KR/zh-CN) +Main_Window.axaml/.cs(3 MenuItems + handlers Ja/Ko/Zh) + chaves self-localizedLangJapanese/Korean/Chinese(日本語/한êµì–´/䏿–‡) nos 9 resx. - Fix de chaves órfãs:
U_grupo_estrutura/U_grupo_reexistiam só no neutro — propagadas para os 8 satellites com tradução correta (構造/구조/结构). - 17 literais crus ViewerShell_Control.axaml migrados (arquivo ViewerHub de outra lane): painel Aurora (Spira Reforge Studio, Ferramentas (Aurora), Battle:, Actors, Override 0e/, Cenas FFX:, Modo edição, Deltas por slot, Slot:/ΔX/ΔY/ΔZ/ΔHeading/×Scale + 3 botões) → chaves
U_*nos 9 resx + props. - Gate: build 0 erros; suíte 400/400 PASS; 9/9 alinhados (2212 chaves). In-game font-bank ainda pendente (RT2) — isto é só do editor UI; o jogo precisa da probe.
v2.222.0.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 famílias pppKeThRes* com handler_addr=0x0 resolvidas: wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8; KeThRes255=0x7369C0; genérico=0x764CA0). Contagem de header u8+size u8+stride u16; stride=48*(size-1)+128.
- 28 campos nomeados em DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (decompiles reais). ABI: record de runtime compartilhado +144 resource, +160/+164/+168 transform, +12 keyframe; base via **(arg+12).
- 191 comentários opcode->handler aplicados ao DB canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n ### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n ### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×N) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain N×M) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n### REVISION
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 de ago. de 2026
KeThRes 37/37 resolvidos (BuildNodeChain NxM) + 28 campos de payload em 6 famílias U2/U3 (subagentes re-keth/re-schema + IDA MCP)
- 35 pppKeThRes* families com 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 em 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 comentários de opcode->handler aplicados ao banco de dados canônico (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.2BETAPATCH
Seymour2 de ago. de 2026
i18n: ES/FR/DE/IT completados via DeepL (95-97%) — reuso do pipeline asiático do DeepL
- Lane IFRT-2
work/_i18n_deepl_latins.py: traduziu as chaves que ainda eram idênticas a EN (ES 388, FR 407, DE 504, IT 395) via DeepL com proteção de token (tags XML<ptkN/>+tag_handling=xml) — preservou as 441 traduções ES manuais e as já aplicadas.- Cobertura final: ES 96.9%, FR 96.5%, DE 95.9%, IT 96.6% (era 82.7/82.0/77.6/82.3). Combinado com JA 96.4% / KO 96.8% / ZH 95.3%: 7 idiomas em 95%+.
- Gate: build 0 erros; suíte 400/400 PASS; 9/9 alinhados (2212 chaves); 0 arquivos corrompidos (os 8 ES "faltando" são manuais legítimos que não citam nomes de arquivo).
v2.222.1.1
v2.222.2.0BETAPATCH
Lulu2 de ago. de 2026
GOAL 24H: Magic DLL Editor — 432 campos semânticos, scan completo 583/583, fuzz de 500 edições RT0, pílula WRITER + filtro field-name
- F1: 83 famílias com campos semânticos (432 campos) — 4 subagentes descompilaram U1/Rand/Draw/KeTh-Matrix; merge auto-extractor + HEAD-name; 139 famílias embutidas.
- F2: 0117 resolve 255/302 slots com campos estruturados (84%); gate de edição RT0 (pppScale.scale_x) byte-identity; fuzz de 500 edições multi-family (242 alvos/25 famílias) honrando o guard de prefixo R6 e famílias no-window.
- F5: FULL SCAN 583/583 DLLs (0 falhas), 434.502 slots nomeados, 0 opcodes fora do field_map (221 famílias); 453 RAW (0.1%); runbook T4 com campos nomeados (vel_x, scale_x, flag_frame).
- F4 UI: pílula WRITER na toolbar (separação leitura/escrita) + filtro field-name (e.g.
vel_x). - Gates: build Debug 0 erros; suíte MagicDll 74/74 PASS. Build Release bloqueado pelo editor aberto (PID 65912) — rebuild após fechar.
v2.222.1.2