Atualização 2.88
13/06/2026
v2.88.0BETAMINOR
Lulu
Magic DLLs (FFX): Value Workbench para edições candidatas de cor, velocidade, timer e vetor
Extras -> Magic DLLs (FFX) / Role Candidatesagora inclui umCandidate Value Workbencheditável que varre o DLL selecionado por valoresfloat32,vec3f/vec4fepush imm8/imm32, classifica candidatos como alpha/color/scale/speed/timer/flag/count e deixa o usuário entrar um novo valor decimal/float/comma-vector,Stage Patchou emitir um output DLL através deApply To Output. O blocoHost Context / InitMagicPRX Fieldsagora é assistido também: selecionar um campo de host, listar ocorrências u32 concretas no DLL e patchear uma referência de offset real. Guardrail: nomes permanecem candidatos e toda mudança ainda precisa de teste RT2 para confirmar semântica visual/gameplay. Editor atualizado para2.88.0.0. Validação:dotnet build FFXProjectEditor\FFXProjectEditor.csproj -c Release -o work\_build_magicdll_value_workbench_probe --no-restorecom 0 erros / 366 avisos de baseline
v2.87.1
v2.88.1BETAPATCH
Lulu
Magic Viewer Web: Candidato de Simulação de Runtime no palco central
- o viewer agora tem um modo
Simulateque substitui o comportamento de apresentação de textura por um loop contínuo guiado pela cadeia estrutural invertida (sub_800530/590/950,sub_80CD60,sub_817200,root+84/root+88, slots de overlay e payloads Phyre). Texturasps3data\magicsão tratadas como material visual, não como relógio/lista de frames; o HUD mostra fases, cursor de root, callbacks de code/data e aliases DLL repetidos. Guardrail: isto é umRuntime Simulation Candidate, menos falso queCycle Surface, mas ainda não é timing frame-accurate, um interpretador completo de opcodes ou correlação RT2 de callbacks/frames in-game. Editor atualizado para2.88.1.0. Validação:node --check RuntimeTools\FFXMagicViewerWeb\app.js; HTTPhttp://loopback:8766/index.html?magic=0688200; Chromium headless clicou emSimulateno desktop e em um mobile de 390px, sem erros de página/console, sem overflow horizontal no mobile, com capturas de tela emwork/magic_viewer_runtime_simulation_0688.pngework/magic_viewer_runtime_simulation_0688_mobile.png; builddotnet build FFXProjectEditor\FFXProjectEditor.csproj -c Release -o work\_build_magic_runtime_sim_2881 --no-restorecom 0 erros / 366 avisos de baseline
v2.88.0
v2.88.1.1BETAREVISION
Wakka
Arena+ pre-RT2: pacote de pesquisa versionado para uma nova opção NPC via DLL
- pesquisa persistida no repositório/RE e versionada no repositório, sem mudança de comportamento de produto. Versiona o conjunto de dossiês Monster Arena/Arena+: novas abas/criações, inserção DLL, flags de derrota de Dark Aeon/Penance, roteamento de opção NPC, scout final e o dossiê
nagi0700pre-RT2. Achado-chave: o dono de Monster Arena vive no eventonagi0700;w0E::f05constrói o menuNow what?através da stringCommon.displayFieldChoice [013B][4A],w0E::f07abre o seletor através deSgEvent.showModularMenu [401D], lança batalhas através deBattle.launchBattle [7002]e marca criações derrotadas0x0300..0x0322através deCommon.setMonsterArenaUnlocked [0210]. Editor atualizado para2.88.1.1. Guardrail:research-only/pre-RT2; não expandirArenaUnlocks[35+], não editarnagi0700.ebpe não injetar linha de menu vanilla antes de trace ao vivo. Validação:Test-Path+rgcontra dossiê, KB e âncoras de handoff; builddotnet build FFXProjectEditor\FFXProjectEditor.csproj -c Release -o work\_build_versioning_28811 --no-restorecom 0 erros / 366 avisos de baseline
v2.88.1
v2.88.1.2BETAREVISION
Lulu
Magic DLLs: pesquisa de padrões de similar-spell para caça mais segura de cor/velocidade
- pesquisa repo-persisted/RE persistida em repo, sem mudança de comportamento de produto. Cruza
AiCommandMetadataCatalog.Generated.cs(979linhas,689commoveAnim), overlay CSV (581linhas) e bináriosmagicFiles\FFX\magic_####.dllpara agrupar por portador visual real em vez de apenas pelo nome da magia. Principais achados:Power/hits/status vivem na linha do comando; os visuais vivem emmoveAnim; Fire/Thunder/Water básicos usam a família mais simplesnz9/u5, enquanto efeitos de Gelo/cura/Flare-like usam famílias PPP mais amplas; Cure/Potion e muitas Mixes reutilizam visuais;Deathprova que magias same-name de mesmo nome podem apontar para DLLs diferentes;Deathmagic_0098comum eMega Deathmagic_0351compartilham slots/tamanhos de overlay/textura, mas não hashes/payload; os clones0714/0715continuam sendo o caminho certo para Prism Flare sem tocar nos Fira/Thundara vanilla. Guardrail:pppColor/pppColMove/pppAccele, floats e pushes continuam candidatos até RT2/probe provar a semântica de cor, velocidade ou timing. Editor atualizado para2.88.1.2. Validação: âncoras de documento viaTest-Path/rg; buildwork\_build_magic_patterns_28812com 0 erros / 366 avisos de baseline
v2.88.1.1
v2.88.1.3BETAREVISION
Seymour
60fps / pesquisa de desbloqueio de FPS: separando geração de quadros, ritmo de quadros e engine-exact 60
- pesquisa repo-persisted/RE persistida em repo, sem mudança de comportamento de produto. O dossiê
docs/reverse/FFX_60FPS_UNLOCK_FEASIBILITY_RESEARCH_2026-06-13.mdconclui que não há evidência de um desbloqueio seguro de limite one-value 30→60; os caminhos honestos sãovisual 60por geração/interpolação externa de frames, melhor ritmo de quadros a 30fps, renderização a 60Hz sobre simulação a 30Hz com interpolação interna eengine-exact 60fpscompleto como lane moonshot/research-only. Evidências cruzadas: UnX implementa hacks de velocidade multiplicandoFFX_GameTick, não preservando tempo normal a 60fps; Special K/UnX avisa que limites externos de 30fps podem afetar carregamentos e que alguns menus rodam a 60; este repo já tem DINPUT8/main-thread, um hook de Present e MSEQframeRate=7680 (30fps*256), mas o timing de magic/battle/cutscene ainda não é frame-accurate. Próximo passo seguro: um read-onlyfps-scoutemFfxHooksDll/FfxDinput8Probeque mede Present, tick, cursor MSEQ e modo de jogo antes de qualquer patch. Editor atualizado para2.88.1.3. Validação: âncoras de documento viaTest-Path/rg; buildwork\_build_fps_research_28813com 0 erros / 366 avisos de baseline
v2.88.1.2
v2.88.1.4BETAREVISION
Seymour
Pesquisa profunda de gameplay-60 com cutscenes/FMV permitidas a permanecer em 30fps
- pesquisa repo-persisted/RE persistida em repo, sem mudança de comportamento de produto. O dossiê
docs/reverse/FFX_GAMEPLAY_60FPS_DEEP_RESEARCH_2026-06-13.mdresponde ao novo escopo do usuário: cutscenes podem ficar em 30fps, o alvo é a jogabilidade. Veredito: isso remove uma grande classe de sincronização audiovisual do primeiro marco, mas não transforma o problema em uma simples troca de limite; a jogabilidade ainda precisa de tratamento separado para campo, batalha, MSEQ, câmera, CTB, magic/VFX, menus, carregamentos e minigames. A pesquisa detalha quatro rotas:visual 60por geração/interpolação de frames, ritmo de quadros/VRR/Present doctor, renderização a 60Hz sobre simulação de 30Hz com interpolador interno eengine-exact 60fpscompleto como moonshot até o scouting provar clocks isoláveis. Próximo passo técnico seguro: um read-onlyfps-scoutcom CSV/resumo para cadência de Present, heartbeat/tick, modo de jogo, cursor MSEQ e compatibilidade UnX/SpecialK antes de qualquer patch. Editor atualizado para2.88.1.4. Validação: âncoras de documento viaTest-Path/rg; buildwork\_build_gameplay60_research_28814com 0 erros / 366 avisos de baseline
v2.88.1.3
v2.88.1.5BETAREVISION
Lulu
Magic DLLs: a descompilação Hex-Rays real revela TWO arquiteturas de efeito + campos de host comprovados
- repo-persisted RE (decompile + rename/comment nos
.i64), sem mudança de comportamento de produto. Superando a nomenclatura position-based (a heurísticaMagicDllSemanticAnalyzer), I realmente descompiloumagic_0084emagic_0148em IDA. Achado-chave: o corpus tem ≥2 arquiteturas distintas que a assinatura slot-kind NOT separa (ambas têmcodeem todo slot): família A "self-contained partícula" (magic_0084: pool local de 1023 partículas + anel de 256 pacotes, sem raizdat_et; o slot 1 é o tick de desenho; o slot 4 reescreve sua própria tabela de overlay para avançar a fase — também confirmado emmagic_0688) e família B "raiz/record-interpreter" (magic_0148: aloca a raiz de 1.024.000 bytes via host+3212, materializa via host+2860 e chama host+2864=sub_80CD60e host+2884=sub_80BEA0diretamente). Promoveu ~20 campos de host decandidatepara provados por chamada cross-DLL descompilada (host+672 actor, +884/+888 timer, +900/+904/+908 phase/start/progress, +2860 materialize, +2864 interpreter, +2872/+2876 Ego obj, +2908 make-packet) e encontrou o novo par host+3216 (free) de host+3212. Doc:docs/reverse/FFX_MAGIC_DLL_DECOMPILED_FAMILIES_2026-06-13.md. Editor atualizado para2.88.1.5. Guardrail: ainda byte-level RE, nomes descrevem papel (não símbolo original); a assinatura slot-kind é um proxy fraco — o classificador real de família é "o slot 0 chama host+2860?". Validação: 2.i64salvos emmagicFiles\FFXcom rename+comment; renames17/17(0084) e10/10(0148) OK
v2.88.1.4