Mise à jour 2.88
13/06/2026
v2.88.0BETAMINOR
Lulu
DLLs Magie (FFX) : Workbench de valeurs pour les modifications candidates de couleur, vitesse, minuteur et vecteur
- par rapport à
v2.87.1:Extras -> Magic DLLs (FFX) / Role Candidatesinclut désormais unCandidate Value Workbenchmodifiable qui analyse la DLL sélectionnée pour les valeursfloat32,vec3f/vec4fetpush imm8/imm32, classe les candidats comme alpha/couleur/échelle/vitesse/minuteur/drapeau/compte, et permet à l'utilisateur de saisir une nouvelle valeur décimale/float/vecteur-virgule,Stage Patch, ou d'émettre une DLL de sortie viaApply To Output. Le blocHost Context / InitMagicPRX Fieldsest désormais assisté lui aussi : sélectionnez un champ hôte, listez les occurrences u32 concrètes dans la DLL, et patchez une référence d'offset réel. Garde-fou : les noms restent des candidats et chaque changement nécessite toujours un test RT2 pour confirmer la sémantique visuelle/gameplay. Éditeur passé à2.88.0.0. Validation :dotnet build FFXProjectEditor\FFXProjectEditor.csproj -c Release -o work\_build_magicdll_value_workbench_probe --no-restoreavec 0 erreurs / 366 avertissements basiques
v2.87.1
v2.88.1BETAPATCH
Lulu
Magic Viewer Web : Candidat de Simulation Runtime dans la scène centrale
- par rapport à
v2.88.0: le visualiseur dispose désormais d'un modeSimulatequi remplace le comportement de diaporama de textures par une boucle continue guidée par la chaîne structurelle inversée (sub_800530/590/950,sub_80CD60,sub_817200,root+84/root+88, slots d'overlay et payloads Phyre). Les texturesps3data\magicsont traitées comme du matériel visuel, pas comme la liste d'horloge/images ; le HUD montre les phases, le curseur racine, les callbacks code/données et les alias DLL répétés. Garde-fou : c'est unRuntime Simulation Candidate, moins faux queCycle Surface, mais toujours pas un timing précis à la frame, un interpréteur d'opcodes complet, ni une corrélation RT2 des callbacks/images en jeu. Éditeur passé à2.88.1.0. Validation :node --check RuntimeTools\FFXMagicViewerWeb\app.js; HTTPhttp://loopback:8766/index.html?magic=0688200 ; Chromium headless a cliquéSimulatesur desktop et mobile 390px sans erreurs de page/console, sans débordement horizontal mobile, captures àwork/magic_viewer_runtime_simulation_0688.pngetwork/magic_viewer_runtime_simulation_0688_mobile.png; builddotnet build FFXProjectEditor\FFXProjectEditor.csproj -c Release -o work\_build_magic_runtime_sim_2881 --no-restoreavec 0 erreurs / 366 avertissements de base
v2.88.0
v2.88.1.1BETAREVISION
Wakka
Arena+ pré-RT2 : pack de recherche versionné pour une nouvelle option PNJ via DLL
- par rapport à
v2.88.1: recherche/RE persistée dans le dépôt, sans changement de comportement produit. Versionne le dossier Monster Arena/Arena+ : nouveaux onglets/créations, insertion DLL, drapeaux de défaite Dark Aeon/Der Richter, routage des options PNJ, scout final et le dossier pré-RT2nagi0700. Découverte clé : le propriétaire de la Monster Arena vit dans l'événementnagi0700;w0E::f05construit le menuNow what?viaCommon.displayFieldChoice [013B]chaîne[4A],w0E::f07ouvre le sélecteur viaSgEvent.showModularMenu [401D], lance les batailles viaBattle.launchBattle [7002], et marque les créations vaincues0x0300..0x0322viaCommon.setMonsterArenaUnlocked [0210]. Éditeur passé à2.88.1.1. Garde-fou :research-only/pre-RT2; ne pas étendreArenaUnlocks[35+], ne pas éditernagi0700.ebp, et ne pas injecter une ligne de menu vanilla avant le traçage en direct. Validation :Test-Path+rgcontre le dossier, la KB et les ancres de passation ; builddotnet build FFXProjectEditor\FFXProjectEditor.csproj -c Release -o work\_build_versioning_28811 --no-restoreavec 0 erreurs / 366 avertissements de base
v2.88.1
v2.88.1.2BETAREVISION
Lulu
Magic DLLs : recherche de motifs de sorts similaires pour une chasse couleur/vitesse plus sûre
- par rapport à
v2.88.1.1: recherche/RE persistée dans le dépôt, sans changement de comportement produit. CroiseAiCommandMetadataCatalog.Generated.cs(979lignes,689avecmoveAnim), le CSV d'overlay (581lignes) et les binairesmagicFiles\FFX\magic_####.dllpour grouper par vrai porteur visuel au lieu du seul nom de sort. Constats clés :Power/hits/status vivent dans la ligne de commande ; les visuels vivent dansmoveAnim; les Brasier/Foudre/H2O de base utilisent la famille plus simplenz9/u5, tandis que les effets type Ice/soins/Atomnium utilisent des familles PPP plus larges ; Soin/Potion et beaucoup de Mixes réutilisent des visuels ;Deathprouve que des sorts au même nom peuvent pointer vers des DLL différentes ; leDeathcommunmagic_0098etMega Deathmagic_0351partagent des slots/tailles d'overlay et de texture mais pas les hashs/payload ; les clones0714/0715restent le bon chemin pour Prism Atomnium sans toucher au Brasier +/Foudre + vanilla. Garde-fou :pppColor/pppColMove/pppAccele, les floats et les pushes restent des candidats jusqu'à ce que RT2/sonde prouve les sémantiques de couleur, vitesse ou timing. Éditeur bumpé à2.88.1.2. Validation : ancres de doc viaTest-Path/rg; buildwork\_build_magic_patterns_28812avec 0 erreurs / 366 avertissements de baseline
v2.88.1.1
v2.88.1.3BETAREVISION
Seymour
Recherche 60fps / déblocage FPS : séparer la génération de frames, le pacing de frames et le 60 exact moteur
- par rapport à
v2.88.1.2: recherche/RE persistée dans le dépôt, sans changement de comportement produit. Le dossierdocs/reverse/FFX_60FPS_UNLOCK_FEASIBILITY_RESEARCH_2026-06-13.mdconclut qu'il n'y a aucune preuve d'un déblocage sûr du cap 30→60 en une valeur ; les chemins honnêtes sont levisual 60via génération/interpolation de frames externe, un meilleur pacing de frames 30fps, un rendu 60Hz sur simulation 30Hz avec interpolation interne, et leengine-exact 60fpscomplet comme voie moonshot/recherche seule. Preuves croisées : UnX implémente les speed hacks en multipliantFFX_GameTick, pas en préservant le temps normal à 60fps ; Techniques K/UnX prévient que les caps 30fps externes peuvent affecter les chargements et que certains menus tournent à 60 ; ce dépôt a déjà DINPUT8/main-thread, un hook Present et le MSEQframeRate=7680 (30fps*256), mais le timing magie/bataille/cutscene n'est pas encore précis à la frame. Prochaine étape sûre : unfps-scouten lecture seule dansFfxHooksDll/FfxDinput8Probequi mesure Present, tick, curseur MSEQ et mode de jeu avant tout patch. Éditeur bumpé à2.88.1.3. Validation : ancres de doc viaTest-Path/rg; buildwork\_build_fps_research_28813avec 0 erreurs / 366 avertissements de baseline
v2.88.1.2
v2.88.1.4BETAREVISION
Seymour
Recherche profonde gameplay-60 avec cutscenes/FMV autorisées à rester en 30fps
- par rapport à
v2.88.1.3: recherche/RE persistée dans le dépôt, sans changement de comportement produit. Le dossierdocs/reverse/FFX_GAMEPLAY_60FPS_DEEP_RESEARCH_2026-06-13.mdrépond au nouveau périmètre de l'utilisateur : les cutscenes peuvent rester en 30fps, le gameplay est la cible. Verdict : cela retire une grande classe de sync audiovisuelle du premier jalon, mais ne transforme pas le problème en simple échange de cap ; le gameplay nécessite encore un traitement séparé pour le field, la bataille, MSEQ, la caméra, CTB, la magie/VFX, les menus, les chargements et les minijeux. La recherche détaille quatre routes :visual 60via génération/interpolation de frames, pacing de frames/VRR/Present doctor, rendu 60Hz sur simulation 30Hz avec un interpolateur interne, et leengine-exact 60fpscomplet comme moonshot jusqu'à ce que le scouting prouve des horloges isolables. Prochaine étape technique sûre : unfps-scouten lecture seule avec CSV/résumé pour la cadence Present, heartbeat/tick, mode de jeu, curseur MSEQ et compatibilité UnX/SpecialK avant tout patch. Éditeur bumpé à2.88.1.4. Validation : ancres de doc viaTest-Path/rg; buildwork\_build_gameplay60_research_28814avec 0 erreurs / 366 avertissements de baseline
v2.88.1.3
v2.88.1.5BETAREVISION
Lulu
Magic DLLs : la vraie décompilation Hex-Rays révèle DEUX architectures d'effets + des champs hôtes prouvés
- par rapport à
v2.88.1.4: RE persistée dans le dépôt (décompile + rename/comment dans les.i64), sans changement de comportement produit. Dépassant le nommage basé sur la position (l'heuristique duMagicDllSemanticAnalyzer), j'ai réellement décompilémagic_0084etmagic_0148dans IDA. Constat clé : le corpus a ≥2 architectures distinctes que la signature slot-kind ne sépare PAS (les deux ontcodedans chaque slot) : famille A « particule autonome » (magic_0084: pool local de 1023 particules + anneau de 256 paquets, pas de racinedat_et; le slot 1 est le tick de dessin ; le slot 4 réécrit sa propre table d'overlay pour avancer la phase — aussi confirmé dansmagic_0688) et famille B « interpréteur racine/enregistrement » (magic_0148: alloue la racine de 1 024 000 octets via host+3212, matérialise via host+2860, et appelle host+2864=sub_80CD60et host+2884=sub_80BEA0directement). ~20 champs hôtes promus decandidateà prouvés par appel cross-DLL décompilé (host+672 acteur, +884/+888 timer, +900/+904/+908 phase/start/progress, +2860 matérialise, +2864 interpréteur, +2872/+2876 objet Ego, +2908 make-packet) et trouvé la nouvelle paire host+3216 (free) de host+3212. Doc :docs/reverse/FFX_MAGIC_DLL_DECOMPILED_FAMILIES_2026-06-13.md. Éditeur bumpé à2.88.1.5. Garde-fou : toujours de la RE au niveau octet, les noms décrivent un rôle (pas le symbole d'origine) ; la signature slot-kind est un proxy faible — le vrai classifieur de famille est « le slot 0 appelle-t-il host+2860 ? ». Validation : 2.i64sauvegardés dansmagicFiles\FFXavec rename+comment ; renames17/17(0084) et10/10(0148) OK
v2.88.1.4