GameBoy emulator accuracy

August 8, 2022

This post is part of the Game Boy series (#4).

Emulators are an amazing tool to play old GameBoy games on your computer, if you don't have a GameBoy available.

There are many emulators available - but when it comes to speedrunning, it really matters if they are accurate and run as fast as the original hardware. Here is a comparison of some existing emulators:

"Dick Tracy test" - keep pressing right until the the Game Over scene appears.

Results

If you're interested in the numbers, you can see the raw data here (click image to visit dedicated page):

emulators

Testing for accuracy

On speedrun.com, many GameBoy games are tracked (around 500 at the time writing), and often runners use all kinds of available emulators.

When verifying runs, I find it important that the leaderboard stays fair: How can we be sure that a game played on an emulator is as fast as on real hardware? Are runs done on an emulator comparable?

My approach was to do many black-box tests (i.e. assume nothing about the implementation) using reproducible segments of real games and time how close each emulator/platform gets to the original hardware.

That means, to really find out how a specific emulator compares to real hardware, I came up with a "test suite" and recorded those parts of real games and time them against real hardware.

This has many upsides, as we really don't need to know anything about how the emulator was implemented. I tried to come up with different kind of tests, some of them just let a timer run down (like Super Mario Land), others also have inputs pressed (like Dick Tracy above), most of them contain real gameplay, but also static texts, fixed scenes, and sometimes also autoscrolled sequences (TaleSpin).

All of the videos are being recorded in a uniform way (60fps with fixed software), and then postprocessed with a simple script to burn frame numbers into the video. For each test, there are marker frames, which define start and end of the timed sequence down to the frame.

You can see the results and more details on this page: GameBoy emulator accuracy.

Thanks for reading!