JARVIS-MAGIC
Update 2.189
7/10/2026
v2.189.0.0REVISIONJarvis-MAGIC-DLL / SOLJul 10, 2026
PPP C2 Wave 1 + SOL Audit + Handler Table Layout
- C2 Wave 1 (GLM-5.2): 193/193 unique handlers decompilados via IDA MCP na IDB canônica
ffxoficial_post_vtable_struct_20260710_110730.i64. 10 categorias identificadas (Nullsub, Euler Matrix, Rand/Pattern, Transform/Matrix, Menu2D/Projection, FieldMap/Scene, Draw/VFX, Push/Copy Node, Animation State, Misc).PPP_HANDLER_ENCODING_SPEC.mdescrito com calling convention, slot layout, node struct, 5 padrões de acesso.SOL_PACKAGE_V2.mdconsolidado para handoff. Fixtures de 22 DLLs com 6.650+ slots. Coverage report escrito. 68/68 testes mantidos. - SOL Audit (GPT-5.6): Auditoria adversarial do pacote V2 contra a IDB canônica. Handler table layout provado: entries de 40B (0x28) com
name_ptr@+0x00, mode pointers@+0x04/+0x08/+0x0C, padding@+0x10..+0x27.0x730050confirmado como interior deApplyTransformPattern_F(não entrypoint).0x75B320confirmado comoUpdateAnimationState(helper interno, sem xref da dispatch table).pppRandUpFVstring ptr confirmado em0xB50E0C. Interpretador0x7170F0decompilado: lê apenas+4(direct_handler) no caminho visível; cascade+8/+Cnão provado. - Pausa por evidência: C2/C3 bloqueadas até extrator reproduzível da dispatch table + evidência materializada por handler + semântica
+4/+8/+Cprovada.SOL_PACKAGE_V2.mdainda contém claim não materializado de "193/193 handlers decompilados" (decompilações não persistidas em arquivos individuais).HANDLER_TABLE_LAYOUT.mdeOPEN_QUESTIONS.mdcriados no working tree. - Shader lead (não bloqueante): 797 arquivos Phyre D3D11 em
work/vanilla_bins/ffx_data/gamedata/ps3data/shaders; lead secundário para correlação draw/material, não evidência direta de encoding PPP. - Status: C2/C3
bloqueadas por evidência incompleta. Layers A/B/C1 mantêm gates validados. ### Highlights
v2.189.0.0MINORJarvis-MAGIC-DLLJul 10, 2026
Magic DLL / PPP Assembler Lane: Layers A + B + C1 + Fase 2 + Deep Analysis
- Layer A — WD3 structural serializer (
wd3_writer.py): reconstrói o prefixo de 224 bytes (header, pointer table, gap, 5 stream headers) sem copiarraw_bytes. Preserva sentinelaend_offset=0, campos reservados e invariantetotal_size/count_entries. - Layer B — WD3 physical payload model (
payload_map.py+wd3_blob_writer.py): particiona o blob de 110.272 bytes em prefixo tipado (224B),post_prefix_gapopaco (5.296B) ebodyopaco (104.752B). 9 spans físicos canônicos com 1–5 owners lógicos. Round-trip integral sem template de.data. - Layer C1 — PPP relocatable slot codec (
layer_c_slot.py+layer_c_resource.py): separa WD3 do PPP resource blob, detecta roots, percorre sections/programs e reemite o slot on-disk de 16B. Steam 353/353 PASS (355 roots, 1.623 sections, 24.888 programs, 274.732 slots); fixtures 16/16 PASS (4.450 slots). - PPP opcode catalog: 274 opcodes catalogados, 222 dispatch entries, ~50 handlers decompilados.
- Fase 2 mutation experiments: texture path swap provado in-game; .data swap provado in-game; float4/BGRA individual patch provado que NÃO muda cor visível (5 tentativas).
- Deep analysis: Blizzara/Watera/Thunder analisados; shader system Family A mapeado (PPP→DXBC); per-target animation root cause encontrado; HOST_CONTEXT_MAP corrigido em 11 docs;
magic_0383reclassificado como falso positivo. - Evidência: 68/68 testes PASS; Layer A/B Steam 6/6 + fixtures 16/16; C1 Steam 353/353 + fixtures 16/16; zero diagnostics.
- Status: Layer A/B e C1
validadas; Layer C2+ (payloads, resize, efeito novo)research only.
v2.188.0.0
v2.189.0.0MINORJarvis-AI/REJul 10, 2026
UNI-003 Low HP Rush + Cross-Validation RE Complete + HP Gate Fix
- HP Gate Fix (NearDeath): Root cause definitivo — fields 0x0000/0x0002 são CTB Gauge/Turns, NÃO HP/maxHP. Corrigido para field 0x0119 (NearDeath boolean, lê
[edi+594h]maxHpStat vs[edi+5D0h]currentHp). RT2-proved in-game no Skoll m014: HP gate dispara corretamente abaixo de 50%. - UNI-003 "Low HP Rush": Implementado como preset bake one-click no editor. Quando HP < 50% (NearDeath), aplica Haste em si + Slow em alvo aleatório vivo da frontline via
findMatchingChr(FrontlineChars, isAlive, 0, Any), one-shot via var privada. Guard composto:var==0 && NearDeath(LAnd). RT2-proven pelo binário m014 modificado manualmente pelo usuário. - Novo record IR:
PerformCommandOnRandomFrontlineChrnoSinChainRecipe— modela alvo calculado em runtime viafindMatchingChr. - Planner generalizado:
SinDryRunPlanner.PlanGuardedagora aceita combos de ações (antes só 1);LowerLinearActionsuportaPerformCommandOnRandomFrontlineChr. - Cross-Validation RE lane completa: SUPERMD (2115 linhas, 150+ assumptions verificadas contra o binário). 87 confirmados, 20 bugs reais corrigidos, 120 novos function IDs catalogados. Write side do switch de 346 cases mapeado (0x7B4B80) — confirma 0x7018 = WriteChrProperty.
- Bugs críticos corrigidos: 0x7050→0x705A (ForcePerformCommand), 0xB6→0xD8 (CALLPOPA), UNI-007 70%→50% (NearDeath threshold), 0xFFF1 labels (AllAeons), 0x7078→0x706C (ReadMovePropertyForActor), sentinel labels (0xFFEC/0xFFEB/0xFFE9).
- Arquivos tocados:
SinChainRecipe.cs,SinPresetRecipeResolver.cs,SinDryRunPlanner.cs,MonsterAiEditor_DataModel.Sin.cs,SinScaleInject/Program.cs,SinPresetRecipeResolverTests.cs,AiChrPropertyNames.cs,AiScript_File.cs,AiTargetNames.cs,universal.csv,PORT_STATUS.md,SESSION_HANDOFF.md. - Build: 0 erros. Testes: 1/1 GREEN (SinPresetRecipeResolverTests). RT2: HP gate + PhaseRotation confirmados in-game no Skoll m014.
- Status:
Precisa Testar— falta wiring do botão UNI-003 na UI (.axaml.cs) e RT2 do botão one-click.
v2.188.0.0