Game Boys may be old tech, but they still provide challenges to modern hackers. [Dhole] has come up with a cartridge emulator which uses an STMicroelectronics STM32F4 discovery board to do all the work. Until now, most flash cartridges used programmable logic devices, either CPLDs or FPGAs to handle the high-speed logic requirements. [Alex] proved that a microcontroller could emulate a cartridge by using an Arduino to display the “Nintendo” Game Boy boot logo. The Arduino wasn’t fast enough to actually handle high-speed accesses required for game play.
[Dhole] kicked the speed up by moving to the ARM Cortex-M4 based 168 MHz STM32F4. The F4’s 70 GPIO pins can run via internal peripherals at up to 100MHz, which is plenty to handle the 1MHz clock speed of the Game Boy’s bus. Logic levels are an issue, as the STM32 uses 3.3V logic while the Game Boy is a 5V device. Thankfully the STM32’s inputs are 5V tolerant, so things worked just fine.
Simple Game Boy cartridges like Tetris were able to directly map a ROM device into the Game Boys memory space. More complex titles used Memory Block Controller (MBC) chips to map sections of ROM and perform other duties. There were several MBC chips used for various titles, but [Dhole] can emulate MBC1, which is compatible with the largest code base.
One of the coolest tricks [Dhole] implemented was displaying a custom boot logo. The Game Boy used the “Nintendo” logo as a method of copyright protection. If a cartridge didn’t have the logo, the Game Boy wouldn’t run. The logo is actually read twice – once to check the copyright info, and once to display it on the screen. By telling the emulator to change the data available at those addresses after the first read, any graphic can be displayed.
If you’re wondering what a cartridge emulator would be useful for (other than pirating games), you should check out [Jeff Frohwein’s] Gameboy Dev page! [Jeff] has been involved in Game Boy development since the early days. There are literally decades of demos and homebrew games out there for the Game Boy and various derivatives. .
Continue reading “Game Boy Cartridge Emulator Uses STM32”
While [Rob] was digging around in his garage one day, he ran across an old Commodore 64 cartridge. With no ROM to be found online, he started wondering what was stored in this ancient device. Taking a peek at the bits stored in this cartridge would require dumping the entire thing to a modern computer, and armed with an Arduino, he created a simple cart dumper, capable of reading standard 8k cartridges without issue.
The expansion port for the C64 has a lot of pins corresponding to the control logic inside these old computers, but the only ones [Rob] were really interested in were the eight data lines and the sixteen address lines. With a little bit of code, [Rob] got an Arduino Mega to step through all the address pins and read the corresponding data at that location in memory. This data is then sent over USB to a C app that dumps everything in HEX and text.
While the ROM for just about every C64 game can be found online, [Rob] was unlucky enough to find one that wasn’t. It doesn’t really matter, though, as we don’t know if [Rob] has the 1541 disk drive that makes this cart useful. Still, it’s a good reminder of how useful an Arduino can be when used as an electronic swiss army knife.
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”
[FozzTexx] had an old Atari 800 collecting dust and decided to pull it out and get to work. The problem is that it’s seen some rough storage conditions over the years including what appears to be moisture damage. He’s read about a cartridge called SALT II which can run automatic diagnostics. Getting your hands on that original hardware can be almost impossible, but if he had a flashable cartridge he could just download an image. So he bought the cheapest cartridge he could find and modified it to use an EPROM.
When he cracked open his new purchase he was greeted with the what you see on the left. It’s a PCB with the edge connector and two 24-pin sockets. These are designed to take 4k ROMs. He dropped in an EPROM of the same size but the pin-out doesn’t match what the board layout had in mind. After following the traces he found that it is pretty much an exact match for an Intel 2764 chip. The one problem being that the chip has 28-pins, four too many for the footprint. The interesting thing is that the larger footprint (compared to the 2732) uses all the same pins, simply adding to the top and moving the power pins. A small amount of jumper wire soldering and [FozzTexx] is in business.
We’ve sure been seeing a lot of original NES cases used in projects lately. This time around the thing still plays the original cartridges. This was one of the mains goals which [Maenggu] set for himself when integrating the LCD screen with the gaming console. There is a quick video clip which shows off the functionality of the device. It’s embedded after the break along with a few extra images.
To our eye the NES looks completely unmodified when the case is closed. The cartridge slot still accepts games, but you don’t have to lower the frame into place once that cartridge has been inserted. The image above shows a ribbon cable connecting the top and bottom halves of the build. It routes the signals for both the LCD screen and the cartridge adapter to the hardware in the base. He mentions that he used the original power supply. We’re not sure if the original motherboard is used as well or if this is using some type of emulator.
Continue reading “Hinged NES case hides an integrated LCD screen”
[Dan] has his own Stratasys Dimension SST 768 3D printer. It’s a professional grade machine which does an amazing job. But when it comes time to replace the cartridge he has to pay the piper to the tune of $260. He can buy ABS filament for about $50 per kilogram, so he set out to refill his own P400 cartridges.
Respooling the cartridge must be quite easy because he doesn’t describe the process at all. But the physical act of refilling it doesn’t mean you can keep using it. The cartridge and the printer both store usage information that prevents this type of DIY refill; there’s an EEPROM in the cartridge and a log file on the printer’s hard drive. [Dan] pulled the hard drive out and used a Live CD to make an image. He loaded the image in a virtual machine, made some changes to enable SSH and zap the log file at each boot, then loaded the image back onto the printer’s drive. A script that he wrote is able to backup and rewrite the EEPROM chip, which basically rolls back the ‘odometer’ on how much filament has been used.
[Ed] needed a bunch of edge connectors for video game cartridges. He was unable to source parts for Neo Geo Pocket games and ended up building his own from PCI sockets. But it sounds like this technique would work with other console cartridges as well.
From the picture you can see that this is a bit more involved than just slapping a cartridge into a socket. Because there are multiple steps, and many connectors were needed, [Ed’s] dad lent a hand and built a few jigs to help with the cutting. The first step was to cut off the key and the narrow end of the socket. These NGP cartridges are one-sided, so the socket was cut in half using a board with a dado cut in it as a jig. From there the plastic bits can be cleaned up before pulling out two center pins and cutting a groove to receive the cartridge key. There are also two shoulder cuts that need to be made after trimming the piece to length. The video after the break will walk you through this whole process.
These PCI sockets are versatile. One of our other favorite hacks used them to make SOIC programming clips.
Continue reading “Machining cartridge connectors from PCI sockets”