Difference between revisions of "Xbox Port Roadmap"
Binarymaster (talk | contribs) (→Fix ReactOS bugs: PR #2245) |
Binarymaster (talk | contribs) (→Implement missing drivers) |
||
(42 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | This page describes the plan of reviving ReactOS port for the original Xbox, including components outside the source tree. | + | This page describes the plan of reviving the ReactOS port for the original Xbox, including components outside the source tree. |
Once something is done in this list, it should be simply removed. | Once something is done in this list, it should be simply removed. | ||
Line 9: | Line 9: | ||
* Fix USB OHCI - {{JIRA|16352}} | * Fix USB OHCI - {{JIRA|16352}} | ||
** Blocks actual OS testing in XQEMU | ** Blocks actual OS testing in XQEMU | ||
− | ** | + | ** Reproduced on RealHW as well |
− | * Fix | + | * Fix USBH_ProcessHubStateChange: OverCurrent problem - {{JIRA|16726}} |
− | |||
− | |||
** RealHW only | ** RealHW only | ||
− | |||
− | |||
− | |||
− | |||
* <code>Assertion failed: (pti->pcti->fsChangeBits & QS_SENDMESSAGE) == 0</code> happens in <code>win32ss/user/ntuser/misc.c, line 729</code> after some idle hours, and it can be safely cont'ed from kernel debugger | * <code>Assertion failed: (pti->pcti->fsChangeBits & QS_SENDMESSAGE) == 0</code> happens in <code>win32ss/user/ntuser/misc.c, line 729</code> after some idle hours, and it can be safely cont'ed from kernel debugger | ||
** Does not happen with <code>usbohci.sys</code> from Windows 2003 for some reason | ** Does not happen with <code>usbohci.sys</code> from Windows 2003 for some reason | ||
− | * | + | * Xbox HAL: Shutdown does not happen, shows "It is now safe to turn off your computer" picture |
+ | * Serial COM1 is not accessible for user-mode, the port can be opened, but both RX and TX are ignored - '''FIXME: needs ticket''' | ||
+ | ** RealHW only, the debug port lacks SERIRQ, so it cannot utilize interrupt | ||
+ | * VBE driver causes KiTrap06Handler unrecoverable error when trying to attach to XGPU PCI device - {{JIRA|17643}} | ||
+ | ** RealHW only | ||
+ | * <code>Memory at 0xFFFFFFFF could not be accessed</code> on 1st stage setup (Boot CD), reproduced only in GCC builds with 64 MB RAM - {{JIRA|18370}} | ||
+ | ** This is either related to the memory manager or to the video drivers (e.g. blue.sys or miniports), real cause is unknown yet | ||
+ | * When booting from FATX volume, SYSTEM hive gets corrupted on next boot - '''FIXME: needs ticket''' | ||
+ | ** Likely a bug in our old fastfat driver, which is being used for FATX support now | ||
=== Improve ReactOS === | === Improve ReactOS === | ||
+ | * Add Xbox machine detection into setuplib - '''FIXME: needs ticket''' | ||
+ | ** See [https://git.reactos.org/?p=reactos.git;a=blob;f=base/setup/lib/settings.c;hb=9fc87dacdb653b647538180a32002117389b36dc#l276 this code] | ||
* Add bootvid selection into <code>txtsetup.sif</code> and <code>setuplib</code> - '''FIXME: needs ticket''' | * Add bootvid selection into <code>txtsetup.sif</code> and <code>setuplib</code> - '''FIXME: needs ticket''' | ||
** See [https://chat.reactos.org/reactos/pl/ourrbyihibbf5p8whcb879uwzy chat message] from Hermes Belusca | ** See [https://chat.reactos.org/reactos/pl/ourrbyihibbf5p8whcb879uwzy chat message] from Hermes Belusca | ||
− | * | + | * Add missing devices into Xbox HAL device tree: |
+ | ** PIC (<code>*PNP0000</code>) | ||
+ | ** Timer (<code>*PNP0100</code>) | ||
+ | ** DMA Controller (<code>*PNP0200</code>) | ||
+ | ** Speaker (<code>*PNP0800</code>) | ||
+ | ** CMOS/RTC (<code>*PNP0B00</code>) | ||
+ | * Xbox HAL: Report Flash ROM memory range as <code>*PNP0C02</code> aka "Motherboard resources" (0xFF000000 - 0xFFFFFFFF) | ||
+ | * Xbox HAL: Report LPC SuperIO controller (I/O ports 0x2E-0x2F) as <code>*PNP0A05</code> (aka Generic ACPI Bus) if it's detected | ||
+ | * Xbox HAL: Flash, SuperIO, and other LPC devices should be children of ISA to PCI bridge | ||
+ | * Xbox HAL: Serial COM ports should be children of SuperIO device | ||
+ | * Xbox HAL: Report reserved video memory range for NVIDIA NV2A (use "NV2A Framebuffer" resource added earlier, maybe as <code>*PNP0C02</code> aka "Motherboard resources") - '''FIXME: needs ticket''' | ||
** See [https://chat.reactos.org/reactos/pl/83uwqwtb63yefm5ca8qy3qgmtr chat message] from Thomas Faber | ** See [https://chat.reactos.org/reactos/pl/83uwqwtb63yefm5ca8qy3qgmtr chat message] from Thomas Faber | ||
* Add automatic HAL selection in FreeLdr - '''FIXME: needs ticket''' | * Add automatic HAL selection in FreeLdr - '''FIXME: needs ticket''' | ||
** Will allow to test bootcd and livecd | ** Will allow to test bootcd and livecd | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* Add input support in FreeLdr on Xbox - {{JIRA|16218}} ''(low priority)'' | * Add input support in FreeLdr on Xbox - {{JIRA|16218}} ''(low priority)'' | ||
** <code>freeldr.ini</code> can be modified manually | ** <code>freeldr.ini</code> can be modified manually | ||
* Add HAL/video/bootvid sections into <code>unattend.inf</code> - '''FIXME: needs ticket''' | * Add HAL/video/bootvid sections into <code>unattend.inf</code> - '''FIXME: needs ticket''' | ||
− | |||
− | |||
− | |||
=== Implement missing drivers === | === Implement missing drivers === | ||
− | * | + | * nForce network driver for KDNET - {{JIRA|18223}} |
− | ** | + | ** Will allow debugging without serial LPC adapter |
− | * | + | * Console text mode driver for NVIDIA NV2A - '''FIXME: needs ticket''' |
+ | ** Will allow installing from bootcd | ||
+ | * <code>vgasave</code> driver for NVIDIA NV2A - '''FIXME: needs ticket''' | ||
** See [https://chat.reactos.org/reactos/pl/kptqdu1uppbc3qogujqjioz83e chat message] from r3mendozal | ** See [https://chat.reactos.org/reactos/pl/kptqdu1uppbc3qogujqjioz83e chat message] from r3mendozal | ||
− | |||
− | |||
− | |||
* Improve <code>xboxvmp</code> driver to support NVIDIA hardware acceleration ''(low priority)'' | * Improve <code>xboxvmp</code> driver to support NVIDIA hardware acceleration ''(low priority)'' | ||
** Add support for 2D acceleration | ** Add support for 2D acceleration | ||
Line 56: | Line 60: | ||
** Add support for OpenGL | ** Add support for OpenGL | ||
** Potentially will help here - [https://jira.reactos.org/browse/CORE-16465?focusedCommentId=118579&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-118579 CORE-16465] | ** Potentially will help here - [https://jira.reactos.org/browse/CORE-16465?focusedCommentId=118579&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-118579 CORE-16465] | ||
+ | * UDFX filesystem driver (used with XISO/XDVDFS disks) | ||
+ | * USB Gamepad XID driver - '''FIXME: needs ticket''' | ||
+ | ** See https://web.archive.org/web/20191214213754/http://euc.jp/periphs/xbox-controller.en.html | ||
+ | ** There are possible options to import existing drivers: | ||
+ | *** https://github.com/thundercatsNZ/xbcd - XBox Controller Driver (kernel mode driver, compatible with XP) | ||
+ | *** https://github.com/emoose/Xb2XInput - User-mode Windows driver for Xbox OG controllers | ||
+ | * Xbox Memory Unit (XMU) driver - '''FIXME: needs ticket''' | ||
+ | ** See https://xboxdevwiki.net/Xbox_Memory_Unit - <code>USB\VID_045E&PID_0280</code> | ||
+ | * Xbox Wireless Adapter (MN-740) driver - '''FIXME: needs ticket''' | ||
+ | ** See https://xboxdevwiki.net/Network#Wireless_adapter | ||
+ | * Xbox Live Communicator driver - '''FIXME: needs ticket''' | ||
+ | ** See https://xboxdevwiki.net/Xbox_Live_Communicator - <code>USB\VID_045E&PID_0283</code> | ||
+ | * Xbox Video Camera driver - '''FIXME: needs ticket''' | ||
+ | ** See https://www.gsp.com/cgi-bin/man.cgi?section=4&topic=ov519 - <code>USB\VID_045E&PID_028C</code> | ||
=== Fix bugs and improve Cromwell === | === Fix bugs and improve Cromwell === | ||
* Fix glitchy text characters: '''. _ ( f''' | * Fix glitchy text characters: '''. _ ( f''' | ||
* Fix boot device label positioning (in 720x480 and 1024x576 screen mode) | * Fix boot device label positioning (in 720x480 and 1024x576 screen mode) | ||
− | |||
* Add SMBIOS table generation | * Add SMBIOS table generation | ||
** Check corresponding data on NVIDIA nForce 420 board | ** Check corresponding data on NVIDIA nForce 420 board | ||
Line 69: | Line 86: | ||
* Other published issues: https://github.com/XboxDev/cromwell/issues | * Other published issues: https://github.com/XboxDev/cromwell/issues | ||
− | == Create open source Xbox | + | == Create open source Xbox OS == |
See page [[Run Xbox Games on ReactOS]]. | See page [[Run Xbox Games on ReactOS]]. | ||
[[Category: Documentation]] | [[Category: Documentation]] | ||
[[Category: Development]] | [[Category: Development]] |
Latest revision as of 16:30, 9 November 2022
This page describes the plan of reviving the ReactOS port for the original Xbox, including components outside the source tree.
Once something is done in this list, it should be simply removed.
Contents
Revive ReactOS Xbox port
Progress is tracked in CORE-16216.
Fix ReactOS bugs
- Fix USB OHCI - CORE-16352
- Blocks actual OS testing in XQEMU
- Reproduced on RealHW as well
- Fix USBH_ProcessHubStateChange: OverCurrent problem - CORE-16726
- RealHW only
Assertion failed: (pti->pcti->fsChangeBits & QS_SENDMESSAGE) == 0
happens inwin32ss/user/ntuser/misc.c, line 729
after some idle hours, and it can be safely cont'ed from kernel debugger- Does not happen with
usbohci.sys
from Windows 2003 for some reason
- Does not happen with
- Xbox HAL: Shutdown does not happen, shows "It is now safe to turn off your computer" picture
- Serial COM1 is not accessible for user-mode, the port can be opened, but both RX and TX are ignored - FIXME: needs ticket
- RealHW only, the debug port lacks SERIRQ, so it cannot utilize interrupt
- VBE driver causes KiTrap06Handler unrecoverable error when trying to attach to XGPU PCI device - CORE-17643
- RealHW only
Memory at 0xFFFFFFFF could not be accessed
on 1st stage setup (Boot CD), reproduced only in GCC builds with 64 MB RAM - CORE-18370- This is either related to the memory manager or to the video drivers (e.g. blue.sys or miniports), real cause is unknown yet
- When booting from FATX volume, SYSTEM hive gets corrupted on next boot - FIXME: needs ticket
- Likely a bug in our old fastfat driver, which is being used for FATX support now
Improve ReactOS
- Add Xbox machine detection into setuplib - FIXME: needs ticket
- See this code
- Add bootvid selection into
txtsetup.sif
andsetuplib
- FIXME: needs ticket- See chat message from Hermes Belusca
- Add missing devices into Xbox HAL device tree:
- PIC (
*PNP0000
) - Timer (
*PNP0100
) - DMA Controller (
*PNP0200
) - Speaker (
*PNP0800
) - CMOS/RTC (
*PNP0B00
)
- PIC (
- Xbox HAL: Report Flash ROM memory range as
*PNP0C02
aka "Motherboard resources" (0xFF000000 - 0xFFFFFFFF) - Xbox HAL: Report LPC SuperIO controller (I/O ports 0x2E-0x2F) as
*PNP0A05
(aka Generic ACPI Bus) if it's detected - Xbox HAL: Flash, SuperIO, and other LPC devices should be children of ISA to PCI bridge
- Xbox HAL: Serial COM ports should be children of SuperIO device
- Xbox HAL: Report reserved video memory range for NVIDIA NV2A (use "NV2A Framebuffer" resource added earlier, maybe as
*PNP0C02
aka "Motherboard resources") - FIXME: needs ticket- See chat message from Thomas Faber
- Add automatic HAL selection in FreeLdr - FIXME: needs ticket
- Will allow to test bootcd and livecd
- Add input support in FreeLdr on Xbox - CORE-16218 (low priority)
freeldr.ini
can be modified manually
- Add HAL/video/bootvid sections into
unattend.inf
- FIXME: needs ticket
Implement missing drivers
- nForce network driver for KDNET - CORE-18223
- Will allow debugging without serial LPC adapter
- Console text mode driver for NVIDIA NV2A - FIXME: needs ticket
- Will allow installing from bootcd
vgasave
driver for NVIDIA NV2A - FIXME: needs ticket- See chat message from r3mendozal
- Improve
xboxvmp
driver to support NVIDIA hardware acceleration (low priority)- Add support for 2D acceleration
- Add support for DirectDraw
- Add support for Direct3D
- Add support for OpenGL
- Potentially will help here - CORE-16465
- UDFX filesystem driver (used with XISO/XDVDFS disks)
- USB Gamepad XID driver - FIXME: needs ticket
- See https://web.archive.org/web/20191214213754/http://euc.jp/periphs/xbox-controller.en.html
- There are possible options to import existing drivers:
- https://github.com/thundercatsNZ/xbcd - XBox Controller Driver (kernel mode driver, compatible with XP)
- https://github.com/emoose/Xb2XInput - User-mode Windows driver for Xbox OG controllers
- Xbox Memory Unit (XMU) driver - FIXME: needs ticket
- See https://xboxdevwiki.net/Xbox_Memory_Unit -
USB\VID_045E&PID_0280
- See https://xboxdevwiki.net/Xbox_Memory_Unit -
- Xbox Wireless Adapter (MN-740) driver - FIXME: needs ticket
- Xbox Live Communicator driver - FIXME: needs ticket
- See https://xboxdevwiki.net/Xbox_Live_Communicator -
USB\VID_045E&PID_0283
- See https://xboxdevwiki.net/Xbox_Live_Communicator -
- Xbox Video Camera driver - FIXME: needs ticket
- See https://www.gsp.com/cgi-bin/man.cgi?section=4&topic=ov519 -
USB\VID_045E&PID_028C
- See https://www.gsp.com/cgi-bin/man.cgi?section=4&topic=ov519 -
Fix bugs and improve Cromwell
- Fix glitchy text characters: . _ ( f
- Fix boot device label positioning (in 720x480 and 1024x576 screen mode)
- Add SMBIOS table generation
- Check corresponding data on NVIDIA nForce 420 board
- Add PCI BIOS table generation
- Check corresponding data on NVIDIA nForce 420 board
- Import features from XBOverclock project
- Add full device information page for Peripherals menu (low priority)
- Other published issues: https://github.com/XboxDev/cromwell/issues
Create open source Xbox OS
See page Run Xbox Games on ReactOS.