[Andrew] is developing a game for the Nintendo Entertainment System (NES). Emulators are great for this, but [Andy] loves running on the real iron. To help, he’s created a dual port RAM interface for his NES. As the name implies, a dual port RAM is a memory with two separate data and address buses. The Cypress Semiconductor CY7C136 [Andy] used also includes arbitration logic to ensure that both ports don’t attempt to access the same memory cell and cause data corruption. In [Andy’s] case the NES was on one side, oblivious to the new hardware. On the other side of the dual port RAM, [Andy] installed an ATmega164 running his own custom firmware.
The new hardware gives [Andy] a live view of what’s going on in the NES’s memory. He added a live memory view/edit screen similar to the FCEUX emulator. The window runs on a PC while the game itself is running on an NES. [Andy] was even able to add rudimentary break and step features by connecting his circuit to the Non Maskable Interrupt (NMI) line of the NES. By holding the NMI asserted, the ATmega can essentially freeze the game in progress.
[Andy] has even used his circuit to teach the NES some new tricks. By reading the timer and score memory locations on Ice Hockey, he was able to create a scoreboard and goal light. Similar techniques were used to give Contra a muzzle flash light which puts Ambilight systems to shame.
We don’t know what [Andy] is planning next, but we hope it’s a source release so we can start hacking some some games ourselves!
Click past the break to see a couple of [Andy’s] Vine videos.
Continue reading “Dual Port RAM Teaches an Old NES New Tricks”
Most all of us recall the Blinking Screen of Death on original NES systems. This was caused by a bad connection between the cartridge and the NES cartridge connector. For whatever reason, it became a very popular idea to give a quick blow down the cartridge, even though this didn’t really help. [Dale] decided to play on this annoying problem by making the NES Blow Cart!
Inspired by a previous cartridge hack, [Dale] mounted a custom made circuit sporting the ever popular ATtiny85 in a Super Mario / Duck Hunt cartridge. A small microphone sits where the original cartridge connector was, along with the on/off switch and program header. A quick blow triggers the ATtiny85 to play a song.
The most difficult part for [Dale] was to figure out how to get the ATtiny to play “music”. This was solved with the discovery of a library called Rtttl. This allowed him to take old Nokia Super Mario and Zelda ringtones and get them on the Attiny85. All files, including the rtttl library are available on his github. Be sure to stick around after the break for a video of the project in action.
Continue reading “NES Cartridge Hack Makes Great Novelty Gift”
From [Basami Sentaku] in Japan comes this 8bit harmonica. [Basami] must remember those golden days of playing Famicom (or Nintendo Entertainment System for non-Japanese players). As the systems aged, the contacts would spread. In the case of the NES, this would often mean the infamous blinking red power light. The solution for millions of players was simple. Take the cartridge out, blow on it, say a few incantations, and try again. In retrospect, blowing on the cartridges probably did more harm than good, but it seemed like a good idea at the time. We’d always assumed that the Famicom, being a top loading design, was immune from the issues that plagued the horizontal slot on the NES. Either [Basami] spent some time overseas, or he too took to tooting his own cartridge.
Blowing into cartridges has inspired a few crafty souls to stuff real harmonicas into cartridge cases. [Basami] took a more electronic route. A row of 8 microphones picks up the players breath sound. Each microphone is used to trigger a specific note. The katakana in the video shows the traditional Solfège musical scale: do, re, mi, fa, so, la ti, do. A microcontroller monitors the signal from each microphone and determines which one is being triggered. The actual sound is created by a Yamaha YMZ294. The ‘294 is an 18 pin variant of the venerable General Instrument AY-3-8910, a chip long associated with video game music and sound effects. While we’re not convinced that the rendition of Super Mario Bros’ water theme played in the video wasn’t pre-recorded, we are reasonably sure that the hardware is capable of doing everything the video shows.
Continue reading “The 8 Bit Harmonica Blows In From Japan”
[Joshua] had his old Gamecube kicking around. Rather than let it gather dust, he took it into the machine shop at Harvey Mudd College and used its body as the shell of a mobile robot. With a bit of thought, it turns out that you can fit quite a lot inside the rather small Gamecube case. [Joshua] started with a couple of R/C plane style brushless outrunner motors. These motors generally give more torque and spin slower than their inrunner counterparts. Several thousand RPM was still too fast to directly drive the LEGO tires though. He needed a gear reduction.
Gears and tight spaces usually send people running for the SDP/SI website. We’ve used SDP/SI parts before, and have found that they make incredibly accurate gears and assemblies. Things can get pricey, however, when you’re buying two of everything. In search of a solution a bit more within his college-student-budget, [Joshua] looked at radio control servos. R/C servos have some rather strong output gears, especially the metal gear variety. Even with strong gears, parts do break in crashes, so replacement gear sets are available and cheap. [Joshua] settled on gears made for Hitec servos. His next problem was finding a pinion gear for his motors. That turned out to be easy, as 64 pitch gears commonly used in RC cars mesh with metric servo gears. The final results are great. His robot has tons of torque and plenty of speed to zip around. The only thing it’s missing is a brain. Videos after the break.
Continue reading “Gamecube Robot is More Than Meets The Eye”
[Adan] had an old Game Boy sitting around, and without anything better to do decided to investigate the link cable protocol with a microcontroller. He had a Stellaris Launchpad for the task, but initially had no project in mind. What he came up for this adventure in serial protocols is a first gen Pokemon trade spoofer that allows him to obtain pokemon without having two Game Boys, or for the weird ones out there, “friends.”
The Game Boy link protocol is extremely well documented, so getting data from the Game Boy to the Launchpad was as simple as a soldering up an old link cable connector to a piece of perf board. After figuring out the electronics, [Adan] looked at what happened when two Pokemon games tried to trade pokemon. When two Game Boys are linked, there are two in-game options: trade or battle. Looking at the data coming after the ‘trade’ option, [Adan] found something that could possibly be the data structure of the Pokemon being sent. He reverse-engineered this all by himself before discovering this is also well documented.
Bringing everything together, [Adan] figured out how to trade non-existent Pokemon with a small dev board. Right now he’s only transmitting Pokemon that are hard-coded on the Launchpad, but it’s very possible to transmit the Pokemon values in real-time over USB.
Thanks [Dan] for sending this in, and no, we don’t know what’s up with the influx of Pokemon posts over the last week. Video of the spoof below.
Continue reading “Spoofing Pokemon Trades”
For every pokemon you encounter on your adventure to become the world’s greatest trainer, you have about a 1 in 8000 chance of that pokemon being ‘shiny’, or a different color than normal. Put an uncommon event in any video game, and of course a few people will take that feature to the limits of practicality: [dekuNukem] created the Poke-O-Matic, a microcontroller-powered device that breeds and captures shiny pokemon.
We’ve seen [dekuNukem]’s setup for automatically catching shiny pokemon before, but the previous version was extremely limited. It only worked with a fishing rod, so unless you want a ton of shiny Magikarp the earlier setup wasn’t extremely useful.
This version uses two microcontrollers – an Arduino Micro and a Teensy 3.0 – to greatly expand upon the previous build. Now, instead of just fishing, [dekuNukem]’s project can automatically hatch eggs, search patches of grass for shiny pokemon, and also automatically naming these new shiny pokemon and depositing them in the in-game pokemon storage system.
The new and improved version works a lot like the older fishing-only automated pokemon finder; a few wires soldered on to the button contacts control the game. The Teensy 3.0 handles the data logging of all the captured pokemon with an SD card and RTC.
What did [dekuNukem] end up with for all his effort? A lot of shiny pokemon. More than enough to build a great team made entirely out of shinies.
Video below, with all the code available through a link in the description.
Continue reading “Gotta Catch ‘Em All, With An Arduino”
It’s been just a bit over a year since the Wii U was released along with the extremely impressive Wii U controller. With a D-pad, analog sticks, accelerometer, gyroscope, magnetometer, camera and 6.2 inch touchscreen, this controller is ripe for a million and one projects ranging from FPV quadcopters and robots to things we can’t even think of yet. At this year’s Chaos Communication Congress, [booto], [delroth], and [shuffle2] demonstrated how they cracked open the Wii U controller’s encryption allowing for Wii U controller ‘emulation’ and giving us full documentation on how the whole thing works.
The guys started on their reverse engineering journey by dumping all the flash chips found on the controller’s board. In those binary blobs, they found Nintendo used a truly ingenious way of obfuscating the WiFi keys used to connect the controller to the Wii: rotate left by three. To be fair to Nintendo engineers, it was secure until someone figured it out.
Connecting the controller to a PC over WiFi is only half the battle, though. Initial information from the Wii U launch suggested Nintendo used Miracast for all the I/O between the controller and the console. This isn’t the case; instead the video, audio, camera, and button input are non-standard but very simple protocols. The hardest to break into was the video display for the touchscreen, but the guys discovered it’s pretty much H.264. After getting around some Nintendo weirdness, it’s possible to display video on the controller.
The guys have put together a small, extremely alpha library that comes with all the demos, documentation, and reverse engineering information. There’s a large wish list of what this library should include, but now that the information is public, it might be the time to pick up a Wii U.
Video of the talk below, here’s the presentation slides, and a demo of emulating a Wii U game pad on a PC.
Continue reading “Using The Wii U Controller With Everything”