Atari interface

From Deskthority wiki
Jump to navigation Jump to search
Template icon--Illustration.png This article requires additional photographic illustration
The iconic Atari CX-10 joystick originally bundled with the Atari VCS console.

The Atari VCS console released in 1977, later renamed as the Atari 2600, introduced a controller port that became the de-facto standard on 8-bit and even 16-bit home computers as well as on some game consoles up until well into the 1990s.

The port interface has been used primarily for digital joysticks/game controllers but also with different signalling for numeric keypads, trackballs and mice, paddles, analogue joysticks, light pens and various other types of controllers as well as non-input devices. Some alphanumeric keyboards were made but are very rare.

Description

DE-9 plug used by the Konix Speedking joystick.

The connector is a 9-pin D-subminiature (DE-9),[footnote 1] male socket on the host and female plug on the device's cord.

Many hosts have the ports flush with the panel and quite close together, without any threaded nuts. Most device plugs are therefore narrower than standard DE-9 to be able to fit them. Many hosts ports have the "shield" made of non-conductive plastic.

Beware that not all input devices with a DE-9 connector actually use Atari-compatible pinout and/or signals. A peripheral may work in the ports of one system, but not work or even damage another system. Read more in the Partially compatible and Incompatible sections below.

Depending on the implementation the interface may or may not be hot-swappable. While it is on the Atari 2600 and 7800 consoles, it is not on the Coleco Vision for instance.[1] The ports on the Commodore 64 are also reportedly prone to suffer damage if peripherals are plugged/unplugged while the computer is on.[2]

Pin-out

Pin 1 Pin 2 Pin 3 Pin 4 Pin 5 Pin 6 Pin 7 Pin 8 Pin 9
Digital joysticks and gamepads
Atari 2600 Up Down Left Right Button (+5V) Ground
Booster grip Trigger +5V Thumb
Atari 7800 Up Down Left Right /Right button 2600 button / Common (+5V) Ground /Left button
C64GS Up Down Left Right Button +5V Ground Button 2
Kempston Interface Up Down Left Right (Button 3) Button (+5V) Ground (Button 2)
Amiga Up Down Left Right (Button 3) Button (+5V) Ground (Button 2)
Amiga CD32 Up Down Left Right Select Red (button) / Clock +5V Ground Blue / Serial
SAM Coupé Up Down Left Right 0v Button +5V Common Com 2
Analogue controllers
Atari paddles Left button Right button Right pot +5V Ground Left pot
Commodore paddle Left button Right button Pot Y +5V Ground Pot X
Amiga analogue joystick (Button 3) Button 1 Button 2 Pot X +5V Ground Pot Y
Mice and trackballs
Atari Trak-Ball X direction / Up X motion / Down Y direction / Left Y motion / Right Button +5V Ground
Atari ST mouse X1 X0 Y0 Y1 (Middle button) Left button +5V Ground Right button
Amiga mouse Y0 X0 Y1 X1 (Middle button) or (Wheel/Middle button) Left button +5V Ground Right button
Amstrad / Sinclair PC mouse X0 X1 Y0 Y1 (Spare) Left button +5V Ground Right button
Light pens and light guns
Atari Pressure / Trigger Light sensor +5V Ground
Magnum lightphaser Trigger Light sensor +5V Ground
Stack light rifle Trigger Light sensor +5V Ground
Gun stick Hit Trigger +5V Ground
Amiga Pressure / Trigger Light sensor +5V Ground
Keypads
Atari 2600 Row 1 Row 2 Row 3 Row 4 Column 1 Column 3 Ground Column 2
Atari CX85 Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Press +5V Ground
Cardkey, Rushware Bit 0 Bit 1 Bit 2 Bit 3 Press +5V Ground
ColecoVision Up / Bit 0 Down / Bit 2 Left / Bit 3 Right / Bit 1 Keypad strobe Left / Right button (Spinner 1) Joystick strobe (Spinner 2)
Partially compatible
Amstrad CPC Up Down Left Right (Spare) Button 2 Button 1 Common (row 9) Com 2 (row 6)
J-PC Up Down Left Right (+5V) A B Out Ground
Sega 8-bit Up Down Left Right (+5V) Button 1 (Light sensor) Ground Button 2
Sega 16-bit Up Down GND / Left GND / Right +5V A / B Select Ground Start / C

Most lines are active when shorted to a ground line (or strobe). Atari-compatible hosts should have a pull-up resistor on each such line. Input lines that can be active high are marked in bold. Outputs are marked in italics. Entries within parenthesis above are optional but supported by the host hardware.

The state of the device's switches is often read directly over the wire. Video games were often running main loops synchronised to the video beam, so switches were polled at most 60 times per second — a 16.7 ms interval, which is longer than what most switches are rated for contact bounce.

Hosts could not sense which type of device was connected to a port and software was most often hard-coded for a specific class of devices. In the cases where software could support different classes of devices, the user had to tell the software manually.

