So you have decided you want to speedrun Game Boy games but you do not know where to start? Have no fear because GBrunners.com is here! On this page, you will be able to find everything you need to know about GB speed running. We will address which software or hardware to use (or NOT to use) and provide you with detailed information about the ins and outs to get you going. Let us start with one of the most important rules: Game Boy emulation / Game Boy emulators.

What emulator should I use for speedrunning Game Boy games?

Let’s get this out of the way as fast as possible: DO NOT USE VISUAL BOY ADVANCE / VBA / VBA-M! You got that?

Let me repeat it just in case: DO NOT USE VISUAL BOY ADVANCE / VBA / VBA-M! Alright, let’s get into a little more detail now.

But, because you may have forgotten already: DO NOT USE VISUAL BOY ADVANCE / VBA / VBA-M! Phew! Here we go.

  • Gambatte: Gambatte is a simple emulator that supports multiple save states and is the only one working accurately on Mac. Compared to other emulators it does not offer much in terms of customization. You can download it here.
  • Bizhawk: A multisystem emulator that used Gambatte's core for GB emulation. This one was made by the people over at TASvideos. You can download it here.
  • BGB: BGB is a super lightweight emulator with many customization options. You can select many available hardware emulation and can even choose if you want to display SGB borders for SGB enhanced games. Older versions only support one save state which makes it rather hard to practice certain parts of certain games on it, so make sure to grab the newest one if you haven't already. You can download it here.
  • Visual Boy Advance VBA/VBA-M: VBA is running Gameboy/Gameboy Color games at slightly higher frame rate than usual gb hardware and other accurate emulators and additionally can't emulate lag properly making it running the games faster and smoother. While it might sound tempting to use a faster platform, it's still unfair to people who are playing on original hardware (Super Gameboy 2 or Gamecube GB Player) and accurate emulators (Bizhawk, Gambatte or BGB).

Here is a comparison video to help you see the differences between emulator/hardware visually.

What hardware should I use for speedrunning Game Boy games?

Emulators are fine and all when you lack the necessary funds to provide yourself with actual hardware to speed run Gameboy / Gameboy Color or Gameboy Advance games on. But if you want to be the greatest of them all, it might be wise to save up some money to get the things you need. And you might be surprised by the prices of some of the hardware you might need for it.

  • Super Nintendo/ Super Famicom: It’s a given that you will need a way to actually play your lovely Game Boy games and be able to capture them. If you want to play them on an actual brick Game Boy or Game Boy Color with a GoPro camera strapped to your head, we are not going to stop you. But keep in mind you will look ridiculous and there are way better ways to do this. First you will need a Super Nintendo. It’s a given you should stay away from the PAL versions of this console for obvious reasons. Do you have a US NTSC system? Then you are almost good to go. Do you have a JP NTSC system? Then you are even more close to be ready to speedrun gb games.
  • Super Game Boy 2: We all know the amazing Super Game Boy that let us play our favorite Game Boy games on our TV. So why not use it for GB speedrunning? Well, sadly, the original SGB runs games too fast compared to the original hardware. Luckily it’s easy to convert times thanks to this helpful tool by Nudua. But wouldn’t it be better if you wouldn’t have to do that? Well, luckily in Japan there is something called a Super Game Boy 2. This new and improved version of the original SGB plays games accurately and is cheap as hell! If you have a JP Super Famicom, you can plug this nifty little bugger right in. If you have a US NTSC SNES, you’ll have to make it fit any way you can. Better get a Super Famicom and Super Game Boy 2 in one go wouldn’t you say?
  • GameCube + Game Boy Player: The GameCube and Game Boy Player combination is also an accepted way to go when it comes to speedrunning Game Boy games and the only way to go when you want to speedrun Game Boy Color games. This is also the more expensive solution. Not only do you need the console and add-on, you will also want to invest in a Game Boy Advance or Game Boy Advance SP handheld to use as a controller, which means you will need an adapter cable as well. There are of course also adapters available for your lovely SNES controllers. You can use your GameCube controller as well, but we far from recommend it.
  • GameCube + GBi: While the Game Boy Player hardware can be found affordably, often the more expensive piece of the puzzle is the Game Boy Player disk. In addition to this, the OEM Game Boy Player disk provides relatively few options for customization. There is a homebrew solution to this problem called Game Boy Interface. Using custom software loaded on a GameCube memory card (this step may require a softmodded Nintendo Wii) and either a Super Smash Bros. Melee or Wind Waker disk, you can replace the OEM Game Boy Player disk with your choice of several versions of GBi, improving color depth, resolution, customization, and ease-of-use of your Game Boy Player.

