Remote Code Execution On The N64

Some like to garden in their spare time, while others prefer to smoke cigars or fold complicated origami figurines. Security researcher [grifter] [CTurt] seems to enjoy cracking consoles instead, and had a go at exploiting the Nintendo 64 over an obscure modem interface.

The 1990s were a wild time, where games shipped in cartridges. This format opened up crazy possibilities to add additional hardware to the cartridge itself. Perhaps most famously, Nintendo packed in the SuperFX chip to enable 3D graphics on the Super Nintendo. Later on, the N64 game Morita Shogi 64 shipped with an entire telephone modem in the cartridge itself.  The resulting exploit is therefore dubbed “shogihax”.

Armed with a dodgy GameShark and a decompiler, [CTurt] set to work. Through careful parsing of the code, they were able to find a suitable overflow bug in the game when using the modem. Unlike more pedestrian savegame hacks, this not only allowed for the execution of arbitrary code but also the modem interface means that it’s possible to continually stream more data to the console on an ad-hoc basis.

It’s a great hack that takes advantage of a relatively accessible cartridge, rather than relying on more obscure hardware such as the N64DD modem or other rarities. We’ve seen other N64 homebrew hacks before, too. Video after the break.

Thanks to [grifter] for the tip!

Continue reading “Remote Code Execution On The N64”

Trimmed PCB Makes The Ultimate Portable N64

One of the most impressive innovations we’ve seen in the world of custom handhelds is the use of “trimmed” PCBs. These are motherboards of popular video game consoles such as the Nintendo Wii and Sega Dreamcast that have literally been cut down to a smaller size. As you can imagine, finding the precise shape that can be cut out before the system stops functioning requires extensive research and testing. But if you can pull it off, some truly incredible builds are possible.

Take for example this absolutely incredible clamshell N64 built by [GMan]. After cutting the motherboard down to palm-sized dimensions, he’s been able to create a handheld system that’s only a bit larger than the console’s original cartridges.

Incidentally those original cartridges are still supported, and fit into a slot in the rear of the system Game Boy style. It’s still a bit too chunky for tossing in your pocket, but we doubt you could build a portable N64 any smaller without resorting to emulation.

In the video after the break, [Gman] explains that the real breakthrough for trimmed N64s came when it was found that the system’s Peripheral Interface (PIF) chip could be successfully relocated. As this chip was on the outer edge of the PCB, being able to move it meant the board could get cut down smaller than ever before.

But there’s more than just a hacked N64 motherboard living inside the 3D printed enclosure. [Gman] also designed a custom PCB that’s handling USB-C power delivery, charging the handheld’s 4250 mAh battery, and providing digital audio over I2S. It’s a fantastically professional setup, and you’d be forgiven for thinking the board was part of the original console.

Considering how well designed and built this N64 SP is, it probably will come as no surprise to find this isn’t the first time [Gman] has put something like this together. He used many of the same tricks to build his equally impressive portable Dreamcast last year.

Continue reading “Trimmed PCB Makes The Ultimate Portable N64”

Perfecting A Bluetooth N64 Controller

Love it or hate it, the Nintendo 64 controller doesn’t seem to be going anywhere. Dedicated fans are still looking for ways to use the unique trilobed controller with modern systems, and they won’t be satisfied until they perfectly replicate the original experience. [Shyri Villar] has been working on perfecting a blend of original and modern hardware that looks very promising.

The project started when [Shyri] found that you could take the internals from a modern third party Bluetooth N64 controller made by 8BitDo and put them into the original controller’s case. This would give you the original buttons back, and overall a more authentic weight and feel. Unfortunately, this usually means dumping the original N64 joystick for the 8BitDo’s.

What [Shyri] wanted to do was install the 8BitDo PCB into an original N64 controller, but adapt Nintendo’s joystick to communicate with it. Unfortunately, since the original joystick used optical encoders and the 8BitDo version uses potentiometers, there’s something of a language gap.

To bridge the divide, both the X and Y dimensions of the joystick get their own PIC12F675 microcontroller and X9C103S digital potentiometer. The microcontrollers read the X and Y values from the original joystick’s encoders, and use the digital potentiometers to provide the 8BitDo with the expected analog input. Right now the electronics are held on two scraps of perfboard tucked into the side “wings” of the controller, but hopefully we’ll see a custom PCB in the future.

If you’re more interested in going back in time with your trusty N64 controller, then you might be interested in learning more about how one hacker managed to hook it up to the MSX.

An MSX With A Nintendo Controller

