6

One thing I felt letdown the C64 for many games was the lack of multiple buttons on the joystick, meaning you had to keep the keyboard nearby, (or by your foot!) So you could press space-bar or something for secondary functions. Even less practical in 2 player games.

However, the Sega Megadrive had the same connector as the C64, and that supported 4 buttons as well as the directional control. (I believe it even supported 6/7 buttons eventually). I also know that the C64 was able to detect things like wetting the pins on the joystick port!

So assuming that game programmers were up to the task of detecting states beyond the directions and "fire", why couldn't there have been more buttons on a joystick?

1
  • As an aside: the Amiga overtly supports two buttons, how they should be wired and read being defined from day one because it’s exactly the same as the two-button mouse that’s right there in the box. Yet still almost no software can take advantage and almost no joysticks provide an independent second button.
    – Tommy
    Commented Oct 31, 2021 at 3:13

8 Answers 8

8

It was possible, but an unpopular option.

I remember using Quickshot Maverick joystick. It had two separate cables connecting to both ports and worked with games that was using space bar as secondary button. I recall Turrican and Commando were supported.

Then there is Cheetah Annihilator joystick that was came bundled with Commodore 64GS system. This was a different solution. It uses Pin 7 (PotX) as 2nd button line. This can be considered as the official solution as the joystick was provided by Commodore. Unfortunately it was too late (1990) to provide new functionality to the system. The second button adopted only by the limited GS exclusive games.

1
  • The C64GS simply followed what Atari had set with the CX60.
    – Raffzahn
    Commented Nov 2, 2021 at 17:27
5

TL;DR:

There have been several two and three button joysticks for the C64 and games have used these feature.


It could have been done

As Retrograd (and others) already explained, the basic design of the control ports is made for either

  • a digital 4 direction plus fire joystick or
  • two (analogue) paddles with one fire each or
  • a light pen with one fire button (only on port 1)

So in theory an analogue joystick with up to 5 digital inputs could have been used. Much like the Apple II did (or later IBM).

It wasn't and the Reason is History.

It's important to keep in mind that the joystick port design is not a Commodore development, but taken straight from the Atari 2600 and used for the VIC20. Doing so gave Commodore the advantage to skip developing their own peripherals and straight buy ready developed ones, just to be branded. A classic Tramiel move :) The C64 again inherited the port from the VIC20.

Atari did not offer any analogue joysticks for the VCS, as polling them would have been rather cumbersome for the limited VCS hard/software without much gain. Similar not third party developer did.

Hen and Egg

Later machine, like the 400/800 and VIC20/C64 could have done better, but it's a classic hen and egg problem:

  • No need to write games for analogue joysticks without them
  • No need to offer analogue joysticks without games using them.

Essentially this would be the end of the story, except, like you already assumed, there was a strong need for more buttons so any solution would be welcome.

Atari to the Rescue

With the 7600 Atari introduced the CX60 controller, a new two and a half button controller with a left and right button, plus a third, virtual button when both are pressed (called Command). To do so the analogue X/Y inputs were used as digital inputs for both new buttons, while the original button input was connected via two resistors. Worked fine with the 7800 as well with the 2600, where it later was called CX24.

Incompatible, But

While basically compatible with the C64, these joysticks would not work straight away as the 'main' button needs pressing both. Still Atari paved the way to follow by opening great possibilities for third party development.

Not everyone liked the small joystick. And having a trigger at the stick sounds as well great. Multi system capabilities are a great plus, as the same product can be sold to more customers, which can easy outwight the additional manufacturing cost. So configurable joysticks it was. Working with the regular main button system as well as with the modified 7800 and offering up to three buttons for major systems.

Like any add on manufacturer joystick makers were keen on new features and more buttons (like auto trigger before) would add a great sticker on each box: New, Better, More!

With these joysticks becoming more common, game developers also started to follow with games using them.

The Rest is History

In the end, even Commodore used this method for the C64GS Joystick, which added a second button using the paddle A (POTX) input. Later the Amiga sanctioned the full 3 button joystick with using paddle B as well.

At that time the three button layout was well established. For example with the Kempston Interface for the ZX Spectrum. Atari used the 2 button configuration of the C64GS.


But There's More And You Knew About It

or by your foot!

There was a controller with 5 large buttons to be operated by foot - so it was quite possible to add more control via the second port, at least for single player or hot seat games. :)

2
  • "but it's a classic hen and egg problem:" - interesting - I remember after Street Fighter 2 came out on the Megadrive, they began to release 6-buttoned controllers. I suppose no single game on the C64 would be big enough to warrant trying to convince customers to buy a new joystick / controller just for it.
    – komodosp
    Commented Nov 1, 2021 at 9:22
  • @colmde True, but then again, the six button controller was offered as genuine Sega product first. Something Commodore only did very late (1990 with the 64GS). During the heydays of C64 (mid 80s) more than one button was only available from third party and at the upper price range. Neither really a good push to establish it as over all standard,. (BTW, way more Street Fighter were sold for the NES :))
    – Raffzahn
    Commented Nov 1, 2021 at 12:13
2

It would have been possible to design a multi-button joystick for the C64, and in fact, pretty easy. The only caveat is that reading the inputs on the software side would have to be done very differently.

The C64 control port includes five pins for digital inputs. On a standard C64 joystick, one is connected to the fire button, while the other four correspond to the directions. However, the port also includes two pins for analogue inputs, normally used by paddle controllers. An analogue joystick could use the two analogue inputs for the X and Y axes, and then reuse the digital inputs for the buttons. The problem is that games meant to be played with a joystick expected a digital one and would therefore ignore the analogue inputs and interpret the digital inputs as directions. I imagine this software incompatibility is the primary reason such joysticks did not appear on the market.

