If You Give A Dev A Tricked Out Xbox, They’ll Patch Halo 2

[Ryan Miceli] had spent a few years poring over and reverse-engineering Halo 2 when a friend asked for a favor. His friend created an improved Xbox with significant overclocks, RAM upgrades, BIOS hacks, and a processor swap. The goal was simple: patch the hardcoded maximum resolution from 480p to 720p and maybe even 1080p. With double the CPU clock speed but only a 15% overclock on the GPU, [Ryan] got to work.

Step one was to increase the size of the DirectX framebuffers. Increasing the output resolution introduced severe graphical glitches and rendering bugs. The game reuses the framebuffers multiple times as memory views, and each view encodes a header at the top with helpful information like width, height, and tiling. After patching that, [Ryan] had something more legible, but some models weren’t loading (particularly the water in the title screen). The answer was the texture accumulation layer. The Xbox has a hardware limitation of only sampling four textures per shader pass, which means you need a buffer the size of the render resolution to accumulate the textures if you want to sample more than four textures. Trying to boot the game resulted in an out-of-memory crash. The Xbox [Ryan] was working on had been upgraded with an additional 64MB of RAM, but the memory allocator in Halo 2 wasn’t taking advantage of it. Yet.

To see where the memory was going, [Ryan] wrote a new tool called XboxImageGrabber to show where memory was allocated and by whom. Most games make a few substantial initial allocations from the native allocator, then toss it over to a custom allocator tuned for their game. However, the extra 64MB of RAM was in dev consoles and meant as debug RAM, which meant the GPU couldn’t properly access it. Additionally, between the lower 64MB and upper is the Xbox kernel. Now, it became an exercise of patching the allocator to work with two blobs of memory instead of one contiguous one. It also moved runtime data into the upper 64MB while keeping video allocations in the lower. Ultimately, [Ryan] found it easier to patch the kernel to allow memory allocations the GPU could use in the upper 64MB of memory. Running the game at 720p resulted in only a semi-playable framerate, dropping to 10fps in a few scenes.

After some initial tests, [Ryan] concluded that it wasn’t the GPU or the CPU that was the bottleneck but the swap chain. Halo 2 turns VSync on by default, meaning it has to wait until a blank period before swapping between its two framebuffers. A simple tweak is to add a third frame buffer. The average FPS jumped 10%, and the GPU became the next bottleneck to tweak. With a light GPU overclock, the game was getting very close to 30fps. Luckily for [Ryan], no BIOS tweak was needed as the GPU clock hardware can be mapped and tweaked as an MMIO. After reverse engineering, a debugging feature to visual cache evictions, [Ryan] tuned the texture and geometry cache to minimize pop-ins that the original game was infamous for.

Overall, it’s an incredible hack with months of hard work behind it. The code for the patch is on Github, and there’s a video after the break comparing the patched and unpatched games. If you still need more Halo in your life, why not make yourself a realistic battle rifle from the game?

Continue reading “If You Give A Dev A Tricked Out Xbox, They’ll Patch Halo 2

A Look Back At The Xbox 360’s Hard Drive Security

Anyone who’s owned a game console from the last couple of generations will tell you that the machines are  becoming increasingly like set-top computers  —  equipped with USB ports, Bluetooth, removable hard drives, and their own online software repositories. But while this overlap theoretically offers considerable benefits, such as the ability to use your own USB controller rather than being stuck with the system’s default, the manufacturers haven’t always been so accommodating.

Take for example the removable hard drive of the Xbox 360. It was a bog standard 2.5″ SATA drive inside a fancy enclosure, but as explained by [Eaton], Microsoft went to considerable lengths to prevent the user from upgrading it themselves. Which wouldn’t have been such a big deal, if the Redmond giant wasn’t putting a huge markup on the things; even in 2005, $99 USD for 20 GBs was highway robbery. Continue reading “A Look Back At The Xbox 360’s Hard Drive Security”

Pocket Sized Wii Sets The Bar For Portable Builds

Over the last few years we’ve seen several projects that convert Nintendo’s Wii into a handheld console by way of a “trimming”, wherein the system’s motherboard is literally cut down to a fraction of its original size. This is made possible due to the fact that the majority of the console’s critical components were physically arranged in a tight grouping on the PCB. While it might not be the smallest one we’ve ever seen, the Wii SPii by [StonedEdge] is certainly in the running for the most technically impressive.