Digital joysticks and gamepads

The Suncom TAC-2 (Totally Accurate Controller mk 2) is still popular with retro gamers.

Different systems have implemented the standard, sometimes with different extensions for more buttons or other capabilities.

Joysticks have eight directions and one button, often named "Fire" or "Trigger". Up, down, left and right have individual pins, with diagonals as combinations of up+left, up+right, down+left and down+right respectively.

Atari joysticks

The Atari 800 computer with its four joystick ports on the front.

Atari's joystick standard was introduced with the Atari VCS (Atari 2600 after 1982) and was then used on Atari 8-bit computers (400, 800, 1200, XL, XE) and the Atari ST line (including TT and Falcon). Most games consoles and home computers had two ports, but the Atari 400 and 800 had four.

Many third-party joysticks for this pinout do have more than one button, but only for convenience since they are all wired to the same line. Joysticks with repeat-fire were supposed to use the +5V line for power, but some are instead powered by the host's pull-up current on the button's pin.[3]

Atari released a Booster grip accessory for the 2600 with a passthrough for the joystick. It added a thumb button and a trigger; each on a POT line, shorting it to +5V when pressed and thus read as a paddle.

The Atari 7800 console has joysticks with two trigger buttons but the console is backwards-compatible, containing also Atari 2600 hardware. Each new trigger button is wired between the 2600's trigger pin and a POT line with pull-down resistors to ground. This setup means that the buttons are two different buttons in 7800 mode but have the same function in Atari 2600 mode.[4]

Commodore joysticks

The Commodore VIC-20 has one "control port". The Commodore 64 and 128 have two. The three of them support Atari-standard joysticks and could technically also support the additional buttons on the "Booster Grip".

The Commodore 64 and 128 use the same I/O ports for joysticks as for the keyboard matrix, but not having them part of it. Therefore, most single-player games support a joystick only in port 2, so that joystick and keyboard would not interfere with one-another. Many games use the space bar for additional input and strobing only for that key. Port 1's button is wired to the space bar's column which means that pressing the button on a joystick in that port does in these games effectively press space. Many two-button joystick mods for the C64 have taken advantage of this.

Power Play

The rare Commodore 64 Power Play edition, sold only in Germany in 1990, came with a Power Pad[5] — a clone of a NES gamepad with two buttons.

A version of the gamepad has also been spotted with two additional buttons: one for Fire, and the other Up. Up was often used to "jump" in games for Atari joysticks.

C64GS joystick

The doomed Commodore 64 Games System was essentially a Commodore 64C without a keyboard. To compensate for the loss of keys, the joystick got a secondary fire function which shorted +5V to pin 9 (POTX), like the thumb button on Atari's Booster Grip. On the Commodore Amiga however, the same pin was read as secondary fire, but low instead of high.

The bundled Cheetah Annihilator joystick had a secondary fire button, but unfortunately it broke easily and a replacement that supported secondary fire was practically nonexistent.

Amiga

Every Amiga computer has two "controller ports" which are usually labelled "Mouse" and "Joystick" respectively. The fire button and the left mouse button use the same input, allowing either to work as the other when only a button press is required.[6]

Some Amiga-specific joysticks have a secondary Fire button, which worked like the right mouse buttons. These came about because of the popularity of using Sega gamepads on the Amiga, where a button triggers that pin.

Amiga CD32 gamepad

Amiga CD32 console with a gamepad.

The Amiga CD32 games console is based on regular Amiga hardware and comes with two controller ports. The gamepad has a D-pad and seven buttons: Blue, Red, Yellow, Green, Right Front, Left Front and Pause. It would of course work in other Amigas given software support.

Games not specifically made for the CD32 gamepad (such as ports) would leave pin 5 high, which made Red work as Fire, and Blue as the second button. When pin 5 is low, the button state could be read serially on pin 9 from a 74LS165N shift register using pin 6 as a clock. The register is reset by setting pin 5 high again.[7]

ZX Spectrum

The Sinclair ZX Interface 2.

The original Sinclair ZX Spectrum did not come with a joystick port, so most games used the keyboard. The standard was to use 5-8 on the numeric row as cursor keys.

A two-port expansion card called ZX Interface 2 was released by Sinclair but not before the single-port Kempston Joystick Interface expansion card from Kempston Micro Electronics had established itself on the market. The ZX Interface 2 mapped joysticks to keyboard keys on the numeric row — but to different keys than the cursor standard. Other cards exist that map to either, to both or to both and the older keyboard standard.

The ZX Interface 2 does not connect the +5V line, so joysticks with turbo/auto-fire do not work.[8] The Kempston interface does not only connect the +5V line but it also allows lines 9 and 5 to be read as buttons.[9]

The Spectrum +2 and later (the Amstrad era) did come with 2 DE-9 joystick ports that were used like the ZX Interface 2's ports by programs, though the pinout was different from the Atari standard.