Are there any specific rules for speedrunning game <insert name here>?

Usually all games have some unified rules that apply to each of them. But there might be game specific rules as well. These could vary between run catagories or even rules applied to when to start and end the timer. For more information on a specific game, please check the corresponding leaderboards on speedrun.com.

Super Game Boy Enhanced Games

A lot of research has been going on in the background concerning how SGB Enhanced games perform on different setups. Originally pld already found out that some games seemed to be running slower than normal when using a Super Game Boy 2 (and of course on SGB1 but as that one runs too fast by default we didn't take this further into consideration). Recently Nudua put the problem under the scope and has come up with some very interesting details. Starting from the next paragraph, you can read about his findings.

Note: This only applies to Super Game Boy (SGB)-Enhanced games (Custom border, palettes, colors and even sounds) i.e. Donkey Kong Land Series, DK '94, Pokemon, Mega Man V etc. This applies to the Super Game Boy (1) (PAL/NTSC) and Super Game Boy 2 (NTSC-J-Japan Only). When I write SGB, I'm refering to both versions, although the time loss is written in regards to the SGB2.

Short version: You lose time everywhere in SGB-enhanced games because special SGB features takes time to execute.

SGB-enhanced games transfer data from and to the SNES by sending SGB command packets, to set palette/graphics/attributes and more. This causes the GB CPU to do more work which results in SGB-enhanced games to run about 5.6 frames~ (0.09375sec~) (rough estimate) slower for each command packet sent. Or even more if it forces the SNES to change the SGB-border (which is why very few Pokemon runners use a SGB2). Over an entire run there will have been sent hundreds if not thousands of these packets causing a significant time loss overall.

Couple of examples:
Donkey Kong Land 2 will lose 0.7~ seconds going from the start of the game to the first level because it sends 7 SGB specific command packets. (Comparisons made on Console, SGB2)
Mega Man V, selecting the robot master Neptune will lose you 0.52~ seconds because of 5 SGB Command packets. (Directly compared from MrCab and Tremane's pbs)

Disabling SGB features from a game: (patching)
I've made a rom patcher that disables all the routines that are used to start communicating with SGB, generally there will be 1-3 of these in a sgb enhanced gb rom. This will make the game think it's running on an original game boy instead of a SGB and there will be no SGB command packets sent.
http://nudua.com/sgb (note that it may not work for all games, some might need custom patching)

Viewing SGB Packets: You can use BGB in Super Game Boy mode to view all the command packets being send via the Debugger (Window-> SGB Packets). They are usually sent during the start of the game, during screen transitions and when they need to update the custom SGB palette and attribute data.

Sources:
http://gbdev.gg8.se/wiki/articles/SGB_Functions
http://bgb.bircd.org/pandocs.htm#sgbfunctions

Now what does this mean exactly for the Game Boy speedrunning community? After some discussion over this, the general consensus is that this changes nothing. Denying the use of particular hardware or software just for SGB Enhanced games in general would be a bad idea. Patching roms for use on emulator (or even Everdrive) is a nifty trick, but this would make things even harder to moderate and probably should not be used.

Runners of a specific SGB Enhanced game should first and most be aware of this situation and apply rules if they feel this is necessary. Here are some suggestions:

  • The "best" solution to get the SGB Enhanced games running as they are intended to run would be to use a Game Boy Player. This totally negates all effects the enhancements provide to the game, thus making the game run at the original speed.
  • To be consistent between emulator and actual hardware, emulator players would have to use the SGB function on BGB (the only emulator as of today that has this functionality) and console players would have to use the SGB2. OR emulator players should use any emulator without use of the SGB function and hardware users should use the GBP.

Again, all of this is just to inform people about the difficulties that rise when speedrunning an SGB Enhanced game. These are NOT general rules trying to deny players to use the software or hardware they intend to use to speedrun these games. The community of a specific game will have to decide for themselves wether or not to apply any new rules.

You can find a list of all Super Game Boy Enhanced games here: https://en.wikipedia.org/wiki/List_of_Super_Game_Boy_games