DOAX2 Recomp

DOAX2 Recomp is a native Windows PC port of Dead or Alive Xtreme 2 that runs at 30 or 60 FPS.

README

DOAX2 Recomp

DOAX2 Recomp

A native Windows PC port of Dead or Alive Xtreme 2 (Xbox 360), built with the ReXGlue SDK static recompiler. The game's PowerPC code is translated ahead of time into C++ and runs natively, at 30 FPS or at a native 60 FPS with the original game speed.

Warning

At the moment, Intel integrated graphics are not supported. Dedicated graphics cards by Intel have not been tested; expect issues on these. The system requirements below are also estimates. Feel free to try running the game on low-end hardware.

This repository and its releases do not contain the game. No game code, data, audio or video is included. You need your own copy of Dead or Alive Xtreme 2 for the Xbox 360. Please do not share or link to game files in issues or pull requests. The launcher uses a fan-made project logo; its background shows a Dead or Alive character, who belongs to Koei Tecmo and is not covered by this project's license.

Not affiliated with or endorsed by Koei Tecmo, Team NINJA or Microsoft. All trademarks belong to their respective owners.

Current version: 1.1.4 (see CHANGELOG.md).

Supported game version

Only the retail disc version is supported:

Title ID544307D2
Media ID21B9628E
default.xex version3 (base version 3), XEX2
default.xex SHA-256c4a14853e1f7af951be34f380604113703638780b36d5e74e674fe7431992870

Title updates are not supported.

Playing (release build)

  1. Download the latest DOAX2-Recomp-v<version>-win64.zip from the Releases page and extract it anywhere.
  2. Extract your Xbox 360 disc (for example with extract-xiso) into the folder extracted game files here, so that default.xex sits directly inside it.
  3. Run DOAX2 Recomp Launcher.exe, choose 30 or 60 FPS and press PLAY. Settings and Graphics Settings hold the other options, each with an explanation. Input sets the keyboard keys and player 1's controller buttons (experimental). Update installs the newest release (see Updating).

Saves are written to the userdata folder next to the launcher.

Updating

From v1.1.3 on, the launcher can update itself:

  1. Press Update on the launcher's main screen. It checks GitHub for the latest release and shows your version and the newest one.
  2. If a newer version is available, press Install Update. Progress bars show each step: the download, a SHA-256 check against the release's SHA256SUMS.txt, unpacking and installing.
  3. Press Restart Launcher when it is done.

Updating keeps your saves (userdata), your settings (config) and your game files (extracted game files here). If a file cannot be replaced, the update stops and your previous version is restored. Close the game before updating. The launcher only goes online while the Update page is open.

Versions before v1.1.3 have no Update page: download the new release zip and extract it over your existing folder (or copy your userdata and config folders into the new one).

Controls

Xbox, PlayStation, Switch and most other controllers work. The game reads buttons by their position, so the bottom face button (Xbox A, PlayStation Cross, Switch B) confirms.

The keyboard also works as a controller, together with a connected pad. Default keys:

ControllerKey
Start / BackEnter / Tab
A / B / X / YSpace / Backspace / F / R
LB / RB / LT / RTQ / E / Z / C
Left stick (click)W A S D (V)
Right stick (click)I J K L (H)
D-padArrow keys

The launcher's Input page (experimental) changes them: the Keyboard tab sets two keys for every controller input, and the Controller tab remaps player 1's controller buttons, triggers and stick directions. Each tab has Reset to Defaults.

Network access

The game does not use the internet or your local network. Since v1.1.2 every network call is blocked, so the game never opens a network port and Windows Firewall has nothing to ask about.

The only exception is the launcher's Update page (since v1.1.3). Only while you open it, it asks GitHub for the latest release, and Install Update downloads it, checks its SHA-256 checksum and replaces the program files. Your saves, settings and game files are kept. Nothing about you or your PC is sent.

Before v1.1.2, Windows could show a firewall prompt for doax2.exe. The original Xbox 360 game prepares a System Link port (UDP 1000) when it starts, and that made Windows ask. Nothing was ever sent or downloaded, and it was safe to block. Developers can read docs/NETWORK.md for the details and for how to turn networking back on.

System requirements

The game is rendered on the GPU through Direct3D 12, emulating the Xbox 360's graphics chip, so the graphics card matters most. Targets are 60 FPS with Resolution Scale at 1x.

1080p: Minimum1080p: Recommended1440p: Minimum1440p: Recommended
Graphics cardNVIDIA RTX 2060 Super / RTX 3060
AMD RX 6600 XT
NVIDIA RTX 3060 Ti / RTX 4060 Ti
AMD RX 6700 XT
NVIDIA RTX 3060 Ti / RTX 4060 Ti
AMD RX 6700 XT
NVIDIA RTX 4070 / RTX 3080
AMD RX 6800 / RX 7800 XT
ProcessorIntel Core i5-10400
AMD Ryzen 5 3600
Intel Core i5-12400
AMD Ryzen 5 5600X
Intel Core i5-12400
AMD Ryzen 5 5600X
Intel Core i5-12600K
AMD Ryzen 7 5800X3D
Memory8 GB16 GB16 GB16 GB

All configurations: Windows 10 or 11 (64-bit), a DirectX 12 graphics card with up-to-date drivers, and about 7 GB of free space (the extracted game is about 6.2 GB, the release about 55 MB).

For 4K at 60 FPS, plan on an NVIDIA RTX 4080 or AMD RX 7900 XTX class card.

Tested results
System1080p1440p4K
RTX 2060 Super + Core i5-12600K60 FPS~45 FPS
RX 6950 XT60 FPS~50 FPS
RTX 309060 FPS~50 FPS

The other cards in the table are placed by their typical performance relative to these tested cards: about 1.35x an RTX 2060 Super for 1440p at 60 FPS, and about 1.2x an RX 6950 XT / RTX 3090 for 4K. The processor and memory recommendations are estimates. Raising Resolution Scale above 1x needs a much faster graphics card. Results from other hardware are welcome in the issues.

Building from source

See docs/BUILDING.md. In short:

git clone --recurse-submodules <this repository>
cd DOAX2-Recomp
.\scripts\setup-sdk.ps1        # SDK submodule + this project's SDK patch + SDK build
# put your extracted game files in .\game (default.xex directly inside)
.\scripts\generate-code.ps1    # recompile default.xex into generated/ (never committed)
.\scripts\configure-game.ps1
cmake --build out\game

Repository layout

PathContents
src/Port code: main.cpp, the 60 FPS / timing hooks (doax2_60fps.cpp), the release launcher (launcher_public.cpp) and the developer launcher (launcher.cpp)
resources/launcher/Launcher art (background, fan-made logo, icon) embedded into the launcher
config/, doax2_manifest.tomlReXGlue code generation manifest (function boundaries, fibers)
patches/rexglue-sdk/This project's changes to ReXGlue SDK v0.10.0 (renderer fixes, title music player)
sdk/rexglue-sdk/ReXGlue SDK v0.10.0 (git submodule)
scripts/Setup, code generation, build, release packaging and analysis helpers
tests/, tools/Host-side tests and small developer utilities
docs/Build and release guides; docs/notes/ holds engineering notes from development
game/Your extracted game files go here (ignored by git)

Branches

  • main: development. Fork this to make changes.
  • release: the code that release builds are made from. Approved changes are merged from main, then a release is built with scripts/build-release.ps1 and published on the Releases page (see docs/RELEASING.md).

License

The port's own code is BSD 3-Clause (see LICENSE); it covers only material owned by the project's contributors and grants no rights to the game. Third-party components keep their own licenses, listed in THIRD-PARTY-NOTICES.md.