SAM Coupé

The SAM Coupé 8-bit computer has a single joystick port that connects one Atari-compatible joystick, or two with an adaptor.

Both inputs and the strobe lines are shared with the keyboard matrix, with each joystick's inputs producing keycodes that already exist on the keyboard. Each common line on the connector strobes each joystick in turn. An adaptor would need diodes to avoid joysticks from clashing. Because the hardware is "temperamental", it is recommended to use germanium diodes with a low voltage drop, or to use a tristate buffer for each joystick.[10]

Multi-port adaptors

Numerous adaptors have been made from digital joysticks and gamepads to DB-25 parallel ports. A typical adaptor or Multi Joystick Extender connects two (additional) joysticks. This did require specific software support in multiplayer games for the Amiga and Atari ST.[11]

A MultiJoy adaptor for Atari 8-bit computers can connect up to 16 (or more often 8) joysticks on the original joystick ports. Older games that supported three or four players only on the first generation of Atari 8-bit machines have been modified to work with these. A demultiplexer chip is used to select which joystick's ground line to strobe. The joystick number is output on port 2's direction lines and the selected joystick is read on port 1.[12]

Paddles

A couple of Atari paddles sharing a single cable.

A paddle is a controller with a turnable knob that has stops. The name comes from what they were initially used for: for moving a table tennis paddle on the screen in the game Pong. There were usually two paddle controllers sharing a single port by means of a Y-cable.

Each paddle's knob is on a rotary potentiometer, connected to +5V at the right end and with the wiper connected to the pot line. Turning the knob right decreases the resistance. Note that ground is not connected: there is only a capacitor against ground for smoothing the signal. The potentiometer does not alter the voltage but the current on the pin. On original hardware, paddles were read relatively slowly by first letting the paddle charge a capacitor and then measuring the discharge time. Modern adaptors that use an analog-to-digital converter connect the paddle as part of a voltage divider.

Paddles for Commodore machines have the Atari pinout, but the potentiometers are 470 kohm instead of 1 Mohm. This means that Atari paddles are usable on Commodore machines (only with less range) but not the other way around.[13] The paddle interface was used also for pointing devices for the Commodore 64 and for analogue joysticks for the Commodore 64 and the Amiga.[6]

Keypads

Atari 2600 keypads

Atari released several keypads for the Atari 2600 that all worked the same way. They were supported by some Atari's 8-bit computer software as numeric keypads, albeit using telephone layout (1,2,3 at top, * and # keys) instead of calculator layout (1,2,3 at bottom and decimal point). All use calculator-style buttons.

The switches are exposed as a 3×4 matrix using the direction, trigger and pot lines. This worked on Atari machines because some pins could be configured as output in software.[14]

  • The CX21 Keyboard Controller has the digits, and * and # symbols printed on a label. They were sold in pairs and can be slotted together.
  • The Basic Programming controllers were a pair sold with a very primitive BASIC programming cartridge. The hardware is the same as the Keyboard Controllers but with different printed labels. The program uses four layers that are toggled between by pressing a button on the left controller.
  • The Video Touch Pad uses a paper overlay over unlabelled rectangular buttons. Different paper overlays were supposed to be distributed with different games, but only one game is known.
  • The Kid's Controller (for games from the Children's Television Workshop) uses larger circular, numbered buttons and different larger overlays than the Video Touch Pad.

The idea of having a numeric keypad with overlays was reused later for the Atari Jaguar gamepad.

Atari CX85 Numerical Keypad

The Atari CX85 keypad.

The Atari CX85 Numerical Keypad has 17 proper keys in a calculator layout and a different protocol from Atari 2600 keypads. Instead of exposing a matrix, it produces a scancode on the direction and pot lines.[15]

Cardco Cardkey

The Cardkey is a 16-key keyboard that produces a scancode + "button" press. The C64 driver also supports the CX85. The scancodes for the numeric keys are the values printed on those keys. Each key is set up only with diodes to the input lines which means that there is only 1-key rollover and two keys at once would produce the wrong scancode.[16]

Rushware keypad

Produces the same scancodes as Cardco Cardkey but activates differently.[17]

Coplin keypad

Nicholas Coplin has designed and published free schematics for a numeric keypad as well as a driver for the Commodore 64. Keys produce the same codes as corresponding joystick directions, allowing the keypad to be used as cursor keys in programs that were made for joysticks. This includes also diagonals, so e.g. key 8 + key 4 = key 7. Keys 0 and 5 produce opposing directions at once and Enter is wired to Fire.[18]

ColecoVision controllers

A pair of Coleco Vision controllers.

The ColecoVision games console and Coleco Adam computer supported Atari joysticks (without autofire) but came with extended controllers that had not only a joystick but two buttons and a 3×4 numeric keypad all in one. Instead of one ground line they had two strobe lines: the pin 8 for the Joystick in Atari-compatible fashion, and pin 5 activating the second button and keypad providing a scancode instead of a direction.