It took [StonedEdge] the better part of a year to go from the first early 3D printed case concepts to the fully functional device, but we’d say it was certainly time well spent. The general look of the portable is strongly inspired by Nintendo’s own GameBoy Advance SP, albeit with additional buttons and control sticks. In terms of software, the system is not only able to run Wii and Gamecube game ISOs stored on its SD card, but also several decades worth of classic titles through the various console emulators available for the system.

The Wii SPii makes use of a particularly difficult variation of the Wii miniaturization concept known as the OMEGA trim, and is supported by a custom PCB that’s responsible for things like power management and audio output. As it was never designed to be particularly energy efficient, the trimmed Wii motherboard will deplete the system’s dual 18650 cells in about two and a half hours, but at least you’ll be able to get charged back up quickly thanks to USB-C PD support. All of the hardware just fits inside the custom designed case, which was CNC milled from acrylic and then sandblasted to achieve that gorgeous frosted look.

[StonedEdge] says the Wii SPii was inspired by the work of accomplished smallerizer [GMan], and even uses some of the open source code he developed for the audio and power management systems. In fact, given its lengthy list of acknowledgements, this project could even be considered something of a community affair. Just a few years after we marveled at a functional Wii being crammed into an Altoids tin, it’s truly inspiring to see what this dedicated group of console modders has been able to accomplish by working together.

Continue reading “Pocket Sized Wii Sets The Bar For Portable Builds”

Exploring The World Of Nintendo 3DS Homebrew

When Nintendo officially ended production of the 3DS in September 2020, it wasn’t exactly a surprise. For one thing, some variation of the handheld system had been on the market since 2011. Which is not to say the product line had become stagnant: the system received a considerable mid-generation refresh, and there was even a more affordable variant introduced that dropped the eponymous stereoscopic 3D effect, but nearly a decade is still a fairly long life in the gaming industry. Of course Nintendo’s focus on the Switch, a hybrid device that blurs the line between console and handheld games, undoubtedly played a part in the decision to retire what could effectively be seen as a competing product.

While putting the 3DS out to pasture might have been the logical business move, a quick check on eBay seems to tell a different story. Whether it’s COVID keeping people indoors and increasing the demand for at-home entertainment, or the incredible library of classic and modern games the system has access to, the fact is that a used 3DS in good condition is worth more today than it was when it was brand new on the shelf this time last year.

I’ve certainly made more expensive mistakes.

In short, this was the worst possible time for me to decide that I finally wanted to buy a 3DS. Then one day I noticed the average price for a Japanese model was far lower than that of its American counterpart. I knew the hardware was identical, but could the firmware be changed?

An evening’s worth of research told me the swap was indeed possible, but inadvisable due to the difficulty and potential for unexpected behavior. Of course, that’s never stopped me before.

So after waiting the better part of a month for my mint condition 3DS to arrive from the land of the rising sun, I set out to explore the wide and wonderful world of Nintendo 3DS hacking.

Continue reading “Exploring The World Of Nintendo 3DS Homebrew”

PS2 Gets Integrated HDMI

It might be difficult to imagine in our modern HDMI Utopia, but there was a time when game consoles required proprietary cables to connect up to your TV. We’re not just talking about early machines like the NES either, turn of the millennium consoles like the PlayStation 2, Gamecube, and the original Xbox all had weirdo A/V ports on the back that were useless without the proper adapter.

But thanks to the efforts of [Taylor Burley], you can now upgrade your Slim PS2 with integrated HDMI capability. It’s not even a terribly difficult modification, as these things go. Sure there’s a lot of soldering involved to run from the console’s A/V connector to the commercially-made HDMI dongle he’s hidden inside the case, but at least it’s straightforward work.

Tapping into the console’s A/V connector.

As [Taylor] shows in the video after the break, all you have to do is remove the proprietary connector from the HDMI adapter dongle, and wire it directly into the console’s A/V port with a bit of ribbon cable. There are only 8 pins in the connector that you need to worry about, and the spacing is generous enough that there’s no problem getting in there with your iron and some standard jumper wires. You’ve also got to pull 5 V from the board to power the adapter, but that’s easy enough thanks to the system’s nearby USB ports.

