GB Checkers
English draughts — checkers — for the original Game Boy. Standard rules, 8×8 board, and a machine opponent that plays by exactly the same ones you do. The game boots into 1 PLAYER, so you can be playing within seconds.
Emulated by binjgb (WebAssembly). Click the screen to give it keyboard focus. Open full screen.
How to play
| Screen | Buttons |
|---|---|
| Title | START begins · SELECT switches 1 PLAYER / 2 PLAYERS |
| Cursor | D-pad walks it along the diagonals, stepping over squares no piece can use · hold to keep moving |
| Carrying a piece | D-pad cycles that piece's landing squares and wraps · any direction does the same thing · hold to repeat |
| Playing a move | A picks a piece up, A again puts it down |
| Putting it back | B — does nothing mid-chain, the capture already happened |
| Taking a turn back | SELECT during a game undoes a turn |
| Game over | START or B deals a new game |
A checker's neighbour is diagonal, so the d-pad is rotated 45 degrees and nothing moves straight sideways: UP and RIGHT both go up the screen, DOWN and LEFT both go down. That only matters before a piece is picked up — with a piece in hand, each press just cycles to the next square it can reach.
Keyboard
- D-padArrow keys
- AX
- BZ
- STARTEnter
- SELECTC
Emulator
- Toggle the SGB borderS
- Fast-forwardShift
- PauseSpace
- Save / load stateF6 / F9
- RewindBackspace
The game
Capturing is compulsory. If any of your pieces can capture, only captures are legal that turn — there is no quiet move offered instead. If a piece that just captured can capture again it must, and it stays in your hand until the chain ends; it may not fall back to a different piece. That is the rule that catches most people out, and the machine is held to it too.
A man reaching the far row is crowned and may then move one square diagonally in any direction — there are no flying kings here. Crown part-way through a chain and the chain stops there.
You lose when you have no legal move at all: no pieces left, or every piece blocked. The status row names the winner. There is no draw rule — two players who only shuffle can keep going forever, and nothing will call it.
SELECT takes a turn back. In 2 PLAYERS it undoes the last move; in 1 PLAYER it undoes your last move, with the machine's reply going back with it, so it cannot simply replay the position you just rejected. A capture chain rewinds whole. The last 32 turns are remembered.
Super Game Boy

The border is the game's own: green baize, a checkerboard bezel round the screen, and crowned and uncrowned pieces down the sides. Its lettering is not a second font — the generator parses the 5×7 glyphs out of the game's own tile art, so the border says DRAUGHTS across the top and CHECKERS across the bottom in the same hand as the status row. The emulator sees the ROM's SGB flag and starts with the border on — press S to toggle it. On plain DMG hardware the upload is skipped, so the game boots exactly as it does without it.
Under the hood
Written from scratch in C with GBDK-2020 — no game engine. The rules engine is a pure header with no GBDK in it, so the move generator, chains, promotion and the search are unit-tested on the host and fuzzed with random self-play before anything touches a ROM, and the built ROM is then driven headless and asserted on. The cart is ROM-only and 32 KB, with the board art generated from a Python script.
The machine chooses from the same legal move list you do, through the same code path, so compulsory capture, chains, promotion-stops-the-chain and the animation apply to it by construction rather than by a second implementation. Its turn is a blocking one: the status row says THINKING, the screen is blitted with that line before the search starts, and the loop freezes for as long as it takes — a few seconds from the opening position, longer in a crowded midgame. Buttons pressed during the think are dropped.
A hop is a glide rather than a redraw: four sprites carry the piece across the squares between, six frames a hop, the same six for the machine's replies and for every hop of a chain. The glide runs before the move is applied, so nothing can catch the board half-updated. Undo and the opening deal are instant.
The border's tiles and map are 5152 bytes parked in the cartridge's second bank. The cart has no mapper, so that bank is permanently mapped and the game hands the Super Game Boy plain pointers — no bank switching, no memory controller. Sound is three one-shots: a click on channel 1 for a hop, a thud on channel 2 underneath it for a capture, and a crash on channel 4 when a hop crowns a man.