The Super Action Controller has also two additional buttons wired as part of the keypad and a horizontal spinner producing a quadrature code.[19]

Mice and trackballs

Typical ball-mice and trackballs have opto-mechanical sensors for the X and Y axes, each producing two pulse trains that are 90 degrees out of phase with one-another. (The same as a 2-bit Gray code, also called "quadrature encoding")

8-bit machines

The Atari CX-80 "Trak Ball" was compatible with both the Atari 2600 and 5200.

It was problematic for an 8-bit machine with no dedicated hardware to read quadrature code fast enough and still have time for other processing.

Atari's Trak-Ball controllers for the Atari 2600 converted the quadrature code into either joystick input or into direction and motion pulses.[20] The latter signalling meant that a missed reading would only cause failing to move one (or more) steps instead of moving in the wrong direction. Mice and trackballs for Atari's 8-bit home computers used the same type of signalling. Commodore's own mice either emulated a joystick or used potentiometers (like paddles) that wrapped around.

Mice for J-PC machines have instead internal logic for reading the encoders, with the obvious drawback that they were more expensive. The mouse presents X and Y byte-counters as nybbles on pins 1-4 in alternating order, but the other pins follow the J-PC pinout which does not work with the Atari-standard without an adaptor. The NEOS Mouse for the Commodore 64 was in essence a J-PC mouse, with the pinout changed to work with the Commodore 64.[21]


Atari ST and Amiga

Mice for both the Amiga and Atari ST are Bus mice which produce quadrature signals and buttons to different pins. Some third-party mice have support for both systems, selected via a switch that only changes which pins the quadrature signals go to. The left mouse button is wired the same as a joystick's Fire button and the other button(s)s also short to ground.

On the Amiga, signals are interpreted by circuitry in its custom chipset and there is hardware support for a mouse in each port. A second Amiga mouse can be used only in some two-player games, however. On the Atari, one mouse can be plugged into a dedicated mouse/joystick port on the keyboard, which is interpreted by the keyboard's microcontroller. A curious detail is that the Atari ST's right mouse-button is wired to and read as the other port's Fire button.

Amigas typically have two-button mice. Commodore made a three-button mouse only for the Amiga 3000UX that ran Amiga UNIX but many third-party Amiga mice also came with middle-button. In the late 1990s, there appeared third-party Amiga mice with scroll wheels, using varying current on the POTX line (pin 5) for input which required a special driver. The third button is represented in a new way.[22]

The Amiga's operating system provides (when booted into Workbench) also mouse keys as combinations together with the Amiga keys.

PC bus mouse

When Atari and Commodore started offering IBM-compatible PCs with built-in mouse support, they reused their mice and ports from the Atari ST and Amiga respectively as bus mice. Atari's "STM1" mouse got relabelled as "PCM1" for use with Atari PCs.[23]

The Atari PC's mouse ports support a third (middle) mouse button,[24] whereas the Atari ST does not. Amiga-compatible mouse ports were standard (on the motherboard) on the Commodore PC10-III and PC20-III.[25]

Amstrad PC-1512,[26] PC-1640[27] and Sinclair PC-200[28] (made by Amstrad) got a dedicated 9-pin port for a bus mouse. They use almost the Atari ST pinout except that the horizontal axis is flipped. A curious detail is that the two mouse buttons' lines were fed to the keyboard and reported by it as key codes.

Steering wheels

The Driving Controller accessory for the Atari 2600 looks similar to Atari paddles but the knob can be turned around without any stops. It uses a 16-stop rotary encoder but produces pulse trains on pins 1 and 2.[29]

Steering wheel controllers for the Amiga were supposed to also use the same pulse-train signalling as mice.

Light pens and light guns

Atari 2600, 7800 and 8-bit computers and Commodore's C64 and Amiga support light pens and light guns through a line in one port connected to the video chip.

A light pen has a pressure-switch at the tip to tell the host when to read the screen position where as a light gun used a finger-operated trigger for the same purpose. The light sensor shared the same pin as a joystick's button, so the pressure had to use a different pin and that differed a bit between devices.

Light pens and light guns for the Atari 8-bit computers grounded pin 1 (up).[30] For the Commodore 64, most light pens also used pin 1[31] but the most popular light guns shorted pin 5 (POTY) to +5V.[32] Stack's light rifle grounded pin 3 (left).[32] Devices for the Amiga were supposed to use pin 5.[6]


Sega lightphasers had a different pinout but could be used with an adaptor or mod.[33]

The Gun stick light gun for the C64 instead worked like the light gun on the Nintendo Entertainment System: when the trigger was pressed, the screen would turn black except for a white field for one valid target at a time.[32]

Tablets

KoalaPad

The KoalaPad is a 4¼"×4¼" resistive graphics tablet with a stylus, but can also be activated with a finger. It produces input like a paddle, with the X and Y axes mapped to X and Y potentiometers and left and right buttons mapped to left and right paddle buttons. When the stylus is not pressing against the surface then the potentiometer reading is at maximum. The valid pot interval is than 0..255, which is even that smaller than the screen resolution.

