57

As Wilson points out in his answer, it has to do with how the CIA chips interact with the keyboard and the joystick ports, and the confusion that can arise trying to determine where input is being received from. Compute!'s Mapping the Commodore 64 has an excellent write-up here explaining how the "Complex Interface Adapter" (CIA#1) deals with scanning the ...


30

On the Color Computer, I/O address &FF00 is used for both the joysticks and the keyboard row input. Bits 0/1 are toggled by the two joystick port buttons, and these bits are the same as rows 1/2 for the keyboard. BASIC continually scans for keyboard input by looking at &FF00 (for the row) and &FF02 (for the column). Since &FF02 will not ...


23

Because of the way that the joystick port 1 is mapped to the same hardware as the keyboard, from the software's point of view it's impossible to tell if you're wiggling the joystick or typing something on the keyboard. So many games used port 2 instead.


17

Commodore 64 uses two CIA (Complex Interface Adapter) chips. CIA#1 is responsible for the keyboard, joystick, paddles, datasette and IRQ control, while CIA#2 controls the serial bus, RS-232, VIC memory and NMI. If you check the CIA#1 address map you will see that: Memory address $DC00 (Port A) is used for keyboard matrix columns and Joystick #2 at the same ...


14

The documentation for IBM's original Game Control Adapter has some details that will be of use. Even though you're using a SoundBlaster card instead, it should still be compatible with the IBM original. While the documentation doesn't specify maximum currents for any pins, it does have a logic diagram: It can be seen that on the original gameport, the ...


13

Two questions, three plus answers. Did this standard have a name? a.1) There is no neutral standard for joystick ports, hence no standard name. When speaking manufacturer/machine needs to be named. a.2) There is a standard for the connector used by most 8 Bit machines, as their DE9 is part of the series Cannon developed in the 50s. Here D is the general ...


12

Is this a special signaling mechanism of some sort, No. Buttons are always on/off mechanics. The PC doesn't have any means to detect anything but high or low, according to the threshold (*1) the input circuit has (*2). or does it merely indicate that the switch is dirty? Yes, a dirty switch, a used up one, a broken one, some bad soldering adding a ...


12

The DE-9 joystick port is close to a standard D-sub connector (note that it uses the "E" shell and not the much larger "B" shell from the DB-25 serial or parallel port connectors). For joysticks, it was first used an the Atari 2600 VCS, went on to their early 8-bit machines and was then adopted by Commodore.


12

The SideWinder 3D Pro has its own protocol, which isn't supported by typical gameport-to-USB adapters. The best you can hope for with one of those is to find an adapter which supports the CH Flightstick Pro or Thrustmaster FCS protocols, and use the fallback mode on the SideWinder. (There's usually a switch on the USB adapter to choose the appropriate mode.) ...


9

The paddles and joysticks on the Apple work by charging a capacity through a variable resistance (potentiometer). For the first joystick, the X-axis corresponds to paddle 0, and the Y-axis to paddle 1, and similarly for the second joystick. Accessing address $C070 discharges all capacities, so they can now charge with a speed that is determined by the ...


8

In the early eighties, use of a 9-pin port for serial communications was uncommon. Most systems used the standard 25-pin port. I think it was IBM that made the 9-pin serial port popular, but I don't think that happened until around the time of the IBM PC AT (the original Macintosh also had a 9-pin serial port but it was wired differently, and was ...


7

A gamepad is not ergonomically the same as a joystick. A joystick's stick is normally operated with the dominant hand, while the other hand holds the body (where it can operate the fire button). Since most people are right-handed they prefer the stick on the right. A gamepad is held by both hands, so it doesn't matter which side has what buttons. However ...


7

I haven't personally tried myself but searching on the web suggests that below games make use of the second joystick button wired to Pin 9 POTX signal. If played on a C64, functionality is already assigned to relevant keyboard controls. Myth - History in the making Robocop 2 Last Ninja Remix Here are the relevant discussions. http://www.lemon64.com/...


7

The fewer kinds of input a computer has to deal with, the easier its life is. This applies equally to physical ports and to the provisions for input in the BIOS and operating system generally. Abolishing “joystick button input” as a separate category makes everything much simpler. The same applies to function keys on keyboards (such as the arrow keys). ...


7

The dongle for the PaperClip word processor plugged into joystick port 1. It read bits 0 and 1 from the dongle and wrote bits 2, 3 and 4 to control it. Keyboard interference probably wasn't an issue with this use case.


6

