xenia-canary/README.md

110 lines
4.1 KiB
Markdown

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.
Come chat with us **about development topics** in [#xenia @ irc.freenode.net](http://webchat.freenode.net?channels=%23xenia&uio=MTE9NzIaa).
Currently supported features:
* Nothing!
Coming soon (maybe):
* Everything!
## Disclaimer
The goal of this project is to experiment, research, and educate on the topic
of emulation of modern devices and operating systems. **It is not for enabling
illegal activity**. All information is obtained via reverse engineering of
legally purchased devices and games and information made public on the internet
(you'd be surprised what's indexed on Google...).
## Quickstart
Windows:
# install python 2.7 and VS2013
git clone https://github.com/benvanik/xenia.git
cd xenia
xb setup
# open build\xenia\xenia.sln and start xenia-run
When fetching updates use `xb pull` to automatically fetch everything and
update gyp files/etc.
## Building
See [building](docs/building.md) for setup and information about the
`xenia-build` script.
## Contributors Wanted!
[![Stories in Ready](https://badge.waffle.io/benvanik/xenia.png?label=ready)](https://waffle.io/benvanik/xenia)
Have some spare time, know C++, and want to write an emulator? Contribute!
There's a ton of work that needs to be done, a lot of which is wide open
greenfield fun. Fixes and optimizations are always welcome (please!), but
in addition to that there are some major work areas still untouched:
* Write an [OpenGL driver](https://github.com/benvanik/xenia/issues/59)
* Add input drivers for [OSX](https://github.com/benvanik/xenia/issues/61) and [PS4 controllers](https://github.com/benvanik/xenia/issues/60) (or anything else)
* Start [hacking on audio](https://github.com/benvanik/xenia/issues/62)
* Support [loading of PIRS files](https://github.com/benvanik/xenia/issues/63)
* Build a [virtual LIVE service](https://github.com/benvanik/xenia/issues/64)
See more projects [good for contributors](https://github.com/benvanik/xenia/issues?labels=good+for+contributors&page=1&state=open).
## FAQ
### Can I get an exe?
**NO**. I am not releasing binaries - at least not for awhile. Don't be an
idiot and download a binary claiming to be of this project. In fact, don't
be an idiot and download *any* binary claiming to be an Xbox 360 or PS3
emulator from *any* source, especially not YouTube videos and shady websites.
Come on people. Jeez.
### What kind of machine do I need to run this?
You'll need 64-bit Windows 7 with a processor supporting at least SSE4.
It's only tested on Windows 8 and that may become a requirement as several of
the APIs exposed there are beneficial to emulation. In general if you have to
ask if your machine is good enough to run games at a decent speed the answer is
no.
### What about Linux/OSX?
The project is designed to support non-Windows platforms but until it's running
games it's not worth the maintenance burden. If you're a really passionate
Linux/OSX-based developer and want to help out, run Bootcamp/VM and contribute
an OpenGL 4 driver - that'll be the most difficult part in porting to
non-Windows platforms.
### What kind of GPU do I need?
DirectX 11 support is required. To get full speed and compatibility Mantle may
be required in the future (which means R9 AMD cards and up).
### (some argument over an unimportant technical choice)
In general: 'I don't care.'
Here's a short list of common ones:
* 'Why Python 2.7? 3 is awesome!' -- agreed, but gyp needs 2.7.
* 'Why this GYP stuff?' -- CMake sucks, managing Xcode projects by hand sucks,
and for the large cross-platform project this will become I'm not interested
in keeping all the platforms building any other way.
* 'Why this xenia-build.py stuff?' -- I like it, it helps me. If you want to
manually execute commands have fun, nothing is stopping you.
## Known Issues
### Use of stdout
Currently everything is traced to stdout, which is slow and silly. A better
tracing format is being worked on.