PORTCLUB
Cabecera de Asura's Wrath
Port nativo

Asura's Wrath

Port nativo de Asura's Wrath para PC.

Asura's Wrath

Port nativo basado en su ficha de origen.

README del repositorio

Asura's Wrath Recompiled

PC port of Asura's Wrath (default.xex, Title ID 43430817) via Xbox 360 static PowerPC recompilation to C++23.

Note: Android port is experimental, use on your own risk.

https://www.youtube.com/playlist?list=PLVyuezqTsTB0

Original illustration by Satoshi Sakai


1. Requirements

  • A copy of the Xbox 360 game ISO (Asura's Wrath.iso).
  • extract-xiso tool to extract .iso contents.
  • CMake 3.25+ and Clang / Ninja compiler toolchain.

2. Setup

Clone Repository

git clone --recursive https://github.com/PauloUbirajara/asuras-wrath-recomp.git
cd asuras-wrath-recomp

3. Build

Requires the .iso contents in extracted/ to build.

Option A: Using CMake Presets (Linux / Windows / Android)

Linux

cmake --preset linux-amd64-release
cmake --build out/build/linux-amd64-release --parallel

Windows

cmake --preset win-amd64-release
cmake --build out/build/win-amd64-release --parallel

Android

cmake --preset android-aarch64-release
cmake --build out/build/android-aarch64-release --parallel

Option B: Using Build Scripts

Linux

# Build binary
./build.sh

# Build binary and create release zip archive in out/ directory
./build.sh --package

# out/
# ├── build
# │   └── linux-amd64-release
# └── dist
#     ├── asura_wrath_recomp_linux_x86_64
#     └── asura_wrath_recomp_linux_x86_64.zip

Windows

# Build binary
build.bat

# Build binary and create release zip archive in out/ directory
build.bat --package

# out/
# ├── build
# │   └── win-amd64-release
# └── dist
#     ├── asura_wrath_recomp_win_amd64.exe
#     └── asura_wrath_recomp_win_amd64.zip

Android

# Build release APK
./build_android.sh

# Build debug APK
./build_android.sh --debug

# out/dist/asura_wrath_recomp_android.apk

4. Game Setup

In the same directory as the executable, run the following:

# Extract Game ISO
mkdir -p extracted/
extract-xiso -x asura_wrath.iso -d extracted/

# (Optional) Install DLC Content (Not supported/tested yet)

If extracted game is somewhere else, it can be specified via the --game_data_root argument:

asura_wrath_recomp --game_data_root=/path/to/extracted/game

Available ReXGlue Path Configuration Flags:

FlagDescriptionDefault
--cache_rootDirectory for compiled Vulkan pipeline and shader storage.cache
--game_data_rootRoot directory containing extracted game files.extracted (if exists) or current directory
--metadata_rootDirectory for game metadata.(empty)
--update_data_rootDirectory containing game update / DLC patches.(empty)
--user_data_rootDirectory for user save games and profile data.%USERPROFILE%\Documents\asura_wrath_recomp (Windows)
--user_data_rootDirectory for user save games and profile data.~/.local/share/asura_wrath_recomp (Linux)

5. Run

Expected Folder Structure Before Running

Linux

├── asura_wrath_recomp  # Executable
├── extracted/          # .iso contents 
├── librexgpu-xenos.so
├── librexruntime.so
└── libTracyClient.so

Windows

├── asura_wrath_recomp.exe # Executable
├── extracted/             # .iso contents 
├── rexgpu-xenos.dll
├── rexruntime.dll
└── TracyClient.dll

Save Locations

OSLocation
Linux~/.local/share/asura_wrath_recomp
Windows%USERPROFILE%\Documents\asura_wrath_recomp\
Android<user picks the save location>

Linux

asura_wrath_recomp

# Linux (What currently works best for me)
asura_wrath_recomp \
    --async_shader_compilation=true \
    --render_target_path_vulkan=fsi \
    --vulkan_async_skip_incomplete_frames=true \
    --vulkan_device=1 \
    --vulkan_pipeline_creation_threads=6 \
    --window_height=1080 \
    --window_width=1920

Windows

asura_wrath_recomp.exe

Android

# Install the game on your phone/emulator
adb install -r out/dist/asura_wrath_recomp_android.apk

# Run the game
adb shell am start -n asura_wrath.recomp/.MainActivity

6. Custom Run Flags

Custom Backend

asura_wrath_recomp.exe --gpu_backend=vulkan
asura_wrath_recomp.exe --gpu_backend=d3d12

Custom Resolution

asura_wrath_recomp --window_width=1920 --window_height=1080

Selecting GPU Device

List available GPUs and their index numbers on your system:

vulkaninfo --summary | grep -E 'GPU[0-9]+:|deviceName'

Output:

GPU0:
        deviceName         = Intel(R) UHD Graphics (CML GT2)
GPU1:
        deviceName         = NVIDIA GeForce GTX 1650
GPU2:
        deviceName         = llvmpipe (LLVM 20.1.8, 256 bits)

Pass --vulkan_device=<index> to target a specific GPU (e.g., index 1 for discrete NVIDIA GPU):

asura_wrath_recomp --vulkan_device=1

Render Target Path (fsi vs fbo)

  • fbo: Host framebuffers (default, higher performance, can produce color artifacts on some GPUs).
  • fsi: Fragment Shader Interlock (software EDRAM pixel packing, fixes red overlay artifacts on NVIDIA GPUs).

Fix red overlay artifact on NVIDIA GPUs:

asura_wrath_recomp --vulkan_device=1 --render_target_path_vulkan=fsi

Switch back to host framebuffers:

asura_wrath_recomp --render_target_path_vulkan=fbo

7. Credits


8. Issues


9. TODO

  • Add touch controls for Android (?)
  • Improve performance
  • Make DLCs work
  • Test for Android (?)
  • Test for Windows (?)
  • Make consistent builds
  • Make it easier to build & run

Comentarios (0)

Inicia sesión para dejar un comentario.

Sé el primero en comentar sobre este juego.