Console owners inhabit their own individual tribes depending upon their manufacturer of choice, and so often never the twain shall meet. But sometimes there are those what-if moments, could Mario have saved the princess more quickly through PlayStation buttons, or how would Sonic the Hedgehog have been with a Nintendo controller? [Danjovic] is finding the answer to one of those questions, with an interface between Nintendo 64 controllers and MSX hardware including the earlier Sega consoles.

In hardware terms, it’s a pretty simple device in the manner of many such projects, an Arduino Nano, a resistor, and a couple of sockets. The clever part lies not in its choice of microcontroller, but in the way it uses the Nano-s timing to ensure the minimum delay between button press and game action. The detail is in the write-up, but in short it makes use of the MSX’s need to attend to video lines to buy extra time for any conversion steps.

The MSX computers have had their share of controller upgrade courtesy of Nintendo hardware in the past, we’ve seen a Wii nunchuck controller talk to them before, as well as a SNES one.

Header image: [mboverload] (Public-domain).

Nintendo 64 Homebrew Via Game Shark

The Nintendo 64 is a classic console now, and much loved, despite losing in commercial stakes to the dominating PlayStation from Sony. It’s one that doesn’t always get as much attention in the homebrew and hacker scene, compared to platforms like the NES and Game Boy. This means the tools required to work with the console aren’t as well-known. However, there’s a remarkably easy way to load homebrew on to the Nintendo 64, if you’ve got the right hardware.

To pull this off, you’ll need a N64 Gameshark, particularly a version higher than 3.0. These included a parallel port and the relevant onboard logic to allow the console to receive data and commands from an attached computer. [Nathan] demonstrates using the gs_libusb utility to deliver homebrew code to the console, using a USB to parallel adapter to make it easy from a modern computer.

The tools are available on github if you wish to try the hack for yourself. Most hacks we see of the platform are of the portable variety, but if you’ve got something fresh, you know who to call.

Continue reading “Nintendo 64 Homebrew Via Game Shark”

“Yell To Press B” Mod Makes N64 Controller Worse

There’s probably no reason anyone would actually desire a mod like this. Well, no good reason. But [William Osman] had been pondering what it would be like to play some classic games with inputs other than buttons, and decided to make an audio sensor responsible for pressing the B button on an old N64 controller. This “Yell To Press B” mod was also something unique to show his hosts when he visited the YouTube video game aficionados, [Game Grumps].

[William] acknowledges that the build is a bit of a hack job, but the project page does a good job of documenting his build process and covering the kinds of decisions involved in interfacing to a separate piece of hardware. After all, most budding hackers have sooner or later asked themselves “how do I make my gadget press a button on this other thing?” [William] ends up using a small relay to close the connection between the traces for the B button when triggered by a microphone module, but he points out that it should be possible to do a non-destructive version of the mod. Examples exist of reading the N64 controller’s state with an Arduino, which could form the basis of a man-in-the-middle approach of “Yell To Press B” (or anything else) instead of soldering to the button contacts. A video is embedded below, in which you can watch people struggle to cope with the bizarre mod.

Continue reading ““Yell To Press B” Mod Makes N64 Controller Worse”

The N64 Controller Gets Brass Gears Through 3D Printing

The controller for the Nintendo 64 is a masterpiece of design, and despite being more than two decades old, people are still using this controller competitively. Smash Bros, you know. Those competitive gaming enthusiasts are hard on their controllers, and after decades and tournaments, the analog stick will wear out. Previously, this required a rebuild or simply replacing the entire controller. Now there’s another option: a completely re-engineered analog stick, all made possible thanks to 3D printing.

[Nam Le] is a student at Cal Poly, and as would be expected for a very specific subset engineering students, had to track down new N64 controller every few months. The stick on these controllers wear out, so [Nam] decided to make the most durable joystick that has ever fit inside an N64 controller.

The design of the N64 stick is pretty simple, and exactly what you would expect if you’ve ever opened up an analog joystick. There’s the stick itself, which is connected to gears on the X and Y axes, which are in turn connected to encoders. This entire assembly sits in a bowl. After twenty years, the mating surface between the stick and the gears wear down, and the bowl becomes deformed. The solution here is obviously to engineer something sturdier, and despite what most of the 3D printing community will tell you, ABS and PLA just won’t cut it.

[Nam] re-designed the gears and bowl out of brass using lost-wax casting using 3D printed parts. These brass parts were mated with 3D printed gears and an enclosure for the bowl. The stick is nylon, an important design choice because this is the first part to wear down anyway, and it’s also the easiest part to replicate. Yes, this is designing an analog stick for the strength of materials and Real Engineering™ for those of you keeping track at home.

Right now, the joystick works as intended, and lasts much longer than the stock version. The goal now is to get this stick tournament-legal for some serious Smash time, in the hopes of not replacing controllers every few months.