many other platforms the Commodore 64
also has it's history of paddle games. Although not always known there
various kinds of these paddle games. Paddle are analogue, this means
they do not use switches like a joystick but potentionmeters to sense
which direction you are steering. Where a joystick can only do
left,right,up,down (or combinations) a paddle can steer between left
and right in 256 steps. This means that paddles are much more sensitive
or precise. And when the position of the character of the game is
directly coupled to the position of the paddle then charatcer can be
moved very fast, it moves as fast as you can turn the paddle. This
makes it perfect for those nasty pong like games that are allmost
impossible to play with a joystick. But also racing games are much more
enjoyable with a paddle as the steering becomes more smoothly.
Unfortunatly paddles are very dull to operate. You can only turn them
left or right and press the fire button and that's it. A joystick
offers more freedom in it's movement. So where you can direct you game
character in all directions with a joystick...
with a paddle you simply can't. This eventually makes paddle games very
limitted and therefore not much paddle games have been developped.
Each joystick port holds 2 paddle inputs. This means that you can connect up to 2 controllers into one joystick port. So in pratice you can play paddle games with 4 players at the same time. Unfortunatley there are not much of these games. Actually at the current time there is only one, that game is called Space Lords. If for any reason you don't have a paddle, you can make one yourself, it is not difficult and very cheap.
As the images below show, there is not much difference between the Atari paddles (black) and the Commodore paddles (white). The only real difference is that the potentionmeteres inside the Atari paddles are 1Mohm and the Commodore paddles are 470Kohm. The Atari paddles can be used on the commodore 64 without problems, only the usable range is limitted, but practically most people won't even notice. Sometimes the limitted range is an advantage as you do not need to turn your wrist that far to achieve the same movement of your character.
Build your own paddle
For those of you who don't own a paddle but whish to play these games, here are the schematics how to build your own paddle system. As you can see it is nothing more then a potentiometer and a button connected via simple wiring. Depending the game you want to use it for you may need the "fire" button. As you can see, you can make 2 paddles and connect them to a single joystick port. So this means that a C64 can use a total of 4 paddles. Paddles and analog joystick have lot's in common. The work exactly the same the only difference is that the paddle has a single axis which is projected on a circular movement and an analog joystick has 2 axis (X and Y).
Anlog control is much more fluently and I wonder why the analog joystick never caught of. It would be great for racing games, but instead I played all racing games with a digital joystick. And although that worked, I would have had more control if I could have used analog. But (most) games were not designed to use them and digital joysticks were the standard. Analog joysticks only were available for PC's. Well perhaps in the future sombody writes a paddle racing game. One paddle would be for steering the other for throttle.
How to program for a paddle
actually that is quite simple, using the registers below you'd get all
the info you'd need.
In theory, reading the "position" of paddles is as easy as reading byte values from the SID registers at 54297-54298 to allow for a total of four paddle knobs/potentiometers, the C-64 hardware uses a multiplexer to "switch" between the two control ports. And this complicates matters a bit.
The two most significant bit lines in port A of CIA-1 are used to "tell" the multiplexer which of the joystick ports to connect with. At the same time, these lines are involved in the scanning of the keyboard matrix, and so gets manipulated constantly as the computer scans for keypresses. So realiably reading the paddles implies temporarily disabling the keyboard scan as the reading takes place.
The SID measures the two analog inputs once per 512 machine cycles, or about 1950 times a second, independent of (and thus asynchronous with) the timing of the program the CPU is running, i.e. when the program commands the multiplexer to switch to the other port. So the programmer has to "assume" that the keyboard scan and/or other activities have recently caused the multiplexer to switch ports, set up the multiplexer and disable anything that may interfere with it, then wait for 512 machine cycles to allow the SID to do a full reading, before finally reading the analog input register.
|According to the
Programmers reference guide, the paddles
cannot be read out reliably from basic. A piece of machine language
below demonstrates how to do this:
PADDLE_JOY_1 SEI ;disable interrupts (for example keyboard scanning)
Downloads:Considering how hard it can be to find these games I've made them available to those who want to play them: <click here to go to the download section> Paddle games are best played at a real C64. If you have a paddle game that is not in this list, please contact me at firstname.lastname@example.org