Difference between revisions of "Xbox Port"

From ReactOS Wiki
Jump to: navigation, search
(Status: update CD boot status)
(Status: CORE-16373 is fixed)
 
(20 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
* For people who don't have a computer, but have an Xbox which can be used as a computer with ReactOS
 
* For people who don't have a computer, but have an Xbox which can be used as a computer with ReactOS
 
* For gamers who want to run retro console emulators which are available only as Windows applications
 
* For gamers who want to run retro console emulators which are available only as Windows applications
* For [https://xqemu.com/ XQEMU] emulator developers who [https://www.reddit.com/r/ReverseEngineering/comments/b43rfo/reactos_xbox_port_it_is_almost_there_lets_finish/ej9884j/ need an open-source Xbox kernel] implementation
+
* For [https://xqemu.com/ XQEMU] and [https://xemu.app/ xemu] emulator developers who [https://www.reddit.com/r/ReverseEngineering/comments/b43rfo/reactos_xbox_port_it_is_almost_there_lets_finish/ej9884j/ need an open-source Xbox kernel] implementation
 
* For the project itself, because it allows better flexibility of porting to other platforms
 
* For the project itself, because it allows better flexibility of porting to other platforms
  
Line 13: Line 13:
 
* CPU: Pentium III Coppermine based 733 MHz custom CPU, 128 KB L2 and 133 MHz FSB (i686 class, could be upgraded up to 1.4 GHz with mods)
 
* CPU: Pentium III Coppermine based 733 MHz custom CPU, 128 KB L2 and 133 MHz FSB (i686 class, could be upgraded up to 1.4 GHz with mods)
 
* RAM: 64 MB DDR 400 in a 128-bit bus (6.4 GB/s, expandable to 128 MB with mods)
 
* RAM: 64 MB DDR 400 in a 128-bit bus (6.4 GB/s, expandable to 128 MB with mods)
* Motherboard/Chipset: Custom motherboard design using the nVidia nForce chipset (close to nForce 420) which acts as both the system chipset and the graphics adapter (basically a chipset with IGP configuration like many PCs compatibles around the 2000s)
+
* Motherboard/Chipset: Custom motherboard design using the nVidia nForce chipset (close to nForce 420) which acts as both the system chipset and the graphics adapter, Southbridge is the nVidia MCPX which is identical to the MCP-D southbridge used in the nForce 220/415/420 (basically a chipset with IGP configuration like many PCs compatibles around the 2000s)
* Graphics: nVidia NV2A GeForce 3/4 class Hybrid GPU (OpenGL 1.3, DirectX 8.1 HW support, between a GeForce 3 and a GeForce 4)
+
* Graphics: nVidia NV2A GeForce 3/4 class Hybrid GPU (OpenGL 1.3, DirectX 8.1 HW support (Pixel Shader 1.3/Vertex Shader 1.1?), between a GeForce 3 and a GeForce 4)
 
* Storage: 8 or 10 GB 5400 RPM (IDE), HDD formatted in FATX; 2-5x DVD-ROM drive; 32 MB USB memory card
 
* Storage: 8 or 10 GB 5400 RPM (IDE), HDD formatted in FATX; 2-5x DVD-ROM drive; 32 MB USB memory card
 
* Network: NVIDIA nForce 10/100BASE-TX w/ ICS ICS1893AF PHY
 
* Network: NVIDIA nForce 10/100BASE-TX w/ ICS ICS1893AF PHY
Line 22: Line 22:
 
'''''Note:''' See [[Xbox Port Roadmap]] and [[Xbox Port Tests]] for more details.''
 
'''''Note:''' See [[Xbox Port Roadmap]] and [[Xbox Port Tests]] for more details.''
  
* Boot CD works, but shows black screen.
+
* Boot CD works in XQEMU, but shows black screen.
* Live CD boots, but random exceptions happen, see {{JIRA|16627}}.
+
* Live CD boots in XQEMU, having problem with USB input, see {{JIRA|16352}}.
 
* Can be booted from HDD using pre-installed files:
 
* Can be booted from HDD using pre-installed files:
** MBR/FAT32 boot works, having problem with USB input, see {{JIRA|16352}}.
+
** Both MBR/FAT32 and BRFR/FATX boot works, having problem with USB input, see {{JIRA|16352}}.
** BRFR/FATX boot works, but partitioning scheme not supported by disk driver, see {{JIRA|16329}}.
+
** Booting from BRFR/FATX works only once, after reboot SYSTEM hive gets corrupted (no ticket yet).
* Xbox port blockers: {{JIRA|16329}}, {{JIRA|16352}}, {{JIRA|16627}}
+
* Xbox port blockers: {{JIRA|16352}}
* Real hardware blockers: {{JIRA|16319}} (including the line above)
+
* Real hardware blockers: {{JIRA|16726}}, {{JIRA|17643}} (including the line above)
  
 
'''See this [https://jira.reactos.org/issues/?filter=15901 JIRA ticket list] for known unresolved problems.'''
 
'''See this [https://jira.reactos.org/issues/?filter=15901 JIRA ticket list] for known unresolved problems.'''
Line 51: Line 51:
 
=== Existing work ===
 
=== Existing work ===
 
* Xbox [[HAL]] exists. See [https://github.com/reactos/reactos/tree/master/hal/halx86/xbox halxbox] module.
 
* Xbox [[HAL]] exists. See [https://github.com/reactos/reactos/tree/master/hal/halx86/xbox halxbox] module.
* Freeloader automatically distinguish between normal PC and Xbox.
+
* FreeLoader supports Original Xbox sub-architecture. See [https://github.com/reactos/reactos/tree/master/boot/freeldr/freeldr/arch/i386/xbox freeldr/arch/i386/xbox ].
 
* Support for FATX file system exists in freeloader, fastfat driver, and ufatx module. See [[File Systems#FAQ]] and [https://git.reactos.org/?p=reactos.git&a=search&h=HEAD&st=grep&s=FATX ReactOS Git grep].
 
* Support for FATX file system exists in freeloader, fastfat driver, and ufatx module. See [[File Systems#FAQ]] and [https://git.reactos.org/?p=reactos.git&a=search&h=HEAD&st=grep&s=FATX ReactOS Git grep].
 
* Basic video miniport driver for nVidia NV2A GPU (<code>PCI\VEN_10DE&DEV_02A0</code>) exists. See [https://github.com/reactos/reactos/blob/master/media/inf/xboxdisp.inf xboxdisp.inf] and [https://github.com/reactos/reactos/tree/master/win32ss/drivers/miniport/xboxvmp xboxvmp] module.
 
* Basic video miniport driver for nVidia NV2A GPU (<code>PCI\VEN_10DE&DEV_02A0</code>) exists. See [https://github.com/reactos/reactos/blob/master/media/inf/xboxdisp.inf xboxdisp.inf] and [https://github.com/reactos/reactos/tree/master/win32ss/drivers/miniport/xboxvmp xboxvmp] module.
Line 60: Line 60:
  
 
== Installing ==
 
== Installing ==
It's possible to install or just run ReactOS either on real Xbox or in XQEMU emulator.
+
It's possible to install or just run ReactOS either on real Xbox or in XQEMU/xemu emulator.
  
* See [[Install ReactOS on Xbox]].
+
You need the following steps:
 +
* Check out [[ReactOS FAQ#Testing ReactOS on real hardware|this article]] to learn more about the testing process.
 +
* You should be able to [[Building ReactOS|compile ReactOS]].
 +
* Run the following command <code>configure -DSARCH=xbox</code> before compilation to set target platform as Original Xbox.
 +
* Build and burn a LiveCD/BootCD ISO image.
 +
* Insert the medium and boot ReactOS (see [[Install ReactOS on Xbox]] for details).
  
 
== Gallery ==
 
== Gallery ==
Line 68: Line 73:
 
File:ReactOS on Xbox.jpg|[http://web.archive.org/web/20060702184407if_/http://www.reactos.nl:80/xbox/reactosonxbox.jpg ReactOS running on Xbox] (circa 2006)
 
File:ReactOS on Xbox.jpg|[http://web.archive.org/web/20060702184407if_/http://www.reactos.nl:80/xbox/reactosonxbox.jpg ReactOS running on Xbox] (circa 2006)
 
File:ReactOS on Xbox (video thumbnail).jpg|[https://youtu.be/XOF0WBD3hLU Video on YouTube] (circa 2007)
 
File:ReactOS on Xbox (video thumbnail).jpg|[https://youtu.be/XOF0WBD3hLU Video on YouTube] (circa 2007)
File:ReactOS 0.4.13-dev-1025 in XQEMU.png|ReactOS 0.4.13-dev Setup in XQEMU, see [https://twitter.com/x86corez/status/1167589261169823746 Twitter post] (Aug 2019)
+
File:ReactOS 0.4.13-dev-1025 in XQEMU.png|[https://twitter.com/x86corez/status/1167589261169823746 ReactOS 0.4.13-dev Setup in XQEMU] (Aug 2019)
 +
File:ReactOS 0.4.14-dev-945 LiveCD in XQEMU.png|ReactOS 0.4.14-dev LiveCD in XQEMU (Feb 2020)
 +
File:ReactOS 0.4.14-dev on Xbox.jpg|[https://twitter.com/x86corez/status/1230244089632829440 ReactOS 0.4.14-dev LiveCD with hacks booted on Xbox] (Feb 2020)
 +
File:ReactOS 0.4.15-dev on Xbox 128M.png|[https://twitter.com/justanyonee_/status/1306673938563555328 ReactOS 0.4.15-dev-741-gbca0762 booted on Xbox with 128 MB RAM] (Sep 2020)
 +
File:ReactOS 0.4.15-dev on Xbox (video thumbnail).png|[https://youtu.be/wPjkjUn2Ro8 ReactOS 0.4.15-dev-1184-g23e04ae boot process on Xbox - YouTube] (Oct 2020)
 +
File:ReactOS 0.4.15-dev-1518 LiveCD on Xbox.jpg|[https://twitter.com/x86corez/status/1343697416768401409 Fixed DVD drive detection in 0.4.15-dev-1518-g0ed5db45a4] (Dec 2020)
 +
File:ReactOS 0.4.15-dev-1510 LiveCD on Xbox.jpg|[https://twitter.com/x86corez/status/1344696337477079040 Fixed CPU detection bug in 0.4.15-dev-1510-gf234cb6e59] (Dec 2020)
 +
File:ReactOS 0.4.15-dev-1518 LiveCD in xemu.png|ReactOS Xbox port running in xemu (Dec 2020)
 
</gallery>
 
</gallery>
  
 
== People who have an original Xbox ==
 
== People who have an original Xbox ==
 
* [[Andreas Bjerkeholt]] aka Harteex
 
* [[Andreas Bjerkeholt]] aka Harteex
* [[Daniel Reimer]] aka EmuandCo
+
* [[Daniel Reimer]] aka EmuandCo (rev 1.3)
 
* [[User:Manatails007/computers|Manatails007]]
 
* [[User:Manatails007/computers|Manatails007]]
* Andrew Cook aka ariscop
+
* [[User:ariscop|Andrew Cook]] aka ariscop
* Ben Nottelling
+
* [[User:Ben Nottelling|Ben Nottelling]]
* Robert Naumann aka gonzoMD
+
* [[User:GonzoMD|Robert Naumann]] aka gonzoMD
 +
* [[User:Cernodile|Joann Mõndresku]] aka Cernodile (rev 1.0)
 +
* Matias#5019 in community Discord (rev 1.4)
  
 
== See Also ==
 
== See Also ==
Line 83: Line 97:
 
* [https://github.com/mborgerson/reactos/wiki ReactOS on Xbox notes by Matt Borgerson]
 
* [https://github.com/mborgerson/reactos/wiki ReactOS on Xbox notes by Matt Borgerson]
 
* [[Run Xbox Games on ReactOS‎]]
 
* [[Run Xbox Games on ReactOS‎]]
* [http://www.reactos.org/forum/viewtopic.php?f=2&t=1913 ReactOS Forum topic]
+
* [https://reactos.org/forum/viewtopic.php?f=2&t=1913 ReactOS Forum topic]
 
* [https://tech.slashdot.org/story/04/12/15/0120252/reactos-runs-on-the-xbox An article on Slashdot]
 
* [https://tech.slashdot.org/story/04/12/15/0120252/reactos-runs-on-the-xbox An article on Slashdot]
 
* [https://web.archive.org/web/20180815080059/https://blogs.msdn.microsoft.com/xboxteam/2006/02/17/the-xbox-operating-system/ The Xbox Operating System explained by Garry Trinder]
 
* [https://web.archive.org/web/20180815080059/https://blogs.msdn.microsoft.com/xboxteam/2006/02/17/the-xbox-operating-system/ The Xbox Operating System explained by Garry Trinder]

Latest revision as of 13:22, 27 September 2022

Imbox notice.png

Notice: This page is about the full port of the ReactOS desktop operating system for the original Xbox. For the Xbox gaming kernel see Run Xbox Games on ReactOS‎.

ReactOS Xbox port targets the original Microsoft's Xbox gaming console, which is based on Intel Pentium III (Coppermine) processor that ReactOS could support.

It might be useful in different ways:

  • For people who don't have a computer, but have an Xbox which can be used as a computer with ReactOS
  • For gamers who want to run retro console emulators which are available only as Windows applications
  • For XQEMU and xemu emulator developers who need an open-source Xbox kernel implementation
  • For the project itself, because it allows better flexibility of porting to other platforms

Hardware

Known hardware specifications on the Xbox are:

  • CPU: Pentium III Coppermine based 733 MHz custom CPU, 128 KB L2 and 133 MHz FSB (i686 class, could be upgraded up to 1.4 GHz with mods)
  • RAM: 64 MB DDR 400 in a 128-bit bus (6.4 GB/s, expandable to 128 MB with mods)
  • Motherboard/Chipset: Custom motherboard design using the nVidia nForce chipset (close to nForce 420) which acts as both the system chipset and the graphics adapter, Southbridge is the nVidia MCPX which is identical to the MCP-D southbridge used in the nForce 220/415/420 (basically a chipset with IGP configuration like many PCs compatibles around the 2000s)
  • Graphics: nVidia NV2A GeForce 3/4 class Hybrid GPU (OpenGL 1.3, DirectX 8.1 HW support (Pixel Shader 1.3/Vertex Shader 1.1?), between a GeForce 3 and a GeForce 4)
  • Storage: 8 or 10 GB 5400 RPM (IDE), HDD formatted in FATX; 2-5x DVD-ROM drive; 32 MB USB memory card
  • Network: NVIDIA nForce 10/100BASE-TX w/ ICS ICS1893AF PHY
  • Audio Controller: NVIDIA nForce APU w/ Wolfson Microelectronics XWM9709 AC97 2.1 Codec

Status

Note: See Xbox Port Roadmap and Xbox Port Tests for more details.

  • Boot CD works in XQEMU, but shows black screen.
  • Live CD boots in XQEMU, having problem with USB input, see CORE-16352.
  • Can be booted from HDD using pre-installed files:
    • Both MBR/FAT32 and BRFR/FATX boot works, having problem with USB input, see CORE-16352.
    • Booting from BRFR/FATX works only once, after reboot SYSTEM hive gets corrupted (no ticket yet).
  • Xbox port blockers: CORE-16352
  • Real hardware blockers: CORE-16726, CORE-17643 (including the line above)

See this JIRA ticket list for known unresolved problems.

«It's just fun for now, nothing else. You can browse your Xbox's HDD in explorer as if it's just a PC computer, you can even do some very simple things, but not very much really. But with time – when we finish nVidia network card driver, it's gonna become more interesting since possibilities are endless – there are so plenty of software for Win32 that there is definitely something cool you may want to try to run on your Xbox» :-)

Fireball (talk) 19:55, 1 September 2005 (UTC)

Known facts

Development problems

  • Many hardware components that need drivers.
  • Lack of people with low-level programming and reverse engineering skills.
  • Microsoft has discontinued original Xbox since 2006, so few people with a working console left, and their number is decreasing.

Existing work

Installing

It's possible to install or just run ReactOS either on real Xbox or in XQEMU/xemu emulator.

You need the following steps:

  • Check out this article to learn more about the testing process.
  • You should be able to compile ReactOS.
  • Run the following command configure -DSARCH=xbox before compilation to set target platform as Original Xbox.
  • Build and burn a LiveCD/BootCD ISO image.
  • Insert the medium and boot ReactOS (see Install ReactOS on Xbox for details).

Gallery

People who have an original Xbox

See Also

ReactOS ports‎
In active development Intel IA-32 (x86) | AMD64 (x64)
In slow development ARM64 (aarch64) | ARM32 (armv7) | NEC PC-98 (x86) | OG Xbox (x86)
Unmaintained OLPC (x86)
Missing ports that Windows has Intel IA-64 (Itanium) | IBM PS/2 MCA (x86) | SGI 320/540 (x86) | DEC Alpha (axp) | MIPS | PowerPC (ppc)
Ideas for new ports Apple TV 1st Gen (x86) | FM Towns (x86) | PlayStation 4 (x64) | Intel SFI (x86)