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 ...
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 ...
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.
The Amiga 9-pin joystick port is compatible with:
Atari 800/VCS joysticks and paddles;
Atari ST joysticks;
Commodore Vic-20, C64, C64GS and C128 joysticks;
Commodore Amiga computer joysticks and joypads; and
Amiga CD32 joypads.
This table from Wikipedia's page on the Atari Joystick Port showing the pin assignments of various systems using a 9-pin input ...
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 ...
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.) ...
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 ...
The typical Apple II joystick appears to the computer as a pair of analog game
paddles and two buttons. The easiest way to read the joystick position
is from Applesoft BASIC, using PDL(n). The process is detailed in this
post. The joystick
X axis is PDL(0), the Y axis is PDL(1).
You can do much better with a custom routine. The reason for this requires
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 ...
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.
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 ...
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.
The paddles and joysticks on the Apple work by charging a capacitor 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 capacitors, so they can now charge with a speed that is determined by the ...
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.
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 ...
Looking at the pictures on iFixit, the two PCBs that fit behind the shoulder buttons don't seem to be reinforced by anything much:
Excess pressure on the shoulder buttons might bend these boards slightly away and cause the connection to not be made. The alternative is corrosion on the connection traces; you say you have tried contact cleaner.
Try bending ...
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 ...
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
Last Ninja Remix
Here are the relevant discussions.
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). ...
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 ...
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 ...
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 ...
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
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 ...
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., ...
It depends on what you call "compatible". On any DB9 joystick, the directions and at least 1 button will work
If you're aiming 1 button joystick, then you can pick any controller you'll find a button that works.
Now if you need 2 buttons, only sega controllers have a chance to work, but the buttons that work aren't the most naturally located. I ...
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 ...
After hours and hours of reading forums, installing different drivers and emulators, I managed to get it running on Windows7 64Bits and try it in PlanetSide2... Finally I can fly aircraft!!! :D
The solution is to install WinWiner and vJoy. I leave you with an explanatory video. A link to the download is in the description. Greetings
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 ...
To answer the gist of your question of
I'm building a custom interface unit for a game port joystick.
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: