Mise à jour 2.222
02/08/2026
v2.222.0.0BETAMINOR
Seymour2 août 2026
VIEWERHUB F3.5 PARTIE 1 : mode édition dans Aurora via SIDECAR (déplacer des monstres dans la scène)
- Sidecar d'édition dans noclip (
src/FinalFantasyX/scenes.ts) : le battle-preview lit désormaisdata/FinalFantasyX/edits/<encId>.json(deltas par slot :{ "actors": { "<slot>": { "position": [dx,dy,dz], "heading": rad, "scale": mult } } }) et les applique danssetUpMonsters— position ajoutée, heading/scale multiplicatifs, par-dessus les positions vanilla de l'encounter (fetch avec try/catch : pas de sidecar = vanilla). SidecarEditsWriter(Modules/Common/ViewerHub/) : fusion idempotente par slot (culture invariante, champs optionnels, préserve les autres slots).- ViewerShell — panneau « Modo edição (sidecar) » (la desc
battle-previewa gagné l'outileditor) : Slot 0–7 + ΔX/ΔY/ΔZ + ΔHeading (rad) + ×Scale + « Aplicar edição ao battle » → écrit le JSON dans la racine noclip (NoclipLocator+TryResolveEncounterd'Aurora3DLauncher) ; rouvrir la bataille applique les deltas. - Porte : build 0 erreurs ; tests 4/4 PASS (
SidecarEditsWriterTests: create/merge/overwrite/null) ; typecheck noclip sans nouvelles erreurs (seulement les 2 iobuffer/tiff préexistants de node_modules) ;rsbuild buildbundle OK + déployé dans le serve-dir du hub (%TEMP%\ffx-studio-serve\noclip, jonction data/ préservée). - F3.5 en attente (suivant) : gizmo de drag sur canvas (clic-sélection → drag → écriture du sidecar), réinitialiser par slot, lecture des positions btl actuelles dans le panneau. ### MINOR
v2.221.0.0
v2.222.1.0BETAMINOR
Seymour2 août 2026
i18n : JA/KO/ZH traduits via l'API DeepL (96-97 %) + sélecteur de langue à 9 options
- Voie IFRT-2
- API DeepL (
work/_i18n_deepl_asia.py) : 2 206 clés × 3 langues traduites avec protection de tokens via balises XML (<ptkN/>+tag_handling=xml) — chemins/noms de fichiers/acronymes préservés octet pour octet (vérifié : 0 manquant dans les 3). Clés depuisffx-mod-website/.env.local(DEEPL_API_KEY_2/3 repli) ; limite de débit gratuite ~1 req/s. - Couverture finale : JA 96,4 % (2146), KO 96,8 % (2154), ZH 95,3 % (2122) — auparavant 0 % (staging seulement). Exemples : セッション制御 / 세션 제어 / 会话控件, 保存 / 저장 / 保存.
- Sélecteur à 9 options :
Strings.cs(NormalizeLanguage/CurrentLanguage/ApplyCulture+ ja-JP/ko-KR/zh-CN) +Main_Window.axaml/.cs(3 MenuItems + handlers Ja/Ko/Zh) + clésLangJapanese/Korean/Chineseauto-localisées (日本語/한국어/中文) dans les 9 resx. - Correctif de clés orphelines :
U_grupo_estrutura/U_grupo_ren'existaient que dans le neutre — propagées aux 8 satellites avec la bonne traduction (構造/구조/结构). - 17 littéraux bruts ViewerShell_Control.axaml migrés (fichier ViewerHub d'une autre voie) : panneau 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 boutons) → clés
U_*dans 9 resx + props. - Porte : build 0 erreurs ; suite 400/400 PASS ; 9/9 alignés (2212 clés). La banque de polices en jeu est toujours en attente (RT2) — c'est de l'UI d'éditeur uniquement ; le jeu nécessite la sonde.
v2.222.0.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n ### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n ### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n### RÉVISION
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py). `n### PATCH
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.1BETAREVISION
Lulu2 août 2026
KeThRes 37/37 résolus (BuildNodeChain NxM) + 28 champs de payload dans 6 familles U2/U3 (sous-agents re-keth/re-schema + IDA MCP)
- 35 familles pppKeThRes* avec handler_addr=0x0 résolues : wrappers PppMem_BuildNodeChain_NxM (KeThRes8=0x736D80 1x8 ; KeThRes255=0x7369C0 ; générique=0x764CA0). En-tête count u8+size u8+stride u16 ; stride=48*(size-1)+128.
- 28 champs nommés dans DrawMdl/DrawShape/KeMdlDtt/VertexAp/KeLnsClm/KeBornRnd3 (vraies décompiles). ABI : record runtime partagé +144 ressource, +160/+164/+168 transformée, +12 keyframe ; base via **(arg+12).
- 191 commentaires opcode->handler appliqués à la base canonique (scripts/ppp_apply_pending_ida_marks.py).
v2.222.1.0
v2.222.1.2BETAPATCH
Seymour2 août 2026
i18n : ES/FR/DE/IT complétées via DeepL (95-97 %) — réutilisation du pipeline DeepL asiatique
- Voie IFRT-2
work/_i18n_deepl_latins.py: traduit UNIQUEMENT les clés encore égales à l'EN (ES 388, FR 407, DE 504, IT 395) via DeepL avec protection de tokens (balises XML<ptkN/>+tag_handling=xml) — préservé les 441 traductions ES manuelles et celles déjà appliquées.- Couverture finale : ES 96,9 %, FR 96,5 %, DE 95,9 %, IT 96,6 % (était 82,7/82,0/77,6/82,3). Combiné avec JA 96,4 % / KO 96,8 % / ZH 95,3 % : 7 langues à 95 %+.
- Porte : build 0 erreurs ; suite 400/400 PASS ; 9/9 alignés (2212 clés) ; 0 fichier corrompu (les 8 ES « manquantes » sont des manuelles légitimes qui ne citent pas de noms de fichiers).
v2.222.1.1
v2.222.2.0BETAPATCH
Lulu2 août 2026
OBJECTIF 24H : Magic DLL Editor — 432 champs sémantiques, scan complet 583/583, fuzz RT0 de 500 éditions, pilule WRITER + filtre de noms de champs
- F1 : 83 familles avec champs sémantiques (432 champs) — 4 sous-agents ont décompilé U1/Rand/Draw/KeTh-Matrix ; auto-extracteur + fusion de noms HEAD ; 139 familles embarquées.
- F2 : 0117 résout 255/302 slots avec champs structurés (84 %) ; porte d'édition RT0 (pppScale.scale_x) identité d'octets ; fuzz multi-familles de 500 éditions (242 cibles/25 familles) honorant la garde de préfixe R6 et les familles sans-fenêtre.
- F5 : SCAN COMPLET 583/583 DLL (0 échecs), 434 502 slots nommés, 0 opcode hors field_map (221 familles) ; 453 RAW (0,1 %) ; runbook T4 avec champs nommés (vel_x, scale_x, flag_frame).
- F4 UI : pilule WRITER dans la barre d'outils (séparation lecture/écriture) + filtre de noms de champs (ex.
vel_x). - Portes : build Debug 0 erreurs ; suite MagicDll 74/74 PASS. Build Release bloqué par l'éditeur ouvert (PID 65912) — rebuild après fermeture.
v2.222.1.2