Zelda Is The Princess, Now Link Is Too

[Mike] is a huge fan of The Legend of Zelda: The Wind Waker and now that he has a daughter it’s a great time to pass this epic quest down to the next generation. There’s a problem with explaining the plot to her daughter, though: even though the player can name the character after themselves, there’s no way to change the gendered pronouns. Yes, it’s a problem that could have been solved by a cameo by Professor Oak asking, “Are you a boy or a girl?’ but [Mike] came up with a better solution: changing all the pronouns with a ROM hack.

There are a few ‘problems’ with altering the dialogue with a ROM hack. Most importantly, all the new pronouns need to be the same length as the words they replace. [Mike] is using the word ‘milady’ to replace ‘my lad’ and ‘master,’ but also had to take a page from critiques of modern epics and replace ‘swordsman’ with ‘swordmain.’

So far, everything is working as planned and the [Mike]’s daughter [Maya] is enjoying seeing herself sail her dragon ship and battle foes. It’s a great effort to bring some semblance of gender neutrality to a classic game, and an awesome project for a really great dad.

Thanks to [Guillaume] for sending this one in.

The Smallest NES Controller Ever

A few months ago, [Ben] saw a video of the world’s largest NES controller. “I bet I could make the smallest,” he thought in a strange game of one-upmanship. Now [Ben] has the smallest fully functional NES compatible controller, a feat of engineering that can only end in very, very sore thumbs.

The old NES controller is a very simple device: eight buttons are connected directly to a 4021 shift register. Every time the NES is looking for a change in input, it reads out the data in the shift register and gets the status of all the buttons.

After finding the  smallest footprint 4021 shift register he thought he could solder, [Ben] found some very small SMD push buttons and a very tiny resistor network for the pull ups. The result is tiny, and thanks to the sacrifices of a few NES controller extension cables he found on Amazon, 100% compatible with his old NES.

You can grab all the schematics over on [Ben]’s git. Tip ‘o the hat to [Troy] for sending this one in.

SNES Emulator Has It’s Slot Sealed Shut

If you look closely you’ll notice there’s nowhere to put the game cartridge on this Super Nintendo system. That’s because this is a Rasberry Pi based SNES emulator that plays ROMs, not cartridges. Since the RPi board is used the only limit to what you can play is the board’s RAM and which ROMs you have on the SD card.

The case has basically been gutted and the unused cartridge slot was sealed with some Bondo before painting. In addition to the Rasberry Pi you’ll find a 7-port powered USB hub and a Teensy microcontroller board. The hub allows for the controllers to be connected via USB. The Teensy is recognized as a USB HID device and is used to connect the reset button to a functions on the emulator program. The power switch still works too. To make this happen [MIDItheKID] spliced a USB connector and a microB USB connector to the power switch. We think this draws power from the hub but we’re not 100% sure.

[MIDItheKID] mentions in the Reddit comments that he’s thinking of grabbing that new RPi that has more memory and doing some similar work on his dead PSX.

Reading An N64 Controller With A Microcontroller

We’ve seen NES, SNES, Sega, and just about every weird controller Atari put out connected to microcontrollers, but connecting the N64 controller to a project has remained one of those seldom-seen, rarely copied endeavors, not often tackled by makers around the globe. [Pieter-Jan] decided to throw his hat in the ring and give reading an N64 controller with a PIC a try, and we’re pleased to report he’s been completely successful.

One of the difficulties of reading an N64 controller is simply the speeds involved; with only three pins on the controller port, the N64 controller uses a serial protocol to send 32 bits of controller data at a fairly fast rate. Armed with a PIC18F ‘micro, [Pieter] realized that programming in C would be too slow, he needed to go all the way down to the bare metal and program his micro in assembly.

Every time the N64 controller data needs to be read, the console sends out a 9-bit polling request. The controller responds in turn with a 32-bit sequence informing the console of the status of all the buttons and joysticks. Once [Pieter] got his micro sending the correct polling response, it was only an issue of parsing the data returned from the controller.

Right now, [Pieter] has a small demo board rigged up that flashes a LED whenever the A, B, or Z buttons are pressed. This can be expanded to the remaining buttons and joystick, but for now we’ll just enjoy [Pieter]’s demo after the break.

Continue reading “Reading An N64 Controller With A Microcontroller”

Emulators 101: How To Write A Program That Functions Like An NES CPU

We’d bet everyone reading this article has played a game on an emulator at some time or another. And you may have a base idea of how those emulators work. But we’d wager the vast majority of you are clueless about the actual implementation of game emulators (we know we are). But that has all changed after seeing this demonstration of how [Bisqwit] wrote his own NES emulator. The description doesn’t cover anything more than the basics of writing code that emulates the NES CPU hardware itself. But it’s presented in such a way that makes it quite easy to understand for anyone who has a basic knowledge of programming. He starts with a switch statement for handling the processor’s opcodes and then moves through piece by piece showing how he refined his code to make it work while keeping it readable. We think this is a great teaching method and appreciate the time he put into producing this tutorial.

The explanation starts about 4:22 into the video which is embedded after the break. You’ll also find the first two demo videos there. Those involve mostly fast-motion text editing of the emulator coding process with some gameplay tests at the end of the second video.

Continue reading “Emulators 101: How To Write A Program That Functions Like An NES CPU”

Nintendo Light Gun Retrofit Lets It Play Color-based Games

This Nintendo light gun, aka Zapper, looks like a stock device. But a peek inside shows that the circuit board has been replaced. [CNLohr] added USB functionality and a few extra sensors that let him write his own games for that use the classic controller.

After cracking open the case he measured the shape of the circuit board so that he could recreate it exactly. This let him design his own board that would drop right into the same plastic support pieces as the original. His circuit uses an ATmega8u2 to provide a USB connection and read the attached sensors. One interesting aspect is the group of four long traces that act as an expandable i2c bus. [CNLohr] went with this so that he could use daughter boards to add in sensors later. In the demonstration seen after the video he’s using a photodiode as a color sensor. It allowed him to write the color-based game seen above where you shoot a different color of target in each round.

Continue reading “Nintendo Light Gun Retrofit Lets It Play Color-based Games”

Adding Famicom Audio Channles To An NES Without Messing Up The Console

[Callan Brown] wrote in to show us a really interesting NES audio hack. [Callen] decided that he wanted the full Castlevania III audio experience, which (without modifications) can only be had through the original Japanese Famicom console. [Callen] weighed a few adapter options, and instead decided to come up with his own.

The issue is that the Japanese Famicom and the American NES actually have a different cartridge connector. The change in hardware from a 60 pin to a 72 pin connector added “features” like the 10 pins connected directly to the expansion port (used for stuff like the teleplay modem, who knew). The other two additional pins are used by the annoying 10NES lockout chip. While they were at it, Nintendo decided to route the audio path through the expansion connector instead of the cartridge.

This means that the Japanese cartridges can’t pipe sound to the NES audio channel with just a pin adapter. Good news though, after sourcing a pin adapter hidden inside certain NES games (Stack Up, Gyromite), audio can easily just be pulled from the adapter PCB. This requires the more expensive Famicom Castlevania III cartridge (Akumajou Densetsu). To cleanly route the new audio cable out of his front loading NES [Callan] reuses the sacrificial adapter game’s cart to make some kind of unholy hybrid. To round it off [Callan] also goes over steps to flash a translated ROM to the Japanese game.

What difference could an extra two squares and a sawtooth make? Check out the sound comparison video after the jump! Thanks [Callan].

Continue reading “Adding Famicom Audio Channles To An NES Without Messing Up The Console”