Recently I was putting a backlit screen into a Game Boy Advance, which is a common and fairly easymod. Unfortunately, the plastic outer shell didn’t want to close completely, so against my better judgement, I decided to file down the solder joints on the cartridge connector using a Dremel. While this did shave off a millimeter or so, the Game Boy no longer worked when I put it back together – classic Game Boy games had a corrupted Nintendo logo and GBA games showed no logo at all. I figured that the vibration from the Dremel might have fractured some of the solder joints on either the cartridge reader or the CPU, so I reheated each of those pins to allow the solder to reflow and form cleaner joints.
In this post I’ll be covering the process of getting the brains of my custom cartridge working; a Xilinx XC9572XL CPLD. Hang on to your hats.
First, let’s briefly talk about what a CPLD is. This chip is similar to an FPGA in that it provides the ability to reprogram its hardware, rather than running software. Unlike an FPGA, it has non-volatile memory, so the configuration will stay in the chip even after power is lost. The trade-off is that the amount of logic units is orders of magnitude smaller than an FPGA. Fortunately, this project is relatively simple, so I have no doubt it will fit within the limits of the chip. Unfortunately, I’ve never used a CPLD and my only experience with FPGAs was an intro logic class 7 years ago.
For this project we’ll be using the stable, light-weight, robust, intuitive and frequently updated software provided by Xilinx called Webpack ISE. What’s that? It’s a 6.5GB download split over four files? It requires an account to download a license? It’s laggy and confusing and was discontinued in 2013? Well hey, at least it’s free (and runs on Linux in addition to Windows).
I just recently bought a new gaming console. It plays at a constant 60fps, is capable of display 8000x more colors than the previous generation console, has dynamic CPU speed control and runs on normal AA batteries.
Ok, so it’s not an XBox, or PlayStation or whatever the kids are using these days, but it’s still a pretty impressive piece of hardware. I should clarify — I’ve never really been much of a video game enthusiast, my interest in that area peaked when I was about 10 years old, so I’ve always had a special place in my heart for the Game Boy. Recently, I’ve been interested in understanding exactly how the Game Boy works, so I started working on an emulator (it’s halfway finished… Big surprise). I also found this really incredible cartridge that lets you load any games you want onto a MicroSD card and play them. While it’s great, it is rather expensive and there isn’t much documentation on how it works, so I decided I would dive in and try to make my own. Continue reading Custom Game Boy Cartridge – Project Update #0
I’ve been working on a few interesting projects lately and wanted a way to share them online. Despite enjoying similar content on YouTube, I’m way to lazy to put in the required effort to film and edit videos of my projects, so instead I’m going to attempt to document them in a blog…. because it’s always 2005 somewhere.
If you’re interested in circuit boards, software, Game Boy development and hobbyist electronics, stay tuned. Or whatever the blog equivalent is.