There were different versions for Atari 8-bit and Commodore 8-bit, each package containing a cartridge containing the painting program Koala Painter. It was also available for many other computer platforms with other interfaces.

Chalk Board PowerPad

The Chalk Board PowerPad was a pressure-sensitive graphics tablet for the Commodore 64, intended to be used with fingers, with different overlays for different applications. Overlays often had a hexagonal grid of buttons, but it could also be used freehand. It communicated via serial communication using pins 1 through 4 (Data, Clear, Clock, Sense). The manual for its Programming Kit[34] explains its workings and contains source code examples of how to bit-bang the port in BASIC.

Partially compatible

Input devices with DE-9 plugs that may work with some Atari-compliant hosts but are unsafe to use with others, or vice versa.

Amstrad

Amstrad CPC computers have one or two "user ports" for two-button Amstrad joysticks. The Amstrad PC-1512[26] and PC-1640[27] had a single Amstrad "Joystick" port on the keyboard. The joystick ports are actually part of the computer's keyboard matrix and are strobed by the keyboard controller.

Many games used Button 2 as primary fire, so they supported Atari-standard one-button joysticks. If Button 1 was needed, its function was often also on a keyboard key. The opposite however —using an Amstrad joystick in a Atari-compliant port (such as the Amstrad/Sinclair PC mouse port)— could damage the system because pressing Button 1 would short the +5V line to Ground.

The CPC supported up to two joysticks on the same port, using pass-through or an adapter using diodes to avoid ghosting. The first joystick had its ground line strobed on pin 8, and the second one on pin 9, each being a separate column in the keyboard matrix.

The CPC+ range and the GX4000 console had two ports through wiring almost like such an adapter except that diodes were missing for the fire buttons, thus introducing conflicts between joysticks. The two-port machines also lacked the "spare" line and were incompatible with some older peripherals, especially those that had been using pins as outputs.[35]

Amstrad PCs did not support a second joystick, and the Sinclair PC-200 had an IBM-compatible game port instead.[28]

J-PC

The J-PC standard was used by primarily Japanese systems such as MSX (multiple manufacturers), FM Towns and the Sharp X68000 and on expansion cards for Japanese PC systems.

The "Out" strobe on pin 8 is used by the host to access special features on certain controllers, such as MSX-compatible mice. Most games will keep pin 8 grounded, which will allow Atari-compatible joysticks to be used.

The gamepad for the FM Towns Marty had also Run and Select buttons, implemented as Left and Right, and Up and Down respectively.[36]

Mice and trackballs for J-PC machines had logic in them instead of requiring logic in the host, and therefore a different interface. An Amiga or Atari-compatible mouse must never be connected to a J-PC system, as pressing the right mouse button would short +5V to Ground.

See also:

Sega 8-bit

Sega's various 8-bit consoles have mostly the same hardware, albeit upgraded in later models and with small differences between models for Japan and for other markets. The first SG-1000 came with two joysticks. The SG-1000 Mark-II and SG-1000 Mark-III had gamepads, each with a detachable joystick nub on the d-pad. The Sega Master System came with gamepads without joystick nubs.

The standard controllers are passive devices containing switches and no electronics, so they should be safe to use with Atari-compliant host sockets.[Citation needed] The second button are supported by many Amiga games, and by the Kempston interface for the ZX Spectrum but not by Atari systems.

Active controllers draw power from pin 5 instead of pin 7. Pin 7 was used by light-guns. Paddles for the SG-1000 Mark III/Master System contain an A/D converter and presents the reading in 8 bits divided into nybbles on lines 1-4, with pin 9 to indicate high/low nybble. On the Master System outside Japan, the pinout was slightly different so the host first selected high/low nybble on pin 7.[37]

Sega 16-bit

The Sega 16-bit Mega Drive/Genesis controller ports have an variation of Sega's 8-bit game console's port interface using the Select line to access more buttons.

The first generation of gamepads had three face-buttons and a Start button. Sega later released gamepads with six face-buttons using a complex protocol with the Select line.

Other Sega 16-bit peripherals that used the DE-9 ports included a keyboard, keypad, mice, light guns and multiplayer adaptors. A keyboard was made to be used with Internet multiplayer services from XBAND (US) and Teclado Mega Net (Brazil). It was connected to port #2.[38] The ports did not have any serial hardware, so the protocol was probably "bit-banged" by the CPU.

Protocol

Like Sega's 8-bit gamepads, the 16-bit gamepads draw power on pin 5, using pin 7 instead for the Select line to select between groups of inputs on the other pins.[39]

