Xbox Port Roadmap

From ReactOS Wiki
Jump to: navigation, search

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.

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 in win32ss/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
  • 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
  • Add bootvid selection into txtsetup.sif and setuplib - FIXME: needs ticket
  • Add missing devices into Xbox HAL device tree:
    • PIC (*PNP0000)
    • Timer (*PNP0100)
    • DMA Controller (*PNP0200)
    • Speaker (*PNP0800)
    • CMOS/RTC (*PNP0B00)
  • 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
  • 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

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‎.