# RecompOne trial — Ace Combat 2
Static recompilation of **Ace Combat 2 (USA)** on [RecompOne](./RecompOne): PS1 MIPS → C#, with a host runtime for CD-ROM, IRQ/DMA, GPU HLE, and BIOS pad.
## Live title menu
Recompiled **SLUS_004.04 → stage-2 loader → real game @0x80018000** reaches the stock title screen and main menu (`START GAME` / `LOAD` / `OPTION`).

▶ MP4 (title + main menu, ~30s)
Captured 2026-07-24 from the recomp host under Xvnc (`DISPLAY=:99`, podman/Rocky 9).
## Pipeline
```
bootstrap (CD288 0→14)
→ Exec stage-2 @0x80160000
→ Exec real game @0x80018000 (pc0=0x8001BF2C)
→ CD resource load + VSync/GPU OT
→ title + main menu
```
| Area | Status |
|------|--------|
| Full boot + chain-load | Done |
| Title / main menu render | Done (see clip above) |
| BIOS InitPAD2 + host menu inject | Done (guest RAM sees buttons) |
| Confirm START GAME → mission | In progress |
| Audio | Not wired in container |
## Quick start
```bash
# Virtual display (headless)
source tools/run_xvnc.sh
export DISPLAY=:99 LIBGL_ALWAYS_SOFTWARE=1
# One-shot: recomp bootstrap + host under podman
export AC2_CD288_MAX_FRAMES=100000
./tools/run_ace_combat_2.sh
```
Longer real-game window / menu inject timing:
```bash
export AC2_FOLLOW_EXEC=1 AC2_FULL_INIT=1 AC2_GUEST_TICK=1
export AC2_CD288_MAX_FRAMES=100000
export AC2_MENU_WAIT_PRESENTS=500 # presents after real entry before Cross
tools/run_host_podman.sh "samples/ace-combat-2/Ace Combat 2 (USA).cue"
```
## Layout
| Path | Role |
|------|------|
| `RecompOne/` | Recompiler + runtime (submodule) |
| `RecompOne.HostTemplate/` | AC2 host harness (`AceCombat2Play`) |
| `samples/ace-combat-2*` | Disc config + recomp seeds (dumps not committed) |
| `docs/` | Research / plan / impl notes |
| `media/` | README showcase clips |
| `tools/run_ace_combat_2.sh` | One-command run |
Process log index: [`docs/README.md`](docs/README.md).
## Notes
- Disc images and raw dumps are gitignored; you must supply a legal dump to run.
- `videos/` holds local full-length captures and is not committed.
- This workspace is a bring-up trial; upstream project docs live under `RecompOne/README.md`.