Difference between revisions of "Xbox Port"

From ReactOS Wiki
Jump to: navigation, search
m (Users who have an original Xbox: add Harteex)
(Gallery: add photo from 19 Feb 2020)
(31 intermediate revisions by 6 users not shown)
Line 1: Line 1:
'''ReactOS Xbox port''' targets the original Microsoft's Xbox gaming console, which is based on a custom Intel Pentium III processor that ReactOS could support.
+
{{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‎]].}}
  
== Installing ==
+
'''ReactOS Xbox port''' targets the original Microsoft's Xbox gaming console, which is based on Intel Pentium III (Coppermine) processor that ReactOS could support.
* See [[Install ReactOS on Xbox]].
+
 
 +
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 [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 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 (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)
 +
* 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 {{JIRA|16352}}.
 +
* Boot CD / Live CD doesn't boot on real hardware, see {{JIRA|16692}}.
 +
* Can be booted from HDD using pre-installed files:
 +
** MBR/FAT32 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}}.
 +
* Xbox port blockers: {{JIRA|16329}}, {{JIRA|16352}}
 +
* Real hardware blockers: {{JIRA|16319}}, {{JIRA|16692}}, {{JIRA|16704}} (including the line above)
 +
 
 +
'''See this [https://jira.reactos.org/issues/?filter=15901 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» :-)''
 +
 
 +
: — [[User:Fireball|Fireball]] ([[User talk:Fireball|talk]]) 19:55, 1 September 2005 (UTC)
  
== Known facts ==
+
=== Known facts ===
 
* The port was started by [[Gé van Geldorp]] at [https://github.com/reactos/reactos/commit/6352c035d181e060b243202867a0622b41ca4b08 r11926] and firstly got into [[ChangeLog-0.2.5|ReactOS 0.2.5]], but has since regressed and is unmaintained.
 
* The port was started by [[Gé van Geldorp]] at [https://github.com/reactos/reactos/commit/6352c035d181e060b243202867a0622b41ca4b08 r11926] and firstly got into [[ChangeLog-0.2.5|ReactOS 0.2.5]], but has since regressed and is unmaintained.
 
* In [[ChangeLog-0.3.0|ReactOS 0.3.0]] Xbox's I2C support was moved to a separate file, and support of LEDs switching was added by [[Aleksey Bragin]].
 
* In [[ChangeLog-0.3.0|ReactOS 0.3.0]] Xbox's I2C support was moved to a separate file, and support of LEDs switching was added by [[Aleksey Bragin]].
Line 10: Line 43:
 
* Xbox port revival was suggested at [[Google Summer of Code 2010#Tertiary Ideas|Google Summer of Code 2010 ideas]].
 
* Xbox port revival was suggested at [[Google Summer of Code 2010#Tertiary Ideas|Google Summer of Code 2010 ideas]].
 
* [[Google Summer of Code 2019 Ideas#Xbox executable support|Xbox executable support]] was suggested as Google Summer of Code 2019 idea.
 
* [[Google Summer of Code 2019 Ideas#Xbox executable support|Xbox executable support]] was suggested as Google Summer of Code 2019 idea.
 +
* [[User:binarymaster|Stas'M]] is currently working on Xbox port revival, so [https://github.com/reactos/reactos/milestone/3 XBOX Boot] milestone has been added.
  
== Development problems ==
+
=== Development problems ===
* Undocumented hardware components that need drivers.
+
* Many hardware components that need drivers.
 
* Lack of people with low-level programming and reverse engineering skills.
 
* 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.
 
* Microsoft has discontinued original Xbox since 2006, so few people with a working console left, and their number is decreasing.
  
== 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.
 
* 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.
 +
* XboxDev Cromwell BIOS is currently used: https://github.com/XboxDev/cromwell/releases
 
* Custom Cromwell BIOS previously existed in the repository. See [https://github.com/reactos/reactos/commits/f9c0a9419d1299719f38360d8e35e132ccf8312e/reactos/boot/xbox/cromwell boot/xbox/cromwell].
 
* Custom Cromwell BIOS previously existed in the repository. See [https://github.com/reactos/reactos/commits/f9c0a9419d1299719f38360d8e35e132ccf8312e/reactos/boot/xbox/cromwell boot/xbox/cromwell].
 
* [https://git.reactos.org/?p=reactos.git&a=search&h=HEAD&st=commit&s=xbox Other commits related to Xbox port development].
 
* [https://git.reactos.org/?p=reactos.git&a=search&h=HEAD&st=commit&s=xbox Other commits related to Xbox port development].
 +
* https://svn.reactos.org/downloads/xbox/ - ReactOS Xbox port prebuilt binaries (very old).
 +
 +
== Installing ==
 +
It's possible to install or just run ReactOS either on real Xbox or in XQEMU emulator.
  
== Virtual environment ==
+
* See [[Install ReactOS on Xbox]].
[https://xqemu.com/ XQEMU project] can be used to virtualize target platform and to test ReactOS Xbox port on a regular PC by using emulation.
 
  
 
== Gallery ==
 
== Gallery ==
<!-- <gallery widths="192px" heights="192px">
+
<gallery widths="192px" heights="192px">
File:reactosonxbox.jpg|ReactOS running on Xbox.
+
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)
https://www.youtube.com/watch?v=XOF0WBD3hLU|ReactOS running on Xbox (video).
+
File:ReactOS on Xbox (video thumbnail).jpg|[https://youtu.be/XOF0WBD3hLU Video on YouTube] (circa 2007)
</gallery> -->
+
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)
* [http://web.archive.org/web/20060702184407if_/http://www.reactos.nl:80/xbox/reactosonxbox.jpg ReactOS running on Xbox (photo)]
+
File:ReactOS 0.4.14-dev-945 LiveCD in XQEMU.png|ReactOS 0.4.14-dev LiveCD in XQEMU (Feb 2020)
* [https://www.youtube.com/watch?v=XOF0WBD3hLU ReactOS running on Xbox (video)]
+
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)
 +
</gallery>
  
== Users who have an original Xbox ==
+
== People who have an original Xbox ==
 +
* [[Andreas Bjerkeholt]] aka Harteex
 
* [[Daniel Reimer]] aka EmuandCo
 
* [[Daniel Reimer]] aka EmuandCo
* [[Andreas Bjerkeholt]] aka Harteex
 
 
* [[User:Manatails007/computers|Manatails007]]
 
* [[User:Manatails007/computers|Manatails007]]
 +
* Andrew Cook aka ariscop
 +
* Ben Nottelling
 +
* Robert Naumann aka gonzoMD
  
 
== See Also ==
 
== See Also ==
* Code for implementing '''nVidia NVNet driver''': [https://github.com/XboxDev/nxdk/tree/master/lib/net/pktdrv pktdrv at XboxDev/nxdk] and [https://github.com/LukeUsher/Cxbx-Reloaded/blob/nvnet-revisited/src/core/kernel/exports/EmuKrnlPhy.cpp NVNet / XNet Phy code at Cxbx-Reloaded]
+
* [https://jira.reactos.org/issues/?filter=15901 Known unresolved Xbox port problems]
 +
* [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]
 
* [http://www.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://xboxdevwiki.net/Porting_an_Operating_System_to_the_Xbox_HOWTO Porting an Operating System to the Xbox HOWTO]
 +
* [https://xboxdevwiki.net/NForce Xbox nForce Chipset]
  
 
{{Navigation Ports}}
 
{{Navigation Ports}}
 +
 +
[[Category:Documentation]]
 +
[[Category:Development]]
 +
[[Category:Branches]]

Revision as of 23:49, 19 February 2020

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 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 (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)
  • 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.
  • Boot CD / Live CD doesn't boot on real hardware, see CORE-16692.
  • Can be booted from HDD using pre-installed files:
    • MBR/FAT32 boot works, having problem with USB input, see CORE-16352.
    • BRFR/FATX boot works, but partitioning scheme not supported by disk driver, see CORE-16329.
  • Xbox port blockers: CORE-16329, CORE-16352
  • Real hardware blockers: CORE-16319, CORE-16692, CORE-16704 (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 emulator.

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)