# Medal of Honor Recompiled + Full 6dof VR
[](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/releases)
[](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/releases/tag/v0.1.4)
Static recompilation of **Medal of Honor** built on
[psxrecomp](https://github.com/mstan/psxrecomp) and
[recomp-ui](https://github.com/RetroPortingToolKit/recomp-ui).
Play the original game on a flat display, or opt into the experimental native
VR alpha with head tracking, per-eye rendering and tracked-weapon controls.
Flat play is the default; VR is enabled through a separate launcher.
The **v0.1.4 Windows native alpha** is available from this fork's
[releases](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/releases/tag/v0.1.4).
See [alpha installation and controls](ALPHA_README.md) before testing.
| | |
|---|---|
| Players | 2 |
| Region | USA |
| Publisher | - |
| Year | - |
Scaffolded with the New Project Layout. See
`psxrecomp/docs/GAME_PROJECT_SETUP.md` for the full flow.
## Retro Launcher
You can run this title **standalone** (download the release zip, point it at
your disc, play), or manage installs, updates, and disc/BIOS wiring with
**[Retro Launcher](https://github.com/RetroPortingToolKit/Retro-Launcher)** —
the Retro Compilation Manager hub for self-compiling recomps.
[Downloads](https://github.com/RetroPortingToolKit/Retro-Launcher/releases) ·
[Full README & features](https://github.com/RetroPortingToolKit/Retro-Launcher#readme)
Retro checks for updates, installs the prebuilt release zips, and automates
BIOS/ROM/save plumbing so you are not stuck repeating each game’s first run by hand.
## Legal
You must own the original game. Disc images under `disc/` are gitignored and
must never be committed. Retail BIOS dumps are not redistributed and no C
derived from one may be committed; releases run on the bundled MIT OpenBIOS.
`generated/` (the recompiled game C) **is committed**: releases ship the
compiled game, built by CI from that tree. Regenerate and commit it whenever
seeds or the framework pin change.
Default app icon: `assets/psxrecomp.ico` (and `.png` / `.svg`) — Retro-themed controller mark from `psxrecomp/assets/`. Windows builds embed it via `APP_ICON`.
Optional box art under `launcher_assets/img/` may come from
[libretro-thumbnails](https://github.com/libretro-thumbnails/libretro-thumbnails)
(`Named_Boxarts`); see `BOXART_SOURCE.txt` when present.
## Flat play
Launch `Medal_of_Honor__Recompiled.exe` normally and select your own disc image
in the launcher. No headset is required. The supported disc is **SLUS-00974
(NTSC-U)**; game data is not included.
The Windows release also includes `RunFlat.bat`, which clears VR overrides.
For a local Windows build, launch from the project root in a fresh terminal:
```powershell
.\build-release\Medal_of_Honor__Recompiled.exe --game game.toml --disc "C:\Games\Medal of Honor\medal-of-honor.cue"
```
Replace the example disc path with your own. Add `--no-launcher` to boot
directly. OpenXR support can be compiled into the same executable while ordinary
launches retain flat rendering and normal controller input. VR environment
overrides should be absent for flat play; the VR wrapper restores its process
environment when it exits.
`RunVR-VDXR.bat -Desktop` is a stereo diagnostic mode, not the ordinary flat launch.
## Experimental VR alpha (Windows)
The current [v0.1.4 Alpha](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/releases/tag/v0.1.4)
includes controller tracking for all ten weapon types, left-stick-click jump,
headset color and head-turn visibility fixes, a tracked-weapon barrel laser that
ends on the surface it hits, and a 1080p default. Quest 3 through
Virtual Desktop with **VDXR** is the tested setup.
### Setup and launch
Download the Windows release and extract the entire ZIP. Connect your headset
and double-click the launcher for your runtime: `RunVR-VDXR.bat` (Virtual
Desktop VDXR), `RunVR-SteamVR.bat` or `RunVR-Oculus.bat` (Meta Quest Link / Air
Link). Each selects that runtime for the launch and leaves the system's active
runtime unchanged. Select your own
**SLUS-00974 (NTSC-U)** CUE/BIN image when prompted; the launcher remembers its
location. Keep the BIN files beside the CUE.
Boot videos, menus and briefing appear on a screen in VR; gameplay switches to
per-eye rendering. No save state, Python installation or development tools are
required. The game runs until you close it, and startup errors remain visible
in the console. Keep your `saves/` folder when updating.
To select a disc explicitly:
```powershell
.\RunVR-VDXR.bat -DiscPath "C:\Games\Medal of Honor\medal-of-honor.cue"
```
Use `RunFlat.bat` for ordinary flat play. See
[ALPHA_README.md](ALPHA_README.md) for further installation details and alpha
limitations.
### Current Touch controls
| Control | Gameplay |
| --- | --- |
| Left stick | Move / strafe |
| Right stick | Smooth turn |
| Right trigger | Fire |
| A | Use |
| B | Cycle weapon |
| X | Reload / use, according to game context |
| Right stick click | Toggle crouch |
| Left stick click | Jump |
| Left Menu button | Pause / Start |
| Right grip | Hold to show the barrel laser (ends on the surface it hits) |
| Left grip | Hold to aim a mounted machine gun with one stick |
In menus, the left stick navigates, A or right trigger confirms, and B goes back.
The barrel laser is a laser sight on the tracked weapon: **hold the right grip**
and the beam runs from the muzzle to whatever it hits, with a dot marking the
impact. It appears for firearms only.
A mounted machine gun aims with a single stick: **hold the left grip** and one
hand covers both traverse and elevation. Let go and normal movement returns.
### Report issues and contribute
Report problems in this fork's
[issue tracker](https://github.com/FractalEngineer/Medal-Of-Honor-PSX-Recomp/issues).
Include the build version, headset, OpenXR runtime, connection method,
mission/location, steps to reproduce, and any relevant captures. Mention whether
the issue also occurs in flat play. Do not attach disc images or retail BIOS dumps.
For development context, start with the
[VR handoff](docs/reverse/VR_HANDOFF.md) and
[alpha todo list](docs/reverse/VR_ALPHA_TODO.md). Game-specific weapons, controls
and HUD changes belong here; generic framework work is tracked in
[the upstream inventory](docs/UPSTREAM_PENDING.md).
## Development build
```bash
git submodule update --init --recursive
./psxrecomp/tools/ci/build_emitters.sh
python3 psxrecomp/psxrecomp_cli.py generate \
--config game.toml --project-root . --disc disc/.cue
git add generated && git commit -m "Regenerate game C"
cmake -S . -B build-release -G Ninja -DCMAKE_BUILD_TYPE=Release -DPSXRECOMP_BIOS_STEMS=OpenBIOS
cmake --build build-release --target psx-runtime
```
For Windows VR, configure the Release build with `-DPSX_OPENXR=ON`, or use
`RunVR-VDXR.bat -Build` after preparing the build tools and generated game C.
Compiling OpenXR support does not automatically enable VR when launching the
executable.
Releases `v0.1.0` through `v0.1.3` use locally verified Windows alpha packages. CI builds
its platform matrix without replacing those tested assets. Other tags `vX.Y.Z`
(or the *Release builds* workflow) build the
committed `generated/` C on Linux, Windows and macOS and attach
`moh--.zip`, the compiled game. Locally:
`scripts/package_release.sh build-release linux-x64`.
Windows packaging requires OpenXR and TCP startup inspection to be enabled
(`-DPSX_OPENXR=ON -DPSX_DEBUG_TOOLS=ON`), and includes both launchers.
## Symbols
Progressive map: `symbols.toml` → `python3 tools/sync_symbols.py` →
`psx_symbols.h` (`PSX_FN_*`). See `psxrecomp/docs/SYMBOLS.md`.
## Framework pins
Submodule gitlinks (`psxrecomp`, optional `recomp-ui`, nested `recomp-net`)
are authoritative. `framework_pins.txt` is an optional scaffold snapshot;
release CI logs SHAs with `record_pins.sh` but builds whatever the gitlinks
resolve to. Bump submodules deliberately — do not float on `main`/`master`
in release CI.
---
R.A.I.D. — Retro AI Development · a Discord for AI-assisted retro reverse-engineering, decomp & recomp