mirror of
https://github.com/sal063/AC6_recomp
synced 2026-07-06 22:03:06 -04:00
112 lines
4.5 KiB
Markdown
112 lines
4.5 KiB
Markdown
DEV TESTING BRANCH. THINGS WILL BREAK HERE
|
|
|
|
# AC6Recomp
|
|
|
|
> [!CAUTION]
|
|
> This project is still work in progress. It can boot and run in-game, but bugs, crashes, and missing functionality should be expected.
|
|
|
|
A native PC port of **Ace Combat 6: Fires of Liberation** built on top of the [ReXGlue SDK](https://github.com/rexglue/rexglue-sdk). The Xbox 360 PowerPC game code is statically recompiled to x86-64, while visible rendering currently remains authoritative in the vendored RexGlue/Xenia graphics backend.
|
|
|
|
The AC6-specific graphics layer in this repo is now focused on:
|
|
|
|
- frame capture and diagnostics
|
|
- swap-path inspection and overlay reporting
|
|
- backend-fix routing for AC6-specific rendering issues
|
|
- future selective override and modding hooks
|
|
|
|
The legacy AC6 replay renderer is still present as experimental tooling, but it is **not** the default render path and it does **not** hijack presentation unless `ac6_graphics_mode=legacy_replay_experimental` and `ac6_experimental_replay_present=true`.
|
|
|
|
## Repository policy
|
|
|
|
This repository contains source code only.
|
|
|
|
Do **not** commit or redistribute:
|
|
|
|
- retail game data
|
|
- `default.xex`
|
|
- disc images, packages, title updates, or firmware files
|
|
- console keys or any other proprietary Microsoft / publisher material
|
|
|
|
Users must supply their own legally obtained game files locally.
|
|
|
|
## Build
|
|
|
|
### Option A: Automatic Setup (Recommended)
|
|
You can use the automated build script which handles environment setup, ISO extraction, and the multi-step CMake build:
|
|
1. Place your legally obtained **Ace Combat 6 ISO** in the repository root directory.
|
|
2. Run `setup_and_build.bat`. The script will automatically locate Visual Studio, extract the assets, run codegen, and build the runtime using the MSVC backend.
|
|
3. Once completed, copy the compiled executable and default config to the root directory to run:
|
|
```powershell
|
|
Copy-Item out/build/win-amd64-relwithdebinfo/ac6recomp.exe . -Force
|
|
Copy-Item out/build/win-amd64-relwithdebinfo/ac6recomp.toml . -Force
|
|
```
|
|
4. Run `ac6recomp.exe` directly from the root directory.
|
|
5. Optionally create a shortcut to the executable file.
|
|
|
|
### Option B: Manual Build
|
|
```bash
|
|
cmake --preset win-amd64-relwithdebinfo
|
|
cmake --build --preset win-amd64-relwithdebinfo --target ac6recomp_codegen
|
|
cmake --preset win-amd64-relwithdebinfo
|
|
cmake --build --preset win-amd64-relwithdebinfo
|
|
```
|
|
|
|
The executable is placed at `out/build/win-amd64-relwithdebinfo/ac6recomp.exe`.
|
|
|
|
On Windows, use the preset commands above rather than plain `cmake -L` in the repo root. If you previously configured from an `x86` Visual Studio prompt or with the wrong compiler on `PATH`, delete `out/build/win-amd64-relwithdebinfo` and re-run the preset from a normal 64-bit PowerShell/CMD window or an x64 Native Tools prompt.
|
|
|
|
## Recommended Configuration Tweaks
|
|
|
|
Create or modify `ac6recomp.toml` in your out or root directory with these settings to optimize your gameplay experience:
|
|
|
|
```toml
|
|
# Play in Fullscreen
|
|
fullscreen = true
|
|
|
|
# (Forces point lists to expand to triangle strips in the VS, bypassing deprecated GPU point-sprite limits)
|
|
d3d12_expand_point_sprites_in_vs = true
|
|
|
|
# Eliminate Microstutters
|
|
# (Decouples presentation from UI event loop thread and enables G-Sync/FreeSync VRR tearing support)
|
|
host_present_from_non_ui_thread = true
|
|
d3d12_allow_variable_refresh_rate_and_tearing = true
|
|
d3d12_low_latency_swap_chain = true
|
|
d3d12_max_frame_latency = 1
|
|
```
|
|
|
|
## Modding Docs
|
|
|
|
- [Texture Swap Modding Guide](docs/TEXTURE_SWAP_MODDING_GUIDE.txt)
|
|
- [Texture Swap Reference](docs/TEXTURE_SWAPS.txt)
|
|
|
|
## Runtime Defaults
|
|
|
|
The default AC6 graphics configuration after this pivot is:
|
|
|
|
- `ac6_native_graphics_enabled=true`
|
|
- `ac6_graphics_mode=hybrid_backend_fixes`
|
|
- `ac6_render_capture=true`
|
|
- `ac6_experimental_replay_present=false`
|
|
|
|
That means the RexGlue/Xenia D3D12 backend remains the visible renderer by default, while AC6-specific analysis and diagnostics stay active.
|
|
|
|
## Project layout
|
|
|
|
```text
|
|
AC6_recomp/
|
|
|- src/
|
|
| |- ac6_backend_fixes/ AC6-specific backend diagnostics and fix routing
|
|
| |- ac6_native_graphics.* AC6 frame-boundary analysis and overlay status
|
|
| |- ac6_native_renderer/ Experimental replay renderer and research tooling
|
|
| |- d3d_hooks.* Guest D3D capture and shadow-state hooks
|
|
| `- render_hooks.* Timing and frame pacing hooks
|
|
|- thirdparty/rexglue-sdk/ Vendored RexGlue SDK
|
|
|- generated/ Generated recomp sources
|
|
|- assets/ Local game files, not kept in repo
|
|
`- docs/RENDERER_ARCHITECTURE.txt
|
|
```
|
|
|
|
## License
|
|
|
|
See [LICENSE](LICENSE).
|