A Debatably Brief Overview of Homebrew

I want to make Nintendo games.

Let’s face it, we’ve all thought that at one point or another. Usually it doesn’t go any further than wishful thinking, though. Sure, some of us might doodle concept art or gameplay ideas in a notebook, a few might even learn to program, but even for those with all of the skills there’s another, more tangible hurdle: the tools. Game development isn’t free and procuring a software development kit (SDK or devkit for short) is often a costly proposition. For those of you not familiar with the game development process, a devkit is a collection of specialized software and hardware used to make and test games. They’re quite expensive: the Wii’s devkit cost around $5000, which at the time was rather cheap compared to the XBox 360’s and PS3’s $20,000 price tag. Now, those of you who are used to making do with free software—like me—are probably thinking, “do I really need all of those fancy tools?”

No.

Homebrew is the process of making software for a system without the original development kit or system distributor’s blessing (more commonly known as a “license”). The term originated among beer aficionados for beer brewed by an individual instead of a commercial brewing house, but now is used in many hobbies—including video games—to refer to unofficial/amateur produced content. Homebrewering shouldn’t be confused with modding or ROM hacking: homebrewing is concerned with making new content for a system, while modding and ROM hacking only intend to change or manipulate an existing game (sometimes to the point where it’s arguably a different game made from the parts of the original).

Homebrew is the process of making software for a system without the original development kit…

What’s Homebrew Like?

Homebrew provides a surprisingly diverse selection of content. There’s homebrew for almost all Nintendo systems, though the type of content varies greatly from system to system. Older systems mostly focus on games, while newer ones–from about the Wii onward–have homebrew for everything from games to system utilities. Let’s take a quick look at some examples.

Games

Blade Buster

Just as “all toasters toast toast [sic]” Nintendo homebrewers homebrew games…duh. Sadly, most of the homebrew games I found in my research are simple, forgettable diversions much like the flash games of the early days of the internet. It’s not that surprising, considering game development on any level is an intricate and time consumptive process. That isn’t to say that all homebrewers lack diligence and ambition. There are still many quality original titles. Notice that I said original titles; a large number of homebrew game projects are simply ports, usually of games whose creators have released the source code to the general public. In fact, the Wii alone has ports of P.C. classics such as Tyrian, Quake, and Jazz Jackrabbit.

 

N-Warp ScreenshotI’m not going to try to enumerate every homebrew project released for a Nintendo system, but for the sake of being thorough, there are some that warrant mention. First up is Blade Buster, a Famicom shoot-em-up notable for its screen filling boss sprites (on an 8-bit console mind you), an insane number of sprites on the screen at a time, and unique time-attack styled gameplay. Next for the Super Nintendo is N-Warp Daisakusen, a game that allows eight—yes, eight—players to compete in a free-for-all brawl. Lastly, I want to mention a puzzle game for the DS named Negative Space which has the player drawing paths to guide two opposite colored blobs to their respective goal flags. The catch? They can only travel through the other’s color, meaning every path you draw for one is an obstacle to the other.

Negative Space
This game is also available as a free download on Android.

Emulators

After games, the most common type of homebrew is emulators. I’m not exactly sure why when emulators are already so prolific on P.C. Maybe people make them because they like the challenge of getting an emulator to function on the constraints of a game console. Maybe it’s to prove that more fully featured emulation is possible on Nintendo systems. Maybe people just think it’s funny to play Playstation games on their Wii. Whatever the reason, most of Nintendo’s modern systems have a multitude of homebrewed emulators available on them.

WiiSX
I can’t be the only one who thinks this is hilarious.

Obviously, many of the homebrewed emulators available online for Nintendo consoles are for older Nintendo systems. As I alluded to in the previous paragraph, however, the homebrewed emulator scene isn’t exclusively concerned with Nintendo systems. On the just Wii alone there are emulators for Sega Genesis/Mega-Drive, Sega Saturn, Playstation 1, CalecoVision, Commodore 64, Atari Lynx, and many, many, many, many, many more. Also, there’s a Super Nintendo emulator that runs on the original 3DS (I knew it!).

