From c2e2fbfbbc0f1782ececcbffc259efb0fbf5c7ed Mon Sep 17 00:00:00 2001 From: salh Date: Mon, 15 Jun 2026 16:03:43 +0300 Subject: [PATCH] Add 60fps cutscene clamp for in-engine cinematics Suspend the FPS unlock while a demo-manager Exec (DD sub_82184460 / EM sub_821856F8) ticks, so the frame-locked IngameCinematics Sequencer plays at native ~30fps instead of double speed. Adds ac6_cutscene_clamp CVar (default on). --- CMakePresets.json | 23 ++ ac6recomp_config.toml | 30 +++ default.xex.i64 | Bin 74573023 -> 75121887 bytes docs/ac6_asset_extraction_walkthrough.txt | 60 +++-- docs/ac6_asset_pipeline.md | 18 +- .../win-amd64-relwithdebinfo/ac6recomp.toml | 20 +- src/ac6_native_graphics.cpp | 5 + src/ac6_native_graphics.h | 2 + src/ac6_native_graphics_overlay.cpp | 7 +- src/ac6_texture_overrides.h | 6 +- src/ac6recomp_app.h | 31 +++ src/main.cpp | 18 ++ src/render_hooks.cpp | 46 +++- src/render_hooks.h | 10 + .../pipeline/shader/spirv_translator.h | 7 +- .../rex/graphics/vulkan/command_processor.h | 8 +- thirdparty/rexglue-sdk/src/graphics/flags.cpp | 2 + .../pipeline/shader/dxbc_translator_fetch.cpp | 3 - .../pipeline/shader/spirv_translator.cpp | 18 +- .../pipeline/shader/spirv_translator_rb.cpp | 106 +++++--- .../src/graphics/vulkan/command_processor.cpp | 52 ++-- .../rexglue-sdk/src/native/ui/CMakeLists.txt | 1 + tools/export_ac6_ntxr.py | 72 +++++- tools/extract_ac6_runtime_fhm.py | 234 ++++++++++-------- tools/parse_ac6_swg.py | 5 +- tools/run_ac6_asset_pipeline.py | 57 ++++- tools/unpack_ac6_fhm.py | 70 ++---- 27 files changed, 620 insertions(+), 291 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index cdbea71e..f0173934 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -12,6 +12,7 @@ "CMAKE_CXX_COMPILER": "clang++", "CMAKE_C_FLAGS": "-march=x86-64-v3 -w", "CMAKE_CXX_FLAGS": "-march=x86-64-v3 -w", + "PYTHON_EXECUTABLE": "python", "REXSDK_DIR": "${sourceDir}/thirdparty/rexglue-sdk" }, "condition": { @@ -68,6 +69,26 @@ "inherits": "windows-base", "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, + { + "name": "win-amd64-vulkan-relwithdebinfo", + "displayName": "Windows AMD64 Vulkan RelWithDebInfo", + "inherits": "windows-base", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "REXGLUE_USE_D3D12": "ON", + "REXGLUE_USE_VULKAN": "ON" + } + }, + { + "name": "win-amd64-vulkan-only-relwithdebinfo", + "displayName": "Windows AMD64 Vulkan-Only RelWithDebInfo", + "inherits": "windows-base", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo", + "REXGLUE_USE_D3D12": "OFF", + "REXGLUE_USE_VULKAN": "ON" + } + }, { "name": "linux-amd64-relwithdebinfo", "displayName": "Linux AMD64 RelWithDebInfo", @@ -79,6 +100,8 @@ { "name": "win-amd64-debug", "configurePreset": "win-amd64-debug" }, { "name": "win-amd64-release", "configurePreset": "win-amd64-release" }, { "name": "win-amd64-relwithdebinfo", "configurePreset": "win-amd64-relwithdebinfo" }, + { "name": "win-amd64-vulkan-relwithdebinfo", "configurePreset": "win-amd64-vulkan-relwithdebinfo" }, + { "name": "win-amd64-vulkan-only-relwithdebinfo", "configurePreset": "win-amd64-vulkan-only-relwithdebinfo" }, { "name": "linux-amd64-debug", "configurePreset": "linux-amd64-debug" }, { "name": "linux-amd64-release", "configurePreset": "linux-amd64-release" }, { "name": "linux-amd64-relwithdebinfo", "configurePreset": "linux-amd64-relwithdebinfo" } diff --git a/ac6recomp_config.toml b/ac6recomp_config.toml index 5aeba91a..f1757327 100644 --- a/ac6recomp_config.toml +++ b/ac6recomp_config.toml @@ -10610,6 +10610,36 @@ name = "ac6PresentIntervalHook" registers = ["r10"] jump_address_on_true = 0x821EFF74 +# Cutscene clamp signal. +# +# sub_82184460 is CAce6DemoManager::Exec (the per-frame update of the in-engine +# cinematics system, NU::FW::IngameCinematics). It runs once per game frame ONLY +# while a cutscene is playing (the demo task is scheduled when a cutscene starts +# and removed when it ends), and drives the Sequencer that advances the cut +# timeline (sub_821848A0 -> off_823F9B28 vtable[101] step / [102] is-done). +# +# Firing this hook stamps a "cinematic ticked this frame" timestamp; the FPS +# unlock hooks (present-interval / delta-divisor / flip) suspend themselves while +# that stamp is fresh, so cutscenes render at the game's native ~30fps cadence +# and don't run at double speed. Gated at runtime by the ac6_cutscene_clamp CVar. +[[midasm_hook]] +address = 0x82184460 +name = "ac6CinematicTickHook" +registers = ["r3"] + +# Cutscene clamp signal (EM variant). +# +# sub_821856F8 is CX360DemoManagerEM::Exec - the per-frame update of the "Event +# Movie" in-engine cinematics manager (the DD manager above drives a different +# demo path; the in-mission story cutscenes go through EM). Same shape as the DD +# Exec: state 0 -> load (sub_821857B0), state 1 -> cinematic update sub_82186080 +# (accumulate delta -> step Sequencer off_823F9B28). Runs once per frame only +# while an EM cutscene is scheduled. Same clamp signal as the DD hook. +[[midasm_hook]] +address = 0x821856F8 +name = "ac6CinematicTickHook" +registers = ["r3"] + # AC6 PAC stream-worker dispatch probe. # # rex_sub_82343E18 is the PAC streamer's queue pump. At 0x82343E78 it issues a diff --git a/default.xex.i64 b/default.xex.i64 index 8547992ecdec57a83ff1681f2c519327e0963712..73d79269b31804ed9744327beebdbe23d1c35f64 100644 GIT binary patch delta 430760 zcma&O2_RHo*f4(X%wRAW`@Zj4q7aoV*~^yFB1xr4M2lTxDP)NjMy04Em4pf{vX!Ki zC6V2rqHINE{hxd2w|(#XegCQR+~+>$+3z{eJ@?KWU9VrscAXxOO_Cvm^_`V_O_k;X z07zjFoZU?UGFd=Q-H1mHRE1ccdK;}C{G4jdMZ z^|Nebq0bp}vC?jrxZ*_k!2oG24poX2raKe;CWkpf>PF(pZW?5Ly%^2th%30ww*&{A%(yy z7Nms-KT#q=w|Izu+!`y!2m}o4hVBtGsD!@^szS+s8#G)}X^3kv{HIC_q>}JQB@NeQ z_n%M+c1z-RC{%(Sz(aM1p)#RR-T$(z_J3IRSrYZZE&E_l;!mhB(txGT0K78*cZ&vt zMWKfM@1e&0BUJS=80lXs@!X~^=}g6Srv5Y3jDLrUM_Md|Y5#pu?=djilE0YG;#Ktl z6qJ4@PK?BbG4o(#D#pf*QE=tmOaL%(a`8~P7t==s1OkILTLJsR0Mt&T{wI$_>Y{H% zDpC#)Fpoqfm`7$jk3=QRincUnG^qcHi>R?As{z%+6Daa`B8j?7ow|6Z?mvPi8vY}X z|8npjgNJDGS4L?I49)+hl(=n4`!-zrwts5h{g0IXOFJIE`+viCU((~g7`{6SKMaP? zg2E4j!wA3raLTNN!{uL>l^C-m8-x20gF%shgrBt3nS^&H{nNqJ|3BepP_REEn4h7& z`@g31uu|r?pD-yBc8mVD#Yl+8*C=q)js(Fd4z}T73J1F($O1U#j$>pT^T9DHjs@VD z5RQf6m=uo1;FuDQCE=I`j-^r{rb~T&0-%fv z5;=vrSgGVilCum>Vq&vgJatuAJhj55F^qp1e#*hNVe!;UeX-YMk(qVHVy|gP$b#Rl zkPv7=UI);i1Q(n2#*h$2NO0Y>C}M4m%aAaS9ZTmni|5<-;OCGZ`YTT+VbVcM=N60o z;wP5Qk%J`6HSEli0^}ky<`s5*i2$8sAu(e#*RWii!op?^{bVBJEKhI(2b(qYl!e5C zxrH?>%Gf|J7yJ%E*IA(E=|wIZMMi7o>q zK$jQ%ykJ6vumx#j!?4dw2B7Ce0t=!={1JxE6A3(!W?~pNi1R@UCLy#CS;S~!7_n=K z2xE|ij6{GDm=@oQ!QXo;Q{IkPzHW(Uw6e1@WTm6_<_OalTK}K#ROIP0(2Lvb|Y(_FCYVe zA2C4o`BPLHFPe-lio`66nD8a3n*0%BZyN;`pb;JjP=;VaF>Cz(pbi)}^4|$yaJE3F zaAVnclMW#n%QN^gFnE%Yp2Xjb2|45e4hCNt0E^26d7QVJ1jaH5a`O1Pg|AKw(?g|l zDKs!?Fj1?YpHJs{`VkYR@#ERdz>pe#@>m!f$*l2Orx37Q z1�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%0Dw|s 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�?Ic2NoYomc14IG_}4Tb3vC<- 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 diff --git a/docs/ac6_asset_extraction_walkthrough.txt b/docs/ac6_asset_extraction_walkthrough.txt index 6ac405a2..f0ce68de 100644 --- a/docs/ac6_asset_extraction_walkthrough.txt +++ b/docs/ac6_asset_extraction_walkthrough.txt @@ -5,11 +5,12 @@ AC6 Asset Extraction Walkthrough Goal: go from a fresh clone of this repository to decoded AC6 asset files (textures, FHM containers, SWG metadata) on disk. -The recompiled binary patches the guest decompressor at runtime via a midasm -hook (see docs/ac6_extraction_roadmap.md). When the env var -AC6_DUMP_PAC_DECODED=1 is set, every PAC entry the game touches is written -to disk in already-decoded form. The asset pipeline then turns those raw -buffers into typed FHM children, NTXR textures, etc. +The PAC archives can be decoded fully offline. The extractor reads DATA.TBL, +pulls each DATA00/01.PAC entry, applies the AC6 mode-1 descramble + raw DEFLATE +path, and then turns the decoded buffers into typed FHM children, NTXR textures, +audio banks, SWG metadata, etc. Runtime dumps are still useful for assets the +game synthesizes or touches only through live workflows, but they are no longer +required for normal PAC extraction. -------------------------------------------------------------------------------- @@ -62,7 +63,7 @@ has nothing to capture. -------------------------------------------------------------------------------- -3. Run the game with PAC dumping enabled +3. Optional: run the game with PAC dumping enabled -------------------------------------------------------------------------------- Use the helper launcher from PowerShell at the repo root: @@ -83,7 +84,7 @@ Optional switches (only set these when you need them): Adds PPC back-chain stack=[...] traces on each PAC NtReadFile call. Useful for debugging the stream worker; not needed for routine runs. -Play long enough for the streamer to load the assets you care about. As a +This is optional. Play long enough for the streamer to load the assets you care about. As a rough guide: - Title screen + intro: enough for the boot/menu PACs. - One mission start: enough for that mission's PAC entries. @@ -94,7 +95,7 @@ When you are done, close the game window normally. -------------------------------------------------------------------------------- -4. Verify the decoded dumps +4. Optional: verify runtime decoded dumps -------------------------------------------------------------------------------- The dumper writes to (relative to the repo root): @@ -120,42 +121,52 @@ The first 4 bytes of any mode-1 dump should be 70,72,77,32 (ASCII "FHM "). 5. Run the asset extraction pipeline -------------------------------------------------------------------------------- -From the repo root, with the dumps in place: +From the repo root: python tools\run_ac6_asset_pipeline.py The driver runs four stages in order: - 1. extract_ac6_pac.py - Pulls the raw 126 entries directly out of DATA00/01.PAC offline. - Outputs to out/ac6_pac_extracted_raw/. + 1. extract_ac6_pac.py --decompress + Pulls all entries directly out of DATA00/01.PAC offline and decodes + mode-1 compressed entries. Outputs to out/ac6_pac_extracted_raw/. 2. extract_ac6_runtime_fhm.py - Walks every entry_*_mode*.bin in out/ac6_pac_runtime_dump/ and + Walks every decoded PAC blob in out/ac6_pac_extracted_raw/files/ and descends into FHM containers, writing typed children to out/ac6_runtime_fhm_typed/. - 3. parse_ac6_swg.py + 3. extract_ac6_mdlp_parts.py + Splits embedded MDLP NDXR mesh chunks into named part folders and writes + manifests with face counts, bounds, UV/color/normal counts, material + texture hashes, primitive format histograms, primary-assembly grouping, + and LOD duplicate classification. + + 4. parse_ac6_swg.py Parses the UI sprite/widget metadata (.swg children) into out/ac6_runtime_swg_parsed/. - 4. export_ac6_ntxr.py + 5. export_ac6_ntxr.py Converts NTXR texture entries into DDS/TGA in out/ac6_runtime_ntxr_exported/. -Override any output path with --raw-out, --typed-out, --swg-out, --ntxr-out. -Add --skip-pac-extract if you only want to re-process the runtime dumps. +Override any output path with --raw-out, --typed-out, --mdlp-out, --swg-out, +--ntxr-out. Add --skip-pac-extract if you only want to re-process existing +decoded PAC files. Add --include-runtime-dumps if you also want to merge entry_* +dumps from a live capture session. -------------------------------------------------------------------------------- 6. Where the output lives -------------------------------------------------------------------------------- - out/ac6_pac_runtime_dump/ Raw decoded buffers, one file per entry. - out/ac6_pac_extracted_raw/ 126 raw (mode-0) entries pulled offline. + out/ac6_pac_runtime_dump/ Optional runtime decoded buffers. + out/ac6_pac_extracted_raw/ Offline raw/decompressed PAC entries. out/ac6_runtime_fhm_typed/ FHM children classified by magic (NTXR textures, BFX/BSN audio banks, MDLP/NSXR models, SWG UI, etc.). + out/ac6_mdlp_parts/ MDLP packages copied with unique names, + split NDXR mesh parts, and mesh manifests. out/ac6_runtime_swg_parsed/ JSON metadata for UI sprites. out/ac6_runtime_ntxr_exported/ DDS/TGA files (one per texture entry). @@ -165,6 +176,9 @@ Add --skip-pac-extract if you only want to re-process the runtime dumps. -------------------------------------------------------------------------------- * "no entry_*_mode1_*.bin files appeared" + Runtime dumps are optional for the offline pipeline. This only matters if + you explicitly ran with --include-runtime-dumps or are debugging live + streamer behavior. - The game did not stream any compressed entries during the session. Boot further or load a mission and try again. - AC6_DUMP_PAC_DECODED was not set. Always launch via the helper script, @@ -190,8 +204,10 @@ Add --skip-pac-extract if you only want to re-process the runtime dumps. regardless of log level. * "extract_ac6_runtime_fhm.py reports 0 containers" - - The dump dir is empty or the files are still .compressed.bin. - Re-run with the hook fix above. + - Confirm extract_ac6_pac.py was run with --decompress and produced + out/ac6_pac_extracted_raw/files/DATA0x/compressed/*.decompressed.bin. + - If you are using --include-runtime-dumps, the dump dir may be empty or + still contain .compressed.bin files. Re-run with the hook fix above. * "log files rotate and the early dumper lines are gone" - At trace-level logging the rotating buffer fills in seconds. Do not @@ -209,7 +225,7 @@ Add --skip-pac-extract if you only want to re-process the runtime dumps. 8. Quick reference: env vars -------------------------------------------------------------------------------- - AC6_DUMP_PAC_DECODED=1 Required. Enables the dumper sink. + AC6_DUMP_PAC_DECODED=1 Optional. Enables the runtime dumper sink. AC6_TRACE_PAC_WORK_ITEMS=1 Optional. Lifts [fs] log category to info, enables L1/L2 streamer-worker probes. AC6_TRACE_PAC_STACKS=1 Optional. PPC back-chain on PAC NtReadFile. diff --git a/docs/ac6_asset_pipeline.md b/docs/ac6_asset_pipeline.md index a3133e7a..284dd5e9 100644 --- a/docs/ac6_asset_pipeline.md +++ b/docs/ac6_asset_pipeline.md @@ -5,7 +5,7 @@ This pipeline extracts and converts the AC6 assets we currently understand. It automates these stages: 1. `DATA.TBL` + `DATA00.PAC` / `DATA01.PAC` index extraction -2. Runtime PAC decode dump parsing +2. Offline mode-1 PAC decompression 3. Recursive `FHM` extraction 4. `SWG` UI metadata parsing 5. `NTXR` texture export @@ -45,7 +45,7 @@ extraction; it remains useful only for assets synthesized at runtime. - The game assets exist at: - `C:\ext\New folder\AC6_recomp\out\build\win-amd64-relwithdebinfo\assets` -- If you want runtime-decoded content included, you must already have: +- Optional: if you want runtime-synthesized content included, you must already have: - `C:\ext\New folder\AC6_recomp\out\ac6_pac_runtime_dump` To collect runtime dumps in future runs: @@ -74,8 +74,7 @@ python .\tools\run_ac6_asset_pipeline.py This uses the default paths: - Asset root: `out\build\win-amd64-relwithdebinfo\assets` -- Raw PAC output: `out\ac6_pac_extracted_raw` -- Runtime dump input: `out\ac6_pac_runtime_dump` +- Raw/decompressed PAC output: `out\ac6_pac_extracted_raw` - Typed FHM output: `out\ac6_runtime_fhm_typed` - SWG output: `out\ac6_runtime_swg_parsed` - Texture output: `out\ac6_runtime_ntxr_exported` @@ -83,7 +82,7 @@ This uses the default paths: The wrapper prints a final JSON summary with the current corpus totals, including: - PAC entries extracted -- runtime `FHM` container count +- offline `FHM` container count - parsed `SWG` files - exported/skipped `NTXR` textures @@ -95,17 +94,16 @@ Use a custom asset root: python .\tools\run_ac6_asset_pipeline.py --asset-root 'C:\path\to\assets' ``` -Skip PAC re-extraction and only process existing dumps: +Skip PAC re-extraction and process the existing offline decoded files: ```powershell python .\tools\run_ac6_asset_pipeline.py --skip-pac-extract ``` -Recommended workflow after a new play session: +Include optional runtime dumps in addition to the offline decoded PAC corpus: ```powershell -powershell -ExecutionPolicy Bypass -File .\tools\launch_ac6_with_pac_dump.ps1 -python .\tools\run_ac6_asset_pipeline.py --skip-pac-extract +python .\tools\run_ac6_asset_pipeline.py --include-runtime-dumps ``` Extract only PAC entries marked raw: @@ -118,7 +116,7 @@ python .\tools\run_ac6_asset_pipeline.py --raw-only - Raw PAC extraction: - `C:\ext\New folder\AC6_recomp\out\ac6_pac_extracted_raw` -- Parsed runtime FHM corpus: +- Parsed FHM corpus: - `C:\ext\New folder\AC6_recomp\out\ac6_runtime_fhm_typed` - Parsed SWG metadata: - `C:\ext\New folder\AC6_recomp\out\ac6_runtime_swg_parsed` diff --git a/out/build/win-amd64-relwithdebinfo/ac6recomp.toml b/out/build/win-amd64-relwithdebinfo/ac6recomp.toml index 6db32e01..72f12399 100644 --- a/out/build/win-amd64-relwithdebinfo/ac6recomp.toml +++ b/out/build/win-amd64-relwithdebinfo/ac6recomp.toml @@ -1,17 +1,15 @@ # Auto-generated cvar configuration -ac6_render_capture = false -ac6_unlock_fps = false -ac6_native_graphics_require_capture = false -vsync = true -guest_vblank_sync_to_refresh = true -host_present_from_non_ui_thread = false -d3d12_allow_variable_refresh_rate_and_tearing = false log_level = "debug" log_file = "ac6recomp.log" +direct_host_resolve = false +vfetch_index_rounding_bias = true +guest_vblank_sync_to_refresh = true +window_width = 1920 +window_height = 1080 video_mode_width = 1920 video_mode_height = 1080 resolution = "1080p" -direct_host_resolve = false -window_width = 1920 -window_height = 1080 -vfetch_index_rounding_bias = true \ No newline at end of file +d3d12_allow_variable_refresh_rate_and_tearing = false +host_present_from_non_ui_thread = false +ac6_performance_mode = false +ac6_unlock_fps = true diff --git a/src/ac6_native_graphics.cpp b/src/ac6_native_graphics.cpp index a995f7cb..cd624b98 100644 --- a/src/ac6_native_graphics.cpp +++ b/src/ac6_native_graphics.cpp @@ -25,6 +25,7 @@ REXCVAR_DEFINE_BOOL(ac6_force_safe_draw_resolution_scale, true, "AC6/NativeGraph "Force AC6 hybrid backend fixes mode to use 1x draw resolution scaling until the scaled path is fixed"); REXCVAR_DEFINE_BOOL(ac6_force_safe_direct_host_resolve, true, "AC6/NativeGraphics", "Force AC6 hybrid backend fixes mode to keep direct_host_resolve disabled until the AC6 crash is fixed"); +REXCVAR_DECLARE(std::string, ac6_graphics_backend); namespace ac6::graphics { namespace { @@ -69,6 +70,9 @@ void SyncRuntimeFlags() { g_runtime_status.authoritative_renderer_active = g_runtime_status.enabled && g_runtime_status.mode != GraphicsRuntimeMode::kDisabled; + if (g_runtime_status.authoritative_renderer_name.empty()) { + g_runtime_status.authoritative_renderer_name = REXCVAR_GET(ac6_graphics_backend); + } } } // namespace @@ -140,6 +144,7 @@ void OnFrameBoundary(rex::memory::Memory* memory) { auto* kernel_state = ts->context()->kernel_state; if (auto* concrete_graphics = dynamic_cast(kernel_state->graphics_system())) { + g_runtime_status.authoritative_renderer_name = concrete_graphics->name(); concrete_graphics->GetLastSwapSubmission(&swap_submission, &swap_sequence); guest_vblank_interval_ticks = concrete_graphics->guest_vblank_interval_ticks(); last_guest_vblank_tick = concrete_graphics->last_vblank_interrupt_guest_tick(); diff --git a/src/ac6_native_graphics.h b/src/ac6_native_graphics.h index 51d717ae..71b4004b 100644 --- a/src/ac6_native_graphics.h +++ b/src/ac6_native_graphics.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include @@ -23,6 +24,7 @@ struct NativeGraphicsRuntimeStatus { GraphicsRuntimeMode mode = GraphicsRuntimeMode::kHybridBackendFixes; bool capture_enabled = false; bool authoritative_renderer_active = false; + std::string authoritative_renderer_name; uint32_t draw_resolution_scale_x = 1; uint32_t draw_resolution_scale_y = 1; bool direct_host_resolve = true; diff --git a/src/ac6_native_graphics_overlay.cpp b/src/ac6_native_graphics_overlay.cpp index 63660829..8c4e74ee 100644 --- a/src/ac6_native_graphics_overlay.cpp +++ b/src/ac6_native_graphics_overlay.cpp @@ -38,8 +38,11 @@ void NativeGraphicsStatusDialog::OnDraw(ImGuiIO& io) { ImGui::Text("mode: %.*s", static_cast(ToString(status.mode).size()), ToString(status.mode).data()); ImGui::Text("authoritative renderer: %s", - status.authoritative_renderer_active ? "RexGlue/Xenia D3D12 backend" - : "disabled"); + status.authoritative_renderer_active + ? (status.authoritative_renderer_name.empty() + ? "RexGlue/Xenia backend" + : status.authoritative_renderer_name.c_str()) + : "disabled"); ImGui::Text("capture active: %s", status.capture_enabled ? "yes" : "no"); ImGui::Text("draw resolution scale: %ux%u", status.draw_resolution_scale_x, status.draw_resolution_scale_y); diff --git a/src/ac6_texture_overrides.h b/src/ac6_texture_overrides.h index 9e5ba2e1..7223ef4b 100644 --- a/src/ac6_texture_overrides.h +++ b/src/ac6_texture_overrides.h @@ -7,7 +7,11 @@ #include #include -#include +#ifndef NOMINMAX +#define NOMINMAX +#endif +#include +#include namespace ac6::textures { diff --git a/src/ac6recomp_app.h b/src/ac6recomp_app.h index 55e873d6..58c1f05c 100644 --- a/src/ac6recomp_app.h +++ b/src/ac6recomp_app.h @@ -1,13 +1,24 @@ #pragma once #include +#include +#include +#include #include +#if REX_HAS_D3D12 +#include +#endif +#if REX_HAS_VULKAN +#include +#endif #include "ac6_native_graphics.h" #include "ac6_native_graphics_overlay.h" #include "generated/ac6recomp_config.h" +REXCVAR_DECLARE(std::string, ac6_graphics_backend); + class Ac6recompApp : public rex::ReXApp { public: using rex::ReXApp::ReXApp; @@ -27,6 +38,26 @@ class Ac6recompApp : public rex::ReXApp { void OnPreSetup(rex::RuntimeConfig& config) override { REXLOG_INFO("Ac6recompApp::OnPreSetup"); rex::ReXApp::OnPreSetup(config); + + const std::string requested_backend = REXCVAR_GET(ac6_graphics_backend); +#if REX_HAS_VULKAN + if (requested_backend == "vulkan" || requested_backend == "auto") { + config.graphics = + REX_GRAPHICS_BACKEND(rex::graphics::vulkan::VulkanGraphicsSystem); + REXLOG_INFO("Ac6recompApp: selected Vulkan graphics backend"); + return; + } +#endif +#if REX_HAS_D3D12 + if (requested_backend == "d3d12" || requested_backend == "auto") { + config.graphics = + REX_GRAPHICS_BACKEND(rex::graphics::d3d12::D3D12GraphicsSystem); + REXLOG_INFO("Ac6recompApp: selected D3D12 graphics backend"); + return; + } +#endif + REXLOG_WARN("Ac6recompApp: requested graphics backend '{}' is not available in this build", + requested_backend); } void OnPostSetup() override { diff --git a/src/main.cpp b/src/main.cpp index 3b8b35d2..f3a1d939 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -27,7 +27,9 @@ REXCVAR_DECLARE(bool, ac6_texture_swaps_dump_enabled); REXCVAR_DECLARE(bool, vsync); REXCVAR_DECLARE(bool, guest_vblank_sync_to_refresh); REXCVAR_DECLARE(bool, host_present_from_non_ui_thread); +#if REX_HAS_D3D12 REXCVAR_DECLARE(bool, d3d12_allow_variable_refresh_rate_and_tearing); +#endif REXCVAR_DECLARE(bool, vfetch_index_rounding_bias); REXCVAR_DECLARE(int32_t, video_mode_width); REXCVAR_DECLARE(int32_t, video_mode_height); @@ -35,6 +37,20 @@ REXCVAR_DECLARE(std::string, resolution); REXCVAR_DECLARE(int32_t, window_width); REXCVAR_DECLARE(int32_t, window_height); +#if REX_HAS_VULKAN +#define AC6_DEFAULT_GRAPHICS_BACKEND "vulkan" +#elif REX_HAS_D3D12 +#define AC6_DEFAULT_GRAPHICS_BACKEND "d3d12" +#else +#define AC6_DEFAULT_GRAPHICS_BACKEND "auto" +#endif + +REXCVAR_DEFINE_STRING(ac6_graphics_backend, AC6_DEFAULT_GRAPHICS_BACKEND, + "AC6/NativeGraphics", + "Host graphics backend: vulkan, d3d12, or auto") + .allowed({"vulkan", "d3d12", "auto"}) + .lifecycle(rex::cvar::Lifecycle::kInitOnly); + REXCVAR_DEFINE_BOOL(ac6_performance_mode, true, "AC6/Performance", "Disable all diagnostics, logging, and development overlays for maximum runtime performance"); @@ -82,9 +98,11 @@ void ApplyAc6DefaultSettings() { if (!rex::cvar::HasNonDefaultValue("host_present_from_non_ui_thread")) { REXCVAR_SET(host_present_from_non_ui_thread, false); } +#if REX_HAS_D3D12 if (!rex::cvar::HasNonDefaultValue("d3d12_allow_variable_refresh_rate_and_tearing")) { REXCVAR_SET(d3d12_allow_variable_refresh_rate_and_tearing, false); } +#endif if (!rex::cvar::HasNonDefaultValue("vfetch_index_rounding_bias")) { REXCVAR_SET(vfetch_index_rounding_bias, true); } diff --git a/src/render_hooks.cpp b/src/render_hooks.cpp index cf16cb5a..a5eca64d 100644 --- a/src/render_hooks.cpp +++ b/src/render_hooks.cpp @@ -11,6 +11,9 @@ REXCVAR_DEFINE_BOOL(ac6_unlock_fps, false, "AC6", "Unlock frame rate to 60fps"); REXCVAR_DEFINE_BOOL(ac6_timing_hooks_enabled, true, "AC6", "Enable AC6 timing hooks that alter the game's presentation cadence"); +REXCVAR_DEFINE_BOOL(ac6_cutscene_clamp, true, "AC6", + "Suspend the 60fps unlock during in-engine cutscenes so they " + "play at native ~30fps instead of double speed"); using Clock = std::chrono::steady_clock; @@ -21,12 +24,44 @@ std::atomic g_fps{0.0}; std::atomic g_frame_count{0}; Clock::time_point g_frame_start{}; +// Wall-clock (steady) ms of the last in-engine cutscene tick. The cutscene +// hook (ac6CinematicTickHook) runs on the game thread; the timing hooks read +// this on the present/GPU path, hence the atomic. INT64_MIN = never ticked. +std::atomic g_last_cinematic_tick_ms{INT64_MIN}; + +// The demo-manager Exec runs every game frame while a cutscene plays (~16-33ms +// apart). A few-frame decay keeps the clamp asserted across the cutscene and +// auto-releases shortly after it ends. +constexpr int64_t kCinematicDecayMs = 100; + +int64_t NowMs() { + return std::chrono::duration_cast( + Clock::now().time_since_epoch()) + .count(); +} + bool AreTimingHooksActive() { - return REXCVAR_GET(ac6_timing_hooks_enabled) && REXCVAR_GET(ac6_unlock_fps); + return REXCVAR_GET(ac6_timing_hooks_enabled) && REXCVAR_GET(ac6_unlock_fps) && + !ac6::IsCinematicActive(); } } // namespace +namespace ac6 { + +bool IsCinematicActive() { + if (!REXCVAR_GET(ac6_cutscene_clamp)) { + return false; + } + const int64_t last = g_last_cinematic_tick_ms.load(std::memory_order_relaxed); + if (last == INT64_MIN) { + return false; + } + return (NowMs() - last) <= kCinematicDecayMs; +} + +} // namespace ac6 + bool ac6FlipIntervalHook() { return AreTimingHooksActive(); } @@ -61,6 +96,15 @@ void ac6PresentTimingHook(PPCRegister& /*r31*/) { g_frame_start = now; } +void ac6CinematicTickHook(PPCRegister& /*r3*/) { + // A demo-manager Exec (DD: sub_82184460 / EM: sub_821856F8) ran this frame -> + // an in-engine cutscene is playing. Stamp the time so AreTimingHooksActive() + // suspends the 60fps unlock until the cutscene ends (the stamp goes stale a + // few frames after the last tick), letting the frame-locked cinematic + // Sequencer play at native ~30fps instead of double speed. + g_last_cinematic_tick_ms.store(NowMs(), std::memory_order_relaxed); +} + namespace ac6 { FrameStats GetFrameStats() { diff --git a/src/render_hooks.h b/src/render_hooks.h index 51f8ac94..2fd7c77b 100644 --- a/src/render_hooks.h +++ b/src/render_hooks.h @@ -7,6 +7,7 @@ REXCVAR_DECLARE(bool, ac6_unlock_fps); REXCVAR_DECLARE(bool, ac6_timing_hooks_enabled); +REXCVAR_DECLARE(bool, ac6_cutscene_clamp); namespace ac6 { @@ -18,9 +19,18 @@ struct FrameStats { FrameStats GetFrameStats(); +// True while an in-engine cutscene (NU::FW::IngameCinematics, driven by +// CAce6DemoManager::Exec) has ticked within the last decay window. Used by the +// timing hooks to suspend the 60fps unlock so cutscenes play at native cadence. +bool IsCinematicActive(); + } // namespace ac6 bool ac6FlipIntervalHook(); bool ac6PresentIntervalHook(PPCRegister& r10); void ac6DeltaDivisorHook(PPCRegister& r29); void ac6PresentTimingHook(PPCRegister& r31); + +// Fires once per frame from the demo-manager Exec while a cutscene is playing. +// r3 = the demo-manager `this`; unused (presence-of-call is the signal). +void ac6CinematicTickHook(PPCRegister& r3); diff --git a/thirdparty/rexglue-sdk/include/rex/graphics/pipeline/shader/spirv_translator.h b/thirdparty/rexglue-sdk/include/rex/graphics/pipeline/shader/spirv_translator.h index c51ea546..d26f9502 100644 --- a/thirdparty/rexglue-sdk/include/rex/graphics/pipeline/shader/spirv_translator.h +++ b/thirdparty/rexglue-sdk/include/rex/graphics/pipeline/shader/spirv_translator.h @@ -33,7 +33,7 @@ class SpirvShaderTranslator : public ShaderTranslator { // TODO(Triang3l): Change to 0xYYYYMMDD once it's out of the rapid // prototyping stage (easier to do small granular updates with an // incremental counter). - static constexpr uint32_t kVersion = 12; + static constexpr uint32_t kVersion = 13; enum class DepthStencilMode : uint32_t { kNoModifiers, @@ -577,6 +577,7 @@ class SpirvShaderTranslator : public ShaderTranslator { void StartFragmentShaderBeforeMain(); void StartFragmentShaderInMain(); void CompleteFragmentShaderInMain(); + void CompleteFragmentShader_DSV_DepthTo24Bit(); // Updates the current flow control condition (to be called in the beginning // of exec and in jumps), closing the previous conditionals if needed. @@ -946,6 +947,10 @@ class SpirvShaderTranslator : public ShaderTranslator { // With fragment shader interlock, variables in the main function. // Otherwise, framebuffer color attachment outputs. std::array output_or_var_fragment_data_; + // Function-scoped staging variable for guest oDepth writes. FSI consumes this + // through var_main_fragment_depth_; FBO copies it to gl_FragDepth after guest + // control flow is complete. + spv::Id output_or_var_fragment_depth_; // For host render targets and only when needed - float. spv::Id output_fragment_depth_; // For host render targets and only when needed - int[1]. diff --git a/thirdparty/rexglue-sdk/include/rex/graphics/vulkan/command_processor.h b/thirdparty/rexglue-sdk/include/rex/graphics/vulkan/command_processor.h index 9ad94903..9965801b 100644 --- a/thirdparty/rexglue-sdk/include/rex/graphics/vulkan/command_processor.h +++ b/thirdparty/rexglue-sdk/include/rex/graphics/vulkan/command_processor.h @@ -758,11 +758,9 @@ class VulkanCommandProcessor : public CommandProcessor { uint32_t host_index = UINT32_MAX; bool valid = false; } active_occlusion_query_; - struct VertexBufferState { - uint32_t address = UINT32_MAX; - uint32_t size = UINT32_MAX; - }; - std::array vertex_buffer_states_{}; + static constexpr uint32_t kVertexFetchConstantCount = 96; + // Bit is set when the vertex buffer at that index has been requested in the + // current frame. Cleared between frames and on fetch constant writes. uint64_t vertex_buffers_in_sync_[2] = {}; std::unordered_map readback_buffers_; std::unordered_map memexport_readback_buffers_; diff --git a/thirdparty/rexglue-sdk/src/graphics/flags.cpp b/thirdparty/rexglue-sdk/src/graphics/flags.cpp index 19b986d6..da11d6e4 100644 --- a/thirdparty/rexglue-sdk/src/graphics/flags.cpp +++ b/thirdparty/rexglue-sdk/src/graphics/flags.cpp @@ -31,6 +31,8 @@ REXCVAR_DEFINE_BOOL(use_fuzzy_alpha_epsilon, true, "GPU", REXCVAR_DEFINE_BOOL(vfetch_index_rounding_bias, false, "GPU/Shader", "Apply small epsilon bias to vertex fetch indices before " "flooring to fix black triangles caused by RCP precision"); +REXCVAR_DEFINE_BOOL(draw_resolution_scaled_texture_offsets, true, "GPU/Shader", + "Scale texture offsets with draw resolution"); REXCVAR_DEFINE_BOOL(gpu_debug_markers, false, "GPU", "Insert debug markers into GPU command streams for tools " "like PIX and RenderDoc. Automatically enabled when " diff --git a/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/dxbc_translator_fetch.cpp b/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/dxbc_translator_fetch.cpp index 31842c0c..1098e0ef 100644 --- a/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/dxbc_translator_fetch.cpp +++ b/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/dxbc_translator_fetch.cpp @@ -24,9 +24,6 @@ #include #include -REXCVAR_DEFINE_BOOL(draw_resolution_scaled_texture_offsets, true, "GPU/Shader", - "Scale texture offsets with draw resolution"); - namespace rex::graphics { using namespace ucode; diff --git a/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator.cpp b/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator.cpp index c7097056..74a3f15c 100644 --- a/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator.cpp +++ b/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator.cpp @@ -129,6 +129,7 @@ void SpirvShaderTranslator::Reset() { output_per_vertex_member_cull_distance_ = UINT32_MAX; type_output_per_vertex_ = spv::NoResult; output_per_vertex_ = spv::NoResult; + output_or_var_fragment_depth_ = spv::NoResult; output_fragment_depth_ = spv::NoResult; output_fragment_sample_mask_ = spv::NoResult; @@ -2923,6 +2924,7 @@ void SpirvShaderTranslator::StartFragmentShaderBeforeMain() { type_float_, "gl_FragDepth"); builder_->addDecoration(output_fragment_depth_, spv::DecorationBuiltIn, spv::BuiltInFragDepth); + builder_->addDecoration(output_fragment_depth_, spv::DecorationInvariant); main_interface_.push_back(output_fragment_depth_); } if (alpha_to_coverage_possible && features_.sample_rate_shading) { @@ -2957,17 +2959,18 @@ void SpirvShaderTranslator::StartFragmentShaderInMain() { // to the execution mask GPUs naturally have. } + if (current_shader().writes_depth()) { + output_or_var_fragment_depth_ = + builder_->createVariable(spv::NoPrecision, spv::StorageClassFunction, type_float_, + "xe_var_fragment_depth", const_float_0_); + } + if (edram_fragment_shader_interlock_) { // Initialize color output variables with fragment shader interlock. std::fill(output_or_var_fragment_data_.begin(), output_or_var_fragment_data_.end(), spv::NoResult); - var_main_fragment_depth_ = spv::NoResult; + var_main_fragment_depth_ = output_or_var_fragment_depth_; var_main_fsi_color_written_ = spv::NoResult; - if (current_shader().writes_depth()) { - var_main_fragment_depth_ = - builder_->createVariable(spv::NoPrecision, spv::StorageClassFunction, type_float_, - "xe_var_fragment_depth", const_float_0_); - } uint32_t color_targets_written = current_shader().writes_color_targets(); if (color_targets_written) { static const char* const kFragmentDataVariableNames[] = { @@ -3616,8 +3619,7 @@ void SpirvShaderTranslator::StoreResult(const InstructionResult& result, spv::Id // Writes X to scalar gl_FragDepth. assert_true(used_write_mask == 0b0001); assert_true(current_shader().writes_depth()); - target_pointer = - edram_fragment_shader_interlock_ ? var_main_fragment_depth_ : output_fragment_depth_; + target_pointer = output_or_var_fragment_depth_; // Guest depth output is expected to be [0, 1]. is_clamped = true; } break; diff --git a/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator_rb.cpp b/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator_rb.cpp index 765c1417..c0db7a01 100644 --- a/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator_rb.cpp +++ b/thirdparty/rexglue-sdk/src/graphics/pipeline/shader/spirv_translator_rb.cpp @@ -1365,45 +1365,7 @@ void SpirvShaderTranslator::CompleteFragmentShaderInMain() { } } - if (!edram_fragment_shader_interlock_ && output_fragment_depth_ != spv::NoResult) { - Modification::DepthStencilMode depth_stencil_mode = - GetSpirvShaderModification().pixel.depth_stencil_mode; - if (depth_stencil_mode == Modification::DepthStencilMode::kFloat24Truncating || - depth_stencil_mode == Modification::DepthStencilMode::kFloat24Rounding) { - // For oDepth, depth is already in guest [0, 1]. - // Without oDepth, reconstruct guest [0, 1] from host [0, 0.5] by - // doubling gl_FragCoord.z and saturating. - spv::Id depth; - if (current_shader().writes_depth()) { - depth = builder_->createLoad(output_fragment_depth_, spv::NoPrecision); - } else { - assert_true(input_fragment_coordinates_ != spv::NoResult); - id_vector_temp_.clear(); - id_vector_temp_.push_back(builder_->makeIntConstant(2)); - depth = builder_->createLoad( - builder_->createAccessChain(spv::StorageClassInput, input_fragment_coordinates_, - id_vector_temp_), - spv::NoPrecision); - if (IsSampleRate()) { - // Statically use gl_SampleID to keep this path at sample frequency. - assert_true(input_sample_id_ != spv::NoResult); - builder_->createLoad(input_sample_id_, spv::NoPrecision); - } - depth = builder_->createTriBuiltinCall( - type_float_, ext_inst_glsl_std_450_, GLSLstd450NClamp, - builder_->createNoContractionBinOp(spv::OpFMul, type_float_, depth, - builder_->makeFloatConstant(2.0f)), - const_float_0_, const_float_1_); - } - // Convert guest [0, 1] float32 to float24 and back to host [0, 0.5]. - spv::Id depth_float24 = SpirvShaderTranslator::PreClampedDepthTo20e4( - *builder_, depth, depth_stencil_mode == Modification::DepthStencilMode::kFloat24Rounding, - false, ext_inst_glsl_std_450_); - depth = SpirvShaderTranslator::Depth20e4To32(*builder_, depth_float24, 0, true, false, - ext_inst_glsl_std_450_); - builder_->createStore(depth, output_fragment_depth_); - } - } + CompleteFragmentShader_DSV_DepthTo24Bit(); if (edram_fragment_shader_interlock_) { if (block_fsi_if_after_depth_stencil_merge) { @@ -1425,6 +1387,72 @@ void SpirvShaderTranslator::CompleteFragmentShaderInMain() { } } +void SpirvShaderTranslator::CompleteFragmentShader_DSV_DepthTo24Bit() { + if (edram_fragment_shader_interlock_ || output_fragment_depth_ == spv::NoResult) { + return; + } + + Modification::DepthStencilMode depth_stencil_mode = + GetSpirvShaderModification().pixel.depth_stencil_mode; + bool convert_float24_depth = + depth_stencil_mode == Modification::DepthStencilMode::kFloat24Truncating || + depth_stencil_mode == Modification::DepthStencilMode::kFloat24Rounding; + bool shader_writes_depth = current_shader().writes_depth(); + if (!shader_writes_depth && !convert_float24_depth) { + return; + } + + // For oDepth, depth is already in guest [0, 1]. Without oDepth, reconstruct + // guest [0, 1] from host [0, 0.5] by doubling gl_FragCoord.z and saturating. + spv::Id depth; + if (shader_writes_depth) { + assert_true(output_or_var_fragment_depth_ != spv::NoResult); + depth = builder_->createLoad(output_or_var_fragment_depth_, spv::NoPrecision); + } else { + assert_true(input_fragment_coordinates_ != spv::NoResult); + id_vector_temp_.clear(); + id_vector_temp_.push_back(builder_->makeIntConstant(2)); + depth = builder_->createLoad( + builder_->createAccessChain(spv::StorageClassInput, input_fragment_coordinates_, + id_vector_temp_), + spv::NoPrecision); + if (IsSampleRate()) { + // Statically use gl_SampleID to keep this path at sample frequency. + assert_true(input_sample_id_ != spv::NoResult); + builder_->createLoad(input_sample_id_, spv::NoPrecision); + } + depth = builder_->createTriBuiltinCall( + type_float_, ext_inst_glsl_std_450_, GLSLstd450NClamp, + builder_->createNoContractionBinOp(spv::OpFMul, type_float_, depth, + builder_->makeFloatConstant(2.0f)), + const_float_0_, const_float_1_); + } + + if (convert_float24_depth) { + // Convert guest [0, 1] float32 to float24 and back to host [0, 0.5]. + spv::Id depth_float24 = SpirvShaderTranslator::PreClampedDepthTo20e4( + *builder_, depth, depth_stencil_mode == Modification::DepthStencilMode::kFloat24Rounding, + false, ext_inst_glsl_std_450_); + depth = SpirvShaderTranslator::Depth20e4To32(*builder_, depth_float24, 0, true, false, + ext_inst_glsl_std_450_); + } else if (shader_writes_depth) { + // oDepth bypasses viewport depth scaling, so dynamically remap guest + // 0...1 to host 0...0.5 whenever the bound depth buffer is D24FS8. + spv::Id depth_float24_flag = builder_->createBinOp( + spv::OpINotEqual, type_bool_, + builder_->createBinOp(spv::OpBitwiseAnd, type_uint_, main_system_constant_flags_, + builder_->makeUintConstant(kSysFlag_DepthFloat24)), + const_uint_0_); + depth = builder_->createTriOp( + spv::OpSelect, type_float_, depth_float24_flag, + builder_->createNoContractionBinOp(spv::OpFMul, type_float_, depth, + builder_->makeFloatConstant(0.5f)), + depth); + } + + builder_->createStore(depth, output_fragment_depth_); +} + spv::Id SpirvShaderTranslator::LoadMsaaSamplesFromFlags() { return builder_->createTriOp(spv::OpBitFieldUExtract, type_uint_, main_system_constant_flags_, builder_->makeUintConstant(kSysFlag_MsaaSamples_Shift), diff --git a/thirdparty/rexglue-sdk/src/graphics/vulkan/command_processor.cpp b/thirdparty/rexglue-sdk/src/graphics/vulkan/command_processor.cpp index cf39bf0a..1004e847 100644 --- a/thirdparty/rexglue-sdk/src/graphics/vulkan/command_processor.cpp +++ b/thirdparty/rexglue-sdk/src/graphics/vulkan/command_processor.cpp @@ -46,6 +46,8 @@ #include #include +#include "../../../../../src/ac6_backend_fixes/ac6_backend_hooks.h" + // Legacy backend compatibility aliases for shared readback controls. REXCVAR_DEFINE_BOOL(vulkan_readback_resolve, false, "GPU/Vulkan", "Read render-to-texture results on the CPU") @@ -613,14 +615,10 @@ void VulkanCommandProcessor::InvalidateGpuMemory() { void VulkanCommandProcessor::InvalidateAllVertexBufferResidency() { vertex_buffers_in_sync_[0] = 0; vertex_buffers_in_sync_[1] = 0; - for (VertexBufferState& state : vertex_buffer_states_) { - state.address = UINT32_MAX; - state.size = UINT32_MAX; - } } void VulkanCommandProcessor::InvalidateVertexBufferResidency(uint32_t vfetch_index) { - if (vfetch_index >= vertex_buffer_states_.size()) { + if (vfetch_index >= kVertexFetchConstantCount) { return; } vertex_buffers_in_sync_[vfetch_index >> 6] &= ~(uint64_t(1) << (vfetch_index & 63)); @@ -631,10 +629,10 @@ void VulkanCommandProcessor::InvalidateVertexBufferResidencyRange(uint32_t first if (first_vfetch > last_vfetch) { std::swap(first_vfetch, last_vfetch); } - if (first_vfetch >= vertex_buffer_states_.size()) { + if (first_vfetch >= kVertexFetchConstantCount) { return; } - last_vfetch = std::min(last_vfetch, uint32_t(vertex_buffer_states_.size() - 1)); + last_vfetch = std::min(last_vfetch, kVertexFetchConstantCount - 1); for (uint32_t vfetch_index = first_vfetch; vfetch_index <= last_vfetch; ++vfetch_index) { InvalidateVertexBufferResidency(vfetch_index); } @@ -2300,6 +2298,16 @@ void VulkanCommandProcessor::IssueSwap(uint32_t frontbuffer_ptr, uint32_t frontb return; } + // Keep the AC6 frame-boundary diagnostics in sync with the D3D12 path before + // the swap source is selected and presented. + { + system::GraphicsSwapSubmission frame_boundary_submission = {}; + frame_boundary_submission.frontbuffer_virtual_address = frontbuffer_ptr; + frame_boundary_submission.frontbuffer_width = frontbuffer_width; + frame_boundary_submission.frontbuffer_height = frontbuffer_height; + graphics_system_->HandleVideoSwap(frame_boundary_submission); + } + bool skip_present_due_async_placeholder = REXCVAR_GET(async_shader_compilation) && REXCVAR_GET(vulkan_async_skip_incomplete_frames) && frame_used_async_placeholder_pipeline_; @@ -2414,6 +2422,29 @@ void VulkanCommandProcessor::IssueSwap(uint32_t frontbuffer_ptr, uint32_t frontb frontbuffer_height_unscaled, guest_output_width, guest_output_height, static_cast(frontbuffer_format)); + system::GraphicsSwapSubmission ac6_submission = {}; + uint64_t ac6_submission_sequence = 0; + graphics_system_->GetLastSwapSubmission(&ac6_submission, &ac6_submission_sequence); + if (!ac6_submission_sequence) { + ac6_submission.frontbuffer_virtual_address = frontbuffer_ptr; + ac6_submission.frontbuffer_width = frontbuffer_width; + ac6_submission.frontbuffer_height = frontbuffer_height; + } + + auto* ac6_vertex_shader = active_vertex_shader(); + auto* ac6_pixel_shader = active_pixel_shader(); + uint64_t ac6_vertex_shader_hash = + ac6_vertex_shader ? ac6_vertex_shader->ucode_data_hash() : 0; + uint64_t ac6_pixel_shader_hash = + ac6_pixel_shader ? ac6_pixel_shader->ucode_data_hash() : 0; + + ac6::backend::ReportSwapDecision( + ac6_submission, ac6_submission_sequence, + ac6::backend::SwapSourceType::kGuestSwapTexture, + swap_source_scaled, guest_output_width, guest_output_height, + frontbuffer_width_scaled, frontbuffer_height_scaled, + ac6_vertex_shader_hash, ac6_pixel_shader_hash); + system::X_VIDEO_MODE video_mode; kernel::xboxkrnl::VdQueryVideoMode(&video_mode); uint32_t display_width = std::max(uint32_t(1), uint32_t(video_mode.display_width)); @@ -4020,11 +4051,6 @@ bool VulkanCommandProcessor::IssueDraw(xenos::PrimitiveType prim_type, uint32_t vfetch_index, vfetch_constant.dword_0, vfetch_constant.dword_1); return false; } - VertexBufferState& state = vertex_buffer_states_[vfetch_index]; - if (state.address == vfetch_constant.address && state.size == vfetch_constant.size) { - vertex_buffers_in_sync_[vfetch_index >> 6] |= vfetch_bit; - continue; - } if (!shared_memory_->RequestRange(vfetch_constant.address << 2, vfetch_constant.size << 2)) { REXGPU_ERROR( "Failed to request vertex buffer at 0x{:08X} (size {}) in the shared " @@ -4032,8 +4058,6 @@ bool VulkanCommandProcessor::IssueDraw(xenos::PrimitiveType prim_type, uint32_t vfetch_constant.address << 2, vfetch_constant.size << 2); return false; } - state.address = vfetch_constant.address; - state.size = vfetch_constant.size; vertex_buffers_in_sync_[vfetch_index >> 6] |= vfetch_bit; } } diff --git a/thirdparty/rexglue-sdk/src/native/ui/CMakeLists.txt b/thirdparty/rexglue-sdk/src/native/ui/CMakeLists.txt index 90df6488..8192ab3e 100644 --- a/thirdparty/rexglue-sdk/src/native/ui/CMakeLists.txt +++ b/thirdparty/rexglue-sdk/src/native/ui/CMakeLists.txt @@ -127,6 +127,7 @@ endif() if(WIN32) target_link_libraries(rexui PUBLIC dwmapi + dxgi Shcore ) else() diff --git a/tools/export_ac6_ntxr.py b/tools/export_ac6_ntxr.py index e3206f88..89638d3a 100644 --- a/tools/export_ac6_ntxr.py +++ b/tools/export_ac6_ntxr.py @@ -736,7 +736,59 @@ def extract_r8_visible(payload: bytes, storage_width: int, visible_width: int, v return b"".join(rows) -def export_ntxr(input_path: Path, output_root: Path, source_root: Path) -> dict: +def existing_export_entry(input_path: Path, output_root: Path, source_root: Path) -> dict | None: + output_base = output_root / input_path.relative_to(source_root) + json_path = output_base.with_suffix(".json") + dds_path = output_base.with_suffix(".dds") + preview_path = output_base.with_suffix(".tga") + png_path = output_base.with_suffix(".png") + if not (json_path.exists() and dds_path.exists() and preview_path.exists() and png_path.exists()): + return None + + try: + metadata = json.loads(json_path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + return None + + entry = { + "source": str(input_path.relative_to(source_root)).replace("\\", "/"), + "size": input_path.stat().st_size, + "status": "exported", + "resumed": True, + "layout": metadata.get("layout"), + "format": metadata.get("format"), + "dds": str(dds_path.relative_to(output_root)).replace("\\", "/"), + "preview": str(preview_path.relative_to(output_root)).replace("\\", "/"), + "preview_png": str(png_path.relative_to(output_root)).replace("\\", "/"), + "metadata": str(json_path.relative_to(output_root)).replace("\\", "/"), + "visible_width": metadata.get("visible_width"), + "visible_height": metadata.get("visible_height"), + "storage_width": metadata.get("storage_width"), + "storage_height": metadata.get("storage_height"), + "mip_count": metadata.get("mip_count"), + "notes": metadata.get("notes"), + } + raw_png = metadata.get("raw_png") + if raw_png: + raw_path = json_path.with_name(raw_png) + if raw_path.exists(): + entry["raw_preview_png"] = str(raw_path.relative_to(output_root)).replace("\\", "/") + alpha_png = metadata.get("alpha_png") + if alpha_png: + alpha_path = json_path.with_name(alpha_png) + if alpha_path.exists(): + entry["alpha_preview_png"] = str(alpha_path.relative_to(output_root)).replace("\\", "/") + if metadata.get("face_pngs"): + entry["face_pngs"] = metadata["face_pngs"] + return entry + + +def export_ntxr(input_path: Path, output_root: Path, source_root: Path, *, skip_existing: bool = False) -> dict: + if skip_existing: + existing = existing_export_entry(input_path, output_root, source_root) + if existing is not None: + return existing + blob = input_path.read_bytes() plan, reason = classify_ntxr(blob) output_base = output_root / input_path.relative_to(source_root) @@ -964,6 +1016,17 @@ def main() -> int: default=Path("out") / "ac6_runtime_ntxr_exported", help="Output directory for exported textures", ) + parser.add_argument( + "--force", + action="store_true", + help="Re-export textures even when a complete prior export already exists", + ) + parser.add_argument( + "--limit", + type=int, + default=0, + help="Export at most this many NTXR files (0 = no limit)", + ) args = parser.parse_args() source_root = args.input.resolve() @@ -972,8 +1035,11 @@ def main() -> int: exported = [] skipped = [] - for input_path in sorted(source_root.rglob("*.ntxr")): - result = export_ntxr(input_path, output_root, source_root) + ntxr_paths = sorted(source_root.rglob("*.ntxr")) + if args.limit > 0: + ntxr_paths = ntxr_paths[:args.limit] + for input_path in ntxr_paths: + result = export_ntxr(input_path, output_root, source_root, skip_existing=not args.force) if result["status"] == "exported": exported.append(result) else: diff --git a/tools/extract_ac6_runtime_fhm.py b/tools/extract_ac6_runtime_fhm.py index f76d8645..7bd3dcca 100644 --- a/tools/extract_ac6_runtime_fhm.py +++ b/tools/extract_ac6_runtime_fhm.py @@ -4,10 +4,13 @@ from __future__ import annotations import argparse import json import re -import struct +import sys from collections import defaultdict from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from ac6_fhm import ext_for_magic, parse_fhm as parse_fhm_container, safe_tag + DUMP_RE = re.compile( r"^entry_(?P\d+)_mode(?P\d+)_c(?P\d+)_u(?P\d+)" @@ -15,8 +18,14 @@ DUMP_RE = re.compile( ) +def load_manifest(path: Path) -> dict: + if not path.exists(): + return {"entries": []} + return json.loads(path.read_text(encoding="utf-8")) + + def load_manifest_entries(path: Path) -> dict[tuple[int, int], list[dict]]: - manifest = json.loads(path.read_text(encoding="utf-8")) + manifest = load_manifest(path) by_pair: dict[tuple[int, int], list[dict]] = defaultdict(list) for entry in manifest["entries"]: if entry["storage_kind"] != "compressed": @@ -25,93 +34,38 @@ def load_manifest_entries(path: Path) -> dict[tuple[int, int], list[dict]]: return by_pair -def parse_fhm(blob: bytes) -> list[dict]: - if len(blob) < 0x1C or blob[:4] != b"FHM ": - return [] - - count = struct.unpack_from(">I", blob, 0x10)[0] - if count == 0: - return [] - - table_base = 0x14 - offsets_base = table_base - sizes_base = offsets_base + (count * 4) - if sizes_base + (count * 4) > len(blob): - return [] - - offsets = [struct.unpack_from(">I", blob, offsets_base + (i * 4))[0] for i in range(count)] - sizes = [struct.unpack_from(">I", blob, sizes_base + (i * 4))[0] for i in range(count)] - - entries = [] - for index, (offset, size) in enumerate(zip(offsets, sizes)): - if offset >= len(blob): - continue - - end = offset + size - if end > len(blob): - next_offset = offsets[index + 1] if index + 1 < len(offsets) else len(blob) - end = min(next_offset, len(blob)) - if end <= offset: - continue - - child = blob[offset:end] - entries.append( - { - "index": index, - "offset": offset, - "size": len(child), - "magic": child[:4].decode("ascii", errors="replace"), - "data": child, - } - ) - return entries - - def safe_name(name: str) -> str: - return "".join(ch if ch.isalnum() or ch in ("-", "_", ".") else "_" for ch in name) - - -def magic_extension(magic: str) -> str: - normalized = magic.strip().upper() - mapping = { - "FHM": ".fhm", - "NTXR": ".ntxr", - "NSXR": ".nsxr", - "MDLP": ".mdlp", - "PLAD": ".plad", - "BFX": ".bfx", - "BSN": ".bsn", - "ACE6": ".ace6", - "NFH": ".nfh", - } - return mapping.get(normalized, ".bin") + return safe_tag(name) def extract_container(blob: bytes, container_dir: Path, output_root: Path, depth: int, max_depth: int) -> list[dict]: - children = parse_fhm(blob) + children = parse_fhm_container(blob) or [] if not children: return [] child_entries = [] for child in children: - safe_magic = safe_name(child["magic"]) - child_name = f"{child['index']:03d}_{safe_magic}{magic_extension(child['magic'])}" + safe_magic = safe_name(child.magic) + child_name = f"{child.index:03d}_{safe_magic}{ext_for_magic(child.magic)}" child_path = container_dir / child_name - child_path.write_bytes(child["data"]) + child_path.write_bytes(child.data) child_entry = { - "index": child["index"], - "offset": child["offset"], - "size": child["size"], - "magic": child["magic"], + "index": child.index, + "offset": child.offset, + "declared_size": child.declared_size, + "size": child.size, + "magic": child.magic, "path": str(child_path.relative_to(output_root)).replace("\\", "/"), } + if child.notes: + child_entry["parser_notes"] = child.notes - if depth < max_depth and child["data"][:4] == b"FHM ": - nested_dir = container_dir / f"{child['index']:03d}_{safe_magic}" + if depth < max_depth and child.data[:4] == b"FHM ": + nested_dir = container_dir / f"{child.index:03d}_{safe_magic}" nested_dir.mkdir(parents=True, exist_ok=True) - nested_children = extract_container(child["data"], nested_dir, output_root, depth + 1, + nested_children = extract_container(child.data, nested_dir, output_root, depth + 1, max_depth) if nested_children: child_entry["nested"] = nested_children @@ -121,8 +75,57 @@ def extract_container(blob: bytes, container_dir: Path, output_root: Path, depth return child_entries +def extract_blob(blob: bytes, label: str, output_root: Path, max_depth: int, + source_record: dict) -> dict: + container_dir = output_root / safe_name(label) + container_dir.mkdir(parents=True, exist_ok=True) + + children = parse_fhm_container(blob) or [] + if not children: + raw_path = container_dir / f"{safe_name(label)}.bin" + raw_path.write_bytes(blob) + return { + **source_record, + "kind": "raw", + "magic": blob[:4].decode("latin-1", errors="replace") if len(blob) >= 4 else "", + "size": len(blob), + "path": str(raw_path.relative_to(output_root)).replace("\\", "/"), + } + + child_entries = extract_container(blob, container_dir, output_root, 0, max_depth) + return { + **source_record, + "kind": "fhm", + "child_count": len(child_entries), + "children": child_entries, + } + + +def iter_offline_manifest_sources(manifest_path: Path, files_dir: Path) -> list[dict]: + manifest = load_manifest(manifest_path) + sources = [] + manifest_root = manifest_path.parent + for entry in manifest.get("entries", []): + if not entry.get("extracted"): + continue + rel_path = entry.get("path") + if not rel_path: + continue + path = manifest_root / rel_path + if files_dir and not path.is_relative_to(files_dir): + # Keep support for custom --pac-files while still trusting the + # manifest's relative paths when they point elsewhere. + alt = files_dir / Path(rel_path).name + if alt.exists(): + path = alt + if not path.exists(): + continue + sources.append({"entry": entry, "path": path}) + return sources + + def main() -> int: - parser = argparse.ArgumentParser(description="Extract child payloads from runtime-dumped AC6 FHM containers.") + parser = argparse.ArgumentParser(description="Extract child payloads from offline-decoded or runtime-dumped AC6 FHM containers.") parser.add_argument( "--dump-dir", type=Path, @@ -135,12 +138,23 @@ def main() -> int: default=Path("out") / "ac6_pac_extracted_raw" / "manifest.json", help="Manifest produced by extract_ac6_pac.py", ) + parser.add_argument( + "--pac-files", + type=Path, + default=None, + help="Decoded PAC files directory produced by extract_ac6_pac.py (default: /files)", + ) parser.add_argument( "--output", type=Path, - default=Path("out") / "ac6_runtime_fhm_extracted", + default=Path("out") / "ac6_runtime_fhm_typed", help="Output directory for parsed FHM containers and child payloads", ) + parser.add_argument( + "--include-runtime-dumps", + action="store_true", + help="Also merge entry_* runtime dumps from --dump-dir when present", + ) parser.add_argument( "--max-depth", type=int, @@ -151,14 +165,42 @@ def main() -> int: dump_dir = args.dump_dir.resolve() manifest_path = args.manifest.resolve() + pac_files = args.pac_files.resolve() if args.pac_files else manifest_path.parent / "files" output_root = args.output.resolve() output_root.mkdir(parents=True, exist_ok=True) by_pair = load_manifest_entries(manifest_path) extracted = [] + + for source in iter_offline_manifest_sources(manifest_path, pac_files): + entry = source["entry"] + path = source["path"] + blob = path.read_bytes() + label = f"idx_{entry['index']:04d}" + extracted.append( + extract_blob( + blob, + label, + output_root, + args.max_depth, + { + "source": "offline_pac", + "entry_index": entry["index"], + "pac_name": entry["pac_name"], + "storage_kind": entry["storage_kind"], + "compressed_size": entry["compressed_size"], + "decompressed_size": entry["decompressed_size"], + "source_offset": entry["offset"], + "input_path": str(path.relative_to(manifest_path.parent)).replace("\\", "/"), + }, + ) + ) + selected_dumps: dict[tuple[int, int, int, int], Path] = {} - for dump_path in sorted(dump_dir.glob("*.bin")): + runtime_dump_count = 0 + runtime_glob = sorted(dump_dir.glob("*.bin")) if args.include_runtime_dumps and dump_dir.exists() else [] + for dump_path in runtime_glob: match = DUMP_RE.match(dump_path.name) if not match: continue @@ -183,6 +225,7 @@ def main() -> int: selected_dumps[key] = dump_path for dump_path in sorted(selected_dumps.values()): + runtime_dump_count += 1 match = DUMP_RE.match(dump_path.name) assert match is not None @@ -199,16 +242,15 @@ def main() -> int: if len(candidates) == 1 else f"pair_c{compressed_size}_u{decompressed_size}" ) - container_dir = output_root / safe_name(base_label) - container_dir.mkdir(parents=True, exist_ok=True) - blob = dump_path.read_bytes() - children = parse_fhm(blob) - if not children: - raw_path = container_dir / dump_path.name - raw_path.write_bytes(blob) - extracted.append( + extracted.append( + extract_blob( + blob, + f"runtime_{base_label}", + output_root, + args.max_depth, { + "source": "runtime_dump", "dump": dump_path.name, "record_id": record_id, "codec_mode": codec_mode, @@ -216,31 +258,13 @@ def main() -> int: "decompressed_size": decompressed_size, "source_offset": source_offset, "candidate_indexes": [entry["index"] for entry in candidates], - "kind": "raw", - "path": str(raw_path.relative_to(output_root)).replace("\\", "/"), - } + }, ) - continue - - child_entries = extract_container(blob, container_dir, output_root, 0, args.max_depth) - - extracted.append( - { - "dump": dump_path.name, - "record_id": record_id, - "codec_mode": codec_mode, - "compressed_size": compressed_size, - "decompressed_size": decompressed_size, - "source_offset": source_offset, - "candidate_indexes": [entry["index"] for entry in candidates], - "kind": "fhm", - "child_count": len(child_entries), - "children": child_entries, - } ) manifest = { - "dump_dir": str(dump_dir), + "pac_files": str(pac_files), + "dump_dir": str(dump_dir) if args.include_runtime_dumps else None, "manifest": str(manifest_path), "output": str(output_root), "containers": extracted, @@ -250,6 +274,8 @@ def main() -> int: json.dumps( { "containers": len(extracted), + "offline_sources": sum(1 for item in extracted if item.get("source") == "offline_pac"), + "runtime_dumps": runtime_dump_count, "output": str(output_root), }, indent=2, diff --git a/tools/parse_ac6_swg.py b/tools/parse_ac6_swg.py index 20f56e98..f6381d9e 100644 --- a/tools/parse_ac6_swg.py +++ b/tools/parse_ac6_swg.py @@ -106,7 +106,10 @@ def main() -> int: output_root = args.output.resolve() output_root.mkdir(parents=True, exist_ok=True) - swg_files = [input_path] if input_path.is_file() else sorted(input_path.rglob("*_SWG_.bin")) + if input_path.is_file(): + swg_files = [input_path] + else: + swg_files = sorted({*input_path.rglob("*_SWG_.bin"), *input_path.rglob("*.swg")}) parsed = [] for swg_path in swg_files: result = parse_one(swg_path) diff --git a/tools/run_ac6_asset_pipeline.py b/tools/run_ac6_asset_pipeline.py index e1556dc6..aeff4bd9 100644 --- a/tools/run_ac6_asset_pipeline.py +++ b/tools/run_ac6_asset_pipeline.py @@ -13,6 +13,7 @@ DEFAULT_ASSET_ROOT = Path("out") / "build" / "win-amd64-relwithdebinfo" / "asset DEFAULT_RAW_OUT = Path("out") / "ac6_pac_extracted_raw" DEFAULT_DUMP_DIR = Path("out") / "ac6_pac_runtime_dump" DEFAULT_TYPED_OUT = Path("out") / "ac6_runtime_fhm_typed" +DEFAULT_MDLP_OUT = Path("out") / "ac6_mdlp_parts" DEFAULT_SWG_OUT = Path("out") / "ac6_runtime_swg_parsed" DEFAULT_NTXR_OUT = Path("out") / "ac6_runtime_ntxr_exported" @@ -33,13 +34,13 @@ def count_fhm_containers(manifest: dict | None) -> int | None: return None containers = manifest.get("containers") if isinstance(containers, list): - return len(containers) + return sum(1 for item in containers if item.get("kind") == "fhm") return None def main() -> int: parser = argparse.ArgumentParser( - description="Run the AC6 asset extraction pipeline over PAC archives and collected runtime decode dumps." + description="Run the AC6 asset extraction pipeline over offline-decoded PAC archives." ) parser.add_argument( "--asset-root", @@ -57,7 +58,7 @@ def main() -> int: "--dump-dir", type=Path, default=DEFAULT_DUMP_DIR, - help="Directory containing runtime PAC decode dumps", + help="Directory containing optional runtime PAC decode dumps", ) parser.add_argument( "--typed-out", @@ -71,6 +72,12 @@ def main() -> int: default=DEFAULT_SWG_OUT, help="Output directory for parse_ac6_swg.py", ) + parser.add_argument( + "--mdlp-out", + type=Path, + default=DEFAULT_MDLP_OUT, + help="Output directory for extract_ac6_mdlp_parts.py", + ) parser.add_argument( "--ntxr-out", type=Path, @@ -82,6 +89,16 @@ def main() -> int: action="store_true", help="Pass --raw-only to extract_ac6_pac.py", ) + parser.add_argument( + "--no-decompress", + action="store_true", + help="Do not pass --decompress to extract_ac6_pac.py", + ) + parser.add_argument( + "--include-runtime-dumps", + action="store_true", + help="Also process entry_* runtime dumps from --dump-dir when present", + ) parser.add_argument( "--skip-pac-extract", action="store_true", @@ -94,6 +111,7 @@ def main() -> int: raw_out = args.raw_out.resolve() dump_dir = args.dump_dir.resolve() typed_out = args.typed_out.resolve() + mdlp_out = args.mdlp_out.resolve() swg_out = args.swg_out.resolve() ntxr_out = args.ntxr_out.resolve() @@ -104,24 +122,36 @@ def main() -> int: pac_args = [str(THIS_DIR / "extract_ac6_pac.py"), str(asset_root), "--output", str(raw_out)] if args.raw_only: pac_args.append("--raw-only") + elif not args.no_decompress: + pac_args.append("--decompress") run_step(pac_args, repo_root) elif not raw_manifest.exists(): raise SystemExit(f"asset root does not exist and no prior raw manifest is available: {asset_root}") - if not dump_dir.exists(): - raise SystemExit(f"runtime dump directory does not exist: {dump_dir}") - fhm_args = [ str(THIS_DIR / "extract_ac6_runtime_fhm.py"), - "--dump-dir", - str(dump_dir), + "--manifest", + str(raw_manifest), + "--pac-files", + str(raw_out / "files"), "--output", str(typed_out), ] - if raw_manifest.exists(): - fhm_args.extend(["--manifest", str(raw_manifest)]) + if args.include_runtime_dumps: + fhm_args.extend(["--include-runtime-dumps", "--dump-dir", str(dump_dir)]) run_step(fhm_args, repo_root) + run_step( + [ + str(THIS_DIR / "extract_ac6_mdlp_parts.py"), + "--input", + str(typed_out), + "--output", + str(mdlp_out), + ], + repo_root, + ) + run_step( [ str(THIS_DIR / "parse_ac6_swg.py"), @@ -147,14 +177,16 @@ def main() -> int: summary = { "asset_root": str(asset_root), "raw_manifest": str(raw_manifest) if raw_manifest.exists() else None, - "dump_dir": str(dump_dir), + "dump_dir": str(dump_dir) if args.include_runtime_dumps else None, "typed_manifest": str(typed_out / "manifest.json"), + "mdlp_manifest": str(mdlp_out / "manifest.json"), "swg_manifest": str(swg_out / "manifest.json"), "ntxr_manifest": str(ntxr_out / "manifest.json"), } raw_data = read_json(raw_manifest) typed_data = read_json(typed_out / "manifest.json") + mdlp_data = read_json(mdlp_out / "manifest.json") swg_data = read_json(swg_out / "manifest.json") ntxr_data = read_json(ntxr_out / "manifest.json") @@ -162,9 +194,12 @@ def main() -> int: summary["pac_entries"] = raw_data.get("entry_count") summary["pac_extracted"] = raw_data.get("extracted_count") summary["pac_skipped"] = raw_data.get("skipped_count") + summary["pac_decompressed"] = raw_data.get("decompressed_count") fhm_containers = count_fhm_containers(typed_data) if fhm_containers is not None: summary["fhm_containers"] = fhm_containers + if mdlp_data: + summary["mdlp_packages"] = mdlp_data.get("package_count") if swg_data: summary["swg_files"] = swg_data.get("parsed_count") if ntxr_data: diff --git a/tools/unpack_ac6_fhm.py b/tools/unpack_ac6_fhm.py index 011b8459..3d04174b 100644 --- a/tools/unpack_ac6_fhm.py +++ b/tools/unpack_ac6_fhm.py @@ -3,54 +3,11 @@ from __future__ import annotations import argparse import json -import struct +import sys from pathlib import Path - -MAGIC_EXT = { - "FHM ": ".fhm", "NTXR": ".ntxr", "NDXR": ".ndxr", "NSXR": ".nsxr", - "MDLP": ".mdlp", "PLAD": ".plad", "MATE": ".mate", "NFIC": ".nfic", - "NFH\x00": ".nfh", "CAPT": ".capt", "Scen": ".scen", "ACE6": ".ace6", - "RIFF": ".wav", "SWG\x00": ".swg", -} - - -def parse_fhm(blob: bytes): - """Return list of (index, offset, child_bytes) or None if not an FHM.""" - if len(blob) < 0x1C or blob[:4] != b"FHM ": - return None - count = struct.unpack_from(">I", blob, 0x10)[0] - if count == 0 or count > 100000: - return [] - offs_base = 0x14 - size_base = offs_base + count * 4 - if size_base + count * 4 > len(blob): - return [] - offsets = [struct.unpack_from(">I", blob, offs_base + i * 4)[0] for i in range(count)] - sizes = [struct.unpack_from(">I", blob, size_base + i * 4)[0] for i in range(count)] - out = [] - for i, (off, sz) in enumerate(zip(offsets, sizes)): - if off == 0 or off >= len(blob): - continue - end = off + sz - if end > len(blob) or end <= off: - nxt = offsets[i + 1] if i + 1 < count else len(blob) - end = min(nxt, len(blob)) - if end > off: - out.append((i, off, blob[off:end])) - return out - - -def magic_of(blob: bytes) -> str: - return blob[:4].decode("latin-1") if len(blob) >= 4 else "" - - -def ext_for(blob: bytes) -> str: - return MAGIC_EXT.get(magic_of(blob), ".bin") - - -def safe_tag(magic: str) -> str: - return "".join(c if c.isalnum() else "_" for c in magic) or "raw" +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from ac6_fhm import ext_for_blob, magic_of, parse_fhm, safe_tag def unpack(blob: bytes, out_dir: Path, root: Path, depth: int, max_depth: int) -> list[dict]: @@ -59,15 +16,18 @@ def unpack(blob: bytes, out_dir: Path, root: Path, depth: int, max_depth: int) - return [] recs = [] out_dir.mkdir(parents=True, exist_ok=True) - for idx, off, child in children: - magic = magic_of(child) - name = f"{idx:04d}_{safe_tag(magic)}{ext_for(child)}" + for child in children: + magic = child.magic + name = f"{child.index:04d}_{safe_tag(magic)}{ext_for_blob(child.data)}" path = out_dir / name - path.write_bytes(child) - rec = {"index": idx, "offset": off, "size": len(child), "magic": magic, - "path": str(path.relative_to(root)).replace("\\", "/")} - if depth < max_depth and child[:4] == b"FHM ": - nested = unpack(child, out_dir / f"{idx:04d}_FHM", root, depth + 1, max_depth) + path.write_bytes(child.data) + rec = {"index": child.index, "offset": child.offset, + "declared_size": child.declared_size, "size": child.size, + "magic": magic, "path": str(path.relative_to(root)).replace("\\", "/")} + if child.notes: + rec["parser_notes"] = child.notes + if depth < max_depth and child.data[:4] == b"FHM ": + nested = unpack(child.data, out_dir / f"{child.index:04d}_FHM", root, depth + 1, max_depth) if nested: rec["children"] = nested recs.append(rec) @@ -97,7 +57,7 @@ def main() -> int: stem = src.stem.split(".")[0] if blob[:4] != b"FHM ": # Top-level non-FHM (raw entry): copy through as a leaf. - dst = out_root / f"{stem}{ext_for(blob)}" + dst = out_root / f"{stem}{ext_for_blob(blob)}" dst.write_bytes(blob) manifest.append({"source": src.name, "kind": "leaf", "magic": magic_of(blob), "path": str(dst.relative_to(out_root)).replace("\\", "/")})