What is it?

Pinouts

Usage

There are two modes: "raw" and "regular". Both are only available in "GG mode" on the Game Gear - in SMS mode, the console acts as a Master System.

"Raw" mode

There are seven parallel bits which can be configured in either direction.

Write to port $02 to configure the direction: 0 = output, 1 = input.

Read or write port $03 to receive or transmit.

Bits get mixed up along the way:

Sent as bit

Received as bit

0

2

1

3

2

0

3

1

4

5

5

4

6

6

7

NC

The disadvantage of this mode is that there is no flow control or handshaking, and you have to poll the port. It is only known to be used by the "Jon's Squinky Tennis" minigame in some Codemasters games.

"Regular" mode

This offers full handshaking and flow control. It works by raising an NMI whenever there is a byte to be received or the connected GG is powered off (or just disconnected?). Inside the NMI, you should read the status port and act accordingly.

Status port $05

Bit

Meaning

0

1 if send buffer is occupied (do not send while occupied)

1

1 if receive buffer is occupied (do not receive while not occupied)

2

1 if connected console is not powered on

3-5

Must be 1 to enable Gear-to-Gear operation

6-7

No effect

Note that the "GG powered off" signal is apparently raised repeatedly, so you should disable the connection (by resetting bits 3-5) when that happens, and only enable it temporarily when attempting to detect a connected system.

Send port $03

Sends a complete byte to the connected console. You should check the status port bit 0 before sending.

Receive port $04

Receives a complete byte from the connected console. Should only be read when the status port indicates there is data.

Usage in SMS mode

In SMS mode, the Gear-to-Gear port can be used for a second controller port via an adaptor. It is unknown whether in this mode software may use any of the pins as outputs to enable two-way communication; there are no 2-player SMS-GG games.