Skip to content
Vidi0Public
forked from xodus-gaming/xodus

About

The great gaming migration to Linux

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

138 Commits

Folders and files

Repository files navigation

Xodus

The great gaming migration to Linux

Discord

Caution

This is an unofficial project - use at your own risk. It is not affiliated with, endorsed by, or sponsored by Microsoft or XBOX; all trademarks, product names, and company names or logos mentioned herein are the property of their respective owners.

Current state of the project

The project can now login, download packages and obtain licenses for games.

These parts are still quite scattered around.

  • Device login
  • User login
  • XBOX authorization
  • MSIXVC download
  • On-demand .exe decryption #50
  • MSIXVC2 support #53

FAQ

Q: What is Xodus
Xodus aims to bring XBOX PC games to Linux and possibly Mac devices.

Q: When can I play my Minecraft Bedrock?
While Xodus is quickly maturing, there is still a lot of work to support it from Wine standpoint to provide necessary XBOX Services to games.
TL;DR soontm

Q: How to get involved?
Start by joining our Discord or review any open GitHub issues .

Q: What games will be supported?
We hope to manage to support most of the catalog, the limitation is the game has to be GDK and in MSIXVC format.
So far Gears of War 4 is a prominent unsupported title for the time being.

Q: Will XBOX Backward Compatibility on PC work?
While Xodus is capable of downloading and running those titles. It's possible these games will work only after additional patches to wine, dxvk or vkd3d-proton.

Building

The project structure is as follows.

.
├── msixvc - [rlib] common rlib crate for utilities for parsing MSIXVC and XSP files
├── xodus - [rlib] common rlib crate that contains core xodus functionality, API calls abstractions and utilities
├── xodus-cli - [bin] CLI currently used for iterating over new xodus features
└── xodus-service - [bin] service process exposing a xodus.sock for IPC communication, it takes care of xgameruntime.dll integration.

Note

xodus-service aims to become a main point of integration. All xodus clients will connect to it to interact with games and XBOX services.

Prerequisites

Running

Building all crates in release mode

cargo build --release --workspace

Running cli in debug

cargo run -- --help

Running xodus-service in debug

cargo run --bin xodus-service

Debug and profile xodus-cli or xodus-service with tokio-console

RUSTFLAGS="--cfg tokio_unstable" cargo run --features tokio_console 

Warning

For better performance when decrypting MSIXVC files, the aes and ssse3 features are enabled on x86_64, and the aes feature is enabled on aarch64. This means that the program will crash with an illegal instruction error when running on a CPU which doesn't support those instructions.

See https://en.wikipedia.org/wiki/AES_instruction_set for a list of compatible CPUs (every processor from 2011 onwards should be supported).

CLI Usage

Usage: xodus-cli <COMMAND>

Commands:
  download    Download msixvc or xsp files for a given game
  license     Dump CIKs for use with XvdTool
  extract     Extract locally stored msixvc file
  login       
  streaming   Download and extract the game through streaming algorithm
  clep        Generate or decrypt base64-encoded CLEP challenge data
  sp-license  Decode SPLicenseBlock
  help        Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

Special Thanks

About

The great gaming migration to Linux

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages