更新 2.199
2026/8/1
v2.199.0.0BETAMINOR
Seymour2026年8月1日
極光: 檢視器增強 (F1–F6) 由分析 noclip.website / 華氏 / Spira 修改器驅動
- F1 per-anchor 縮放/姿勢: 疊加層現在消耗
anchor.scale(實際 ATEL scaleOwnSize 0x7028 經由AuroraSceneRenderer.GetMonsterScale) × 全域倍率; per-monsterflipX; 滑桿重新命名為「Scale global」. - F2 真實地面:
getGroundY(向下網格射線投射, per-cell 快取); drag-to-place 偏愛網格命中; 平面後備在 ANCHOR 自身的 Y (不再是 y=0 — 經證實的 klyt00_00 Y=2.9 案例) + 誠實徽章;G鍵 = ground-snap (POST /drag). - F3 .ath 目錄:
FfxLib/Monster/MonsterAthAnimCatalog.cs(game-named 動畫循環; 來源: 華氏 .ath 表格 — m109/m117/m124 + m001 動作); 疊加層中的「🎬 Animação (.ath)」面板 (下拉式選單, 播放/停止/T-pose, 名稱↔片段權杖比對). - F4 遭遇區域 (誠實基礎設施):
BuildEncounterZones解析jppc/map/{area}/{mapKey}/bin/mapout.vpa並序列化zones+zonesNote; 疊加層繪製多邊形並提供切換開關。真相: MAP1 解碼器仍然確實 NOT 解碼語料庫 (NoZonesParsed) — 零假區域, 面板中的誠實備註 (文件FFX_MAPOUT_VPA_MAP1_BLOB_LAYOUT_NOTE_2026-08-01.md: 分派表有 2 個佈局 + 斑點不是 sentinel-terminated = 下一步 RE). - F5 資產:
THREE.Cache.enabled(在會話內無 re-download);fetchCached(快取 API, network-first 用於錨點); 「📦 N MB 已載入」計數器 (資源計時); 模型後備級聯_animated.gltf→.gltf→ 降級; GLB 轉換器 (在GltfContainerWriter中的 PhyreModelExportLab —glb子命令, 在真實地圖上約小 25%; 檢視器/編輯器偏好.glb). - F6 UI: 捷徑 P/V/S/F/T/B/G/1-9 (攝影機儲存狀態 Shift+N); Focar/Topo/Frente/Fit/Reset 按鈕; 錨點檢查器 (點擊 → 選取 → 可編輯 X/Y/Z + 透過 POST /drag 套用; 顯示 ATEL 縮放/flipX/降級).
- 閘道:
--filter AuroraOverlayEnrichment7/7 PASS; 完整套件 275/275 PASS; 建置 0 錯誤;node --checkOK. Docs: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. Status:Needs Testing(visual smoke in the viewer; in-game RT2 not promoted). ### PATCH
v2.198.4.2
v2.199.0.1BETAREVISION
Seymour2026年8月1日
完整 PPP 交接給 PPP 編輯器工作線
docs/reverse/PPP_EDITOR_HANDOFF_2026-08-01.md(新增,約 236 行): 合併 ALL PPP/Phyre/magic_.dll (HD) 的知識 — 解釋 PPP 是什麼 (587 個 magic_.dll;PE32 .text vtable + .data blob),已驗證的 16 位元組 C1 插槽 (handler_table_index 局部於 fp.h;argument_relative 在 0x7170F0 中驗證),3 個實體分發表 (0xC3A500/418 個pppSysProgTbl,0xC3E798/246,0xC86080/32;+4/+8/+0xC/+0x1C/+0x20/+0x24 字段;可重現提取器),U1 處理程式 10/10 (FFX_BoneAnim,16 位元組/8 位元組視窗,byte-identical 克隆羣組),繪製鏈 (BuildVfxTexture_TypeK → lppEnv 0xC3A4C4 → TextureSlotCache 0xCCCA64 → Phyre_Map_LowerBound),PppMem 62 個函式 (pppKeThRes32=0x736A20 已確認),C2 FULL 184 個家族 (27 個旋鈕 + 157;226/226 pytest),EgoVM/HostContextTable (512 個插槽 @ 0xC64CE8),Yonishi (84 個家族/51,378 個樣本),583/587 個 DLL 已反編譯 (1,907,920 行),T3/T4 證明 (在 Power Break 上 3/3 視覺驗證),F4 已驗證,catacombs,noclip/fahrenheit 交叉參考,編輯器黃金法則 (pppColor 最低優先順序;名稱 ≠ 真相;備份+SHA),缺少的內容 (C3/路徑 B,T1/T2 探針)。無行為變更 — 基準線未修改。 ### REVISION ### MINOR
v2.199.0.0
v2.199.0.2BETA
Seymour2026年8月1日
F1:ATEL 編解碼器 cross-validation × fahrenheit (編碼 + 操作碼表)
docs/reverse/FFX_FAHRENHEIT_ATEL_ENCODING_CROSSCHECK_2026-08-01.md(新): 編碼 CONFIRMED 在我們的FfxLib/Ai與 fahrenheit 之間為 1:1 (位元 7 = u16 運算元;低 7 位元 = 操作碼 0..0x7A;大小為 1/3B);我們使用的 19 個操作碼,經由他們的AtelOp列舉確認 (LAND 0x02, EQ 0x06, NE 0x07, ADD 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 (我們的防護分支),CALLPOPA 0xD8);comparison-name 分歧 re-documented (他們的 0x0A "GT" =A<=B在可執行檔的真實值);列出他們有而我們沒有的項目 (REQ 家族 0x36–0x53, PUSHN/PUSHT/PUSHVP/PUSHFIX 0xC1–0xC4, LABEL/TAG 0x9D/0x9E, 區域變數 POPI/POPF/PUSHI/PUSHF 0x59–0x74, CJMP/NCJMP 0xB1/0xB2);他們的編譯器狀態 (詞法分析器 + 語法分析器 + AST 完成,發射器 NOT 已實作 — 編譯器 round-trip 在他們那邊受阻;C# 建置,C++ 載入器需要此處沒有的 VC 工具集)。成品:work/fahrenheit_atel_opcodes.txt(123 個操作碼)。無行為變更 — 基準線未受觸動。 ### REVISION ### REVISION
v2.199.0.1
v2.199.1.0BETAPATCH
Seymour2026年8月1日
幻光球盤畫布:SUPERMD 清理(編碼、死印、Square 遺留、鉤子/編譯器文字、從語料庫 Open*、儲存時的 re-baseline)
- 編碼(§4.1):
SphereGridCanvas_Control.axaml在 pt-BR 中從頭重寫 — 402 個 CP1252-mojibake 字元 / 29 種類型無法恢復("Ícones", "Salvar cópia", "referência", "POSIÇÃO", "CONTEÚDO", "LINKS DESTE NÓ", "editá-lo", "≥320", "índice cru", "Remover nó", "nó #", "✕");code-behind 註解亂碼已修復;SphereGridBuilder_Control.axamlCONFIRMED 乾淨(未觸碰)。Post-fix 掃描:30 個 non-ASCII = 合法的 pt-BR 重音符號 + 符號(◎ ✕ ≥ ≤ —)。 - 已移除死印(§4.2):
PlaceStamp、StampShape、CurrentStamp、Mode.Stamp、SetStampDiamond/SetStampLine、ToolMode.StampDiamond/StampLine。 - 已移除 Square 遺留(§4.3):
SphereGridSquarePackageWriter.cs已刪除(SHA256 清單僅由已退役的 v5 鉤子使用);已移除儲存 Square/匯出 Square 按鈕 +ExportSquarePackage()/RetailBaseline/ResolveHookConfigDir/SquareModeSummary;SaveToProject現在儲存後 re-baselines(原為 SaveSquare-only)。 - New-theory 文字(§4.4/§4.7): 橫幅、驗證、SaveCopy、
SphereGridDeployPolicy、TopologySafetySummary 已更新 — 計數 ≤ 1024 需要 NO 鉤子(header-driven 引擎;結構 1024/1024/128;儲存 1280/1280);舊的 861/882 崩潰是鉤子 v5 / 異常幻光球盤,從未乾淨部署;"鉤子/編譯器" → "乾淨 RT2 測試(可丟棄儲存)"。 - 從語料庫 Open(§4.6):*
ResolveAbmapDir解析原始語料庫(FFX Extracted\...\abmap)FIRST(僅專案儲存時);當專案偏離語料庫時,新增警告"專案已修改此幻光球盤(≠ 原始)"。 - 簡化工具列(§4.5): "Square 模式 (dat0X + dat1X)" → "編輯拓撲 (計數)";RT2 核取方塊移至儲存旁;移除重複按鈕。
- 驗證: 發行版本 0 錯誤;SphereGrid 測試 2/2 PASS (
SphereGridAddNodeRepro);閘門--spheregrid-layout-rt0/--spheregrid-build-rt0/--spheregrid-edit-rt0PASS;基準 276/277(唯一失敗項 =MagicDllCorpusSmokeTests,MagicDll 工作線,超出範圍)。記錄修復: 在 SUPERMD 驗證中引用的 ".cs 亂碼 (687/693/694)" 是顯示異常 — 位元組是有效的 UTF-8(→=E2 86 92, Á=C3 81, 表情符號 F0 9F...);僅修復了文字語意。 ### REVISION
v2.199.0.2
v2.199.1.1BETAREVISION
Seymour2026年8月1日
Knowledge-Bases 庫存清單(針對 FFX.EXE 作業)
docs/ai/KNOWLEDGE_BASES_2026-08-01.md索引了 11 個基礎:5 個華氏儲存庫(main/excel/save-ui-rework + local-settings 搭配 ATEL 組合器 + managed-loader 搭配位址),Spira 修改器 0.73(已發現:完整 ATEL RE 工具 — 反編譯至 C# 於work/_spira_modifier_decomp/;AtelCallTargets 目錄 298 個條目 ID 95..28967;核心格式含偏移量:AttackData 92/96B(a_ability,SphereTypeForSphereGrid@93),MonsterStat 128B,EncounterTable 14B/條目(btl.bin),MonsterLoot/Treasure/WeaponName/PlayerSaveFile),Phyre_Engine(901 個標頭 + 23 個核心模組 — 針對 DB 的結構),PS3 SDK(3.40/3.70/4.00 + TrueBlueGaryOPA + SuperExtra)。- 位址慣例已證實: managed-loader 位址為 RVA →
VA = RVA + 0x400000(證明:ToBtlPadScrollWait載入器 0x498DB0 對比 Ghidra 0x898DB0;get_global_value在 DB 上)。 - DB 作業前的備份:
backups_ffxoficial\*.before_operacao_total_20260801_055545.i64。 ### PATCH
v2.199.1.0
v2.199.1.2BETAREVISION
Seymour2026年8月1日
FFX.EXE 操作:第一次重新命名波次已套用 (+2,674 正典 / +1,995 COPY) + Spira 修改器格式文件
docs/reverse/SPIRA_MODIFIER_FORMATS_2026-08-01.md: 從 Spira 修改器 0.73 反編譯中提取的格式 —AttackData(a_ability: 92/96 位元組, 25 個 StatusChance,SphereTypeForSphereGrid@93),MonsterStat(128 位元組),MonsterLoot(280 位元組),TreasureEntry(4 位元組 — 與我們的一致),EncounterTable(btl.bin, 14 位元組/條目), ATEL 目錄 (298 個條目 ID 95..28967 →atel_call_targets.json)。- 第一次重新命名波次:
fahrenheit-managed-loader位址(RVAs → VA+0x400000;已驗證的慣例)+call.g.cs(__addr_*):套用 2,674 個於正典 + 1,995 個於 COPY(透過 MCP),default-only(保留了 27,138/2,797 個 already-named)。腳本:work/_fahrenheit_probe/{extract_loader_renames.py, ida_apply_renames_from_json.py, apply_json_in_gui.py}。 ### REVISION
v2.199.1.1
v2.199.1.3BETAREVISION
Seymour2026年8月1日
sphere.bin `activates` 位順序 PROVEN (3 個來源) + 0xc0000374 崩潰網格取證 (02:38 網格為 CLEAN — SUPERMD §5 修正) + clean-RT2 預檢
docs/reverse/FFX_SPHERE_BIN_ACTIVATES_BIT_ORDER_PROVEN_2026-08-01.md(新的):Sphere.activates@+0x0A — 11 個類別已證實 (STRENGTH=bit0, DEFENSE=1, MAGIC=2, MAGIC_DEFENSE=3, AGILITY=4, LUCK=5, EVASION=6, ACCURACY=7, HP=8, MP=9, ABILITY=10; All=0x07FF) 透過 3 個獨立來源: fahrenheitsphere.cs列舉 (與我們SphereTargets中已有的順序相同); 解析的 jppc 語料庫 (3/3/3/1/1 位元組: entry0 0x0103=STR+DEF+HP=Power, entry1 0x020C=Mana, entry2 0x00D0=Speed, entry3 0x0400=Ability, entry4 0x0020=Luck, entry9 0x07FF=Friend, Key L1–L4 special 8..11, Return/Teleport/Clear/Master special 1..4); panel.bin 效果位元 (SphereGridNodeSphereRequirement: PowerSphere→0x0001=STR, ManaSphere→0x0004=MAG, SpeedSphere→0x0010=AGL, AbilitySphere→0x0400) — 執行時期執行activates & effect。SphereTargets註解已修正 (先前說「未經證實」,將 0x0103 歸因於 Ability)。記錄修正: v2.198.3.4「索引 = SphereGridNodeSphereRequirementKind」具有誤導性 (表格索引 ≠ 需求列舉)。docs/reverse/SPHERE_GRID_CRASH_GRID_FORENSICS_2026-08-01.md(新的): 已部署之dat02.dat的位元組解析 02:38:29 (98/861/882; node 860 = (129,-172) U3=0 Red=0x19 Cl=64 U6=170 = correct bucket; dat10 content 0x19 matches) — grid was CLEAN; SUPERMD §5 values (Cluster=851/Redundant=854/Unused3=855/Unknown6=0/content=0x07) came from a wrong-offset parse. The truly anomalous grids live in the June backups (repair-node860-meta17/06 U6=0;corrupt20/06 clusters=1). The 02:39/02:40 crash ran with hooks active (ffx-hooks+ffx-probe loaded) + clean grid → hypothesis: v5 hook (guard pad/canary); decisive test = RT2 with hooks OFF.- Clean-RT2 預檢已套用:
work/_sg_rt2_preflight/rt2_hooks_toggle.ps1 -Off(ffx-hooks.dll/ffx-probe.dll → .RT2OFF; 舊版 sidecars → .legado;ff10-file-loader.dll+dinput8.dll保留供覆蓋)。還原:-On或FFX-RESTORE.bat。 - 驗證: 發行版本 0 個錯誤;基準 283/283 PASS (MagicDllCorpusSmokeTests 失敗已消失 — MagicDll 工作線 fixed); offline_ci 唯一 FAIL =
BattleCompanionActivationLab(漂移哨兵mcyt00_21— 已註解 other-lane pending,超出範圍)。無產品行為變更 (文件 + 註解 + work/ 指令碼)。 ### REVISION
v2.199.1.2
v2.199.1.4BETA
Seymour2026年8月1日
F2–F5 華氏計畫:ATEL 資料匯入 + high-level 組譯器可行性
docs/reverse/PPP_FAHRENHEIT_ATEL_IMPORT_2026-08-01.md(F2+F3+F4): 華氏 call-target 表格已提取(11 個命名空間:VAs 0x850050 Common/0x842618 Battle/... + 計數 616/296/145/138...;處理常式結構從 IDENTICAL 對應到我們 EBP — cross-validation);129 個 FFX auto-abilities(0x8000+)+ 487 個 FFX-2 指令 ID(注意事項:FFX-2 ≠ FFX;0x3049 在那邊是 pcom_seed_cannon,而在我們的固定資料中則是 Firaga);REQ 方言已記錄(0x36–0x3B:REQ/REQSW/REQEW/PREQ/PREQSW/PREQEW + F/T/B/P 前綴 + SW/EW 後綴 — EVENT/字段家族,在戰鬥 AiFile 中未使用);AtelOp 列舉確認了我們的表格(POPXCJMP=0xD6/POPXNCJMP=0xD7/CALLPOPA=0xD8/PUSHII=0xAE)。產物:work/f2_fahrenheit_calltargets.json+work/f3_fahrenheit_ability_names.json。docs/reverse/PPP_ATEL_ASSEMBLER_F5_FEASIBILITY_2026-08-01.md(F5): high-level ATEL 組譯器可行性 — 3 個選項(參考華氏 LGPL vs 移植語法 vs 自訂語言);建議:移植語法(選項 B — 我們固定的操作碼表格,零依賴,範圍小);四批次路線圖(L1 詞法分析器/語法分析器 → L2 經由固定AiVarConditionBuilder的發射器 → L3 while/函式 → L4 UI 附三層預覽);風險(LGPL、semantic-bug 重複)。docs/reverse/PPP_EDITOR_HANDOFF_2026-08-01.md(從 PPP 編輯器工作線 +10 行 — 經驗性修正:4 個「損壞」的 DLL 可開啟解析;576/581 可編輯;鍵值為 GLOBAL host-table 索引 — 依賴執行時期探測)。無行為變更 — 基準 283/283 未更動。 ### REVISION ### REVISION
v2.199.1.3
v2.199.1.5BETAREVISION
Seymour2026年8月1日
Jarvis-WIRE 工作線 created (掛鉤專家, 工作線 2) + 惡魔行動: F8 選單 (UnX 0.9.1.9 + dxgi.dll SpecialK 0.8.36 分支) code-review 計畫 + 我們的掛鉤知識庫
docs/ai/agents/JARVIS-WIRE.md(新增): lane-2 掛鉤專家身分 (非 Jarvis-Hook): 領域、必讀資料、核心真理 (WireInstance 是 NOT 的 C++<->C# 模式 - MMF 是; CreateRemoteThread 已退役; 務必驗證呼叫慣例)、輸出格式、護欄 (未經明確指令不得寫入遊戲)。docs/reverse/HOOKS_WIRE_KNOWLEDGE_BASE_2026-08-01.md(新增): 掛鉤架構整合: 4 層 (dinput8 ffgriever 載入器 -> ff10-file-loader/ffx-probe/ffx-hooks -> 編輯器), 2 個 MMF 區塊 (FFXProbeBlock_v1 580B + FFXHooksBlock_v1 256B), InstallHooks 工廠表格含 20+ 個掛鉤 (MusicHook, NovaSuperDamage, RonsoMana, NulWard, GridTeach v4.5, KimahriLancetDualGrant, TrueNewNode, FullGridCompiler, ItemStackCap 99->255, DoubleTripleDrop, Element, AbilitySfx, ResolverLog, FieldScout/WireInstance, FieldProbe, BattleEnd, ArenaProgressSidecar, SinCurse, ArenaPlus*; PhaseTurnEdge 已停用; BootSkip WIRE-ME), F7 旗標系統 (env + .flag + config), 經驗教訓 (retn4 double-pop; NulWard x NovaClamp 衝突; TrueNewNode x FullGrid), 同級實驗室 (63 個 RuntimeTools 資料夾)。docs/reverse/F8_UNX_CODEREVIEW_PLAN_2026-08-01.md(新增): 惡魔行動分 5 階段 (F0 鑑識偵查 -> F1 含 PDB 的掛鉤地圖 -> F2 選單呼叫清單 item-by-item -> F3 11 個不一致類別 -> F4 read-only 動態驗證 -> F5 交付), 基礎 (二進位檔+PDB、真實 19/07 日誌、fahrenheit 5 個儲存庫、noclip、IDA MCP 13338), 從字串提取的選單樹 (Boost.FFX/SpeedHack.FFX/Fun.FFX PlayableSeymour/語言重新導向/Cheat Engine 搭配特徵掃描 + "mem b D2A8E2 2" 修補程式)。docs/reverse/F8_UNX_INCONSISTENCY_REGISTER_2026-08-01.md(新增): 即時登錄含範本 + 8 個種子: INC-001 19/07 05:54 啟動當機 (dxgi.log 在 D3D11 掛鉤/nvapi 後停止); INC-002 F8 DI8_GetDeviceState_Override 與我們的 GetDeviceState 掛鉤衝突 (相同目標); INC-003 D3D11/Present 與 Aurora 覆蓋層衝突; INC-004 無版本閘門的硬編碼作弊偏移; INC-005 遊戲目錄中的孤立 UnX.ini; INC-006 語言重新導向與 ff10-file-loader 衝突; INC-007 SuspendThread/Thread32 與 MH_ApplyQueued 衝突; INC-008 WININET auto-update。- 偵查:
work/f8_recon/(pe_scan.py, manifest.txt 搭配 SHA256 + PE 分析, unx_strings_ascii.txt 798 / utf16 253)。PE 發現: unx.dll 匯出SKPlugIn_Init(SpecialK 外掛), ImGui 選單, 匯入 keybd_event/SuspendThread/Thread32; dxgi.dll .SK_Hook/.tls/.rsrc 4.3MB 區段, WININET + d3dx9_43 + VCOMP140 匯入; 包含 PDB (dxgi.pdb 62MB, unx.pdb 6MB)。無行為變更 - 基準線未受影響。
v2.199.1.4