The original Xbox was well-known for being based on basic PC hardware, and among developers, well known for having just 64 megabytes of RAM which even at the time wasn’t a lot to be working with. In a recent podcast, [Todd Howard] of Bethesda related an anecdote from the era, claiming that Morrowind occasionally invisibly rebooted the Xbox without user’s knowledge in order to free up RAM. [Modern Vintage Gamer] wanted to determine if this was true or not, and began an investigation.
The investigation begins with the aid of an Xbox Development Kit. Noting that the original anecdote mentioned the reboots occurring during the loading process, the devkit Xbox was soft rebooted after executing a load. Rather than going back to the title screen of the game, it kicked straight back into the loading screen and brought up the last save game instead. This suggested that the game was indeed capable of rebooting in the midst of the loading routine.
[Modern Vintage Gamer] had a hunch that this was being achieved with the use of a routine called XLaunchNew Image, a piece of the Xbox API that could be used to soft-reboot the console and start an executable. Upon decompiling Morrowind, a call was found that fit the bill. Further analysis showed that the game was indeed calling XLaunchNewImage upon loading and launching a new game, and was confirmed by finding an *.ini file that contained flags to enable this behaviour.
Presumably, the reason for this behaviour was that it was simpler to boot the game fresh when loading a save, rather than trying to unload all the game assets in memory from the current game. It’s a neat trick that likely made the development team’s lives much easier once they implemented it.
Perhaps the greatest convenience feature of modern consoles is the wireless controller. Eliminating the risk of tripping over cords and enabling play in all manner of poorly ergonomic positions, they added huge comfort to the console gaming experience. [ismell] was no fan of the Dreamcast’s original controller, and the cable was too short to boot. It was time to bring the 360 Wireless controller to Sega’s swansong.
Early attempts by [ismell] involved a Windows computer acting as a USB host for the 360 controller, which would then send out commands back to the Dreamcast via a Cypress EZ-USB FX2 microcontroller. If this sounds esoteric and messy, that’s because it is. It was also too slow to reliably work, as the Dreamcast’s Maple controller bus expects updates every millisecond, else it considers the controller disconnected.
Instead, a dedicated USB host was needed to speak to the 360 controller and also the Dreamcast. [ismell] landed on the MicroZed 7010, a System on Chip that also packs an FPGA on board. With Petalinux running on the board, it interfaces with the Xbox 360 USB wireless controller interface, and then sends the data out over a custom “network” driver that sends packets to the Dreamcast over the Maple bus.
Many a gamer has found that after a few years of racing around the track or sending demons back from whence they came, the analog sticks on their trusty controller can start to drift around. Many times it’s a fairly minor problem, something you might only notice if you were really keeping an eye out for it, but it can definitely be annoying. Those handy with a soldering iron might just swap out the sticks for replacements once it gets to that point, but [Taylor Burley] wondered how difficult it would be to recalibrate the ailing sticks instead.
To be clear, [Taylor] acknowledges this approach is overkill. It would be cheaper and easier to just replace the drifting stick with a new one. Even if you take into account that new sticks might not be as high quality as the originals and could give up the ghost faster, this probably isn’t worth the effort. But that doesn’t mean it’s not an interesting hack.
In the video after the break, [Taylor] starts by explaining how stick drift occurs in the first place. Each axis of the stick is physically connected to the wiper of a potentiometer, so for 10K pots, the stick’s center point should correspond to a resistance of 5K. He then goes on to measure the resistance in a bad joystick, and sure enough, the center resistance is off by several hundred Ohms.
To fix this, he comes up with a simple circuit that places additional potentiometers between the wipers. With two joysticks and two adjustment pots per axis, that makes eight little adjustment wheels that need to be fiddled with to get the center points calibrated properly. In this case [Taylor] uses a controller diagnostic tool for the Xbox to quantify the impact his adjustments are making so he can dial it in perfectly, but the idea is the same no matter who’s logo is on the box.
It’s hardly a secret any more at this point that today’s game consoles from Microsoft and Sony are essentially AMD gaming rigs packed up into a custom package and with tweaked system software. So it’s not too surprising that enterprising hackers got the Playstation 2 emulator of RetroArch running on an Xbox Series X|S game console despite Microsoft’s attempts to stop them. (Video, embedded below.)
It’s possible to sneak the RetroArch app past Microsoft’s security checkpoints by shelling out $19 for a Microsoft Developer Account, setting up Developer Mode on the XBox console, and getting the Universal Windows Platform (UWP) port of RetroArch from the official website. This has the advantage of it being a blessed-by-the-Redmond-gods approach. But one cannot play retail games in Developer Mode and large games due to a 2 GB limit.
More recently, a hacker by the name of [tunip3] found a flaw in the Xbox app distribution system which allows one to download a ‘retail’ version of RetroArch. This involves marking the RetroArch app as ‘private’, allowing it to skip a review by Microsoft. People whose email address is on a whitelist are then granted download permission for that app on their Xbox console. The advantage of this ‘retail’ approach is that it does not feature the 2 GB filesize limits. The disadvantage is that Microsoft is free to take the app down and ban [tunip3]’s developer account.
My Way Versus the Highway
A lot about this comes down to a simple question of ‘why?’. Why even jump through these hoops to set up a limited, possibly ToS-breaking emulator on what is ultimately a gaming PC running Windows 10? Why not use that Raspberry Pi 4 or NUC system that’s been giving you sad eyes for the past months from where it’s been stuffed into a dusty corner?
Fans of retro computers from the 8-bit and 16-bit eras will be well aware of the green death that eats these machines from the inside out. A common cause is leaking electrolytic capacitors, with RTC batteries being an even more vicious scourge when it comes to corrosion that destroys motherboards. Of course, time rolls on, and new generations of machines are now prone to this risk. [MattKC] has explored the issue on Microsoft’s original Xbox, built from 2001 to 2009.
The original Xbox does include a real-time clock, however, it doesn’t rely on a battery. Due to the RTC hardware being included in the bigger NVIDA MCPX X3 sound chip, the current draw on standby was too high to use a standard coin cell as a backup battery. Instead, a fancy high-value capacitor was used, allowing the clock to be maintained for a few hours away from AC power. The problem is that these capacitors were made during the Capacitor Plague in the early 2000s. Over time they leak and deposit corrosive material on the motherboard, which can easily kill the Xbox.
The solution? Removing the capacitor and cleaning off any goop that may have already been left on the board. The fastidious can replace the part, though the Xbox will work just fine without the capacitor in place; you’ll just have to reset the clock every time you unplug the console. [MattKC] also points out that this is a good time to inspect other caps on the board for harmful leakage.
There are negative-one hacks to this project. Someone lost at their game, lost their temper, then raged at their Xbox controller with some horsepower. The result is that [Taylor Burley] gets a free controller with a non-responsive joystick out of the deal, and since he had nothing to lose, he decided to heat up the iron and bring the controller back to life.
The majority of the project is told in pictures and through the narration in the video below. In removing the joystick, [Taylor] opts for the technique of doping the connections with fresh solder (we assume containing lead for easier melting) before reaching for the desoldering wick. The diagnosis stage is brief because when the joystick lifts away, the PCB falls apart into two separate pieces! The next step was to glue the two halves together with cyanoacrylate to get into the nooks and crannies, then epoxy to provide structure. Solder bridges were not going to jump that gap, so he used 30ga wire and attached it wherever he could scrape away some solder mask. Best of all, it worked when he reattached the joystick. Job well done.
Xbox controllers are not a scarce commodity, so people do not spend their idle hours fixing them, but not many people can claim experience. Maybe someday the stakes will be higher and he will have the courage to repair vintage electronics. We won’t rant on how things aren’t built to last, and how we don’t train people to fix things. Today, we want to focus on someone who used their time to repair and learn.
[Dave] found an affordable 4-channel R/C controller in the Bezos Barn and did just that. It took some modifications to make it work, like making a daughter board to turn the thumb grip input from a toggle button to a momentary and figuring out what to do with the three-way slider switch, but it looks like a blast to use.
The controller comes in a 6-channel version with two pots on the top. Both versions have the same enclosure and PCB, so [Dave] already had the placement molded out for him when he decided to install a pair of momentary buttons up there. These change roles based on the three-way slider position, which switches between race mode, menu mode, and extras mode.
We love the way [Dave] turned the original receiver into a USB dongle that emulates an Xbox 360 controller — he made a DIY Arduino Pro Micro with a male USB-A, stripped down the receiver board, and wired them together. There’s an entire separate blog post about that, and everything else you’d need to make your own R/C controller is on GitHub. Check out the demo and overview of the controls after the break.