PORTCLUB
Cabecera de Genma Onimusha
Port nativo

Genma Onimusha

Port nativo de Genma Onimusha para PC.

Genma Onimusha

Port nativo basado en su ficha de origen.

README del repositorio

Genma Onimusha - PC port (Xbox static recompilation)

An unofficial native Windows port, with experimental native Linux support, of the original Xbox version of Genma Onimusha, made by statically recompiling the game's executable to C++ with Xbox XBE Recomp.

Latest release: v0.6.1 · all releases

[!IMPORTANT] This repository and its releases contain no game code and no game assets. You need your own legally acquired copy of the game. The release builds the game's code on your PC, from your copy, on the first start.

Playing on Windows

  1. Download the latest GenmaOnimusha-*-win64.zip from Releases and extract it to a folder you can write to.
  2. Run GenmaOnimusha.exe.
  3. On the first start it asks for your copy of the game: pick the disc image (.iso, a full redump image or an XISO), or default.xbe in a folder with the game's files. You can also put the .iso in the assets folder beforehand.
  4. It then recompiles and compiles the game for your PC with the bundled compiler, behind a progress window (about a minute on an 8-thread CPU, longer on slower ones), and starts it. This happens once; later starts go straight to the game. The disc image is read where it is, never copied.

The release is made for Genma Onimusha (USA), default.xbe SHA-1 08bfe432eb55877b5af2dd401b713743c5b751cd (redump). Another release of the game gets a warning before it is built.

Keys

KeyWhat
F1settings menu (mouse or keyboard)
Escquit, after asking: Enter quits, Esc goes back

The game itself is played with a controller: Xbox, PlayStation and Switch controllers work, with hot plugging and rumble.

The left stick uses modern movement relative to the camera. Holding the same stick direction through a camera cut preserves the character's actual heading; release the stick or change its direction to adopt the new view. The D-pad keeps the original tank controls and takes priority. Hold guard and use the stick for native directional steps and dodges. Attacks and target selection retain the game's native behavior.

Settings (F1)

Changes apply at once; Save writes them to game/settings.toml.

SettingChoices
ModeFullscreen, Borderless, Windowed
ResolutionDesktop, or any mode of the monitor
PictureFill screen (default): the black frame the game drew for TV overscan is cut, so the picture reaches the top and bottom of the screen. Original: the console's whole frame, Capcom's border kept. Custom: 0-10% cut per edge
Aspect4:3 (default), with bars at the sides. Stretch fills the screen out of proportion. The game has no widescreen mode, so 16:9 and Auto stretch it too
Render scale25-200% of the output's height; above 100% is supersampling
Anisotropic filteringas the game asks, 2x-16x
FPS cap, V-Sync30-240 or unlimited (60 by default), V-Sync on or off
Port fixesPrecise depth and Stable point sampling, on by default (see below); off shows the original rendering
HD textureson by default: uses the textures in game/textures/ (see below); off shows the original ones
Modern analog controlson by default: camera-relative left-stick movement; off restores the original input behavior

Logs: the first start writes work/build.log, the game writes game/logs/.

Updates

The release launcher checks GitHub for a newer stable version when it opens. If one is available, it asks before downloading and installing it. You can choose No and play your installed version; an offline or failed check also lets the game start.

After an update the launcher restarts and rebuilds the game once with the new version. Saves, settings, your game files and texture packs are kept. Downloading can be cancelled; an interrupted installation is restored on the next start. Update errors are written to .update/error.txt.

Start the launcher with --no-update to skip the network check. Development builds do not check for updates. Older releases that do not include the updater need one manual download before they can update themselves.

HD textures (optional)

A separate download: GenmaOnimusha-HD-textures.zip (about 9.9 GB). It is a conversion of the "4K Texture Pack AI-Enhanced" (Nexus Mods) for Onimusha: Warlords by Evgeshajk, matched to the Xbox textures: about 1,180 of the 1,284 backgrounds, plus the animations.

  1. Start the game once, so the game folder exists.
  2. Extract the zip into the game folder: the files end up in game/textures/.
  3. Start the game again. F1 → HD textures turns them on and off.

They need v0.3.0 or later. The textures are not part of this repository or its releases; docs/texture-packs.md explains how they were made.

Requirements

  • Windows 10 or 11, 64-bit
  • A CPU with SSE4.2 (x86-64-v2: Intel from 2008, AMD from 2011)
  • A GPU with Direct3D 12
  • About 500 MB of free disk space (the release, the toolchain and the built game)

