Dual Port RAM Teaches an Old NES New Tricks

nesDPR

[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”

NES Cartridge Hack Makes Great Novelty Gift

NES cartridge with arduino

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”

Vacuum Formed Portable N64 is the Real Deal

1_zpsc457798c

This portable N64 looks good enough to be sold in stores — that’s because [Bungle] vacuum formed the case!

He started by creating a wooden template of his controller, using bondo to add grips and features. Once satisfied with the overall look and feel of the controller, he threw it into his own vacuum former and created two shiny plastic halves.

He’s chosen a nice little 3.5″ LCD screen for the display, with a 7.4V 4400mAh battery pack that will last just over 4 hours of constant play — he’s included a battery indicator as well! An old N64 controller takes care of electronics, but [Bungle’s] gone and made custom buttons and is using a Gamecube style joystick as well. He’s included both the rumble pack and an internal memory card which can be changed with the flick of a switch. A tiny HMDX Go portable audio amp and speakers are also integrated directly into the controller.

Continue reading “Vacuum Formed Portable N64 is the Real Deal”

Super Mario on a Human-Machine-Interface!

super mario

Getting Super Mario to work on your TI-83 calculator is almost a rite of passage for young geeks, so we really liked this project where [Chad Boughton] managed to get it running on a PLC’s HMI screen instead!

He’s using a Danfoss DP600LX microcontroller with an HMI display along with a CAN bus joystick. This kind of equipment is typically used to control hydraulic systems, as well as display sensor data — [Chad] was curious to see if he could do animation with it as well — it looks like he’s succeeded! The funny thing is we’ve seen those “joysticks” before and it’s cool to see them used for something like this — like [Chad] said, they’re normally used for actuating hydraulic and pneumatic cylinders.

Stick around after the break to see Mario eat some mushrooms.

Continue reading “Super Mario on a Human-Machine-Interface!”

A Deep Dive Into NES Tetris

Tetris AI

Back in 1989, Nintendo released Tetris for the NES. This detailed article first explains the mechanics of how Tetris works, then builds an AI to play the game.

To understand the mechanics of the game, the ROM source was explored. Since the NES was based of the MOS 6502 microprocessor, this involves looking at the 6502 assembly. The article details how the blocks (called Tetriminos) are created and how they move across the screen. The linear feedback shift register used for random number generation is examined. Even details of the legal screen and demo mode are explained.

After the tour through how Tetris works, an algorithm for the AI is presented. This AI is implemented in Lua inside of the FCEUX NES/Famicom emulator. It works by evaluating all of the possible places to put each new Tetrimino, and choosing the best based on a number of criteria. The weighting for each criterion was determined by using a particle swarm optimization.

The source for both the Lua version and a Java version of the code is available with the article. Everything you need to run the AI is available for free, except the Tetris ROM. If you’re interested in how 8 bit games were built, this dissection is a great read.

[via Reddit]

Teaching Mario to Play Pong and Snake Through Innumerable Exploits

This is the coolest classic Super Nintendo Entertainment System (SNES) hack we’ve seen in quite a while. What you’re seeing is called “Super Mario World (Total Control)” by [Masterjun]. Our first recommendation is that you watch the video, then come back here for an explanation. Similar to what we saw for Pokemon Yellow on Gameboy, [Masterjun] created entire Pong and Snake clones within Super Mario World. He also created a menu and ending screen, along with his trademark smiley face graphic. Even more amazing is that this was unveiled live on a real SNES running an unmodified game cartridge. [Masterjun] actually used dual multitap cables, effectively connecting 8 controllers to a SNES. This gave him enough bandwidth to quickly download his new binary through the controller ports alone.

Welcome to the world of Tool Assisted Speedruns (TAS), where emulators and scripts are used to create high-speed runs through video games. The runners often work frame by frame, painstakingly inputting commands to create the perfect run. Game bugs and glitches are often exploited in these speed runs. In fact, in runs such as this one, the speed run takes second place to showing off the exploit. The output of speed run creation is a script file of control inputs which can be executed on an emulator to “re-run” the TAS at any time. This script can also be saved to a PC or Raspberry Pi and played back into the controller port of a real game system. A PIC based hardware translator is used to convert the data to NES or SNES controller format. As one might expect, these scripts run open loop. With no feedback from the running game, they can and do become desynchronized due to differences in console hardware, such as the tolerance of the oscillator crystal. When everything is in sync and does work , the results are awesome.

Continue reading “Teaching Mario to Play Pong and Snake Through Innumerable Exploits”

NESPoise – a Nice Looking NES Clone

[Dave] tipped us about the latest project he just finished: a posable, desktop NES clone arcade machine. This idea came to be when its creator gathered a few bits and pieces he had lying around: an NES Retro Entertainment System (Retrobit RES, found for less than $25) and an arcade stick with its buttons. [Dave] then bought a 7″ car DVD screen (less than $40) and started a first standard arcade-looking design with OpenSCAD. As the first draft was relatively boring, he let it mature for a bit until he got another idea, shown in the picture above.

The final result is made of 3D printed PLA and varnished luaun plywood which gives the console a VCS style retro look. Many hours were required to 3D print the different parts using a Makerbot Replicator 2. [Dave] disassembled his Retrobit RES to layout its parts inside the case and  also replaced the original voltage regulator with a 7805 on a big heatsink. This may be one of the best ‘nintendo’ hacks we have received over the years, but there have been others that also take cartridges.