Xbox 360 Emulator Research Project
Go to file
Ben Vanik 6c4af5aa70 Kernel calls and variables now working and tracing better. 2013-01-28 12:36:39 -08:00
bin Adding the start of the instruction test infrastructure. 2013-01-27 02:51:53 -08:00
include/xenia Kernel calls and variables now working and tracing better. 2013-01-28 12:36:39 -08:00
private Now running up to the first required kernel call. 2013-01-28 03:03:37 -08:00
src Kernel calls and variables now working and tracing better. 2013-01-28 12:36:39 -08:00
test/codegen Now running up to the first required kernel call. 2013-01-28 03:03:37 -08:00
third_party First instruction executed in the test runner! 2013-01-27 17:49:32 -08:00
tools Now running up to the first required kernel call. 2013-01-28 03:03:37 -08:00
.gitignore Initial project skeleton. 2013-01-11 01:23:08 -08:00
.gitmodules First instruction executed in the test runner! 2013-01-27 17:49:32 -08:00
CONTRIBUTORS.md Initial project skeleton. 2013-01-11 01:23:08 -08:00
LICENSE Create LICENSE 2013-01-10 15:25:20 -08:00
README.md Update README.md 2013-01-14 13:27:52 -08:00
TODO.md Now running up to the first required kernel call. 2013-01-28 03:03:37 -08:00
common.gypi Now running up to the first required kernel call. 2013-01-28 03:03:37 -08:00
xenia-build.py Adding the start of the instruction test infrastructure. 2013-01-27 02:51:53 -08:00
xenia.gyp Executing a bunch of instructions! 2013-01-27 22:14:24 -08:00
xeniarc Adding the start of the instruction test infrastructure. 2013-01-27 02:51:53 -08:00

README.md

Xenia - Xbox 360 Emulator Research Project

Xenia is an experimental emulator for the Xbox 360. It does not run games (yet), and if you are unable to understand that please leave now.

Currently supported features:

  • Nothing!

Coming soon (maybe):

  • Everything!

Quickstart

git clone https://github.com/benvanik/xenia.git
cd xenia && source xeniarc
xb setup
xb build
./bin/xenia-run some.xex

Requirements

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 video drivers for your card.

Windows

Ensure you have the latest patched version of Visual Studio 2010, the Windows SDK, the full DirectX SDK, and the Kinect SDK.

OS X

Only tested on OS X 10.8 (Mountain Lion).

Building

A simple build script is included to manage basic tasks such as building dependencies.

./xenia-build.py --help

The xeniarc bash file has some aliases that save some keypresses.

source xeniarc
xb  -> python xenia-build.py
xbb -> python xenia-build.py build
xbc -> python xenia-build.py clean

Commands

setup

Run this on initial checkout to pull down all dependencies and setup LLVM.

xb setup

pull

Does a git pull in addition to updating submodules and rebuilding dependencies and gyp outputs. Use this, if possible, instead of git pull.

xb pull

gyp

Updates all of the supported gyp projects. If you're using Visual Studio or Xcode to build or debug your projects you'll need to run this after you change gyp/gypi files.

xb gyp

xethunk

Updates the checked-in src/cpu/xethunk/xethunk.bc and xethunk.ll files. This is only required if changes are made to the xethunk files. The results should be checked in.

build

Builds all xenia targets using ninja. Release is built by default; specify --debug to build the debug configuration.

xb build
xb build --debug

clean

Cleans just xenia outputs from the build/ directory. A following build will just have the rebuild xenia and not all of the dependencies.

xb clean

nuke

Cleans up xenia outputs as well as all dependencies. A full build will be required after this - including LLVM - so only do this if you want to reclaim your disk space or something is really wrong.

xb nuke

Running

Use the wrapper shell scripts under bin/ to run tools. They will ensure the tools are built (but not that they are up to date) before running and allow switching between the debug and release variants with --debug.

xenia-info

Dumps information about a xex file.

./bin/xenia-info some.xex

xenia-run

Runs a xex.

./bin/xenia-run some.xex