GB Racer: Pseudo-3D Racing on the Original Game Boy
Three tracks, two rivals, traffic, hills and a road that bends towards the horizon, on a Game Boy with no 3D hardware at all. GB Racer is a proper arcade racer in a 128 KB cart.
Think back to racing on the original Game Boy. F-1 Race came in the box with the four-player adaptor, and it was great fun with friends, but on your own on the bus it never quite gave you that arcade feeling: the road swinging away towards the horizon, the hill cresting in front of you, the rival you just can't shake off.
GB Racer goes after exactly that feeling, and you can play it in your browser right now.
Three Tracks, Three Moods
The set-up is pure arcade. Pick a track, pick 3, 5 or 10 laps, pick EASY, NORMAL or HARD, and go. Two rivals line up beside you and random traffic clogs the road ahead.
OVAL is the gentle one: two wide sweeps each way and barely a rise in the road. It's where you learn the car. CANYON mixes things up with three tight bends over rolling hills, and those hills matter, because a climb bleeds speed off and a descent hands it back. ALPINE is the real test, with bends that flick left-right-left and steep climbs straight into drops. Go flat out there and you'll spend the race on the grass.
Every combination of track, length and level keeps its own best time in battery-backed save RAM. That's 27 records to chase, and the title screen shows the one you're about to race for.
A Car With Some Weight
What surprised us is how the car feels. Steering doesn't snap. The tyres take a moment to bite, so the car keeps sliding a beat after you let go, and holding a direction tightens the turn the longer you hold it. Bends push you outwards, harder every lap and harder still on HARD, so the race gets meaner as it goes on.
The brake beats the throttle, which makes the classic technique work: hold A, tap B for the bend, and power out. A sign in the sky warns of a sharp bend ahead and flashes when you're carrying too much speed for it. Run wide anyway and the grass caps your speed and kills your steering, so a mistake costs you time rather than sending you spinning further off.
Bending a Flat Road
Here's the clever part. The Game Boy can't draw a 3D road. It can scroll one background, and that's about it. So GB Racer cheats, beautifully.
A hand-written assembly routine runs on every single line of the road as the screen is being drawn, and changes the scroll and the palette for that line. Shift each line a bit further than the last and the road curves; cycle the palettes and the stripes rush towards you. The next frame's tables are built while the current one is on screen, then swapped in during the gap between frames.
Version 1.2 added the finishing touch: you see a bend before you reach it. The road is drawn as two bends, the one you're in and the next one beyond, and the join slides down the screen at the road's own speed. A bend appears on the horizon, sweeps towards you and arrives just as the car starts to feel it. It sounds obvious, and it's the difference between a racer that feels fair and one that throws you off the road with no warning.
Slot it into a Super Game Boy and the screen sits in a little race circuit, complete with chequered flags, red-and-white kerbs and a starting grid.
Where It Runs Out of Road
Let's be fair about the limits. Three tracks is not many, and once you've learned ALPINE there's no fourth course waiting. The scenery is stripes and a skyline rather than roadside trees and billboards, so the tracks are told apart more by how they drive than how they look. And it's a single-player game: no link-cable head-to-head, which feels like a missed trick on a machine whose most famous racer came with a four-player adaptor.
The Super Game Boy border has also only been checked in emulators so far, not on a real SGB.
Pick It Up
Those are the complaints of someone who kept playing. GB Racer has the thing that matters most in an arcade racer: the urge to have one more go at a lap record.
Play GB Racer in your browser, check its catalogue entry, or grab the ROM and the full source from GitHub and run it on the real thing.
FAQ
Can I play GB Racer on a real Game Boy?
Yes. It's a standard 128 KB MBC1 cartridge image with battery-backed save RAM. Download the ROM from the GitHub releases page and run it on a flash cart in an original Game Boy, a Game Boy Pocket, or a Super Game Boy.
Does GB Racer save my lap times?
Yes. The best race time for every track, race length and difficulty is saved to the cartridge's battery RAM, 27 records in all.