Actualización 2.199
1/8/2026
v2.199.0.0BETAMINOR
Seymour1 ago 2026
Aurora: enriquecimiento del visor (F1–F6) impulsado por el análisis del modificador noclip.website / fahrenheit / Spira
- F1 escala/pose por anclaje: la superposición ahora consume
anchor.scale(ATEL REAL scaleOwnSize 0x7028 a través deAuroraSceneRenderer.GetMonsterScale) × factor GLOBAL; por monstruoflipX; El control deslizante pasó a llamarse "Escala GLOBAL". - F2 terreno REAL:
getGroundY(raycast de malla descendente, caché por celda); arrastrar al lugar prefiere los golpes de malla; retroceso del avión en la propia Y del ANCHOR (ya no y=0 - caso probado klyt00_00 Y=2.9) + insignia honesta; TeclaG= ajuste de tierra (POST /arrastrar). - F3 catálogo .ath:
FfxLib/Monster/MonsterAthAnimCatalog.cs(ciclos de animación con nombre de juego; fuente: tablas fahrenheit .ath — movimientos m109/m117/m124 + m001); Panel "🎬 Animação (.ath)" en la superposición (menú desplegable, Reproducir/Detener/T-pose, nombre↔coincidencia de token de clip). - F4 zonas de encuentro (infraestructura honesta):
BuildEncounterZonesresuelvejppc/map/{area}/{mapKey}/bin/mapout.vpay serializazones+zonesNote; superposición dibuja polígonos con un interruptor. Verdad: el decodificador MAP1 todavía NO decodifica el corpus (NoZonesParsed): cero zonas falsas, nota honesta en el panel (docFFX_MAPOUT_VPA_MAP1_BLOB_LAYOUT_NOTE_2026-08-01.md: la tabla de despacho tiene 2 diseños + los blobs no están terminados en centinela = siguiente paso de RE). - Activos F5:
THREE.Cache.enabled(sin descarga de re dentro de la sesión);fetchCached(caché API, primero en la rojo para anclajes); Contador "📦 N MB cargados" (temporización de recursos); cascada de respaldo del modelo_animated.gltf→.gltf→ degradado; Convertidor GLB (GltfContainerWriteren PhyreModelExportLab — subcomandoglb, ~25% más pequeño en mapas reales; el visor/editor prefiere.glb). - F6 UI: atajos P/V/S/F/T/B/G/1-9 (estados guardados de la cámara Shift+N); Botones Focar/Topo/Frente/Ajuste/Restablecer; inspector de anclaje (haga clic → seleccione → X/Y/Z editable + Aplicar mediante POST /arrastrar; muestra la escala ATEL/flipX/degradado).
- Puertas:
--filter AuroraOverlayEnrichment7/7 PASS; conjunto completa 275/275 PASS; genera 0 errores;node --checkOK. Documentos:FFX_AURORA_VIEWER_ENRICHMENT_2026-08-01.md,FFX_ATH_ANIM_CATALOG_IMPORT_2026-08-01.md,FFX_MAPOUT_VPA_MAP1_BLOB_LAYOUT_NOTE_2026-08-01.md. Estado:Needs Testing(humo visual en el visor; RT2 en el juego no promocionado). ### PARCHE
v2.198.4.2
v2.199.0.1BETAREVISION
Seymour1 ago 2026
transferencia de PPP completa para el carril del editor de PPP
docs/reverse/PPP_EDITOR_HANDOFF_2026-08-01.md(nuevo, ~236 líneas): consolidación de TODOS los conocimientos de PPP/Phyre/magic_.dll (HD): qué es PPP (587 magic_.dll; PE32 .texto vtable + .datos blob), validado 16B Ranura C1 (handler_table_index local para fp.h; argument_relative probado en 0x7170F0), 3 tablas de despacho físico (0xC3A500/418pppSysProgTbl, 0xC3E798/246, 0xC86080/32; +4/+8/+0xC/+0x1C/+0x20/+0x24 campos; extractor reproducible), controladores U1 10/10 (FFX_BoneAnim, ventana 16B/8B, grupos de clones de bytes idénticos), Dibujar cadena (BuildVfxTexture_TypeK → lppEnv 0xC3A4C4 → TextureSlotCache 0xCCCA64 → Phyre_Map_LowerBound), PppMem 62 funciones (pppKeThRes32=0x736A20 confirmado), C2 COMPLETO 184 familias (27 botones + 157; 226/226 pytest), EgoVM/HostContextTable (512 ranuras @ 0xC64CE8), Yonishi (84 familias/51,378 muestras), 583/587 DLL descompiladas (1,907,920 líneas), Pruebas T3/T4 (3/3 visuales en Rompebrazo), F4 validado, catacumbas, referencias cruzadas noclip/fahrenheit, reglas de oro del editor (pppColor prioridad más baja; nombres ≠ verdad; copia de seguridad+SHA), lo que falta (C3/Ruta B, sonda T1/T2). sin cambios de comportamiento: la línea de base está intacta. ### REVISIÓN ### MENOR
v2.199.0.0
v2.199.0.2BETAREVISION
Seymour1 ago 2026
F1: validación cruzada de códec ATEL × fahrenheit (codificación + tabla de códigos de operación)
docs/reverse/FFX_FAHRENHEIT_ATEL_ENCODING_CROSSCHECK_2026-08-01.md(nuevo): codificación CONFIRMED 1:1 entre nuestrosFfxLib/Aiy fahrenheit (bit 7 = operando u16; 7 bits bajos = código de operación 0..0x7A; tamaño 1/3B); 19 códigos de operación que utilizamos confirmados por suAtelOpenum (LAND 0x02, EQ 0x06, NE 0x07, AGREGAR 0x14, SUB 0x15, MUL 0x17, DIV 0x16, MOD 0x18, POPI0 0x59, PUSHI0 0x67, PUSHV 0x9F, POPV 0xA0, PUSHII 0xAE, JMP 0xB0, CALL 0xB5, RET 0x3C, POPXCJMP 0xD6, POPXNCJMP 0xD7 (Nuestra rama de guardia), CALLPOPA 0xD8); comparison-nombre divergencia re-documented (su 0x0A "GT" =A<=Ben verdad ejecutable); inventario de lo que tienen y nosotros no (REQ familia 0x36–0x53, PUSHN/PUSHT/PUSHVP/PUSHFIX 0xC1–0xC4, LABEL/TAG 0x9D/0x9E, locales POPI/POPF/PUSHI/PUSHF 0x59–0x74, CJMP/NCJMP 0xB1/0xB2); su estado de compilador (lexer+parser+AST completo, emitter NO implementado - compilador ida y vuelta bloqueado de su lado; Compilaciones C# , los cargadores C++ necesitan el conjunto de herramientas VC que está ausente aquí). Artefacto:work/fahrenheit_atel_opcodes.txt(123 códigos de operación). sin cambios de comportamiento: la línea de base está intacta. ### REVISIÓN ### REVISIÓN
v2.199.0.1
v2.199.1.0BETAPATCH
Seymour1 ago 2026
Sphere Grid Canvas: limpieza de SUPERMD (codificación, Stamps muertos, legado de Square, textos de hook/compiler, Open* del corpus, nueva línea base en Save)
- Codificación (§4.1):
SphereGridCanvas_Control.axamlreescrito desde cero en pt-BR — 402 caracteres CP1252-mojibake / 29 tipos irrecuperables ("Ícones", "Guardar copia", "referência", "POSICIÓN", "CONTENIDO", "ENLACES DE ESTE NODO", "editarlo", "≥320", "índice cru", "Eliminar nodo", "nó #", "✕"); comentario de código subyacente mojibake arreglado;SphereGridBuilder_Control.axamlCONFIRMADO limpio (sin tocar). Escaneo posterior a la corrección: 30 no ASCII = acentos pt-BR legítimos + símbolos (◎ ✕ ≥ ≤ —). - Sellos muertos eliminados (§4.2):
PlaceStamp,StampShape,CurrentStamp,Mode.Stamp,SetStampDiamond/SetStampLine,ToolMode.StampDiamond/StampLine. - Se eliminó el legado de Square (§4.3):
SphereGridSquarePackageWriter.csse eliminó (el manifiesto SHA256 solo fue consumido por el gancho v5 retirado); Se eliminaron los botones Guardar cuadrado/Exportar cuadrado +ExportSquarePackage()/RetailBaseline/ResolveHookConfigDir/SquareModeSummary;SaveToProjectahora líneas base re después de guardar (era solo SaveSquare). - Textos de nueva teoría (§4.4/§4.7): Banner, Validar, SaveCopy,
SphereGridDeployPolicy, TopologySafetySummary actualizados: recuentos ≤ 1024 NO necesitan gancho (motor impulsado por cabezal; estructura 1024/1024/128; guardar 1280/1280); el antiguo bloqueo del 861/882 fue un gancho v5/rejilla anómala, nunca una implementación limpia; "gancho/compilador" → "prueba limpia RT2 (guardado desechable)". - Abrir desde el corpus (§4.6):*
ResolveAbmapDirresuelve el corpus básico (FFX Extracted\...\abmap) PRIMERO (proyecto solo al guardar); Nueva advertencia "el proyecto tiene esta cuadrícula modificada (≠ vainilla)" cuando el proyecto diverge del corpus. - Barra de herramientas simplificada (§4.5): "Modo cuadrado (dat0X + dat1X)" → "Editar topología (recuentos)"; La casilla de verificación RT2 se movió junto a Guardar; Se eliminaron los botones duplicados.
- Validación: Errores de versión 0; SphereGrid prueba 2/2 PASS (
SphereGridAddNodeRepro); puertas--spheregrid-layout-rt0/--spheregrid-build-rt0/--spheregrid-edit-rt0PASS; línea de base 276/277 (falla única =MagicDllCorpusSmokeTests, carril MagicDll, fuera de alcance). Corrección de registro: el ".cs mojibake (687/693/694)" citado en la verificación SUPERMD era un artefacto de visualización: los bytes son UTF-8 válidos (→=E2 86 92, Á=C3 81, emojis F0 9F...); sólo se corrigió la semántica del texto. ### REVISIÓN
v2.199.0.2
v2.199.1.1BETAREVISION
Seymour1 ago 2026
Inventario de bases de conocimiento para la operación FFX.EXE
docs/ai/KNOWLEDGE_BASES_2026-08-01.mdindexa las 11 bases: repositorios de 5 fahrenheit (main/excel/guardar-ui-revisión + configuración local con ensamblador ATEL + cargador administrado con direcciones), Spira Modificador 0.73 (descubierto: ATEL completo Herramienta RE: descompilada en C# enwork/_spira_modifier_decomp/; AtelCallTargets catálogo 298 ID de entradas 95..28967; formatos de kernel con compensaciones: AttackData 92/96B (a_ability, SphereTypeForSphereGrid@93), MonsterStat 128B, EncounterTable 14B/entrada (btl.bin), MonsterLoot/Tesoro/WeaponName/PlayerSaveFile), Phyre_Engine (901 encabezados + 23 módulos principales: estructuras para la base de datos), PS3 SDK (3.40/3.70/4.00 + TrueBlueGaryOPA + SuperExtra).- Convención de direcciones probada: las direcciones del cargador administrado son RVA →
VA = RVA + 0x400000(prueba: cargadorToBtlPadScrollWait0x498DB0 vs Ghidra 0x898DB0;get_global_valueen la base de datos). - Copias de seguridad de BD antes de la operación:
backups_ffxoficial\*.before_operacao_total_20260801_055545.i64. ### PARCHE
v2.199.1.0
v2.199.1.2BETAREVISION
Seymour1 ago 2026
FFX.EXE Operación: 1.ª ola de cambio de nombre aplicada (+2,674 canónicos / +1,995 COPIA) + Spira Modificador de formatos doc
docs/reverse/SPIRA_MODIFIER_FORMATS_2026-08-01.md: formatos extraídos de la descompilación del modificador Spira 0.73 —AttackData(a_ability: 92/96B, 25× StatusChance,SphereTypeForSphereGrid@93),MonsterStat(128B),MonsterLoot(280B),TreasureEntry(4B — coincide con el nuestro),EncounterTable(btl.bin, 14B/entrada), catálogo ATEL (298 entradas ID 95..28967 →atel_call_targets.json).- Primera oleada de cambio de nombre: Direcciones
fahrenheit-managed-loader(RVA → VA+0x400000; convención comprobada) +call.g.cs(__addr_*): 2674 aplicado en canónico + 1995 en COPIA (a través de MCP), solo predeterminado (27138/2797 ya nombrados preservados). Guiones:work/_fahrenheit_probe/{extract_loader_renames.py, ida_apply_renames_from_json.py, apply_json_in_gui.py}. ### REVISIÓN
v2.199.1.1
v2.199.1.3BETAREVISION
Seymour1 ago 2026
sphere.bin `activates` orden de bits PROBADO (3 fuentes) + análisis forense de cuadrícula de fallas 0xc0000374 (la cuadrícula de 02:38 estaba LIMPIA — corrección SUPERMD §5) + verificación previa de limpieza-RT2
docs/reverse/FFX_SPHERE_BIN_ACTIVATES_BIT_ORDER_PROVEN_2026-08-01.md(nuevo):Sphere.activates@+0x0A — 11 categorías probadas (FUERZA=bit0, DEFENSA=1, MAGIA=2, MAGIC_DEFENSE=3, AGILIDAD=4, SUERTE=5, EVASIÓN=6, PRECISIÓN=7, HP=8, MP=9, ABILITY=10; Todo=0x07FF) a través de 3 fuentes independientes: fahrenheitsphere.csenum (el mismo orden ya en nuestroSphereTargets); corpus jppc analizado (grupos de 3/3/3/1/1 bits: entry0 0x0103=STR+DEF+HP=Potencia, entry1 0x020C=Mente doble, entry2 0x00D0=Velocidad, entry3 0x0400=Habilidad, entry4 0x0020=Buena suerte, entry9 0x07FF=Amigo, Llave L1–L4 especial 8..11, Regreso/Teletransporte/Borrar/Maestro especial 1..4); Bits de efecto panel.bin (SphereGridNodeSphereRequirement: PowerSphere→0x0001=STR, ManaSphere→0x0004=MAG, SpeedSphere→0x0010=AGL, AbilitySphere→0x0400) — El tiempo de ejecución haceactivates & effect. Se corrigió el comentarioSphereTargets(decía "no probado", se atribuyó 0x0103 a Habilidad). Corrección de registro: v2.198.3.4 "índices = SphereGridNodeSphereRequirementKind" era engañoso (índice de tabla ≠ enumeración de requisitos).docs/reverse/SPHERE_GRID_CRASH_GRID_FORENSICS_2026-08-01.md(nuevo): análisis de bytes deldat02.datimplementado 02:38:29 (98/861/882; nodo 860 = (129,-172) U3=0 Rojo=0x19 Cl=64 U6=170 = depósito correcto; El contenido de dat10 coincide con 0x19): la cuadrícula estaba LIMPIA; Los valores de SUPERMD §5 (Clúster=851/Redundante=854/Unused3=855/Unknown6=0/contenido=0x07) provienen de un análisis de compensación incorrecta. Las redes verdaderamente anómalas viven en las copias de seguridad de junio (repair-node860-meta17/06 U6=0;corrupt20/06 clusters=1). El accidente de las 02:39/02:40 se ejecutó con ganchos activos (ganchos ffx+sonda ffx cargada) + rejilla limpia → hipótesis: gancho v5 (almohadilla protectora/canario); prueba decisiva = RT2 con ganchos APAGADOS.- Comprobación previa de Limpio-RT2 aplicada:
work/_sg_rt2_preflight/rt2_hooks_toggle.ps1 -Off(ffx-hooks.dll/ffx-probe.dll → .RT2OFF; archivos auxiliares heredados → .legado;ff10-file-loader.dll+dinput8.dllconservado para superposición). Restaurar:-OnoFFX-RESTORE.bat. - Validación: Errores de versión 0; línea base 283/283 PASS (fallo MagicDllCorpusSmokeTests desaparecido - carril MagicDll arreglado); offline_ci único FALLAR =
BattleCompanionActivationLab(centinela de derivamcyt00_21- pendiente de otro carril anotado, fuera de alcance). No hay cambios en el comportamiento del producto (documentos + comentario + trabajo/guiones). ### REVISIÓN
v2.199.1.2
v2.199.1.4BETAREVISION
Seymour1 ago 2026
F2–F5 del plan fahrenheit: importación de datos ATEL + viabilidad del ensamblador de alto nivel
docs/reverse/PPP_FAHRENHEIT_ATEL_IMPORT_2026-08-01.md(F2+F3+F4): tablas de destino de llamada fahrenheit extraídas (11 espacios de nombres: VAs 0x850050 Common/0x842618 Batalla/... + recuentos 616/296/145/138...; estructura del controlador IDÉNTICO a nuestro EBP: validación cruzada); 129 habilidades automáticas FFX (0x8000+) + 487 ID de comando FFX-2 (advertencia: FFX-2 ≠ FFX; 0x3049 = pcom_seed_cannon allí frente a Piro++ en nuestro dispositivo); Dialecto REQ documentado (0x36–0x3B: REQ/REQSW/REQEW/PREQ/PREQSW/PREQEW + prefijos F/T/B/P + sufijos SW/EW — EVENTO/familia de campo, no usado en batalla AiFile); La enumeración AtelOp confirma nuestra tabla (POPXCJMP=0xD6/POPXNCJMP=0xD7/CALLPOPA=0xD8/PUSHII=0xAE). Artefactos:work/f2_fahrenheit_calltargets.json+work/f3_fahrenheit_ability_names.json.docs/reverse/PPP_ATEL_ASSEMBLER_F5_FEASIBILITY_2026-08-01.md(F5): factibilidad del ensamblador ATEL de alto nivel: 3 opciones (referencia fahrenheit LGPL, adaptación de la sintaxis y lenguaje propio); recomendación: trasladar la sintaxis (Opción B: nuestra tabla de códigos de operación fija, dependencia cero, alcance pequeño); Hoja de ruta de 4 lotes (L1 lexer/analizador → L2 emisor a través deAiVarConditionBuilderfijo → L3 mientras/func → L4 UI con vista previa de 3 capas); riesgos (LGPL, repetición de errores semánticos).docs/reverse/PPP_EDITOR_HANDOFF_2026-08-01.md(+10 líneas desde la línea del editor PPP - correcciones empíricas: las 4 DLL "corruptas" se abren para su análisis; 576/581 editables; las claves son índices GLOBALES de la tabla de host - dependen de una sonda en tiempo de ejecución). sin cambios de comportamiento: línea de base 283/283 intacta. ### REVISIÓN ### REVISIÓN
v2.199.1.3
v2.199.1.5BETAREVISION
Seymour1 ago 2026
Línea Jarvis-WIRE creada (especialista en ganchos, línea 2) + Operación Demonio: Menú F8 (UnX 0.9.1.9 + dxgi.dll SpecialK 0.8.36 bifurcación) plan de revisión de código + nuestros ganchos base de conocimientos
docs/ai/agents/JARVIS-WIRE.md(nuevo): identidad del especialista en ganchos del carril 2 (no Jarvis-Hook): dominio, lectura requerida, verdades fundamentales (WireInstance NO es el patrón C++<->C#; los MMF lo son; CreateRemoteThread retirado; siempre verifique la convención de llamada), formato de salida, barreras de seguridad (nada escrito en el juego sin un orden explícito).docs/reverse/HOOKS_WIRE_KNOWLEDGE_BASE_2026-08-01.md(nuevo): consolidación de arquitectura de ganchos: 4 capas (dinput8 ffgriever cargador -> ff10-archivo-cargador/ffx-sonda/ffx-hooks -> editor), 2 bloques MMF (FFXProbeBlock_v1 580B + FFXHooksBlock_v1 256B), mesa de fábrica InstallHooks con más de 20 ganchos (MusicHook, NovaSuperDamage, RonsoMana, NulWard, GridTeach v4.5, KimahriLancetDualGrant, TrueNewNode, FullGridCompiler, ItemStackCap 99->255, DoubleTripleDrop, Elemento, AbilitySfx, ResolverLog, FieldScout/WireInstance, FieldProbe, BattleEnd, ArenaProgressSidecar, SinCurse, ArenaPlus*; PhaseTurnEdge deshabilitado; BootSkip WIRE-ME), sistema de banderas F7 (env + .bandera + config), lecciones (retn4 doble pop; conflictos NulWard x NovaClamp; TrueNewNode x FullGrid), laboratorios hermanos (63 carpetas RuntimeTools).docs/reverse/F8_UNX_CODEREVIEW_PLAN_2026-08-01.md(nuevo): Operación Demonio en 5 fases (F0 reconocimiento forense -> F1 mapa de gancho con PDB -> F2 menú de llamadas de inventario artículo por artículo -> F3 11 clases de inconsistencia -> F4 verificación dinámica de solo lectura -> Entrega F5), bases (binarios+PDB, registros reales 19/07, repositorios fahrenheit 5, noclip, IDA MCP 13338), árbol de menús extraído de cadenas (Boost.FFX/SpeedHack.FFX/Fun.FFX PlayableSeymour/Idioma redirecciones/Trampa Motor con sig escanear + parches "mem b D2A8E2 2").docs/reverse/F8_UNX_INCONSISTENCY_REGISTER_2026-08-01.md(nuevo): registro en vivo con plantilla + 8 semillas: INC-001 19/07 05:54 falla de arranque (dxgi.log se detiene después de los ganchos/nvapi de D3D11); INC-002 F8 DI8_GetDeviceState_Override x nuestro gancho GetDeviceState (mismo objetivo); INC-003 D3D11/Presente x superposición de Aurora; INC-004 compensaciones de trampas codificadas sin puerta de versión; INC-005 huérfano UnX.ini en el directorio del juego; INC-006 redirecciones de idioma x ff10-archivo-cargador; INC-007 SuspendThread/Thread32 x MH_ApplyQueued; INC-008 Actualización automática de WININET.- Recon:
work/f8_recon/(pe_scan.py, manifest.txt con análisis SHA256 + PE, unx_strings_ascii.txt 798 / utf16 253). Hallazgos de PE: unx.dll exportaSKPlugIn_Init(complemento SpecialK), menú ImGui, importa keybd_event/SuspendThread/Thread32; dxgi.dll .SK_Hook/.tls/.rsrc Secciones de 4,3 MB, importaciones WININET + d3dx9_43 + VCOMP140; PDB incluidos (dxgi.pdb 62 MB, unx.pdb 6 MB). sin cambios de comportamiento: la línea de base no se modifica.
v2.199.1.4