mirror of
https://github.com/sal063/AC6_recomp
synced 2026-06-03 02:30:17 -04:00
1.9 KiB
1.9 KiB
Texture Swaps
The texture swap pipeline now lives in the authoritative RexGlue/Xenia D3D12 texture cache. It is dump-and-replace based, so you do not need to hand-author per-texture IDs before you can start modding.
Workflow
- Launch the game and let the texture cache see the textures you care about.
- Dumped files appear under:
%USERPROFILE%\\Documents\\ac6recomp\\texture_dumps\\- or the directory set by the
user_data_rootruntime CVAR.
- Each dumped texture produces:
<stable_key>.dds<stable_key>.json
- Edit the dumped DDS without changing its format, dimensions, array size, or mip count.
- Place the replacement DDS at:
override/textures/<stable_key>.dds- or
mods/<mod_name>/textures/<stable_key>.dds
- Restart or cause the texture to reload.
override/textures wins over mod folders. Within mods, lexicographically later folder names win.
Stable Keys
Dump filenames are generated from the texture cache key, not guessed game names. The filename includes:
- a hash of the full cache key
- base and mip pages
- dimension
- size
- mip count
- guest format
- endian/tiled/packed/signed/scaled flags
That makes the key stable enough for round-tripping replacements while still being readable.
Metadata Sidecars
Each JSON sidecar records:
- guest texture key fields
- chosen host DXGI format
- AC6 frame index
- latest AC6 backend signature ID
- active VS/PS hashes
- signature tags from the AC6 backend classifier
This is meant for filtering and later tooling, not for the core replacement path.
Current Scope
First pass limitations:
- replacement files must be DX10-header DDS files
- replacement format, dimensions, depth/array size, and mip count must match exactly
- cube textures are skipped
- unsupported DXGI formats fall back to the original guest texture
The fallback path is always the original guest texture load. A bad or missing replacement will not block rendering.