Actualización 2.223
2/8/2026
v2.223.0.0BETAMINOR
Seymour2 ago 2026
F7 KEYSTONE CONECTADO: menú nativo ahora APLICA palancas RAM (efecto inmediato en pantalla) + regla GANCHOS EN INGLÉS
- Cable Keystone:
NativeMenu_PumpHook(dllmain) ahora consume el resultado del menú nativo (g_ourClosed/g_ourResult/g_rowValue) y cierra el menú por sí solo; las filas interactivas F7 tienen un efecto REAL en el juego. F7_LeverApply(dllmain): palancas RAM inmediatas — Música (F7_MusicPreview— reproduce la pista AHORA, no persiste), Depuración Invencible (byte0xD2A8F8+1), Forzar Batalla (nuevoF7_ForceFieldBattle(field, group)— campo arbitrario del paso a paso, basado en marcas), AI Código de operación intercambiar (byte+0xF78del primer enemigo vivo a través deg_BattleEnemyList0xD37634) y Dificultad (palanca ligera: se aplica en el próximo inicio de batalla).F7_ForceFieldBattle(F7InLive.h/.cpp): la misma máquina basada en marcas queF7_ForceLastBattlecon el campo/grupo de palanca (sin dependencia de la última batalla capturada).- Solución de compilación:
NativeMenuShell.hahora es autónomo (#include <stdio.h>; el_snprintf_sdel encabezado requería la inclusión en la TU). - REGLA ADICIONAL (CLAUDE.md): ganchos/tiempo de ejecución C++: TODO el texto (etiquetas de menú, líneas de estado, registros, cadenas de exportación) en INGLÉS; Las cadenas PT restantes en
ArenaPlusComposePickse tradujeron. - Puerta: Errores de versión 0 en la versión; Implementación de Steam correcta (
deploy-arena-plus-compose.ps1). RT2 pendiente: F7 → seleccione una palanca → confirme el efecto inmediato en pantalla. ### PARCHE
v2.222.2.0
v2.223.1.0BETAPATCH
Seymour2 ago 2026
StudioWebServer: POST /api/edits (F3.5 gizmo infra) + TABLA DE DESPACHO PPP VERIFICADA EN LA BD CANÓNICA (RE)
- POST
/api/edits/<encId>enStudioWebServer(el servidor solo aceptó GET/HEAD): cuerpo{ slot, position?, heading?, scale? }→ fusionar a través deSidecarEditsWriteren<serveRoot>/data/FinalFantasyX/edits/<encId>.json(los datos/unión se escriben en la raíz REAL de noclip). Validaciones: decimal encId ≤10, slot 0-7, cuerpo ≤64KB, JSON válido. Base para el aparato de arrastre (F3.5 parte 2: noclip TS guarda mediante obtener POST; sin proceso externo, mismo origen). 4/4 pruebas nuevas (escritura+fusión, encId incorrecto, ranura incorrecta, cuerpo vacío). - RE — Tabla de envío de PPP verificada en la base de datos canónica en vivo (
ffxoficial.exe.i64, ida-pro-mcp): 4 tablas de entradas de bytes 0x28 probadas por bytes+cadenas+descompilaciones — variante0xC3A800(nombre@+0x20, fn@+0x04),0xC3BEC8/0xC3FC88/0xC863F0canónico (nombre@+0x00, fn@+0x0C); refinamiento frente al documento MAGIC del 2026-07-31:0xC3A500es el VECTOR DE PUNTERO DE NOMBRE ppp* (no la tabla principal: principal=0, terminador 0xFFFFFFFF); semántica REAL: +0x04=fnExtra, +0x0C=fnMain, +0x18=fnCleanup; 273 nombres de anclas; extractor independiente reproduciblescripts/ppp_dispatch_extractor.py(análisis PE propio, sin IDA/bloqueo) regenerascripts/ppp_dispatch_table.json(773 entradas, ranuras 0-2 validadas con IDA en cada tabla); cambios de nombre aplicados A LA BD CANÓNICA (PPP_Table_DrawKe_Variant/DrawKe/MatrixKeDMat/ZCrct). Doc:docs/reverse/PPP_DISPATCH_TABLE_RECONCILED_2026-08-02.md. C2 se puede reanudar con un nombre REAL → catálogo fn. - Puerta: ViewerHub pruebas 17/17 PASS; construir 0 errores.
- PENDIENTE: consumidor de la tabla (quién la escanea, sin referencias externas directas; candidato HostContextTable 0xC64CE8); artilugio de arrastre de lienzo (usa el POST anterior); propagar los cambios de nombre MAGIC-07-31 desde la copia a la base de datos canónica. ### MENOR
v2.223.0.0