The three-button controller for the Sega Mega Drive/Genesis uses a 74157 selector to change between two sets of inputs. Setting the "Select" pin high selects Left/Right/B/C, while setting it low selects GND/GND/A/Start. Because Left and Right are opposing directions and should not be active at once, the host should be able to detect the controller as having three buttons.[footnote 2] The normal state for a Sega host is to have the select pin high, and to pulse it low for a short time during each video frame period when it polls the inputs.[40]

Sega's six-button controller for the Mega Drive/Genesis has a microcontroller instead of a selector chip. A game supporting a six-button controller pulses the Select line low at least four times per video frame in quick intervals. During the third pulse, lines 1 through 4 all read low and during the fourth pulse, lines 1 through 4 all read high, but in-between those two pulses they read the values of Z, Y, X and the mode switch respectively. Within that special period, pins 6 and 9 always read high. For six-button reporting to kick in, the pulses must be short enough with a long enough interval until the next time. There is also a mode-switch for disabling six-button behaviour in the controller for older games that use different timing for the select-line.[41][40]

As Atari controller

Sega 16-bit gamepads work on many Atari-compatible hosts that keep pin 5 high at all times, selecting the mode that enables button B as Fire.

However, unlike the Atari standard which has pull-up resistors on each input line on the host side, Sega 16-bit systems have them in the controller. This means that lines are high when not active, and this could damage some hardware. For instance, the Commodore 64 and 128 computers reuse the same physical lines for ports and the keyboard matrix, which could lead to excess current into the I/O chip (CIA #1) if a key is pressed while a Sega gamepad is plugged in. The host could however be protected with a simple adaptor with diodes on the input pins.[42]

Sega 16-bit gamepads should be safe for use on most Amiga computers where buttons B and C work as Fire/Left mouse and Secondary fire/Right mouse. However if a game tries to talk to a Sega 16-bit gamepad as a Amiga CD32 gamepad, power would be intermittent and in this case an adaptor would be needed. A small number of Amiga games (Hired Guns, Flashback, ADoom...) are able to talk Sega's 3-button or even 6-button protocol but those require a modified gamepad or special adaptor that crosses pins 5 and 7. Some guides recommend also using diodes and putting a 470ohm resistor in-between pins 5 and 7 for extra protection.[Citation needed]

For J-PC

Sega 16-bit gamepads have become popular with MSX users but because the ground pin is different, they require an adaptor.

A JoyMega adaptor[43] swaps pins around and has diodes for protection of the button lines. It also gives access to the Sega's Select line on the MSX's Out pin, but because it is by default low, the adaptor contains an inverter chip. The additional buttons this provides are supported only by a handful of newer games.

Related

Other ports than DE-9 with compatible signals:

Commodore 116 joystick

The unusual Commodore 116 line, including the Plus/4 and Commodore 16 had two mini-DIN ports instead of the standard DE-9 ports. Those were electrically compatible to the Atari standard and joysticks could be used with a simple adaptor. It has though been reported that the interface chip inside those computers could be damaged by joysticks with auto-fire capability.[44]

Atari Extended Joystick Ports

Extended joystick ports on the Atari STE.

The Atari STe and Falcon computers have also two DE-15 Extended Joystick Ports. Each of these ports could with a Y-cable connect two DE-9 joysticks.[45]

Atari Jaguar

The Atari Jaguar's game controllers also have DE-15 connectors but with its own pin-out exposing a button matrix. These could be used with 15-pin ports on the STe and Falcon albeit with a different pinout than intended for these ports. The Jaguar controller's directions and one button are on the same matrix column which allows adaptors to DE-9 ports to be constructed with simple wiring.[46]

Incompatible

Different pinout

DE-9 connectors with different pinout, but are signal-compatible with a passive adaptor (may or may not require diodes).

Spectrum +2/+3

Sinclair Spectrum +2 and later (Amstrad era) have two joystick ports. They are accessed by programs in the same manner as the ZX Interface 2 but the pinout is no longer Atari-compatible but specific to this line of computers; these ports were meant to be used by "SJS" joysticks, which of course were initially marketed by Amstrad.

Some joysticks (especially sold in the UK) have a split cable with two plugs: one black that is Atari-compatible, and one gray for Sinclair. In order to use a common Atari-style joystick advanced users can rewire the motherboard ports to turn them into standard Atari ports;[47] alternatively, a simple adapter can be purchased.(Google search)

TI-99

The Texas Instruments TI-99/4A has a different pinout on its DE-9 port. It supports two digital joysticks by strobing different ground lines (like Amstrad CPC). An adaptor should have diodes to avoid interference.[48]

Vectrex

A Vectrex controller has an analogue joystick and four buttons. Each of the analogue stick's potentiometers has its ends connected to -5V and +5V and uses different resistor values than Atari, plus a slightly different pinout.[49] Nonetheless, adaptors both to the Atari standard[50] and from digital Atari and Sega controllers have been made.

Different signalling

Incompatible, that would require an active converter to connect:

  • Serial mice for the IBM PC, with RS-232 signalling.
  • Some Intellivision consoles have a DE-9 plugs for each of its controllers. The joystick has 16 directions, there are three buttons and a keypad — each producing a scancode shorted to ground (pin 5). Buttons and directions don't interfere though. An adaptor from an Atari joystick would require some logic and perhaps external power.[51] The Intellivision Flashback console also has DE-9 connectors but the pinout is different.[Citation needed]
  • Gamepads for the 3DO console. They used serial communication for up to eight controllers daisy-chained from the same host port. Each also had a headphone jack with stereo sound.[52][53]
  • Several clones of the Nintendo Famicom — "Famiclones" used DE-9 ports with Nintendo's serial protocol.

Different gender

Other uses of 9-pin d-subminiature but different signals and different gender from the Atari standard:

  • Analogue joysticks and paddles for the Apple IIGS.
  • SGI mouse 021-0004-002 used a serial protocol.[54][55]

Adaptors to USB

Active adaptors (protocol converters) have also been part of keyboard-adaptors for e.g. the Commodore Amiga and Commodore 64.

For mouse adaptors to/from Commodore Amiga, Atari ST and PCs, see also Bus Mouse.

Open source/hardware

  • Stelladaptor. Designed especially for the Atari 2600 emulator Stella. Once manufactured by AtariAge, then discontinued and opened up. Handles joystick as analogue USB joystick. Input from paddles and driving controller are in a special format that Stella treats differently if from a "Stelladaptor". Based on the PIC16C745.
  • Simon Inns' Atari joystick USB adapter. Schematics and source code for two-port joystick-only adaptor are under a Creative Commons license. Uses the PIC18F2550 µcontroller.
  • Kair.us Jakadapter. Supports two joysticks, paddles and Sega gamepads. Based on the PIC18F24K50.

For sale and Open Source

Commercial

  • 2600-daptor. Four generations with different capabilities. Latest supports a large number of devices, with DIP switches or auto-detect if holding down first button when connecting.
  • Retro-Bit Atari 2600 to USB adapter. Connects two joysticks.

Footnotes

  1. The DE-9 is very often incorrectly labelled as DB-9 or DB9, even within the electronics industry. The letter after 'D' actually signifies the size of the connector. An actual DB-9 port would be as wide as a DB-25 serial port but have only nine pins. The DE-9 shares size with DE-15 (known for VGA)
  2. There are third-party Sega controller where the D-pad lacks a central pivot, thus allowing opposite directional inputs to be active at once...

References

  1. AtariAge — hot plug/swap adapter for 9-pin controller ports? Dated 2017-10-06. Retrieved 2024-05-04.
  2. Lemon64 — To hotswap or not to hotswap? Dated 2014-03-23. Retrieved 2024-05-04.
  3. Jakadapter — Section "Hardware", third paragraph. Last updated 2020-03-12. Retrieved 2024-05-03.
  4. AtariAge — 7800 FAQ (Wayback Machine) Last updated 2006-10-11. Archived 2019-04-14.
  5. Retroport — Commodore C64C Power Play Edition (1990) (German) Retrieved 2024-05-03.
  6. 6.0 6.1 6.2 AmigaOS 3.5 Developer Docs — Amiga Hardware Reference Manual: Interface hardware — Controller port interface Retrieved 2024-05-03.
  7. CD32 Gamepad A100 re-engineered documentation (Wayback Machine) Archived 2016-06-19.
  8. Sinclair ZX Resource Centre — ZX Interface 2: Introduction Retrieved 2024-05-03
  9. 8bit Projects for Everyone — Kempston Joystick (Wayback Machine) Dated 2009-12-28. Archived 2019-04-14.
  10. WorldOfSam.org — Keyboard and Joystick port Dated 2018-05-16. Retrieved 2024-05-03.
  11. PINOUTS.RU — Amiga 4 joysticks adapter pinout Retrieved 2024-05-03.
  12. Atari 8bit — Multijoy. Retrieved 2024-05-03.
  13. Jan Derogee — C64 Paddles Retrieved 2024-05-03.
  14. Atari — Atari 400/800 hardware manual (direct download) (AtariMania) Dated 1982. Retrieved 2024-05-03.
  15. Atari — Atari CX85 Numerical Keypad - Technical Reference Notes (direct download) (AtariMania) Retrieved 2024-05-03.
  16. Lemon64 — Numerical keypad from Commmodore calculator? (post from buzbard) Posted 2012-09-15. Retrieved 2024-05-03.
  17. C64 Wiki — Rushware keypad Last edited 2016-12-05. Retrieved 2024-05-03.
  18. 64HDD — Numeric Keypad by Nicholas Coplin. Retrieved 2024-05-03.
  19. Programming Ponderings — Ultimate Classic Game Console Joystick to USB Adapter Dated 2015-12-28. Retrieved 2024-05-03.
  20. Atari — Atari CX22 Trakball Field Service Manual, rev. 01 (Nov 1983) (direct download) (AtariMania) Retrieved 2024-05-03.
  21. C64 Wiki — NEOS Mouse Last updated 2018-10-13. Retrieved 2024-05-03.
  22. Individual Computers manuals — Micromys support page - Amiga mouse mode with wheel support Retrieved 2024-05-03.
  23. Atari PC — PC3 8088 Retrieved 2024-05-03.
  24. Atari — Atari PC Owner's Manual (Atari PC), p. 65. Dated 1987. Retrieved 2024-05-03.
  25. Ancient Electronics — Commodore Colt (Commodore PC10-III, PC20-III) Dated 2015-06-17. Retrieved 2024-05-03.
  26. 26.0 26.1 Amstrad — Amstrad PC1512 Technical Reference Manual (John Elliott's homepage). Retrieved 2024-05-03.
  27. 27.0 27.1 Amstrad — Amstrad PC1640 Technical Reference Manual (John Elliott's homepage) Retrieved 2024-05-03.
  28. 28.0 28.1 Vintage Computer Club Malta — SINCLAIR PC 200 (Wayback Machine) Archived 2019-04-14.
  29. Atari7800.org — Driving Controller Check (scanned manual page). Retrieved 2024-05-03.
  30. Atari HQ — ATARI XEGS INFORMATION (Wayback Machine), by Matthew Ratcliff. Archived 2018-07-03.
  31. C64 Wiki — Light pen. Last updated 2022-06-03. Retrieved 2024-05.03.
  32. 32.0 32.1 32.2 Jan Derogee — C64 Lightguns. Retrieved 2024-05-03.
  33. 64HDD — Commodore™ C64 Hardware Projects: Light gun by Nicholas Coplin. Retrieved 2024-05-03.
  34. Chalk Board Inc. — Chalk Board Inc's Power Pad Programming Kit manual (1983) (Internet Archive) Retrieved 2024-05-03.
  35. CPCWiki — Connector:Digital joystick. Last updated 2013-02-08. Retrieved 2024-05-03.
  36. GameSX — Joystick Pinout for FM Towns/Marty computers Retrieved 2024-05-03.
  37. Raphaël Assénat — DIY SMS/MarkIII paddle controller Last updated 2022-08-15. Retrieved 2024-05-03.
  38. Sega Retro — XB∀ND Keyboard Last updated 2023-05-02. Retrieved 2024-05-03.
  39. rtfm.vtt.net — Sega Genesis Controller (Joystick) Connector pinout Retrieved 2024-05-03.
  40. 40.0 40.1 Charlie Rosenberg's home page — Sega Six Button Controller Hardware Info (Wayback Machine) Dated 1996-09-09. Archived 2018-01-18.
  41. Ein Terakawa — Interface Protocol of SEGA MegaDrive's 6-Button-Controller (Wayback Machine) Archived 2018-03-11.
  42. Commodore World — Hard tips: Building a Sega 'game pad' adapter (Internet Archive), by Doug Cotton and Mark Fellows. Commodore World, Volume 1, Issue 5, Number 5, p. 45 (1994). Retrieved 2024-05-03.
  43. FRS' MSX Page—JoyMega Adapter. Retrieved 2024-05-11
  44. Dan Wood — Commodore 16 and Games Review (Youtube) Dated 2016-02-11. Retrieved 2024-05-03.
  45. Info-Coach — Atari ST Interfaces and Connectors Retrieved 2024-05-03.
  46. gamesx.com — The Atari Enhanced Joystick Ports FAQ. Version 0.90, 1996-09-24. Retrieved 2024-05-03.
  47. Spectrum for Everyone — Rewiring your +2/+3 Joystick Ports to Atari Standard Retrieved 2024-07-02.
  48. Compute! — How To Build Your Own TI-99/4A Joystick Adapter (AtariMagazines.com), by Gary Cook. Compute!, Issue 39, p. 10 (August 1983) Retrieved 2024-05-03.
  49. General Consumer Electronics, Inc. — Vectrex Service Manual (OmberTech). Retrieved 2024-05-03.
  50. Computer Nerd Kev — Vectrex Controller to Atari 2600 Adapter (OmberTech). Retrieved 2024-05-03.
  51. Jay Tilton — Intellivision Controller Pinouts Dated 1998-06-28. Retrieved 2024-05-03.
  52. H. Kashima — 3DO Transmitter for SST2X (circuit schema) (Wayback Machine) Dated 1997-03-19. Archived 2003-12-10.
  53. Classic Game Room — Classic Game Room - PANASONIC 3DO Controller Review Dated 2011-06-27. Retrieved 2024-05-03.
  54. Image in ad on sekeimon.com — 021-0004-002 - SGI MOUSE 9-PIN D-SUB. Retrieved 2018-06-12 (DEAD!)
  55. Hardware Book — SGI Mouse (Model 021-0004-002) Connector Last updated 2010-06-23. Retrieved 2024-05-03.

External links