XBOX ‘OG’ Adventures
Skip to content
Search
Search for:
Home<br>Delusion<br>XBOX ‘OG’ Adventures
July 4, 2026July 4, 2026Muhammad
Note: this post has nothing to do with me being an employee under the Xbox umbrealla. i did not get any fund, support, hardware, assisstant, documentations from Xbox as a company or anyone under the Xbox. It was entirly a game developer’s passion sub-project as part of a larger passion project (game engine from scratch) that was initated years ago before i even join the Xbox family! The hardware used was bought from eBay long time ago.
There is no doubt that the original XBOX is not only one of my all time favorite gaming consoles, but also one of my top all time favorite development hardware/environments! When i started converting my Mirage engine from exclusive PC enigne based on Vulkan mainly to a much wider engine that has a good layering that could allow me easily supporting any platform and any rendering API, it was not an easy task to be fair! As my initial thought was not to just support current modern hardware such as Xbox One and PS4 or even the new genreation that will release soon (Xbox Series & PS5), but my mind was else where! i had in mind quite a few older consoles/handhelds that i would like to support out of the box, and to not spoil my list of platfomrs, let’s just assume i had only Xbox OG in mind back then (of course was not the only one!).
Going that far back in technology as a modern target hardware was quite the task i needed, the type of thing that i like that most. Porting my engine to a new Nintendo or Sony device is not a big deal nowadays as long as i got granted the access, just follow the SDK, and you won’t hit any wall…probably..even if you hit walls, just go to the dev forums, and will find pretty much a handful amount of folks hit that wall already and discussing solutions for it..Easy! But supporting a dead hardware, that has no support, and only obsolete SDKs & documentation and the elephant in the room, obsolete requirements, toolchain and tools that is not matching any modern software creation process or even friendly with most recent OS versions (Linux or Win 10/11). That was the challenge.
At that time i had my engine that was built in few years for Vulkan only, Win/Linux only and running on C++17 (and later moved to C++20), using most recent 3.x cmake version at that time (3.4-ish or something), and of course running on Visual Studio 19! Now we need that to be C++98 or C++03 at most, count on the most ancient version of cmake possible (1.4.x if i’m not mistaken, which is not great btw), and to run on Visual Studio 2003 and of course support some set of different file formats. I’ll leave the rest to your imagination, but successfully got rid of any features that are between C++17 and C++98, and that meant re-writing lots of functions from scratch, readapted the entire engine API, disable some features and/or adding new exclusive ones for older hardware, and because Visual Studio have to make life harder, the MSVC can’t compile C++ code pre C++14, so had to work on my projects generation in generating projects for GCC to at least test compilation on VSCode on a Windows 11 environment to make sure that my code compiles, before i put it in the time machine and take it to the old boy XP computer to re-compile and run it.
With CMak’s presets, at least i can now generate & compile most of targetd C++ versiosn and APIs side by side on my main Windows PC before moving any to an ancient OS version to build and test against the hardware.<br>Note, that screenshot showing Win64 only presets
Yes i know!!
Now you may be thinking, oh, how come he did not know about the nxdk or other homebrew solutions?!
i konw about nxdk and all other opensource nice projects out there (for Xbox, N64, Dreamcast,…etc.), and they’re really great resources!! it just happens that i like 2 things too much when it comes to console or writing for specific hardware and it have always been the case.
Dive and read the official documentations for that hardware (pure RTFM kid), at this case the SDK/API docuements. And red through the samples that comes with the SDK, compile them, and learn even more tricks from them. Thankfully Xbox during its entire existence, have been shipping great documentation and samples that teased me over the years to dive through them!
i like to write for platforms the way it meant to be writtin, using the toolchain and other things that were meant for that platform. So if i can write a C++23 on original Xbox is an option, it is absloutly not for me, at least if we talking about a hobby project like this one, commercial work is a different story, these would have budget and time constriains, and those constrians are not exist in a personal project.
First challenge was running my demo scene, the sponza! All the formats available for Sponza was very friendly for a today workflow, but not for a 2000-2005 development environment. The size of the file...