Updated Cxbx Reloaded overview (markdown)

PatrickvL 2017-08-02 11:09:02 +02:00
parent 420f8b6636
commit 4e0b603a82
1 changed files with 7 additions and 0 deletions

@ -28,6 +28,13 @@ The downside to this is that the Cxbx-Reloaded is quite big (more than 67 MiB cu
## CPU 'emulation'
Cxbx-Reloaded emulates the Xbox using direct code execution. This means most of the CPU instructions the Xbox would execute, are executed directly on the host machine, without any modification or interpretation. _This restricts running Cxbx-Reloaded to CPU's that are compatible with the Xbox Pentium 3 Coppermine CPU!_
The advantage of this approach is, that Cxbx doesn't need to emulate the CPU at all, and offers native, 'faster-than-real-hardware' emulation speeds. Admittedly, executing Xbox code as-is does bring with it a few complexities;
* some opcodes are prohibited to be executed in user-mode on Windows
* IN/OUT opcodes must be emulated
* CPU-specific opcodes (like CPUID) still need to be emulated
* the FS segment layout differs between Xbox and Windows
* mapping physical to virtual addresses (using the MMU) isn't allowed (More on this later, under 'Hardware accesses' and 'Contiguous memory'.)
## Xbox Kernel (BIOS)
Cxbx-Reloaded contains it's own implementation of the Xbox kernel, which means there's no need to acquire a dump from your Xbox.
In it's currenty form, the Cxbx-Reloaded kernel forwards many of the 367 kernel API's towards the host Windows kernel API's. __This restricts running Cxbx-Reloaded to operating systems that have offer Win32 API's, so-far Windows only!__