You must have a 64-bit machine for building and running the project. Always run your system updater before building and make sure you have the latest drivers.
- Windows 7 or later
- Visual Studio 2019 or Visual Studio 2017
- Python 3.6+
- Ensure Python is in PATH.
- Windows 10 SDK version 10.0.19041.0 (for Visual Studio 2019, this or any newer version)
git clone https://github.com/xenia-project/xenia.git cd xenia xb setup # Build on command line (add --config=release for release): xb build # Pull latest changes, rebase, update submodules, and run premake: xb pull # Run premake and open Visual Studio (run the 'xenia-app' project): xb devenv # Run premake to update the sln/vcproj's: xb premake # Format code to the style guide: xb format
VS behaves oddly with the debug paths. Open the 'xenia-app' project properties
and set the 'Command' to
$(SolutionDir)$(TargetPath) and the
'Working Directory' to
$(SolutionDir)..\... You can specify flags and
the file to run in the 'Command Arguments' field (or use
By default logs are written to a file with the name of the executable. You can
override this with
If running under Visual Studio and you want to look at the JIT'ed code
(available around 0xA0000000) you should pass
get helpful spacers/movs in the disassembly.
Linux support is extremely experimental and presently incomplete.
The build script uses LLVM/Clang 9. GCC while it should work in theory, is not easily interchangeable right now.
- Normal building via
xb builduses Make.
- CodeLite is supported.
xb devenvwill generate a workspace and attempt to open it. Your distribution's version may be out of date so check their website.
- Experimental CMake generation is available to facilitate use of other IDEs such as CLion. If
clionis available inside
xb devenvwill start it. Otherwise
build/CMakeLists.txtneeds to be generated by invoking
xb premake --devenv=cmakemanually.
Clang-9 or newer should be available from system repositories on all up to date distributions. You will also need some development libraries. To get them on an Ubuntu system:
sudo apt-get install libgtk-3-dev libpthread-stubs0-dev liblz4-dev libx11-dev libx11-xcb-dev libvulkan-dev libsdl2-dev libiberty-dev libunwind-dev libc++-dev libc++abi-dev
In addition, you will need up to date Vulkan libraries and drivers for your hardware, which most distributions have in their standard repositories nowadays.
To make life easier you can set the program startup arguments in your IDE to something like
--log_file=stdout /path/to/Default.xex to log to console rather than a file and start up the emulator right away.