Playing on Linux (experimental)

Download GenmaOnimusha-v0.6.1-linux-x86_64.tar.gz from Releases, extract the entire folder, and run:

cd GenmaOnimusha
./GenmaOnimusha --check-install
./GenmaOnimusha --game '/path/to/Genma Onimusha.iso'

An extracted game folder is also supported. The first launch builds your copy with the bundled compiler; later starts use ./GenmaOnimusha directly. Requires an x86-64-v2 CPU, glibc 2.35+, Vulkan drivers, X11/XWayland and PulseAudio-compatible output. No development tools, Wine or Proton are needed to play.

Saves, settings and build caches use XDG directories outside the package. Updates are manual: extract a new release into a new folder. The settings menu, HD texture replacements and render scaling are not available on Linux yet; full gameplay/visual/audio parity and Steam Deck support are still being validated. See Linux usage, controls and limitations.

Windows improvements over the original

  • Rendering at the output's resolution (or above, as supersampling), shown in the original 4:3 with bars; the game has no widescreen mode, its backgrounds are pre-rendered 640x480 images
  • The black frame the game leaves for TV overscan is cut by default (3.3% per edge), so the picture reaches the top and bottom of the screen; Picture: Original keeps it
  • Precise depth for models: no flickering where layers of a character overlap (docs/depth-precision.md)
  • Stable point-sampled backgrounds when upscaled: no shimmering columns in animated backgrounds (docs/point-sampling-nudge.md)
  • Xbox, PlayStation and Switch controllers with hot plugging and rumble

Changes

VersionWhat
v0.6.1VBlank frame pacing; Windows shader pipeline warmup, HD texture caches and camera-directed background prefetch; fixes isolated mismatched frames when converting animation atlases
v0.6.0Experimental native Linux SDL/Vulkan runtime and CLI package with bundled compiler/DXC and XDG storage; separate Windows/Linux pipelines, joint release publication and SHA-256 checksums
v0.5.2Fix modern stick movement cancelling soul absorption and leaving attacks during their native cancel windows; preserve guard priority and control locks
v0.5.1Fix analog movement through camera cuts: retain the character's actual heading, preserve it through small stick adjustments, and clear retention on guard or other action states
v0.5.0Modern camera-relative analog controls, direction retained through camera cuts, native guard steps and dodges; D-pad keeps tank controls; configurable in F1
v0.4.0Launcher auto-update: checks for stable releases, asks before installation, verifies downloads and recovers interrupted updates while keeping saves, settings and textures
v0.3.1Fixes distant footsteps and combat sounds, and distorted 3D effects caused by camera orientation; restores the game's distance attenuation
v0.3.0HD texture replacement (DDS, per palette), with the optional HD texture download; an HD font for menus and text; F1 → HD textures
v0.2.1fixes the crash when entering room 100
v0.2.0F1 settings menu; 4:3 with bars by default (it was stretched on wide screens); overscan frame cut with the Original option; Esc asks before quitting
v0.1.1fixes the crash when entering the cave
v0.1.0first release: the launcher builds the game from your own disc image

Building from source

Build configurations:

BuildNeeds the gameWhat it makes
Development (build.bat)yes, in assets/the full game exe, for working on the port
Release (-DXBE_RELEASE=ON)nothe launcher package the CI publishes
Linux core (--preset linux-core)nonative recompiler tools and portable-core regression tests; the Linux game runtime is still in development

Clone the repository; the SDK is included in sdk/.

Development build

  1. Put your game in assets/: default.xbe with the game's folders beside it (extract the disc image).
  2. Install Visual Studio 2022 with Desktop development with C++, C++ Clang tools for Windows and C++ CMake tools for Windows.
  3. Run build.bat. The exe is written to out\build\release, with GenmaOnimusha.pdb beside it for a debugger.

Release build

Uses LLVM-MinGW 20260922 (ucrt, x86_64), the toolchain the release bundles:

cmake -S . -B out/build/pkg -G Ninja -DCMAKE_BUILD_TYPE=Release -DXBE_RELEASE=ON ^
      -DCMAKE_TOOLCHAIN_FILE=cmake/llvm-mingw.cmake -DLLVM_MINGW=<path to llvm-mingw> ^
      "-DCMAKE_C_FLAGS=-march=x86-64-v2" "-DCMAKE_CXX_FLAGS=-march=x86-64-v2"