There’s a perfect spot to mount the adapter board next to the console’s Ethernet connector, and once that’s tacked down with a bit of adhesive, the only thing left to do is cut a hole in the back of the enclosure for the HDMI port and snip away a bit of the metal RF shield. Presumably the same modification could be done on the original “fat” PS2, though you’ll be on your own for finding a suitable place to mount the board.

While modern game consoles can easily emulate their earlier peers, providing enhanced graphical fidelity and introducing modern conveniences like wireless controllers in the process, there’s still something to be said for playing classic games on the original hardware. Even if these projects are fueled by little more than youthful nostalgia, it’s a safe bet we’ll continue to see folks keeping these older machines running far into the future.

Continue reading “PS2 Gets Integrated HDMI”

Add-On Board Brings Xbox 360 Controllers To N64

Many of the games released on the Nintendo 64 have aged remarkably well, in fact a number of them are still considered must-play experiences to this day. But the years have not been so kind to the system’s signature controller. While the N64 arguably defined the console first person shooter (FPS) genre with games like “Goldeneye” and “Perfect Dark”, a modern gamer trying to play these classics with the preposterous combination of analog and digital inputs offered by the N64 controller is unlikely to get very far.

Of course, you could play N64 games in an emulator and use whatever controller you wish. But where’s the challenge in taking the easy way out? [Ryzee119] would much rather take the insanely complex route, and has recently completed work on an add-on board that let’s you use Xbox 360 wireless controllers on Nintendo’s 1996 console. He’s currently prepping schematics and firmware for public release, with the hope that support for additional USB controllers can be added by the community.

Nintendo historians may recall that the N64’s controllers had an expansion port on the bottom where you would connect such accessories as the “Rumble Pak” and “Controller Pak”. The former being an optional force feedback device, and the latter a rather oddly named memory card for early N64 games which didn’t feature cartridge saves. Only “90’s Kids” will recall the struggle of using the “Rumble Pak” when a game required the “Controller Pak” to save progress.

Thankfully [Ryzee119] has solved that problem by adding battery backed storage to his adapter along with some clever code which emulates the “Controller Pak”. Similarly, the “Rumble Pak” is emulated by the Xbox 360 controller’s built-in force feedback and a bit of software trickery. Specific button combinations allow for enabling and disabling the various virtual accessories on the fly.

But the best part of this modification might be how unobtrusive the whole thing is. Not only does it allow you to still use the original controllers and accessories if you wish, but it only requires soldering a handful of wires to the console’s motherboard. Thanks to the surprising amount of dead space inside the system’s case, it’s not even a challenge to fit the board inside. You do need to use the official USB Xbox 360 controller receiver, but even here [Ryzee119] opted to put a USB port on the board so you could just plug the thing in rather than having to cut the connector off and trying to solder it to the board yourself.

It probably won’t come as a surprise that this isn’t the first time [Ryzee119] has fiddled with the internals of a classic Nintendo system. We’ve previously covered his fantastic custom PCB to fit a Raspberry Pi Zero into a GameBoy Advance.

[Thanks to Gartral for the tip.]

[lovablechevy] Transforms A Nomad Into The HandyGen

[lovablechevy], aka the Queen of Bondo, has added another member to her Mushroom family of custom portable consoles.  This time, it’s the HandyGen, an improved Sega Nomad.  As an owner of the latter, we can attest that the Nomad had limitations, including its unwieldy size and shape, and its godawful battery life. As part of a build-off contest over at the Bacman forums , [lovablechevy] took apart a half-working Nomad and trimmed its board to fit into a smaller case of her own design, while retaining features such as the A/V out, headphone jack, and Player 2 controller port.  She also bumped up the size of the screen, swapping in a new 4″ LCD and its corresponding controller board. The best improvement was increasing the battery life considerably; HandyGen uses 2 LiPo batteries lasting 7 hours instead of the Nomad needing 6AA’s that barely lasted two. HandyGen’s battery life is roughly double that of the GeneBoy, an earlier portable Genesis mod we’ve featured before.

[lovablechevy] always does a great job with her portables, from the Nintenduo to the HandyNES. Being avid PS fans, we also award her bonus points for testing out the HandyGen with Phantasy Star 4. Check out her video of the HandyGen after the break.

Continue reading “[lovablechevy] Transforms A Nomad Into The HandyGen”