JARVIS-ARENA
Actualización 2.128
16/6/2026
v2.128.0.0MINORJarvis-ARENA
Resolver de tokens personalizados Arena+ Multi Dark Aeon REDIRECT (Opción A del spike)
- (nueva capacidad de DLL: el spike de solo lectura ha incorporado la ruta de redireccionamiento descrita en la documentación
FFX_ARENA_PLUS_CUSTOM_TOKEN_RESOLVER_HOOK_SPIKE.md). El hookResolverLogHookAhora hay dos modos: (a) LOGGER — comportamiento anterior, predeterminado; (b) REDIRECT — activación voluntaria a través dearena_plus_custom_token_resolver.flag(env:FFXHOOKS_ENABLE_ARENA_PLUS_CUSTOM_TOKEN_RESOLVER). En el modo «redirect», ANTES de llamar al «trampoline» vanilla, el «shim» consulta una tablacustomToken -> aliasToken(rango obligatorio HIWORD0xA001..0xAFFF); si hay una coincidencia, el token se sustituye por el alias «vanilla», lo que hace que el resolutor devuelva unrowlegítimo. Downstream no lo distingue de un token «vanilla»; reversión = eliminar el indicador o la DLL. Nuevas API en el encabezadohooks/ResolverLogHook.h:SetCustomTokenRedirects(table, count)(cap. 32, rango válido),SetCustomTokenRedirectEnabled(bool),IsCustomTokenRedirectEnabled(),ResolverRedirectHitCount(). Nuevo sidecarmods/Spira Reforge/arena/spira-arena-custom-tokens.{json,schema.json}contiene 4 entradas (dúo0xA0010 046->0x00DC0046, trio0xA0020046->0x00DC0046, quartet0xA0030046->0x01AE0046, penta0xA0040046->0x01AE0046). Carregamento no boot viaArenaPlus_LoadCustomTokenRedirects()emdllmain.cpp— busca em$FFXHOOKS_ARENAPLUS_CUSTOM_TOKENS_PATH-><DllDir>/mods/Spira Reforge/arena/spira-arena-custom-tokens.json-><DllDir>/spira-arena-custom-tokens.json; falha em I/O ou parse mantem o hook em modo logger (zero regressao). Build PolyHook PASS 11/11 cpp. RT2 in-game Precisa Testar (espera ate o launcher gerar token custom; ainda nao foi conectado em UI). [anterior:v2.127.0.0]
v2.128.0.1REVISIONJarvis-MAGIC
Ronso Mana (6.ª pasada RE): TIEMPO DE EJECUCIÓN CERRADO — el `−1` El OD de Kimahri reduce la `WalkMenuBlobIndex(blob2,43)==0`; gauge/OD-ready DESCARTADOS definitivamente (registro RT2 del `hudSafe=24` prueba)
- (RE/doc + comentarios en la
.i64real; NINGÚN cambio de comportamiento, DLL sin modificar — la otra sala sigue utilizándola). He leído el registro RT2 delhudSafe=24(%TEMP%\ffx-hooks.log) que el propio desvíoB0-resolveya se capturaba — cierra la cadena causal del error n.º 1. Prueba:B0 resolve a1=2 a2=1 treeId=43 a4=1 ->-1(enringKind=1YringKind=12) conP0 dispatch charge=100 max=100 590=0x0D(OD-ready FORZADO: el hook ya establece los bits 0x590,79AF70devuelve 1,6C8, y pinamax:=charge) — y el OD siguió oculto. ⇒ OD-ready/charge==max NO es la puerta (concluye hudSafe 17–24). Además:blob2=0x1B5C8D70= puntero a HEAP VIVO (no elsystem_00(vacío del modo offline) → la puerta es el índice del blob, dato de tiempo de ejecución. BREAKTHROUGH estructural (aritmética de símbolos, sin tiempo de ejecución):dword_1134564[N] ≡ unk_C8F8D0[N+1217317]((0x1134564−0xC8F8D0)/4=1217317exacto) ⇒dword_1134564[0](ten en cuenta que elResolve(lee) Es el contador el que elPushMenuTreeEntry(797B80)aumenta, ydword_1134564[2*v8+1537]Es la entrada empujada → el Push alimenta exactamente el bucle de node-def delResolveMenuTreeNode(797D60);case 2 subtype=1→unk_112A994[8]=0x112A9B4=blob2. Enseguida el−1reduce aWalkMenuBlobIndex(blob2,43)==0⇒blob2[2+43]==0xFF(t reeId 43 no registrado) O43>=blob2[1](count≤43). Como kind=1 (sel=1) Y kind=12 (sel=12) AMBOS dieron −1, se trata de la PUERTA PRIMARIA (no del selector secundario).79BB70(BuildActorCommandMenu) descompilado y DESCARTADO como escritor de la puerta: solo monta la capa A del búfer circular (ringBase+1144*slot+catOffset, enrutamientobyte241→+120/2→+72/3→+168/4→+296/0xE→+232; encabezadodword28&0x1000→+40/&0x800→+56/si no→+0), no escribe el blob de resolución niactor+0xF7C. Falta una medición (blob2[1]count +blob2[2+43]idx) — He dejado el parche DIAG listo para usar (≤6 líneas, solo lectura) listo para pegarlo en el shimB0-resolveen el apartado 12.4 del documento, con los tres candidatos de fijación afinados (B = escribirblob2[2+43], C = redirección a la rutaa2=0como los Aeons, A = sintetizar el nodo), decididos por el volcado en 1 RT2. Comentarios.i64(REGLA DE ORO, salvo):0x797D60/0x797B80/0x797420/0x7985A0/0x112A9B4. Doc:docs/reverse/FFX_RONSO_MANA_COMMAND_RING_PIPELINE_RE_2026-06-16.md§12. [anterior:v2.128.0.0]