top of page

How the Game Boy Printer Works: Heat, Paper and a Conversation in Hex

Writer: Marcel Pflug
Marcel Pflug
Sep 2
6 min read

Open a Game Boy Printer and you will look in vain for an ink cartridge. There is no ribbon, no toner and no nozzle. What it has instead is a row of tiny heaters, a roll of paper that darkens when it gets warm, and a surprisingly strict set of rules for what the Game Boy is allowed to say to it.

This is part two of our series on the printer. Part one looked at the machine itself and its place in 1998. Here we open the lid and follow a picture from the Game Boy's screen, down the link cable, onto a sticker.


Game Boy Printer MGB-007 with its thermal paper roll.
No ink anywhere: the Game Boy Printer burns its pictures into the paper.

A row of 160 heaters


The print head is a single line of 160 heating elements, and the number is no accident. The Game Boy's screen is 160 pixels wide, and the printer was designed to put exactly that screen on paper. One pixel on the display is one dot on the print, so a photograph from the Game Boy Camera comes out at the same proportions it had on the screen.

Each element is switched on for a fraction of a second while the paper moves past. The longer it stays on, the darker the dot. That is how the printer reproduces the Game Boy's four shades of grey without any grey ink: a dark pixel simply gets more heat than a light one.

The same trick explains a quirk every owner eventually meets. A heater that fails leaves the same thin white line down every print from then on. On a photo it hides in the picture. On text or a barcode it cuts straight through.


The paper


The printer paper (MGB-009) is thermal paper with a self-adhesive back, so every print could double as a sticker. Nintendo sold it in several colours, and the collection holds white, yellow and blue rolls from Japan.


  • Game Boy Printer Paper - Yellow
  • Game Boy Printer Paper - Blue
  • Game Boy Printer Paper - White

Thermal paper has one weakness: the coating that darkens on purpose also darkens by accident. Heat, light and time slowly turn old rolls grey, and printed stickers left in bright light fade. A drawer is kinder to them than a fridge door.


The Game Boy Printer protocol


The printer hangs on the link cable, in the place where a second Game Boy would normally sit. The Game Boy drives the clock, which means both sides exchange one byte at the same moment: every time the Game Boy sends a byte, it receives one back. The printer can only speak when it is spoken to.

Everything travels in packets. Each one opens with the same two magic bytes, so the printer knows a message is starting, and ends with two empty bytes on which the printer gives its answer. The layout below follows Pan Docs, the technical reference maintained by the Game Boy development community.

Part

Bytes

Game Boy sends

Printer answers

Magic

2

88, 33

00

Command

1

see next table

00

Compression

1

0 or 1

00

Data length

2

low byte, high byte

00

Data

0 to 640

the payload

00

Checksum

2

low byte, high byte

00

Reply 1

1

00

81 (device ID)

Reply 2

1

00

status byte

The checksum is simply the sum of every byte from the command onwards. The printer adds them up too, and if its sum differs from the one it received, a bit got lost on the way and it says so instead of printing rubbish.


Four commands


The whole vocabulary fits on a sticker. Four commands cover everything the Game Boy Camera, Pokémon and every other supported game ever asked of the printer.

Code

Command

Data

What it does

01

Initialise

none

Clears the printer's picture memory

04

Data

up to 640 bytes

One strip of picture, 160 by 16 dots

02

Print

4 bytes

Prints what has been sent so far

0F

Status

none

Asks how the printer is doing

The picture data is not a bitmap in the modern sense. It uses the Game Boy's own tile format: blocks of 8 by 8 pixels, two bits per pixel, exactly as they sit in the console's video memory. That is why a game can send its screen to the printer almost without converting it. A strip of 160 by 16 dots makes 640 bytes, and 640 bytes is the most a single data packet may carry.

The print command carries four bytes of settings, and each one hides a small story.

Byte

Meaning

Usual value

1

Number of sheets. 0 means feed only, no printing

1

2

Margins: upper four bits before, lower four bits after

13

3

Palette: which of the four greys each colour becomes

E4

4

Exposure: how hot the head runs, about -25% to +25%

40

Eight flags in one byte


Every answer ends with a status byte, and each of its eight bits is a flag. Games rarely show more than a short error message, which is a pity, because the byte says rather precisely what went wrong.

Bit

Flag

What it means

0

Checksum error

A byte was corrupted on the cable

1

Printing

The head is burning paper right now

2

Image data full

The picture memory is full

3

Unprocessed data

Data waiting, ready to print

4

Packet error

A packet arrived in the wrong shape

5

Paper jam

The motor turns, but the roller reports no movement

6

Other error

Everything else

7

Low battery

The six AA cells are running out

The last one is the flag worth knowing. A printer on tired batteries still prints, only paler, and an owner who never sees the flag blames the paper.


A print job, step by step


Put together, printing a Game Boy Camera photo looks like this. The Game Boy wakes the printer with Initialise and checks that the answer starts with 81, the printer's calling card. Then it sends the picture as a series of data packets, sixteen rows at a time. A full screen of 144 rows takes nine of them. Most software closes the transfer with an empty data packet, sends Print with its four settings, and then keeps asking for the status until the Printing flag drops.

The printer has 8 KiB of memory for the picture, so a job is always a strip of limited height. Longer prints are simply several jobs in a row with the margins set to zero, so the pieces join without a gap.


Small details worth knowing


The protocol has a compression flag, and the documentation describes a simple run-length scheme. The Game Boy Camera, the printer's most famous partner, never uses it. The printer also expects each packet to arrive in one go: a pause of about 100 milliseconds and it resets and forgets what it had.

The sheets byte is a little misleading. It does not count pages, because a roll has no pages. It counts how often the printer repeats what is in its memory, and zero turns the whole command into a simple paper feed.


Why this matters today


Because the language is so small and so well documented, the printer has outlived its games. The status flags make it possible to check a second-hand printer before wasting paper on it, and homebrew developers still write new software for it. The collection's own work on a label-making cartridge, the subject of part four, rests entirely on the tables above.

If you want to see where it all began, our earlier piece on the Game Boy Camera and Printer tells the story of the pocket photo lab. Part three of this series looks at the games that could print, and at which of them still work on an original DMG-01.

Testing a printer with the GB Test Lab

All of this protocol knowledge has a very practical payoff. Because the printer announces its condition in those status flags, you do not have to sacrifice a roll of paper just to find out whether a second-hand unit still works. The museum's own diagnostic cartridge, the GB Test Lab, includes a dedicated PRINTER test that does exactly this: it opens a conversation with the printer, reads back the status byte, fires all 160 heater elements in a dot check and runs an exposure ladder, so you can confirm a printer is connected, alive and heating evenly before you ever trust it with a photo. If you want to see everything it checks, and how a Game Boy can test its own accessories, read about the GB Test Lab cartridge.



The Full Series


Part 1: Nintendo's Sticker Machine of 1998 · Part 2: How the Game Boy Printer Works (you are here) · Part 3: Games That Print

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page