A crash cannot be unit-tested, but the disk state it leaves behind can. each failure point of the atomic write path: an abandoned temp, a death between the two commit renames, a stale write-in-progress marker, is constructed directly on disk and the recovery code asserted against it. The drill runs device-level without the game, deterministically.
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. 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.
Disclaimer
This project is an unofficial, non-commercial fan effort. It is not affiliated with, endorsed by, or associated with Bandai Namco Entertainment, Project Aces, or Microsoft. Ace Combat 6: Fires of Liberation and all related assets, characters, and trademarks are the property of their respective owners.
This repository contains source code only. It does not contain, and will never contain, any game data. To use this software you must supply your own legally obtained copy of the game. No game files, disc images, DLC packages, title updates, or console keys are distributed here, and none may be committed to this repository.
The software is provided as-is, without warranty of any kind. It is experimental: expect bugs, crashes, and visual or audio differences from the original console release. Do not redistribute builds bundled with game data.
Features
Everything listed here is on by default unless noted, and each fix can be turned off individually. See Important console variables.
- 60 FPS. The game can now run up to 60 FPS, with the flight model corrected.
- High quality terrain. Terrain is drawn at the full resolution shipped on the disc, twice what the console rendered. Cracks and seams that appear over mountains are also removed.
- Resolution scaling. Render internally at 2× (1440p) or 3× (2160p) and beyond for a much sharper image.
- Ultrawide support. Optional hor+ widescreen in missions and cutscenes.
- AC7-like keyboard and mouse controls. Mouse steering, remappable bindings, live-reloaded from a config file. Controllers work out of the box, including a virtual pad when none is connected.
- Japanese language support.
- Texture replacement modding — see Modding docs.
Fixes
Most of the known issues with the recomp have been fixed. Please report if you have found more issues.
Performance is a known issue with the recomp! Due to native renderer not yet implemented, a powerful GPU is recommended to be able to run the game at 60 FPS at high resolution!
Quick Start Guide
Requirements
| OS | Windows 10 or 11, 64-bit |
| CPU | Must support AVX2 — Intel 4th-gen Core (2013) or newer, AMD Zen (2017) or newer. |
| GPU | Direct3D 12 capable |
| Game data | Your own legally obtained copy of Ace Combat 6 (US region only! Europe and Japan is not supported) |
Note that the system requirement does not guarantees that the recomp will perform well on your system!
Steps
-
Get a build. Either download from release, or build from source (see How to build).
-
Provide the game data. Put one of the following next to
ac6recomp.exe:- the game's
.isodisc image or - an
assets/folder containing the extracted game files.
- the game's
-
(Optional) Add DLC. Extracted DLC packages can be placed next to the executable, inside a folder named
dlc/. -
Run
ac6recomp.exe. On first run it createsac6recomp.tomlbeside the executable, which contains the game settings. -
In-game keys:
F3- toggle FPS overlayF4- settings overlay (browse and change most options live)F11- toggle fullscreen
Important console variables
Settings live in ac6recomp.toml next to the executable. Most can also be changed live in the F4 overlay. Some only take effect after a restart.
Important
In
.toml, use forward slashes in paths. A single backslash is an escape character and one bad line silently voids the entire file, sending every setting back to its default.
| cvar | default | what it does |
|---|---|---|
user_language |
1 |
Sets the language. 1 for English, 2 for Japanese. |
fullscreen |
false |
Start in fullscreen (F11 toggles at runtime) |
draw_resolution_scale_x |
1 |
Internal render scale on the x axis. 1 for 1280, 2 for 2560, 3 for 3840, etc. |
draw_resolution_scale_y |
1 |
Internal render scale on the y axis. 1 for 720, 2 for 1440, 3 for 2160, etc. |
ac6_unlock_fps |
true |
Allow framerates above the stock 30 fps |
ac6_dynamic_vblank |
true |
Keep menus and cutscenes at their native 60 Hz pacing while gameplay runs at your target |
ac6_performance_mode |
true |
Reduces logging and diagnostic overhead |
ac6_widescreen |
false |
Ultrawide support (hor+) in missions. Menus and hangar stay 16:9 |
ac6_widescreen_cinematics |
true |
With ultrawide on, also widen in-engine cinematics. They are staged for 16:9, so this can expose set edges |
ac6_terrain_hd |
true |
Draw terrain at the full shipped resolution (2× what the console drew), which also removes terrain cracks |
ac6_fullres_effects |
false |
Draw clouds, smokes, trails, and afterburner effect at native resolution (2× what the console drew), slightly affects performance |
ac6_cursor_hide_seconds |
3.0 |
Hide the mouse cursor after this many idle seconds. 0 = never hide |
ac6_kbm_enabled |
false |
Enable keyboard and mouse controls. Off by default — controllers work out of the box |
ac6_kbm_config |
ac6_input.toml |
Path to the key bindings file. Edits are picked up live |
ac6_texture_swaps_enabled |
false |
Enable texture replacement mods (see Modding docs) |
For 1440p, set both draw_resolution_scale_x and draw_resolution_scale_y to 2. For 2160p or 4K, set them to 3.
For 1440p Ultrawide, it is recommended to set draw_resolution_scale_x to 3 and draw_resolution_scale_y to 2.
Fixes
These are on by default and exist so a problem can be isolated. Turning one off restores the original behavior, bugs included.
| cvar | default | what it fixes |
|---|---|---|
ac6_effect_mode_fix |
false |
IMPORTANT: If your clouds and afterburner effects are flickering, set this to true! |
ac6_fix_scaling |
true |
Upscaling mosaic on deferred passes (only active above 1× scale) |
ac6_fix_deswizzle |
true |
Mosaic and streak artifacts from the game's manual texture de-swizzle |
ac6_fix_dof |
true |
Cutscene depth-of-field striping and ghosting above 1× scale |
ac6_fix_trails |
true |
Invisible missile and jet trails |
ac6_fix_water_line |
true |
Lines across open water seen at a grazing angle |
ac6_flare_drop_quad2 |
true |
Faint rectangle around the sun |
ac6_cutscene_resync |
true |
Keeps cutscene video locked to its audio after a render hitch |
Default keybinds
Controllers work with no configuration. Keyboard and mouse are off by default. Set ac6_kbm_enabled = true to enable them.
Bindings live in ac6_input.toml, created next to the executable on first run after ac6_kbm_enabled is enabled. By default, the keybinds are similar to Ace Combat 7.
Flight
| action | keys | action | keys | |
|---|---|---|---|---|
| Pitch down / up | 1 / 3 |
Fire machine gun | Mouse1, Left Ctrl |
|
| Roll left / right | A / D |
Fire missile | Mouse2, Space |
|
| Yaw left / right | Q / E |
Change weapon | Mouse wheel, C |
|
| Accelerate | W |
Switch targets | Tab |
|
| Decelerate | S |
Change view | V |
|
| High-G turn | 2 |
Radar / map | R |
|
| Autopilot | Z, X |
Landing gear | G |
|
| Pause | Escape |
Mouse steers the aircraft. Hold Left Alt (camera control) to look around with the mouse instead of steering.
Camera: Numpad 8 / 2 / 4 / 6 — up / down / left / right.
Wingman commands: arrow keys.
Menus
| action | keys |
|---|---|
| Navigate | W A S D or arrow keys |
| Confirm | Space, Mouse1 |
| Cancel | Escape, Backspace, Mouse2 |
| Start | Enter |
| Back | Tab |
How to build
Option A: Automatic setup (recommended)
The automated build script handles environment setup, ISO extraction, and the multi-step CMake build:
- Place your legally obtained Ace Combat 6 ISO in the repository root directory.
- Run
setup_and_build.bat. The script locates Visual Studio, extracts the assets, runs codegen, and builds the runtime using the MSVC backend. - Copy the compiled executable and default config to the root directory to run:
Copy-Item out/build/win-amd64-relwithdebinfo/ac6recomp.exe . -Force Copy-Item out/build/win-amd64-relwithdebinfo/ac6recomp.toml . -Force - Run
ac6recomp.exedirectly from the root directory. - Optionally create a shortcut to the executable.
Option B: Manual build
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.
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.
Modding docs
Project layout
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.