Game Boy Printer

The Game Boy Printer

The Game Boy Printer, known in Japan as the Pocket Printer (ポ ケットプリンタ, Poketto Purinta), is a thermal printer accessory released by Nintendo in 1998, which ceased being manufactured 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 special 3.8 cm wide thermal paper with adhesive backing, 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.

Mad Catz[1] sells a kit that enables 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.[2] A Game Boy Printer emulator is needed for the Game Boy to interface with the PC once linked via cable.[3] 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.[4] 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.[5]

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.

Games with Game Boy Printer support

Game Boy Printer paper

A roll of the American Game Boy Printer paper came in red, blue, yellow and white, with an adhesive backing. It had a width of 38mm and a diameter of 30mm, with a 12mm cardboard spindle in the centre. A typical roll had 390–400 cm of length. When a picture printed from the Game Boy Camera, it would print with a .5 cm margin above and below the picture and print the picture at a 2.3 cm height. This would give the total of 3.3 cm height per picture. The Game Boy Printer paper refills boasted up to 180 pictures per roll. With the math the typical roll could only take 118 pictures. The paper is now hard to find; it could be substituted with a 1.5-inch-wide (38 mm) thermal paper without repercussions on the printer.

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.[9][10][11]

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 Position0123456+X6+X+16+X+26+X+36+X+4
Size2 bytes2 bytes1 byte1 byte1 byte1 byteVariable2 bytes2 bytes1 byte1 byte
DescriptionSYNC_WORDSYNC_WORDCOMMANDCOMPRESSIONDATA_LENGTH(X)DATA_LENGTH(X)PayloadCHECKSUMCHECKSUMACKSTATUS
GB TO PRINTER0x880x33See BelowSee BelowLow ByteHigh ByteSee BelowSee BelowSee Below0x000x00
TO PRINTER0x000x000x000x000x000x000x000x000x000x81See 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.[12]

  • Typical Payload Size = 4

This commands the printer to start printing. It also has 4 settings bytes for printing.[13]

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

References

  1. "Mad Catz GB to PC Camera Link Cable (GBC)". November 20th, 2010.
  2. "Game Boy to LPT Cable diagram". Ziegler.Desaign.de. July 17, 2009.
  3. "Game Boy Printer Emulator". July 17, 2009
  4. "Game Boy Printer Paper discussion". Flickr. July 17, 2009.
  5. Make your own Game Boy Printer Paper video tutorial on YouTube July 17, 2009.
  6. Puzzled IGN review
  7. Card Hero - Game Boy Color Preview at IGN (March, 2000) Archived 2012-03-21 at the Wayback Machine.
  8. "Gameboy Printer - GbdevWiki". gbdev.gg8.se.
  9. "GB Printer interface specification".
  10. "In Depth: The Game Boy Printer".
  11. "Gameboy 2BPP Graphics Format". www.huderlem.com. Retrieved 2017-04-11.
  12. "In Depth: The Game Boy Printer". Retrieved 2017-04-11.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.