Skip to content

Releases

0.3.0 Alpha

Choose a tag to compare

@NoRain211 NoRain211 released this 09 Nov 07:33

0.3.0 Alpha

Downloads: DOA2U-0.3.0-Alpha.zip is for Windows. DOA2U-0.3.0-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.3.0-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime. On Windows it renders through Direct3D 11, or Vulkan if you choose it, and plays sound through XAudio2. On macOS and Linux it renders through Metal or Vulkan with SDL_GPU and plays sound through SDL3. Story, Watch and the attract demo play on every stage at up to 4K, in the game's native 16:9 or widened to 16:10, ultrawide or 32:9. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.3.0

Wider screens

  • 16:10, ultrawide and 32:9 (#121, #133, #111). The launcher's Screen setting now offers 16:10, Ultrawide (your main screen's own shape) and 32:9 beside 4:3 and 16:9. The 3D view widens to the screen; the HUD and menus keep their 16:9 shape. Above 480p the Direct3D 11 window now covers the screen with the picture fitted inside it. Online matches and replays stay 16:9 so both games agree. Thanks to osricen for the request.
  • No pop-in at the sides of a wide screen, and the Story character select portrait stays inside its panel (#133, #136, #135). Thanks to Moonalesca for the report.
  • Koku An's polished floor reflects across the whole width at 32:9 (#144, #139). Outside the middle 16:9 it used to flicker with a smeared edge of the reflection. Thanks to Moonalesca for the report.
  • A maximized 480p Direct3D 11 window keeps its shape (#141, #129), with black bars instead of a stretched picture. Thanks to TheMilkmanCan for the suggestion.
  • Vulkan fills the screen on Windows above 480p, borderless, as Direct3D 11 does (#120, #109). Thanks to Moonalesca for the report.

New options

  • Hold Back to quit (#125, for #59). Holding Back (Backspace on the keyboard) for two seconds opens a "Quit to the desktop?" prompt: A quits, B closes it. A short Back press still reaches the game. Thanks to Spartan2599 for the request.
  • F3 shows the frame rate (#123, #113): frames per second, the average frame time and the slowest frame of the last second. Thanks to osricen for the request.
  • Tengu's stage, The Miyama, is in Stage Select (#126, #117), before Random, with the game's own unused name and thumbnail. Random can pick it too. Thanks to denice1776 for the suggestion.
  • CPU Costumes: Random on the launcher's GAMEPLAY page (#127, #134, for #116) dresses CPU opponents in random unlocked costumes in Story, Time Attack, Survival and Team. It is off in online matches. Vs. CPU in local Versus is not built yet. Thanks to denice1776 for the suggestion.
  • DOA ONLINE no longer stops the game (#124, #5). Answering Yes to the game's "launch the Xbox Dashboard" prompt now quits to the desktop.

Fixes

  • LB is White and RB is Black, as on an Xbox pad (#119, #112). They were crossed. Thanks to osricen for the report.
  • The opening movie's colors match the console (#143, #131). The storm was green and oversaturated; it now converts through Sofdec's own color table, as the original player did. Thanks to Alezuma for the report.
  • Lens flares no longer cost frames (#122, #118), such as Crimson's sun and the clone facility's lights. Thanks to Temuj1n11 for the report.
  • The launchers save your settings when you close them (#142, for #130), so a renderer switched back to Direct3D 11 sticks without starting a game. Thanks to Alezuma for the report.
  • Builds work under a Japanese Windows locale (#147, #146). The import stopped with a UTF-8 decode error when the ISO sat in a folder with Japanese characters. Thanks to denice1776 for passing on the report.
  • Building from a different ISO replaces the old import (#149) instead of refusing it. The new ISO is checked before the old import is removed, so picking the wrong disc keeps the working one.

Online

  • Each player keeps their own controller settings (#128, #115): button type or free buttons, vibration and analog command. Every port used the default layout before. Thanks to denice1776 for the report.
  • A Linux player's first match no longer desyncs at frame 30 (#137). The launcher missed an uppercase DOA2 disc folder on Linux, so the game ran its first-boot install during the match.
  • Leaving a room closes it for the other player (#138). The same opponent could walk back into a host's new room.
  • The log names the side that caused a hitch in a live round (#140), to find the cause of reported online slowdowns.

The runtime changed; the pinned lifter and the generated game program did not. Every platform must build again. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again. Both online players need 0.3.0; an older build shows OTHER BUILD in a room.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page; the build starts at once. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Allow the game through the Windows firewall when asked, or online play cannot connect. Requires Windows 10/11 x64, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT). Python and CMake come in the ZIP.

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • The 75 unit tests, the public-tree check, the 59 runtime tests and the manual lookup test pass on Windows, and CI's Windows, clang, Linux and macOS runtime tests pass on the release commit.
  • Every source file in the three ZIPs matches the release commit, and each ZIP holds every source its build names. The packager has not changed since 0.2.2, whose Windows ZIP was built from scratch with its bundled Python and CMake; this release's ZIPs were not rebuilt that way. CI builds and tests the same runtime on Linux and macOS.
  • A recorded Koku An fight at 32:9 was replayed on Direct3D 11 with and without the mirror fix: with it, the floor reflects across the full width, and each character's shadow and reflection stay under them at the edges of the screen.
  • Each change was checked in its own pull request; the links above lead to the details.
  • Nothing in this release has run on an AMD GPU, a Mac or a Steam Deck, and it has not been played through.

Known limits

  • Online play is a test build, and Windows-to-Linux or Windows-to-Mac matches over the inter...
Read more

0.2.2 Alpha (experimental)

Choose a tag to compare

@NoRain211 NoRain211 released this 06 Nov 07:20
9638b1e

0.2.2 Alpha (experimental online play)

Downloads: DOA2U-0.2.2-Alpha.zip is for Windows. DOA2U-0.2.2-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.2.2-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime. On Windows it renders through Direct3D 11, or Vulkan if you choose it, and plays sound through XAudio2. On macOS and Linux it renders through Metal or Vulkan with SDL_GPU and plays sound through SDL3. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.2.2

  • Online matches no longer desync when one player plays the intro (#102). If one player started the game without Skip Intro, their game played the opening movie again when a session started, while the other player's game skipped it. The match ended with DESYNC DETECTED about 1.5 seconds in, and that player's game then stopped with exit code 2 on its way back to the room. Each session start now uses the room's settings, and a session that ends during a movie closes it. This is the likely cause of the desync at the start of a match listed under 0.2.1's known limits.

  • Leon's Story ending plays through (#103, #96). The game stopped a second or two into it. Thanks to nickquinn2036 for the report.

  • Free camera (#50, by tmcleroy). Turn it on in the launcher's GAMEPLAY page. Then, in a fight or a cutscene, F1, or a right-stick click takes the game's camera: fly it anywhere, freeze and step the scene, hide the HUD and save F12 screenshots toPictures/DOA2U`. See free camera. It turns off during online matches and replays, where it would desync the two games (#105).

  • Smoother play on AMD GPUs and handhelds, for #69:

    • Direct3D 11 now uploads each draw's constants without the per-draw buffer swaps that stall AMD's driver (#104).
    • On Windows the game asks for a 1 ms timer, opts out of power throttling and raises its game thread, so a handheld no longer wakes it a scheduler tick late and drops a frame (#97).
    • Windows also has a Renderer setting on VIDEO SETTINGS: Direct3D 11 (default) or Vulkan through SDL_GPU, the renderer the macOS and Linux builds use (#101).

    None of this has been tried on AMD hardware yet. Thanks to Moonalesca for the logs that found the cause.

  • VRR for G-SYNC and FreeSync (#93, #86). A VRR setting on the Windows launcher's VIDEO SETTINGS presents for variable-refresh displays with Direct3D 11. Leave it off on a fixed-refresh display, which tears with it on. Thanks to NomadJack for the request.

  • Nothing to install on Windows (#94, #89). The Windows ZIP now carries Python 3.12 (with Capstone and Pillow) and CMake, so the build no longer needs either on PATH. The ZIP grows to about 54 MB. Thanks to osricen for the request.

  • Faster build (#100). A first build takes about 7 minutes on an 8-core PC, down from about 13. The generated program is byte-identical.

  • The launcher builds as soon as you choose the ISO (#99), whether you drop it on the launcher or pick it on BUILD GAME.

The runtime and the pinned lifter changed, though the generated game program did not, so every platform must build again. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again. Both online players need 0.2.2; a 0.2.1 build shows OTHER BUILD in a room and cannot see 0.2.2 rooms on FIND MATCH.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page; the build starts at once. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Allow the game through the Windows firewall when asked, or online play cannot connect. Requires Windows 10/11 x64, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT). Python and CMake come in the ZIP.

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • The unit tests, the public-tree check and the 53 runtime tests pass on Windows, and CI's Windows, clang, Linux and macOS runtime tests pass on the release commit.
  • Two Windows runners on one PC played an online session with the host's free camera on and set to take the camera at once. The host logged that the free camera was off for the session, and both games' memory matched at frame 900. Outside online play the same build still took the camera in the attract demo.
  • The netplay fix (#102) was tested the same way: a host started without Skip Intro and a joiner with it stayed in step through frame 19800, through fights and rollbacks. A desync forced at frame 90 returned both games to the room, three times in a row.
  • The Windows ZIP was extracted and built with Python and CMake removed from PATH. Its bundled Python and CMake lifted the exact tested program and linked both the Direct3D 11 and the Vulkan runner. The Vulkan runner ran the title and menus for 150 seconds with no stop.
  • The macOS and Linux ZIPs hold every source their build names. Neither ZIP was built this time (WSL kept stopping during configure); CI builds and tests the same runtime on Linux and macOS.
  • Nothing in this release has run on an AMD GPU, a Mac or a Steam Deck, and it has not been played through.

Known limits

  • Online play is a test, and Windows-to-Linux or Windows-to-Mac matches over the internet have not been retried since the fix above.
  • The free camera has not been tried with the Vulkan renderer in a fight.
  • UPnP has not been tried on many routers. If the room asks you to forward the port by hand, forward the UDP port it shows to the host's computer, or use FIND MATCH.
  • A sound that plays during a rewind can play twice.
  • Copy and paste of addresses work on Windows only. Typing in the room and address fields has not been tried on a Mac, a Linux PC or a Steam Deck.
  • If FIND MATCH cannot reach the matchmaker, JOIN ONLINE by address still works.
  • Long pauses on the game's own thread, such as shaders compiling for the first time in the first fights after building, can still briefly starve the music and announcer.
  • Some players see slowdowns on Linux on the Shrine, Opera, Koku An and Burai Zenin stages; that is not addressed yet.
  • On Windows the game uses the GPU that Windows rates highest for performance. There is no setting to choose another one.
  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux) when it updates from 0.2.1 or older; from 0.2.2 on, Windows uses the Python in the ZIP.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; online play is in Versus instead.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. For a desync or a cheating player, keep the match's replay from private/play-disc/.recomp-storage/replays; it holds both players' profiles, so share it only privatel...

Read more

0.2.1 Alpha (experimental online play)

Choose a tag to compare

@NoRain211 NoRain211 released this 05 Nov 23:08

0.2.1 Alpha (experimental online play)

Downloads: DOA2U-0.2.1-Alpha.zip is for Windows. DOA2U-0.2.1-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.2.1-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.2.1

  • Fixed a freeze at startup with 5.1 surround (#95). With 5.1 surround on and the intro skipped, 0.2.0 froze a moment after starting. This also froze a 5.1 player returning to an online room, and a session hosted by a 5.1 player froze both games. Skipping the intro closed the opening movie while its surround soundtrack was still starting; the game now lets the soundtrack start first.

Online play, the room, FIND MATCH and the rest of 0.2.0 are unchanged; see the 0.2.0 notes for how they work.

The generated game program did not change, but the runtime did, so every platform must build again. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again. Both online players need 0.2.1; a 0.2.0 build shows OTHER BUILD in a room and cannot see 0.2.1 rooms on FIND MATCH.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Allow the game through the Windows firewall when asked, or online play cannot connect. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • The unit tests, the public-tree check and the 49 runtime tests pass on Windows, and CI's Windows, clang, Linux and macOS runtime tests pass. A new runtime test closes the movie while its soundtrack is still starting.
  • With 5.1 surround on and the intro skipped, the Windows build now starts and runs on past the point where 0.2.0 froze. Two copies of the Windows build with 5.1 on met in a room and played 3000 frames (50 seconds) with both games' memory matching at every check.
  • A desync forced at frame 150 ended the match and returned both games to the Versus menu within a second, three times in a row.
  • The ZIPs hold the same files as 0.2.0's, and their runtime source is the one tested above. The macOS ZIP was not built, and nothing in this release has run on a Mac or a Steam Deck.
  • This release has not been played through.

Known limits

  • Online play is a test. One match between a Windows player and a Linux or Mac player over the internet ended with DESYNC DETECTED just after it started; that is being investigated.
  • UPnP has not been tried on many routers. If the room asks you to forward the port by hand, forward the UDP port it shows to the host's computer, or use FIND MATCH.
  • A sound that plays during a rewind can play twice.
  • Copy and paste of addresses work on Windows only. Typing in the room and address fields has not been tried on a Mac, a Linux PC or a Steam Deck.
  • If FIND MATCH cannot reach the matchmaker, JOIN ONLINE by address still works.
  • Long pauses on the game's own thread, such as shaders compiling for the first time in the first fights after building, can still briefly starve the music and announcer.
  • On Windows the game uses the GPU that Windows rates highest for performance. There is no setting to choose another one.
  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; online play is in Versus instead.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. For a desync or a cheating player, keep the match's replay from private/play-disc/.recomp-storage/replays; it holds both players' profiles, so share it only privately when a developer asks. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA and pl_mpeg are fetched as source under their MIT licenses, the online math uses musl's under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and the reverb is altered from FAudio under the zlib license. See LICENSE and NOTICE.

If you like my work, please consider buying a coffee on my Ko-fi.

0.2.0 Alpha (experimental online play)

Choose a tag to compare

@NoRain211 NoRain211 released this 05 Nov 21:31

0.2.0 Alpha (experimental online play)

Downloads: DOA2U-0.2.0-Alpha.zip is for Windows. DOA2U-0.2.0-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.2.0-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.2.0

  • Online Versus with rollback netcode (test, work in progress) (#75, #76, #77, #78, #79, #80, #81). Choose Versus on the main menu and press A:
    • HOST ONLINE opens a room. A public room shows on FIND MATCH; a private room only takes players who have your address.
    • JOIN ONLINE takes the host's address. FIND MATCH lists open rooms with an estimated ping; A joins one and Y quick-matches the nearest.
    • In the room, both players ready up with A and the match starts at Versus character select. Fights follow one another there, and backing out of Versus takes both players back to the room. Enter or Tab opens a chat line. Y mutes the other player and X twice blocks them.
    • During a fight your own inputs show at once. When the other player's input arrives late, the game rewinds a few frames and replays them with the real input. NETPLAY SETTINGS sets the input delay, the port, an in-match network display, blocked players and the matchmaker.
    • Connecting: the host's game asks the router to open its UDP port (47701 unless changed) through UPnP. If that fails, FIND MATCH tries a direct connection through both routers and falls back to a relay; JOIN ONLINE by address works without the matchmaker.
    • Privacy: the menu and logs hide players' IP addresses, and FIND MATCH estimates ping without revealing hosts' addresses. Only the player who joins learns the host's address. The other player sees your game profile name.
    • Fairness: online matches are unranked and play on copies of both profiles, so your own profile never changes. Both games compare their memory every few seconds; if they stop matching, the match ends with DESYNC DETECTED. Every online match saves a replay.
    • If the other player drops, the match waits briefly with a notice before it ends. Quitting tells the other game right away.
  • Movies decode on their own thread (#87, for #69). The game's movies used to decode on one of its own threads, which could hold the music and announcer refills for up to a quarter of a second.
  • Short stalls no longer cut the music (#90, for #69). When the game stalls for a tenth to about a third of a second, music and voices now play on through what the game already queued instead of dropping to silence, which sounded like a crackle at round start and on a KO.
  • Watching a replay no longer stops the game (#88).
  • A button press skips the dedication card at startup.

The generated game program changed in this release, so every platform must build again. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again. Both online players need 0.2.0; older builds show OTHER BUILD in a room and cannot use FIND MATCH.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Allow the game through the Windows firewall when asked, or online play cannot connect. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • The unit tests, the public-tree check and the 49 runtime tests pass on Windows, and CI's Windows, clang, Linux and macOS runtime tests pass.
  • The Windows ZIP was extracted into a new folder and built from the disc image: the build reproduced the expected program and linked the runner. The Linux ZIP was built in a fresh Ubuntu 24.04 container with the listed packages and passed 47 of 48 runtime tests; the presenter test needs a display the container lacks.
  • Two copies of the Windows build on one PC played online. One quick-matched through a local matchmaker, met in a room and fought 1800 frames (30 seconds), with both games' memory matching at every check. Another played 1800 frames directly with no input delay, which forced 476 rewinds, and still matched. A direct session that plays the opening movie now stays in step too (#91).
  • No match has been played between two PCs or over the internet yet. The macOS ZIP shares the Linux runtime files and was not built; nothing in this release has run on a Mac or a Steam Deck.
  • This release has not been played through.

Known limits

  • Online play is a test. No match has been played between two players on different networks yet, and Windows, Linux and macOS players have not played each other.
  • UPnP has not been tried on many routers. If the room asks you to forward the port by hand, forward the UDP port it shows to the host's computer, or use FIND MATCH.
  • A sound that plays during a rewind can play twice.
  • Copy and paste of addresses work on Windows only. Typing in the room and address fields has not been tried on a Mac, a Linux PC or a Steam Deck.
  • If FIND MATCH cannot reach the matchmaker, JOIN ONLINE by address still works.
  • Long pauses on the game's own thread, such as shaders compiling for the first time in the first fights after building, can still briefly starve the music and announcer.
  • On Windows the game uses the GPU that Windows rates highest for performance. There is no setting to choose another one.
  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; online play is in Versus instead.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. For a desync or a cheating player, keep the match's replay from private/play-disc/.recomp-storage/replays; it holds both players' profiles, so share it only privately when a developer asks. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA and pl_mpeg are fetched as source under their MIT licenses, the online math uses musl's under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and...

Read more

0.1.17 Alpha (experimental)

Choose a tag to compare

@NoRain211 NoRain211 released this 04 Nov 20:41

0.1.17 Alpha (experimental)

Downloads: DOA2U-0.1.17-Alpha.zip is for Windows. DOA2U-0.1.17-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.1.17-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.1.17

  • Music and the announcer no longer echo or crackle when the GPU falls behind (#85, for #69). The game refills its music and announcer audio 60 times a second from threads that wait for each screen refresh. When a frame took the GPU too long, for example with 16:9, MSAA or SMAA on, or with V-Sync or FreeSync, the port held all of the game's threads while it waited for the GPU. The refills then fell to about a dozen a second, and the audio replayed parts it had already played. The game's other threads now keep running during that wait. In a test with rendering slowed to simulate a weak GPU, the replayed audio went from 46% of music and announcer output to none, and the refills stayed near 60 a second. Thanks to @Moonalesca and @kvg198x for tracing it to frame pacing and graphics settings, and to @inkorrokni for confirming it persisted.

The generated game program is unchanged from 0.1.16; only the runtime changed, on all three platforms. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • The unit tests, the public-tree check and the 38 runtime tests pass on Windows, and CI's Windows, clang, Linux and macOS runtime tests pass. Each ZIP differs from 0.1.16 only in the graphics and presenter sources, the version text and, on Windows, the rebuilt launchers.
  • On Windows, a 240-second fight replay with rendering slowed by 25 ms per frame (100 ms every 30th frame) replayed no stale music or announcer audio, against 46% before the fix. At normal speed it held 60 fps.
  • The macOS and Linux part of the fix waits on the GPU's frame fences. CI runs it under a software Vulkan driver, but it has not been run on a Mac, a Linux PC or a Steam Deck.
  • This release has not been played through.

Known limits

  • Other long pauses on the game's own thread, such as shaders compiling for the first time in the first fights after building, can still briefly starve the music and announcer. A pause longer than a tenth of a second silences them for a moment.
  • On Windows the game uses the GPU that Windows rates highest for performance. There is no setting to choose another one, and Windows before 10 version 1803 keeps the old default.
  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Versus, Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; there is no online service.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • The light patterns in Tina's ending now take the stage's fog like other draws, but neither their fog nor their brightness has been compared with an Xbox.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA is fetched as source under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and the reverb is altered from FAudio under the zlib license. See LICENSE and NOTICE.

If you like my work, please consider buying a coffee on my Ko-fi.

0.1.16 Alpha (experimental)

Choose a tag to compare

@NoRain211 NoRain211 released this 04 Nov 07:13

0.1.16 Alpha (experimental)

Downloads: DOA2U-0.1.16-Alpha.zip is for Windows. DOA2U-0.1.16-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.1.16-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.1.16

  • Laptops with two GPUs now use the faster one on Windows (ba03bd8, reported in #72). The game ran on the integrated GPU of a laptop with an NVIDIA RTX 3070, and the NVIDIA Control Panel setting for DOA2U.exe had no effect. DOA2U.exe only starts the separate runner program that draws the game, so a per-program GPU setting on DOA2U.exe never reached it. The runner now asks Windows for the high-performance GPU itself and prints the GPU it chose in the log (recomp d3d presenter: gpu ...). If that fails, it uses the default GPU as before. Thanks to @JanFussy for the report.

The generated game program is unchanged from 0.1.15; only the Windows runtime changed. The macOS and Linux ZIPs differ from 0.1.15 only in their version number. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • The unit tests, the public-tree check and the 38 runtime tests pass on Windows. The Windows ZIP differs from 0.1.15 only in the graphics source file, the rebuilt launchers and the version text.
  • This fix was not run on a laptop with two GPUs. That the runner now picks the NVIDIA GPU there is inferred from how Windows lists GPUs; the reporter's retest is the confirmation.
  • This release has not been played through. The macOS and Linux builds are unchanged apart from the version number and have not been run on a Mac or a Linux machine. The ZIPs were built on Windows only.

Known limits

  • On Windows the game uses the GPU that Windows rates highest for performance. There is no setting to choose another one, and Windows before 10 version 1803 keeps the old default.
  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Versus, Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; there is no online service.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • The first fight after building can still hitch while shaders from the game's vertex programs compile for the first time. A hitch longer than a tenth of a second briefly silences the music and announcer.
  • The light patterns in Tina's ending now take the stage's fog like other draws, but neither their fog nor their brightness has been compared with an Xbox.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA is fetched as source under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and the reverb is altered from FAudio under the zlib license. See LICENSE and NOTICE.

If you like my work, please consider buying a coffee on my Ko-fi.

0.1.15 Alpha (experimental)

Choose a tag to compare

@NoRain211 NoRain211 released this 03 Nov 18:21

0.1.15 Alpha (experimental)

Downloads: DOA2U-0.1.15-Alpha.zip is for Windows. DOA2U-0.1.15-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.1.15-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.1.15

  • Crackling, stuttering and echoing audio (#70, #71, reported in #69). Sound was fed once per frame, so a slow frame let voices, music and the announcer run dry: they crackled, stuttered and lost the start or end of lines. Audio now plays from its own thread and keeps going through short hitches. A long freeze, such as a shader compiling in the first fights after a build, now cuts the music and announcer out briefly instead of repeating the last fraction of a second as an echo. Thanks to @Moonalesca for the report and for retesting the first fix, which found the echo, and to @inkorrokni for confirming it.

The generated game program is unchanged from 0.1.14; only the runtime changed. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • CI builds and runs the runtime tests on Windows (MSVC and clang), Linux and macOS, and type-checks the macOS launcher, for every change in this release. The macOS and Linux runs build and test the new audio thread's POSIX path.
  • On a local Windows build, a recorded 170-second fight replay with a 120 ms freeze forced every 1.5 seconds had 170 audio dropouts before these changes and none after. With a 450 ms freeze every 4 seconds, the previous build replayed about half a second of old announcer audio and several seconds of old music; this release replayed none of the announcer and under a tenth of a second of music.
  • The reporter's machine was not reproduced; that their echo came from shader compiles after a fresh build is inferred.
  • This release has not been played through, and the staff-roll dedication card, which now pauses the audio thread, was not reached on this build. The macOS and Linux builds pass CI but have not been run on a Mac or a Linux machine. The ZIPs were built on Windows only.

Known limits

  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Versus, Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; there is no online service.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • The first fight after building can still hitch while shaders from the game's vertex programs compile for the first time. A hitch longer than a tenth of a second briefly silences the music and announcer.
  • The light patterns in Tina's ending now take the stage's fog like other draws, but neither their fog nor their brightness has been compared with an Xbox.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA is fetched as source under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and the reverb is altered from FAudio under the zlib license. See LICENSE and NOTICE.

If you like my work, please consider buying a coffee on my Ko-fi.

0.1.14 Alpha (experimental)

Choose a tag to compare

@NoRain211 NoRain211 released this 01 Nov 16:38

0.1.14 Alpha (experimental)

Downloads: DOA2U-0.1.14-Alpha.zip is for Windows. DOA2U-0.1.14-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.1.14-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.1.14

  • Snow and fog on the snow stages (#68, reported in #67). Koku-An's snowfall and the snowy White Storm's snowfall and fog were missing in fights. The snow now keeps its own transparency, and stages that use the game's distance fog now draw it. Thanks to @Maleel for the report.

The generated game program is unchanged from 0.1.13; only the runtime changed. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • CI builds and runs the runtime tests on Windows (MSVC and clang), Linux and macOS, and type-checks the macOS launcher, for every change in this release. New tests cover the snow's transparency and the fog settings each draw receives.
  • On a local Windows build of this release, snow falls during a Koku-An fight. The snowy White Storm was not rechecked on this build.
  • Distance fog follows the game's linear setting, which these stages use. The game's other two fog modes use Direct3D's standard formulas and have not been compared with an Xbox.
  • This release has not been played through. The macOS and Linux renderer compiles and passes CI but has not been run on a Mac or a Linux machine. The ZIPs were built on Windows only.

Known limits

  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Versus, Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; there is no online service.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • The first fight after building can still hitch while shaders from the game's vertex programs compile for the first time.
  • The light patterns in Tina's ending now take the stage's fog like other draws, but neither their fog nor their brightness has been compared with an Xbox.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA is fetched as source under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and the reverb is altered from FAudio under the zlib license. See LICENSE and NOTICE.

If you like my work, please consider buying a coffee on my Ko-fi.

0.1.13 Alpha (experimental)

Choose a tag to compare

@NoRain211 NoRain211 released this 31 Oct 20:37

0.1.13 Alpha (experimental)

Downloads: DOA2U-0.1.13-Alpha.zip is for Windows. DOA2U-0.1.13-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.1.13-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.1.13

  • Less stutter in a session's first fight (#66, reported in #61). Each new kind of draw used to compile its shader during play, and 0.1.12 made those compiles slower, so the first fight could stutter and distort voices. 0.1.13 shrinks the shaders back, compiles more of them while the game starts, and on Windows saves every compiled shader in private/shader-cache and loads them at the next start. A shader the game builds from its own vertex programs still compiles once, the first time it appears, and is kept after that. Thanks to @Alezuma for the report and log.

The generated game program is unchanged from 0.1.12; only the runtime and run_game.py changed. On 0.1.11 or newer, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again. The first start after building compiles the shader set once in the background; later starts load it.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • CI builds and runs the runtime tests on Windows (MSVC and clang), Linux and macOS, and type-checks the macOS launcher, for every change in this release.
  • The startup pixel shaders are back near 0.1.11's size (141 KB against 162 KB in 0.1.12) and compile time.
  • On a local Windows build, the first start compiled 36 draw shaders in the background and saved them; the next starts loaded all 36 in 16 ms. A saved shader overwritten with junk was rejected, recompiled and saved again.
  • This release has not been played through. The short test runs did not reach a shader built from a vertex program, so keeping one between sessions has not been seen in a log.
  • The macOS and Linux renderer compiles and passes CI but has not been run on a Mac or a Linux machine. The ZIPs were built on Windows only.

Known limits

  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Versus, Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; there is no online service.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • The first fight after building can still hitch while shaders from the game's vertex programs compile for the first time.
  • Fog is not applied to the light patterns in Tina's ending, and their brightness has not been compared with an Xbox.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA is fetched as source under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and the reverb is altered from FAudio under the zlib license. See LICENSE and NOTICE.

If you like my work, please consider buying a coffee on my Ko-fi.

0.1.12 Alpha (experimental)

Choose a tag to compare

@NoRain211 NoRain211 released this 30 Oct 05:31

0.1.12 Alpha (experimental)

Downloads: DOA2U-0.1.12-Alpha.zip is for Windows. DOA2U-0.1.12-Alpha-macOS.zip is for Apple Silicon and Intel Macs, and DOA2U-0.1.12-Alpha-Linux.zip is for x86-64 Linux and the Steam Deck. Each ZIP's README.txt lists its setup.

The Dead or Alive 2 Ultimate native port runs on Windows, macOS and Linux. The game's own code runs as a static recompilation with a native runtime: Direct3D 11 and XAudio2 on Windows, Metal or Vulkan through SDL_GPU and SDL3 audio on macOS and Linux. Story, Watch and the attract demo play on every stage at up to 4K with the game's native 16:9 widescreen. This is bring-up software: many modes and characters have not been tried, and a draw the port cannot render yet stops the game with a message in its log.

New in 0.1.12

  • Alternate costumes no longer stop the game (#62, fixes #60). Costumes whose environment reflection tints only the color, such as Bass 2, 3 and 4, Hayabusa 2 and Tina 3, crashed fights with a d3d8:draw-texture-stages stop. They now render. Thanks to @Pablodamis for the costume list that found it.
  • Tina's Story ending plays (#63, fixes #61). The game closed right after Tina beat Tengu, with a d3d8:target-surface stop. The ending's scene textures and its projected lights now render, and the ending runs through. Thanks to @Alezuma for the report and log.

The generated game program is unchanged from 0.1.11; only the runtime changed. On 0.1.11, open the launcher's UPDATE page and choose Install, then choose Build on Windows or run ./build_game.sh on macOS and Linux. On 0.1.10 or older, extract the ZIP into a new folder and build again.

Setup

Windows: extract the ZIP into a new folder with a short path, for example C:\DOA2U. Open Launcher.exe and drag your Dead or Alive Ultimate (Xbox, USA) Disc 2 ISO onto it, or choose it on the BUILD GAME page, then choose Build. Wait for Build complete, then choose START GAME. Later, DOA2U.exe plays straight away. Requires Windows 10/11 x64, Python 3.12+, CMake 3.20+, an internet connection for the first build and about 6 GB free (about 10 GB on FAT32 or exFAT).

Linux: install the packages the ZIP's README.txt lists, then run ./build_game.sh /path/to/disc2.iso and play with ./launcher.sh. On the Steam Deck or Bazzite, build inside an Ubuntu 24.04 distrobox; see docs/building.md. On other CPUs or older glibc, build extract-xiso and add --extractor /path/to/extract-xiso.

macOS: install the Homebrew packages the ZIP's README.txt lists and build extract-xiso. Then run ./build_game.sh /path/to/disc2.iso --extractor /path/to/extract-xiso and play with ./launcher.sh.

Other regions, versions and Disc 1 are refused. Every build stops unless it reproduces the exact program the developers tested. The ZIPs contain source and setup tools, with no game files or prebuilt game runner.

Validation

  • CI builds and runs the runtime tests on Windows (MSVC and clang), Linux and macOS, and type-checks the macOS launcher, for every change in this release.
  • New runtime tests cover the color-only reflection blend, the ending's render targets, its projected-light stages, and the pixels the Direct3D 11 presenter draws for them.
  • On a local Windows build, Survival ran with no stop using Bass costumes 2, 3 and 4, Hayabusa costume 2 and Tina costume 3, and Tina's Story ending ran through with no stop using her first costume. Other Tina costumes have not been tried in the ending.
  • The macOS and Linux renderer compiles and passes CI, but the ending and the costume fixes have not been run on a Mac or a Linux machine.
  • The ZIPs were built on Windows only.

Known limits

  • The updater needs Python 3 on PATH (or private/venv on macOS and Linux), as the build does.
  • The macOS and Linux menu has not been run on a Mac or a Linux machine, and its gamepad input is untested.
  • Versus, Tag, Survival, Time Attack, Sparring and most characters' full Story runs have not been played through.
  • The Xbox Live menus stop the game; there is no online service.
  • A demanding moment on The Burai Zenin can still drop a single frame.
  • The safari stage's heat haze does not ripple yet, and its water leaves a gap between the elephants' reflections.
  • An unsupported draw stops the game; the log names the missing state.
  • Fog is not applied to the light patterns in Tina's ending, and their brightness has not been compared with an Xbox.
  • On macOS and Linux, MSAA stops at 8x (4x on Apple GPUs), and variable refresh is Windows only.

Please report issues with your platform, what you did and what happened, and the "recomp stop" or crash lines from the end of the newest log in private/play-logs. Remove private paths before sharing log lines; do not upload whole logs, game files, generated game code or saves.

This project uses LLMs and AI coding agents extensively for code, reverse engineering, tests and documentation. Their output can contain mistakes; passing tests does not establish complete game fidelity.

Bundled components retain their licenses. XboxDev extract-xiso (in the Windows ZIP) and its license are included. This product includes software developed by in in@fishtank.com. SMAA is fetched as source under its MIT license, and SDL3 and llvm-mingw are downloaded by the build. The launcher and the macOS and Linux host layer adapt code from the sister doa3-re and doaxbv-re ports, and the reverb is altered from FAudio under the zlib license. See LICENSE and NOTICE.

If you like my work, please consider buying a coffee on my Ko-fi.