As it happens, the PC joystick port has been designed a very similar way, and it’s possible to make a passive adapter allowing to connect a PC controller to a C64 port. The 8-Bit Guy’s video about old game controllers goes into much more detail about how those worked, and even contains a small demonstration of reading a PC analogue joystick input on a C64 (about 5 minutes in).

1

Conceptually, nothing prevents multiplexing the 5 digital inputs of the C64 controller and building a higher level protocol on top of that (at the cost of reduced bandwidth), since reading the controller port at the C64 is really just accessing the state of the inputs directly from the software title.

Alternatively, one might encode additional buttons in analogue paddle inputs.

Likely, a reason no one (that I know of) did that commercially after market is the lack of compatibility with the large catalogue of titles not written specifically to support such custom protocol.

4
  • Multiplexing the digital inputs of the port and building a higher level protocol on top of that is how the Amiga 500/600/1200 port was extended from a 2 digital axes + 3 button port (using the pot inputs as digital) to a 2 digital axes + 7 button input port for the CD32 controller. Providing the pins states can be toggled by the C64 side, it would be possible to program a routine to allow a new C64 game to support CD32 pads.
    – knol
    Commented Oct 31, 2021 at 21:52
  • @knol "CD32 controllers will not work at eg a C-64" wiki.icomp.de/wiki/DE-9_Joystick
    – Polluks
    Commented Nov 2, 2021 at 13:37
  • You've misunderstood me, Polluks. I said that the CD32 protocol is a higher level protocol built upon the Amiga's joystick port, which is a method Retrograde described in their answer. If the C64 is able to fully control its joyport pins, it could implement that protocol as well.
    – knol
    Commented Nov 2, 2021 at 17:41
  • 1
    A C64 cannot output on pin 5, bad luck.
    – Polluks
    Commented Nov 3, 2021 at 21:00
1

Although I haven't tried them, I would expect that the Atari 2600 keypad controllers and the Atari 7800 joystick would both work unmodified on the C64. The 7800 joystick would drive the paddle inputs high except when the buttons were pressed. Each button would cause one of the paddle inputs to stop being driven high and would also drive the fire button input low. The 2600 keypad controllers would drive the paddle inputs high when idle, and expect that the joystick direction pins would be used to scan rows. If a button is pressed on a row that's driven low, it will either stop driving a paddle input high or will drive the fire button input low.

The 7800 controllers might have been useful for games if they were more widely owned by C64 owners, and if they were better ergonomically designed to allow use of both buttons. In general, though, I think the big reason people didn't use multi-button controllers much with the C64 is that they could use a 64-button controller without having to buy any extra hardware.

Incidentally, I think a game could use two of the three columns of a 2600 keypad while still allowing use of the normal keyboard any time no more than two buttons/keys were pressed in total between the keypad and keyboard, and the third could be used provided no keypad buttons were pressed at the same time as any keyboard keys.

2
  • The 7800 controllers are essentially 3 button controllers by using the pot inputs - except the buttons are rearanged. left and right button go onto the pot lines, while pressing both (called command) activates the original button input via two resistors.
    – Raffzahn
    Commented Nov 2, 2021 at 17:02
  • @Raffzahn: Actually, pressing either button activates the original fire button input, so as to allow the controllers to use games designed for the Atari 2600.
    – supercat
    Commented Nov 2, 2021 at 18:41
1

As pointed out in The 8-bit Guy's video, How Vintage Game Controllers Worked, from 2:08 onwards, all of the pins on the DB-9 plug were used for the joystick and the paddles:

C64 DB9 pinout

So, I guess that you could have used pins 5 and 9 for additional buttons - if you had a custom controller and software that could support those additional buttons.

Important note - How to fry your C64...

by using the Sega Genesis controller, shown here,

Sega Genesis controller

This particular controller had the Select button wired to pin 7, which (as shown above) the C64 used for +5V.

Sega Genesis DB9 pinout

So, if you connected a Genesis controller to the C64 and pressed the select button, you would short the +5V to GND and fry the C64.

2
  • 1
    While we're doing warnings here, note that Atari joysticks will work on MSX machines, which have a port compatible with them, but MSX joysticks have a second button that shorts pin 7 to ground in the same way.
    – cjs
    Commented May 22, 2022 at 6:22
  • I'm surprised at that - I have a memory of using a Megadrive controller (which I assume is the same as Genesis) to play Flimbo's Quest! Maybe I was just lucky or never pressed the select button...
    – komodosp
    Commented Aug 9, 2022 at 12:49
0

The C64 supports one-button joysticks only.

The Megadrive and the C64 both use 9-pin D-types, but the pins have different meanings, which is why C64 and Megadrive cannot use each others joysticks.

When compared with the Megadrive, the C64 has a simpler design. The Megadrive groups the buttons into two groups, and then has a select line to choose which group two wire into the machine.

The Commodore design is not like that. It's much simpler, but has (electrical) compatibility with its predecessor, the Atari joystick. Beyond the single Fire button, these joystick ports also support two analog inputs

2
  • "C64 and Megadrive cannot use each others joysticks" - It's a long time ago but I have a memory of using a Megadrive controller to play Flimbo's Quest... I think they might have, at least in a limited capacity
    – komodosp
    Commented Nov 2, 2021 at 16:36
  • @colmde Nop. While their pinout is in part compatible, Sega controllers can not be used with C64 as they are not only active controllers, but also contain pull up resistors, which would screw C64 keyboard handling. They need at least an adaptor but still then keyboard problems remain. Not to mention that games using 8 direction input will not really work.
    – Raffzahn
    Commented Nov 2, 2021 at 16:50
0

The new TexElec adapter supports 8 buttons, enough? It's part of the "Attack of the PETSCII Robots" game, see https://www.c64-wiki.de/wiki/Gamepad#Treiber.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .