# Game Boy Printer

The Game Boy Printer, known as the Pocket Printer in Japan, is a thermal printer accessory released by Nintendo in 1998 which ceased production in early 2003. The Game Boy Printer is compatible with all the Game Boy systems except the Game Boy Micro and is designed to be used in conjunction with the Game Boy Camera. It also prints images from compatible late-generation Game Boy and Game Boy Color games (listed below). It runs on six AA batteries and uses a proprietary 38mm wide thermal paper with adhesive backing, originally sold in white, red, yellow and blue colors. In Japan, a bright yellow Pokémon version of the Game Boy Printer was released, featuring a feed button in the style of a Poké Ball.

## Games with Game Boy Printer support

* 1942
* Alice in Wonderland
* Asteroids
* Austin Powers: Oh, Behave!
* Austin Powers: Welcome to My Underground Lair!
* Cardcaptor Sakura: Itsumo Sakura-chan to Issho!
* Cardcaptor Sakura: Tomoe Shōgakkō Daiundōkai
* Disney's Dinosaur
* Disney's Tarzan
* Donkey Kong Country
* E.T.: Digital Companion
* Fisher-Price Rescue Heroes: Fire Frenzy
* Game Boy Camera
* Harvest Moon 2
* Kakurenbo Battle Monster Tactics
* Kettō Transformers Beast Wars: Beast Senshi Saikyō Ketteisen
* Klax
* The Legend of Zelda: Link's Awakening DX
* The Little Mermaid 2: Pinball Frenzy
* Little Nicky
* Logical
* Magical Drop III
* Mary-Kate and Ashley: Pocket Planner
* Mickey's Racing Adventure
* Mickey's Speedway USA
* Mission: Impossible
* NFL Blitz
* Perfect Dark
* Pokémon Crystal
* Pokémon Gold and Silver (except Korean versions)
* Pokémon Pinball
* Pokémon Trading Card Game
* Pokémon Card GB2: Great Rocket-Dan Sanjō!
* Pokémon Yellow: Special Pikachu Edition
* Puzzled
* Quest for Camelot
* Roadsters
* Super Mario Bros. Deluxe
* Tony Hawk's Pro Skater 2
* Trade & Battle: Card Hero

## Game Boy Printer Thermal Paper

Roll dimensions :
| Roll width | Roll diameter | Central spindle core diameter | Unrolled length |
| 38 mm (1.5 in) | 29.5–30 mm (1.16–1.18 in) | 12 mm (0.47 in) | 390–400 cm (12 ft 10 in – 13 ft 1 in) |
Released alongside the Game Boy Printer in 1998, Nintendo-manufactured thermal paper refill rolls were produced in white, cream, blue, yellow, and red variants, all of which had an integrated adhesive backing.
After powering the printer on, a clip at the rear of the protruding translucent grey refill housing is depressed, allowing this to be lifted away. The thermal paper roll inserted upside-down and unravelled end facing down, with this end being fed into a thin slot. The maroon 'FEED' button is then pressed down, which engages the uptake motor, and pulls the paper through to the exit slot which has an integrated serrated edge, which allows finished prints to be ripped away from the roll. Forcibly pulling the paper opposite to the feed direction causes permanent damage to the gearing within the feed mechanism.
When a picture was printed from the Game Boy Camera, it would print with a 5 mm (0.20 in) margin above and below the picture and print the picture at a 23 mm (0.91 in) height. This would give the total of 33 mm (1.3 in) height per picture. Although on-box advertisements boasted up to 180 pictures per roll, in actuality a typical roll could only print between 118 and 121 pictures.
Sold on the official Nintendo e-Shop (as triple packs of blue, cream and white rolls) until 2007, Game Boy branded official replacement thermal paper is now difficult to source. Even brand-new, sealed, un-opened official rolls degrade relatively quickly once opened (if they were stored correctly and their seal has not failed). Most, however, have suffered degradation whilst in storage due to a chemical reaction between the thermal paper and adhesive backing layer. Due to the proprietary nature of the adhesive-backing, replacement thermal paper that is able to be adhered to surfaces once printed upon (including brands such as 'MAXStick') is prohibitively expensive.
Instead, the thermal paper rolls can be successfully substituted with a 38mm x 4m alternative, with or without ('core-less') spindle cores, without repercussions on the printer. Such rolls are also compatible with some hand-held printing calculators, such as the Canon TP-8, Texas Instruments 5000–2008, Sharp 8180, and Casio FX-802. Alternatively, wider rolls (such as 57mm x 30mm x 12.7mm) can be cut or trimmed to 38mm, and function without issue.
Please note, however, that due to the inherent limitations of thermal paper, photographs printed on thermal paper will fade over time (this depends heavily on the thermal paper variant used, and could be as short as a few months, or instead a few years) until the paper is virtually blank. Paper in this state can usually be re-used, as long as the length of the strip is long enough to be manually fed into the takeup.
It is unknown whether original Game Boy Printer paper contains the chemicals Bisphenol-A (BPA) or its analog Bisphenol-S (BPS). Previously very widely used in plastics and thermal receipt paper due to their heat resistance and stability, these are currently being phased out of thermal paper coatings due to their in-vivo accrual (via direct dermal absorption) and resultant oestrogen-mimicking and endocrine disruption. Modern thermal paper roll replacements, or their manufacturers, usually clearly state if they are Bisphenol free [BP-Free].