cmake --build out/build/pkg --target package_GenmaOnimusha

The package is laid out in out/build/pkg/release/GenmaOnimusha. .github/workflows/build.yml does the same on every push, and publishes a release for every v* tag.

Linux tools and core tests

Requires Linux x86-64, CMake 3.25+, Clang with a C++20 standard library, Make and Git:

cmake --preset linux-core
cmake --build --preset linux-core --parallel 4
ctest --preset linux-core

This builds native xbe_recomp and xbe_symbols tools and tests memory aliases, disc access, hook/continuation ABI, modern controls and audio attenuation without game assets. This preset only builds tools and tests; the experimental game runtime is separate. XBE_BUILD_RUNTIME defaults to on for Windows and off for Linux; XBE_BUILD_TESTS=ON enables these tests on either platform. The Linux core build does not download SDL or ImGui. See the Linux/Steam Deck plan.

For the standalone SDL window diagnostic (no game assets):

cmake --preset linux-window
cmake --build --preset linux-window --target genma_window_smoke --parallel 4
./out/build/linux-window/genma_window_smoke

It draws a 4:3 test image using software presentation. F11 toggles fullscreen, R resizes, arrows or the left stick move the marker, and Esc quits. See window testing for WSLg, dependencies and automated checks.

For the experimental native game target, see Linux/Vulkan runtime testing. It requires local game assets and a Linux DXC compiler. Boot and title-screen rendering have been tested; gameplay and visual parity are still being validated.

Use --backend vulkan to test explicit Vulkan presentation through SDL GPU. The pattern is still generated on the CPU; Vulkan uploads, scales and presents it. --backend vulkan --self-test also reads the output texture back and compares it with the reference. The log identifies the selected device, including CPU Vulkan drivers such as llvmpipe; this is not yet the game's 3D renderer.

Experimental Linux package

The platform workflows build independent Windows ZIP and Linux x86-64 tar.gz packages. The Linux package includes a CLI launcher, pinned Clang 14/sysroot and DXC. It builds your own game locally and stores saves, settings and build caches in XDG directories. It requires glibc 2.35+, an x86-64-v2 CPU and Vulkan drivers; updates are manual. See Linux package usage and CI/release design.

To build it on Linux with the development libraries listed in .github/workflows/build-linux.yml:

python3 tools/prepare_linux_dependencies.py --output out/linux-deps
cmake -S . -B out/build/linux-release -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_TOOLCHAIN_FILE="$PWD/cmake/linux-release-toolchain.cmake" \
  -DXBE_LINUX_DEPENDENCIES="$PWD/out/linux-deps" -DXBE_BUILD_RUNTIME=ON \
  -DXBE_EXPERIMENTAL_LINUX_RUNTIME=ON -DXBE_RELEASE=ON -DXBE_RELEASE_VERSION=dev-local \
  -DSDL_WAYLAND=OFF -DSDL_KMSDRM=OFF
cmake --build out/build/linux-release --target package_GenmaOnimusha --parallel 3

Public builds contain no game assets or recompiled game sources. Tag publication waits for both platform packages, verifies their commit/hashes, then publishes them together with SHA256SUMS and release-manifest.json.

The publisher resolves existing releases through GraphQL and uses the release ID for uploads and publication. A new draft keeps the ID returned by its creation; publication does not depend on finding it again in the REST release list. See release publication and recovery for verification, retries and recovery of an older tag.

Layout

PathWhat
sdk/Xbox XBE Recomp with this port's changes (sdk/UPSTREAM.md): recompiler, runtime, release launcher
config/game.tomlthe recompiler's input for this game: addresses and XDK symbols, no game bytes
src/game-specific host code and hooks
cmake/llvm-mingw.cmakethe release toolchain
.github/workflows/build.ymlCI: builds and packages the release on every push, publishes v* tags
docs/investigation notes (Portuguese)
tools/development scripts (captures, frame shots, disassembly helpers)

Credits

  • Xbox XBE Recomp by TGP482, the recompiler and runtime this port is built on.
  • Evgeshajk, for the Onimusha: Warlords 4K texture pack the HD textures are converted from.
  • LLVM-MinGW, the compiler the release bundles.
  • Third-party licenses are in sdk/THIRD_PARTY.txt of a release.

Genma Onimusha is a trademark of Capcom. This project is not affiliated with or endorsed by Capcom or Microsoft.

Comentarios (0)

Inicia sesión para dejar un comentario.

Sé el primero en comentar sobre este juego.