XML1-recomp

XML1-recomp is a Windows recompilation of X-Men Legends (Xbox) with a Direct3D 8 renderer, supporting 4K resolution and custom controls.

README

OpenXML1xbox

A Windows recompilation of the original Xbox X-Men Legends, built with XboxRecomp and a native Windows Direct3D 8 renderer.

Download 1.0.1

Version 1.0.1 runs the game natively on Windows at up to 4K, with keyboard/mouse and XInput controls, PC Options and Advanced Options using XML2 menu assets recolored for XML1, Angel and Bishop with XML2 combat handlers, NewGame+, the stash, loose-file modding and HD texture pack support. An optional texture template download contains every original texture as a PNG for making texture packs.

X-Men Legends main menu with its 3D background
Main menu
Wolverine in level-one gameplay at 1080p
1080p gameplay
Blue XML1-themed Options over the 3D Cerebro scene
Options
Advanced Options with display settings and control bindings
Advanced Options

Install

Requires 64-bit Windows 10/11 and your own X-Men Legends (World) Xbox ISO.

  1. Extract the files from your ISO into a writable folder using an Xbox ISO extraction tool.
  2. Extract XML1-recomp-1.0.1-win64.zip into that same folder, replacing the supplied files. Keep runtime and the hidden .xml1-player-layout file.
  3. Launch X-Men Legends.exe. First-run setup extracts the archive into loose assets and generates PKGB manifests

The game also compiles Raven XML data during first-run setup to the later games' XMLB format (.xmlb, .engb and other variants, .chrb, .navb). Existing loose installations upgrade once on launch. Original text files and saves are retained; loose-mode gameplay reads the compiled versions.

The tested World ISO SHA-256 is: 0a1ef03e57458144609906bbc2d44d2c26028cf704f4698ce0f1e61c34030b44.

Features and controls

  • 1080p widescreen by default, adjustable display settings and live title-bar FPS.
  • Native Options and Advanced Options, retaining the 3D menu or paused level.
  • Rebindable keyboard/mouse and controller controls.
  • WASD movement; left/right mouse attacks; Space jumps; E interacts.
  • Middle mouse + drag, or V + drag, controls the camera. Esc pauses/resumes.
  • Options > Space opens Advanced Options; Backspace returns to the previous menu.
  • Main-menu Quit closes the application. Normal play has no session limit.

See the included Read Me.txt for the full default controls. Display and input assignment changes require a restart. PC preferences are stored in pc-settings.ini; original save data lives in UDATA and TDATA.

build.ini selects installed languages and asset loading. PreferFilesLoose=1 (or true) uses loose resources and PKGBs with no archive fallback. The new PC menus were validated in English; localized PC menu adaptation is not complete.

modderMode=1 (or true) in [BUILD] unlocks all installed playable characters and costumes for testing, including after loading a save. Use 0 or false to disable it, then restart. Unlocks written to a save remain unlocked. If the key is absent, modder mode is off.

HD textures

The renderer loads PNG replacement textures from the texturepack folder beside default.xbe. HDTextures=0 in build.ini restores the original textures. No upscaled pack is supplied: upscale the original textures with the tool of your choice (2x, 4x or 8x), keep the file names, and put the results in texturepack. The release's XML1-recomp-1.0.1-texture-template.zip contains every original texture as a PNG; you can also export them from your own game files:

python scripts/texture-pack.py build --game <game folder> --out <export folder> --originals

The same script can build a 4x pack itself:

python scripts/texture-pack.py build --game <game folder> --out <game folder>/texturepack --model <4x model .param or .onnx>

The generator reads IGB files with the IGB Blender add-on's reader (--igb-reader, default work/igb-blender-reference) and runs an ESRGAN-family model (for example Upscayl's ultramix-balanced-4x) with onnxruntime. Each result is locked to the original texture's colors and tones. Edited PNGs work as texture mods. See HD textures for the format and safeguards.

Building from source

Development requires Git, Python 3.12, CMake and Visual Studio 2022 Desktop C++ tools. XboxRecomp and libsamplerate are pinned submodules; the setup script applies our ordered toolkit patches.

git clone --recurse-submodules https://github.com/GTTeancum/OpenXML1xbox.git
cd OpenXML1xbox
./scripts/setup.ps1
cmake -S . -B build/optimized -A x64 -DOPENXML1_BUILD_BOOT_PROBE=ON -DOPENXML1_OPTIMIZE_RECOMP=ON -DPython3_EXECUTABLE="$PWD/.venv/Scripts/python.exe"
cmake --build build/optimized --config Release --target xml1-boot-probe

Compilation uses the committed src/recomp/game tree, including the remaining address-named functions. It does not require an ISO, XBE, disassembly or code generation. The 32-bit DX8 renderer is built and embedded automatically. The result is build/optimized/Release/xml1-boot-probe.exe; deploy it as X-Men Legends.exe beside your own extracted game data and default.xbe. Running the game still requires those original files and the release's modified assets. Compiling the executable does not create a complete playable asset set.

See Git-only build and regeneration for the source map, checks and optional maintainer regeneration. The game host is 64-bit; an original-Xbox hardware build is not implemented. PC menu documentation covers optional menu asset authoring, which needs local XML2 reference assets and the IGB writer. Original game assets remain outside Git.

This is an unofficial project, not affiliated with the original game's publishers or developers. X-Men Legends and its artwork belong to their respective owners. Third-party components retain their licenses and notices.