In addition to what already was stated, namely: ... how the CIA (Complex Interface Adapter) maps JoyStick - or in general, any - input: The signals a (digital) JoyStick delivers, come in via Pins 1 to 4 (Up, Down, Left, Right) and additionally Pins 6 and 9 for the buttons (Left, Right) - the equivalent values are represented on the charmap by e.g.: SPACE ...


6

TLDR; Yes you can bend them, don't bend them too much and don't flatten the dimples. First be sure the contact disk is the issue. If the problem is intermittent, You can also remove power from the Atari and spray plastic safe contact cleaner into the controller socket and system pins and then insert and remove several times to clean up those connections. ...


6

Not an Atari joystick. The Atari joystick was basically just a set of mechanical switches and each of the pins was either ground, +5 volts, or one of the switches. Were you designing a joystick back in the 80's to plug in to a serial port, you would have needed to put some electronics in it i.e. a chip to support RS232. I think that would have been ...


6

I asked the same question over at UX: https://ux.stackexchange.com/questions/57630/why-are-most-game-controllers-left-handed Lots of speculation but no real answers. Larry Bundy claims the change was made to make arcade games more difficult, and thus increase revenue by making it harder for players to master each game. He doesn't offer any evidence or ...


6

It looks like you need to explicitly add the device - i.e., it isn't plug 'n play like USB or even like a lot of older devices (e.g., mice & keyboards on PS/2 ports). Microsoft: To install a game port game controller


6

back in the (x386) days I was using GAME port as an ADC for home made scanner and other self build HW. As it is usual during development there is occasional set back like short circuit etc. The GAME Ports I was using was always GoldStar chip powered IDE/ports ISA card (they where very common) and a short circuit on the analog pins always burn up +5V power ...


6

The original IBM PC and AT designs allocated 10 bits for I/O addressing, and only decoded address lines A0-A9 for on-board I/O devices. However there was no physical limitation to 10 bits, so a card could use A10-A19 so long as it didn't clash with the aliases of 10 bits cards or motherboard devices. So yes, the game-port card has aliases at 601h etc., ...


5

From what I can see on the Wikipedia page about the Atari Joystick Port, it seems that the whole "cross platform" standard of the DE-9 joystick started with the VIC-20 (1981) and was followed by the C64 (1983) and Amiga (1985) computers as full implementations. There were others which were mostly compatible such as the ColecoVision (1982) and Sega Master ...


5

To answer the gist of your question of I'm building a custom interface unit for a game port joystick. and I would ideally like to design the interface unit to be broadly compatible with different models of joysticks I refer you to some resources of my own past research: History of the Gameport, and analog joysticks: https://mysite.du.edu/~etuttle/...


4

While you can still get 1980s-vintage joysticks, some of the PVC cable sheathing is beginning to de-plasticize with age, so the cable can effectively fall off. Before I realized they were basically unreplaceable, I threw out three Konix sticks that had that problem … Building your own isn't hard, though. I made a ridiculously over-engineered box out of 6 mm ...


4

There is no official specs for game port current limit. Some adapters may have resistors, ferrite beads or fuses for current limiting, but usually a short circuit still fries something (except for a polyfuse). I'd say 100mA is a safe limit in any case. The original adapter has 1k pull ups on buttons, so for all four buttons simultaneously pressed, it adds up ...


4

Address 65280 (Hex &FF00) is the I/O port on the CoCo for the joystick and the keyboard row input. It is the case that the lower 2 bits are assigned to the left and right joystick buttons. Bit 7 is associated with the joystick direction, which is why it can be either 0 OR 1 while a button is pressed. So, your proposed approach is correct.


3

The Inception 8 joysticks adapter uses a joystick port for two-way communication between C64 and Inception board. Basically, a program at the C64 would send a command sequence via the joystick port, switches the port to listen and receives the Inception board's reply. In most cases, the information communicated is the state of the joysticks connected to the ...


3

You can still buy replicas of the famous Competition Pro joystick (search on Amazon, for example), albeit with a modern USB interface. These need to be "de-modernized" to use with a retro computer, which is, however, pretty simple (connect the cables directly to the microswitches, and fit a DE-9 [commonly known as DB-9, the joystick ports] to it). You can ...


3

Furthermore, (correct me if I'm wrong) the Commodore Amiga can also read a joystick button wired this way being pushed, as although it treats pin 9 as an analog input, the Amiga's analog pins are active low. All the "early" Atari-derived systems read pins 5 and 9 as analog. There may be later designs, like MSX, that work differently, but the Atari, C64 and ...


Only top voted, non community-wiki answers of a minimum length are eligible