StrikeBox/README.md

79 lines
2.9 KiB
Markdown
Raw Normal View History

**If you're looking for a functional Xbox emulator, check out [XQEMU](http://xqemu.com/)
or [Cxbx-Reloaded](https://github.com/Cxbx-Reloaded/Cxbx-Reloaded).**
**This project is on an indefinite hold as the two above projects are much more
complete and functional.**
---
2019-02-28 09:45:09 -05:00
# StrikeBox
Original Xbox Emulator
2019-01-25 14:39:29 -05:00
A fork of [OpenXBOX](https://github.com/mborgerson/OpenXBOX) by mborgerson,
with a focus on LLE emulation. HLE kernel was an original goal of OpenXBOX; it
2019-02-28 09:45:09 -05:00
will come later in StrikeBox.
2019-01-25 14:39:29 -05:00
The current state of this thing is just a tad bit more tangible than vaporware.
Essentially right now it just initializes an x86 system (courtesy of one of the
various virtualization platforms supported by
[virt86](https://github.com/StrikerX3/virt86)) and runs whatever is in ROM,
which is provided by the user.
2018-03-05 11:39:27 -05:00
2018-12-07 11:15:33 -05:00
If provided with a particular BIOS ROM and a raw hard disk image containing the
2019-01-12 16:20:46 -05:00
Microsoft Xbox Dashboard, it will load the Dashboard software succesfully. It
can also load games from an XISO, although without graphics, input, audio or
networking nothing is really playable... yet ;)
2018-03-05 11:39:27 -05:00
The initial goal is to emulate the original Xbox at a low level. The user will
have to provide their own dump of the MCPX and BIOS ROMs from an Xbox machine,
2019-02-28 09:45:09 -05:00
as well as the appropriate game media dump in XISO format and a hard disk image
containing the system software.
2019-02-28 09:45:09 -05:00
In the future, StrikeBox will attempt to provide high level emulation of the
kernel in order to sidestep the ROM and dashboard requirements. It is a long
way off, as research on the kernel is still incipient and existing
implementations are incomplete, incorrect or straight up copies of illegally
obtained code.
2019-02-28 11:29:06 -05:00
## How to Build
2019-02-28 09:45:09 -05:00
StrikeBox uses [CMake](https://cmake.org/) build files to generate projects for
your preferred development platform. You'll need CMake 3.8 or later and the
[virt86](https://github.com/StrikerX3/virt86) library.
2018-03-05 11:39:27 -05:00
2018-03-16 19:38:29 -04:00
### Windows
2019-02-28 11:29:06 -05:00
To make a [Visual Studio 2017](https://www.visualstudio.com/downloads/)
project:
```
2018-03-16 19:38:29 -04:00
> mkdir build
> cd build
> cmake -G "Visual Studio 15 2017" -A Win32 .. # for 32-bit builds
> cmake -G "Visual Studio 15 2017" -A x64 .. # for 64-bit builds
```
2018-03-16 19:38:29 -04:00
The .sln file will be generated in the build folder, ready to build.
2018-03-05 11:39:27 -05:00
### Linux
2018-03-16 19:21:42 -04:00
```
$ sudo apt-get install cmake
$ mkdir build; cd build
$ cmake .. && make
2018-03-16 19:21:42 -04:00
$ cd src/cli
2019-02-28 09:45:09 -05:00
$ ./strikebox-cli -m <path-to-MCPX-ROM> -b <path-to-BIOS-ROM> -d <path-to-XBE> -r [debug|retail]
2018-03-16 19:21:42 -04:00
```
2018-03-05 11:39:27 -05:00
2018-03-16 19:38:29 -04:00
### macOS
2019-02-28 11:29:06 -05:00
2018-03-16 19:38:29 -04:00
macOS is currently unsupported. Feel free to submit a pull request to add
support for this platform!
2018-03-16 19:38:29 -04:00
## Kernel Debugging
2018-03-16 19:38:29 -04:00
On Windows, you can perform kernel debugging of the virtual Xbox by creating a
linked pair of virtual null-modem serial ports with [com0com](http://com0com.sourceforge.net/).
2018-03-16 19:38:29 -04:00
Use a Debug BIOS ROM and attach one side of the pair to the first Super I/O
serial port, then connect [WinDbg or KD](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/)
to the other side to begin kernel debugging.