We all remember the video games of our youth fondly, and many of us want to relive those memories and play those games again. When we get this urge, we usually turn first to emulators and ROMs. But, old console and computer games relied heavily on the system’s hardware to control the actual gameplay. Most retro consoles, like the SNES for example, rely on the hardware clock speed to control gameplay speed. This is why you’ll often experience games played on emulators as if someone is holding down the fast forward button.
The solution, of course, is to play the games on their original systems when you want a 100% accurate experience. This is what led [FozzTexx] back to gameplay on an Apple II. However, he quickly discovered that approach had challenges of its own – specifically when it came to the joystick.
The Apple II joystick used a somewhat odd analog potentiometer design – the idea being that when you pushed the joystick far enough, it’d register as a move (probably with an eye towards smooth position-sensitive gameplay in the future). This joystick was tricky, the potentiometers needed to be adjusted, and sometimes your gameplay would be ruined when you randomly turned and ran into a pit in Lode Runner.
The solution [FozzTexx] came up with was to connect a modern USB gamepad to a Raspberry Pi, and then set it to output the necessary signals to the Apple II. This allowed him to tune the output until the Apple II was responding to gameplay inputs consistently. With erratic nature of the original joystick eliminated, he could play games all day without risk of sudden unrequested jumps into pits.
The Apple II joystick is a weird beast, and unlike anything else of the era. This means there’s no Apple II equivalent of plugging a Sega controller into an Atari, or vice versa. If you want to play games on an Apple II the right way, you either need to find an (expensive) original Apple joystick, or build your own from scratch. [FozzTexx] is still working on finalizing his design, but you can follow the gits for the most recent version.
29 thoughts on “An Apple II Joystick Fix For Enjoyable Gameplay”
This seems like a pretty over-complicated fix; I’m pretty sure you could get the same sort of results with just a few resistors. Still, if it works, it works.
Since when are over-complicated solutions are problem around here?!
Or an Arduino. :)
It was very easy to built a joystick from scratch for the Apple ][, I made one following a drawing found on a Wireless World paper (a joystick for an analog synthesizer) using just two potentiometers and a filmroll plastic box. It had no return to center function but it was ok to play some games, mainly Choplifter.
That said, Loderunner was much easier to play using the keyboard than using a joystick.
That’s really awesome! Wings of Fury would have been difficult though…
+1 for Wings of Fury. I tried playing it with my 5x accelerator card and talk about difficult, ha ha.
Isn’t an Apple II joystick almost identical to the pre-USB analog PC joysticks?
The only difference afaics are the 150kOhm vs. 100kOhm potentiometers and the connector.
Absolutely you are correct. You can adapt them with just a few discreet components.
There’s actually nothing odd about the Apple II joystick design. The same mechanism can be found on modern controllers for video games and remote control vehicles. For the former, it’s just been miniaturized a bit.
Agreed. Not odd at all.
The Vertex has a somewhat weird analog stick scheme.
It’s nearly identical to the analog joysticks on older IBM compatibles and you can convert one of those to work on an Apple II.
The weirdness is the II+ and II used a 16pin DIP socket for the connection.
I had one. Still hoping it turns up. My Apple still has the 16 pin dip connected. It ends with a 9 pin connector coming out the back. Was thinking the PC joystick of the same Era could be modified if 150k pots are available.
You don’t have to modify the oc joysticks at all to work on the a2. You can build a simple adapter out of discreet you prob already have lying around!
>you’ll often experience games played on emulators as if someone is holding down the fast forward button.
(O.o) – say what? Every emulator I’ve played since the late 1990s has some sort of speed throttling.
The A2 wasn’t really designed for a joystick. It originally had paddles since Pong/Breakout was the hot game when the A2 was on the drawing board. As mentioned above the A2 stick is one pot for X and the other for Y. Because of this it wasn’t well suited to arcade style games that used digital/on-off four way sticks ala the iconic Atari joystick. People hacked interfaces for the Atari stick and iirc there were commercial products as well. Too bad they still had to deal with the shitty A2 paddle connector which was just a DIP header with pins that folded over if you blinked. I always enjoyed picking on Apple brats who bragged their computer was awesome and pointed out the C64 had better gfx, superior sound and REAL JOYSTICKS.
tl;dr Emulators have automatic speed throttling. A2 joysticks suck for arcade games.
Forgot to mention the Magnavox Odyssey2 also used potentiometer sticks so the statement that the A2 sticks were unlike any other is rubbish. IIRC many other early home computers like the VideoBrain had pot joysticks. http://www.oldcomputers.net/videobrain.html
I think the TRS-80 CoCo had similar joysticks
and they were awesome to play Polaris – a missile command knock-off.
It was very similar except the COCO had an actual DAC though it was only 6bits.
Sorry, but the O2 used digital joysticks, like Atari, but with a different pin-out.
Games where it mattered generally had a calibration routine, so I never had trouble playing arcade-style games with mine. Plus, there was the rare game that actually used the analog position for throttle or whatnot.
And our disks were a lot faster. ???? ????
Woz’s design for the disk interface was simply brilliant. For those of you not familiar with the A2 FDC its a tiny card that used a stupid fast discrete TTL CPU known as a state machine. Most other FDCs used expensive dedicated ICs for the same function.
As for disk speed – I agree the A2 was faster than a stock C64/1541 but a $40 Epyx Fastload cart fixed that.
The A2 was revolutionary when it came out but later PCs like Atari/Commodore/Tandy CoCo were far more advanced thanks to improvements in memory/video/sound ICs. If it wasn’t for the A2 the others wouldn’t exist.
I remember being 12 years old and wanting a joystick so bad for my Apple ][, but they were too expensive. I ended up buying all the parts (joystick, buttons, blue plastic box and ribbon cable) from Radio Shack and building one. That was my first “electronic” design…….
This has already been done:
the original Apple II used a quad 555, a 558 for joystick input.
You read from $C070, then count until the softswitch goes “hi” @ $C064 – $C067.
from the monitor ROM
* PADDLE READ ROUTINE
* ENTER WITH PADDLE NUMBER (0-3) IN X-REG
FB1E:AD 70 C0 PREAD LDA PTRIG ;TRIGGER PADDLES
FB21:A0 00 LDY #0 ;INIT COUNTER
FB23:EA NOP ;COMPENSATE FOR 1ST COUNT
FB25:BD 64 C0 PREAD2 LDA PADDL0,X ;COUNT EVERY 11 uS.
FB28:10 04 BPL RTS2D ;BRANCH WHEN TIMED OUT
FB2A:C8 INY ;INCREMENT COUNTER
FB2B:D0 F8 BNE PREAD2 ;CONTINUE COUNTING
FB2D:88 DEY ;COUNTER OVERFLOWED
FB2E:60 RTS2D RTS ;RETURN W/VALUE 0-255
The paddle interface REALLY put me off using multi 555’s, they interact something crazy, the octal ones being the worst.
The “paddles” that came with the Apple II were 110k, which meant I spent an awful lot of time and CRC “fixing” them.
I never did find a source of 110K pots to replace totally worn out ones, there were endless ways to try and get 100K pots to “work’ properly, most customers didn’t notice, but a few annoying pricks used to bitch and moan that space invaders no longer “felt right”!
The Apple II’s use of the 555 timer with software was a very clever way to get cheap analog input at a time when an analog to digital chip would have added considerable cost. I used those inputs for a lot more than paddles and joysticks back in the day.
one of the strangest/most clever uses was a simple security dongle.
microsoft multiplan came with a 16 pin header that had, along with the 2 EZ hooks to do shift lock, 4 resistors on the paddle inputs to make sure you had bought the software.
“We all remember ” …
Analog joysticks were used on the Apple II, Tandy Color Computer, and the IBM PC. Digital joysticks were used on most other systems such as the Atari and Commodore systems.
I think it was a failure of Atari and Commodore to not encourage the use of analog joysticks in addition to the digital ones on their systems. Their ports supported paddles so analog joysticks were possible. While many games are best with digital joysticks, some games, such as flight and racing games, would have greatly benefited from analog joysticks.
I have one of this :)
Please be kind and respectful to help make the comments section excellent. (Comment Policy)