Hey everyone! After much anticipation and over two years of development, today is the day we finally get to talk about Project Stellar!
Development of Project Stellar started in 2020, shortly after the release of the XboxHDMI, with the goal of creating the best possible add-on board for the Original Xbox. Using modern software and hardware, we wanted to create something unique that would push the limits what's possible... we wanted to create something stellar.
With Project Stellar we set out to build the best possible platform. The hardware was carefully chosen to be as flexible and future-proof. This allowed us to continue on our mission of not only fixing all the problems and issues of the original system, but also adding additional features that have been considered impossible in the past.
Traditional mods for the Original Xbox have used the LPC port to force the system to load an alternative BIOS, operating system, on boot and nothing more. What's seemed to be lost for the last two decades is the fact that this interface can provide so much more.
Project Stellar takes full advantage of the LPC interface. On board Project Stellar is a modern and top-of-its-class FPGA that fully implements the memory interface used for the BIOS, as well as the complete LPC interface for I/O and DMA transactions.
But what does all of this mean? By fully implementing the LPC interface, we can give the system access to an additional 8MB of SDRAM plus 16MB of static RAM (all of which is MMU mapped as virtual system memory, CPU cache-able, and usable by the kernel) along with two ARM CPU cores that can be used for off-loading tasks from the Xbox's CPU.
Additionally, we've added an OLED screen for troubleshooting/error-code readouts, a MicroSD card slot for loading alternative BIOSes (Legacy BIOSes, non-StellarOS), three expansion connections for future add-ons, and USB-C connection for firmware recovery and kernel debugging.
The hardware behind Project Stellar is not even half of the story for today...
We have to first start with a bit of history before we can begin talking about StellarOS.
When we first started developing the XboxHDMI mod back in 2019, we quickly realized that for the best possible video output we would have to patch the Xbox kernel. The Xbox supports close to 200 different video modes and being able to accurately detect these modes isn't possible with hardware alone. Not to mention the game breaking bugs related to video output in some hardware revisions. This meant we needed to modify the kernel to help us out.
It was at this point we started researching the Xbox kernel. Along the way, we were shocked to learn that most BIOS modifications for the Xbox were not modifications, but compiled binaries of stolen and leaked pre-production source code! So we had to decide if we wanted to support these sketchy releases and taint ourselves from future clean reverse engineering or base our modifications on a retail release...
The answer was obvious to us and we ultimately choose to use the official 5838 kernel as the base for our research and modifications. This was an easy choice in the end since it was the last kernel officially released by Microsoft. It also supports all hardware revisions which was a must have for a product that targets all console revisions.
In the beginning, all of the XboxHDMI modifications were written by hand in assembly. This was a very daunting task. Large chunks of the kernel had to be relocated by hand to different parts of the kernel space.
The Xbox kernel is very flat and sections are for the most part fixed in memory. Any additional logic meant having to make room in other logic by simplifying and relocating pieces around manually until everything fit. This would often result in multiple day-long debug sessions trying to figure out what was broken in the process.
It wasn't until the release of the XboxHD+ that we started building out a basic C-based build system for reducing the amount of handwritten assembly code.
As the XboxHD+ matured we expanded the build system to also generate relocatable objects. This solved the overly complicated development process described before, but it didn't quite solve the issue of limited memory space.
With the 2.1.0 firmware release we implemented dynamic relocation on boot. With this, and a bit of static analysis data, it allows the XboxHD+ to unload the entire video output subsystems and dynamically replace it with only the logic needed for that console revision. This frees up enough space for all the XboxHD+ features plus some for future development of the v1 XboxHD+.
Because of all of this we were able to show, for the first time, that the Xbox kernel could be legally and cleanly re-implemented in modular fashion if enough work was put into it.
StellarOS is the first completely legal re-implementation of the retail Xbox BIOS. Built from the ground up using modern tooling, StellarOS was designed to take full advantage of the additional 8MB of SDRAM on board Project Stellar. On boot the kernel is dynamically recompiled using modules of the re-implemented kernel targeting the user's hardware setup and ones for the enabled features.
With this approach StellarOS can load in any number of additional modules at will while not using up any additional system RAM.
- Built-in tools for system troubleshooting, configuration, hard-drive setup, etc.
- Automatic network based system updating.
- Kernel level ODE. (ISO Loading)
- Compressed ISO Loading. (CISO)
- Additional controller support. (Xbox One)
- Network loading of ISOs and virtual HDD images.
- Titan+ support. Supports legacy configured drives and Titan formatted HDDs for up to 16TBs of native storage.
- Auto optimal UDMA timing. Up to UDMA5 autoconfigured, verifed, and tested on boot.
- Native ATA TRIM support.
- True no-DVD drive bypass. No external modifications required.
- Support for 64MB, 128MB, and 256MB RAM configurations.
- Automatic system time updating via network on boot.
- Analog video improvements and fixes with feature parity of the XboxHD+.
- Native boot animation in 720P.
- Native force 480P with HD+ fixes.
- Insignia enhancments.
- Advance fan control.
- Kernel debugger over USB.
- GDB debugger via USB.
- And so much more...
StellarOS - The Future
With Project Stellar and StellarOS the future is bright and the possibilities are endless. We will be continuing to expand StellarOS well into the future and we'll even be releasing an plugin system and SDK at some point.
As StellarOS continues to grow we look forward to releasing the re-implemented stock kernel source code, under a MIT-like license, as a separate project for use in other community projects such as xemu.
The fun doesn't end with Project Stellar! The XboxHD+ has also went a major overhaul for the first time since its initial release. With XboxHD+ v2, Stellar XboxHD+, we went back to the drawing board and redesigned it to be a plug and play companion to Project Stellar.
New Features Exclusive to Stellar XboxHD+
- Redesigned and simplified installation process.
- No more patching of the Xbox BIOS.
- Installation troubleshooting via the Stellar OLED display.
- Fewer wires to solder.
- Re-designed included 3D printed parts for an easier and cleaner install.
- Firmware recovery via the Stellar USB-C interface.
The first batch of Stellar XboxHD+ is expected to ship in late November to our retail partners. These kits will include the first public release of StellarOS beta and will have all the features you would expect from an Xbox mod. StellarOS will be in beta until the end of Jan 2023.
This is by far the largest retro project we've ever worked on with years of research and development. We can not even begin to express how thankful we are for all of the support we've received.
We still have a lot of work to do, but hope you will join us as we continue to push the realm of possibilites.