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).
In my previous post, I talked about the motivation behind my updated “Block M” LED pin and compared it to the previous iterations to show how far it’s progressed since I designed the first one nearly 10 years ago. Today I’m going to wrap up by going over the electronics, code and power optimizations.
As far back as I can remember, I’ve been a fan of Michigan Football. Whenever I would go to games, I’d get all decked out in Maize and Blue. But at some point late in high school, I decided that wearing a bright yellow hoodie, sweat pants, gloves, hat, shoes and socks just wasn’t quite enough. Sure, I was the most fashionable guy around, but surely there had to be a way for me to show my school spirit even more. So I went down to my basement workshop, printed out some iron-on circuit boards, mixed up some chemicals, got my Radioshack soldering iron hot and made this:
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