## Game Boy Printer Protocol

The communication between the Game Boy and the Game Boy Printer is via a simple serial link. Serial clock (provided by the Game Boy for the printer), serial data output (from Game Boy to printer) as well as serial data input (to Game Boy from printer). The Game Boy sends a packet to the printer, to which the printer responds with an acknowledgement as well as a status code.

### Packet Format

Communication is via the Game Boy sending to the printer a simple packet structure as shown below. In general, between the first "sync_word" til the checksum is the Game Boy communicating to the printer. The last two bytes of the packet are for the printer to acknowledge and show its current status code.
| Byte Position | 0 | 1 | 2 | 3 | 4 | 5 | 6+X | 6+X+1 | 6+X+2 | 6+X+3 | 6+X+4 |
| Size | 2 bytes | 2 bytes | 1 byte | 1 byte | 1 byte | 1 byte | Variable | 2 bytes | 2 bytes | 1 byte | 1 byte |
| Description | SYNC_WORD | SYNC_WORD | COMMAND | COMPRESSION | DATA_LENGTH(X) | DATA_LENGTH(X) | Payload | CHECKSUM | CHECKSUM | ACK | STATUS |
| GB TO PRINTER | 0x88 | 0x33 | See Below | See Below | Low Byte | High Byte | See Below | See Below | See Below | 0x00 | 0x00 |
| PRINTER TO GB | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x81 | See Below |
* Command may be either Initialize (0x01), Data (0x04), Print (0x02), or Inquiry (0x0F).
* Payload byte count size depends on the value of the `DATA_LENGTH` field.
* Compression field is a compression indicator. No compression = 0x00
* Checksum is a simple sum of bytes in command, data length, and the data payload.
* Status byte is a bit-field byte indicating various status of the printer itself. (e.g. If it is still printing)

### Commands
#### Initialize (0x01)

* Typical Payload Size = 0
This packet is sent without a data payload. It signals to the printer to clear the settings and prepare for the first data payload.

#### Data (0x04)

* Typical Payload Size = 640
The data packet is for transferring the image data to the printer data buffer. The typical size of the data payload is 640 bytes since it can store two printable rows of 20 standard Game Boy tile (2 bit color in 8x8 pixels grid), of which the Game Boy tile takes 16 bytes.

#### Print (0x02)

* Typical Payload Size = 4
This commands the printer to start printing. It also has 4 settings bytes for printing.
| Payload Byte | Type | Typical Value | note |
| 0 | Unknown | 0x1 | |
| 1 | Printing Margins | ? | High Nibble for top margin. Low Nibble for bottom margin |
| 2 | Palette | 0xE4 | |
| 3 | Print head strength | ? | 7 bit value |

#### Inquiry (0x0F)

* Typical Payload Size = 0
Used for checking the printer status byte. This may be for checking if there is enough data in the printer buffer to start printing smoothly or if the printer is currently printing.

### Printer Status Reply Byte

| Bit X | Status Byte Bit Position Meaning |
| Bit 7 | Battery Too Low |
| Bit 6 | Other Error |
| Bit 5 | Paper Jam |
| Bit 4 | Packet Error |
| Bit 3 | Unprocessed Data |
| Bit 2 | Image Data Full |
| Bit 1 | Printer Busy |
| Bit 0 | Checksum Error |

## Usage today

Mad Catz and Xchanger sold a kit that enabled users to connect a Game Boy to a PC and print images using the PC's printer. Hobbyists outside the UK can also make their own cable for uploading images to their computer. A Game Boy Printer emulator is needed for the Game Boy to interface with the PC once linked via cable. The Game Boy Printer Paper has also been discontinued, and rolls of the genuine article that still produce a reliable image are becoming more difficult to find. Regular thermal paper, such as the kind used for POS terminals, can be cut to the proper width and used successfully with the Game Boy Printer.
The system will print a test message reading "Hello" if it is turned on while the feed button is held. According to the manual, this is used to test if the printer is functioning properly. To get around using six AA batteries (1.5 volts each) for the printer, a single 9V battery can be used if wired properly, because the printer requires 9V DC.