Whatever the reason, most of Nintendo’s modern systems have a multitude of homebrewed emulators available on them.

Miscellaneous Software

Not all homebrew projects are game related. Some are just the sort of software you’d find on any computer: music players, web browsers, etc. One such program of note is an art program called Colors! Which was originally developed as homebrew for the DS but has since gotten an official release on multiple systems, including the 3DS eshop. Then there’s software that changes system behaviors. For example, the 3DS has an application that removes the cap on the number of play coins a player can receive in a day. More impressive is a Wii hack that let’s the user change the region of the console—y’know, to play region locked games.

Linux

Where there’s hardware, there’s Linux. Much like the speed of light or the certainty of death and taxes, it’s one of the constants of our universe. Seriously, any system that’s powerful enough to run Linux sooner or later will. There’s Linux for the GameCube, Linux on the 3DS, Linux for the Wii, a distro is in development for the N64, there’s a version for the DS; heck, even the GameBoy Advance has…Unix?

…Wait, what?

GameBoy Advance Unix
What?

Any system that’s powerful enough to run Linux sooner or later will.

Cool! Let me try!

For those of you who don’t know, I happen to be a programmer, so when I write an article that gives me the opportunity to talk about programming, I’m going to talk about programming. If you think programming is some kind of voodoo (which it isn’t: it’s sorcery), you may want to skip this part.

Still here? Great! Believe it or not, if you’re already comfortable with programming it’s almost as simple as picking the system you want to develop for and a few Google searches. While homebrewing isn’t exactly the go-to past-time among bored nerds, there are several online guides and communities dedicated to the craft: forums, YouTube videos, blogs, and wikis galore! Heck, there’s an entire free book on WikiBooks about Super Nintendo programming.

Even though you’re not going to be using The Man’s toolkit, you can’t exactly make a game with just your imagination and wishful thinking (trust me, I’ve tried). You will need software to compile the code you write and, if you’re developing for one of Nintendo’s more recent systems, an API library to interface with the system (getting controller input and such). You’ll also want an emulator. Fortunately, all of these tools can be easily acquired on the internet for free.

 There are several online guides and communities dedicated to the craft: forums, YouTube videos, blogs, and wikis galore!

As for the coding itself, it’s mostly the same as regular programming. For example, I—out of curiosity—browsed through a tutorial on GameBoy Advance homebrewing and was quite relieved (and just a little surprised) to find that the code was hardly distinguishable from any other program written in C. There are certainly nuances to keep in mind—like in the case of the GBA, some memory addresses are reserved for the screen’s RGB values, tracking whether buttons are pressed, and so on. You may also need to go without some modern conveniences (hope you like compiling your code from command-line!). But by-and-large, anyone who’s sufficiently experienced with C and/or C++ should be fine.

Unless you’re developing for an 8 or 16-bit system. In that case I hope you really like 65c816 Assembly!

 

We Haven’t Even Touched the Red Pill

Instead of starting on a proper summation, I’d like to cover my backside real quick and stress that despite this being the longest article I’ve written for Two Button Crew to date, I have only given the barest of overviews of the subject. I encourage you to look further into this, either as someone interested in finding new games to play or someone hoping to make such games. More over, there’s a lot I omitted for length, like how some retail games have been pulled from store shelves because of homebrewers.

Having said all that, it’s a shame homebrew isn’t more popular. I understand why, though: if someone’s going to go to all the trouble to make a game, why make it for a dead system? And if it’s for a modern system, why make a game that they can’t license and sell? But, hey, who knows? Many Nintendo fans have grown up and started making games of their own. As time goes on and more fans get old enough to take an interest in game development, maybe some of them will try to make a few for the systems they played on as kids. Wouldn’t that be something, a flood of new old games?


About the Author:

Glen is a lifelong Nintendo fan whose love of video games has inspired him to pursue a career in computer programming; so much so that he is now studying to get a masters in computer science. He doesn’t understand that the average person isn’t interested in programming and won’t shut up about how awesome it is.