USB Game Paddles and Joystick for Apple II Emulators
by JohnRConrad in Circuits > Apple
354 Views, 4 Favorites, 0 Comments
USB Game Paddles and Joystick for Apple II Emulators




Background
I embarked on this project so that my grandchildren Lily, Mack, Zach, and Naomi could experience the early childhood Apple II software programs that I wrote in the early 80s and which were distributed by the software publisher Edu-Ware. I first wanted to do this for Lily when she was born almost two decades ago. But until recently, I have been thwarted by the compatibility of well-behaved Apple II Emulators for macOS and by the lack of modern two-player Game Paddles that would work with the emulators. In recent years, a number of excellent Apple II Emulators for macOS have been available, and this project provides the remedy for the second problem.
The motivation for this project dates back to 1978 when I acquired what I believe to be the first Apple II computer in the Engineering Division of the University of Wisconsin-Madison. As a young assistant professor in what is now the Engineering Physics department at UW, I hoped that the Apple II might be a useful tool in my applied plasma physics research as I labored to earn tenure. When the first IBM PC hit the market three years later in 1981, I remember that some colleagues made fun of my Apple II "toy computer!" The situation improved slightly when the first Apple Macintosh appeared in 1984. However, the introduction of the Macintosh II in 1989, and especially the Powerbooks in the 1990s, turned the tables. Most of my engineering colleagues who had originally made fun of Apple soon became Mac advocates!
The lack of scientific plotting utilities hindered my research's initial attempts to use the Apple II Plus. To address that frustration, I wrote a scientific plotting utility, Ampergraph, which Midwest Software distributed. At the same time, my two pre-school-aged sons discovered the Apple II and began playing some of the available early games--mostly arcade games. In the early days of the Apple II era, there was a dearth of educational programs, especially for the preschool audience. I started to write some simple programs for my sons and wondered if there might be a market for them. On a whim, I sent an unsolicited sample to Sherwin Steffin, a pioneer of Apple II educational software. Steffin had just launched Edu-Ware Services, Inc. in the spring of 1979. To my utter amazement, he said he would like to publish my work, subject to some refinements. Between 1981 and 1983, Edu-Ware published four of my early childhood programs: Spelling Bee and Reading Primer, Counting Bee, Spelling Bee Games, and Counting Bee Games (later published as Webster's Numbers).
In addition to the Edu-Ware titles, I include below the Wizard of Where, co-authored by me and Pat Dickson. This preschool software title was accepted for publication by Reston Publishing in 1983 but never released. David Schmidt from RetroFloppy was able to recover and convert one of my original DOS 3.3 disks to an emulator-ready .dsk format file.
Fast forward now four decades to the present. I undertook this project to share these programs with my grandchildren. It is a bit late for my first grandchild, Lily, who is now a sophomore in college, but she may want to give it a try. It is just barely in time for Naomi and Zach, and I'm hoping that Mack will at least be amused.
The Need For USB Controllers for Apple II Emulators
So what's the big deal about this project? Why is it needed? Can't someone just use a modern USB or wireless game controller? The answer depends on the particular game controller and the particular Apple II emulator. Some emulators have limited support for modern controllers; others have no support at all. More fundamentally, some of the classic Apple II two-player games required two separate controllers, i.e. the classic Apple II Game paddles. In particular, my Edu-Ware products Spelling Bee Games and Counting Bee Games/Webster's Numbers require separate game paddles. Hence this project. The photos above show the Game Paddle and Joystick controllers, which are described below. If you have never used Apple II Emulators, I describe some of the available emulators in Steps 5-7.
Supplies
If you are a typical builder, you will surely have the usual assortment of required hookup wire, shrink wrap insulation, hand tools, etc. If you are building the joystick controller, and if you use the exact two-axis joystick potentiometer suggested below, there is one slightly non-standard tool required. The suggested joystick requires a hole size which, while not exotic, is not typically included in standard hole saw sets. I suggest this 1 5/8" dia. hole saw.
Materials
Regardless of which controller (Game Paddles or Joystick) you want to build, each controller will require the following components:
Mini Breadboard, 170 tie points
Mini Momentary Push Button SPST normal open 2 ea required per controller
10K ohm 1/4w resistor 2 ea required per controller
Depending on whether you are building a set of Game Paddles or a Joystick, you will also need the following:
For a Game Paddle controller:
Project Box, 3.3 x 2.3 x 1.3 inch <-- Note that this hyperlinks to Amazon, which at present stocks pale gray boxes; if you want the black boxes shown in the photos, they are available here from eBay.
6 foot length of 24 gauge 4 conductor cable
10K ohm linear taper potentiometer 2 ea required per pair of game paddle controllers
Knobs 2 ea required per pair of game paddle controllers
For a Joystick controller:
Project Box, 3.3 x 3.3 x 2.2 inch
Two axis- 5K ohm joystick potentiometer 1 ea required per joystick controller
The Circuit


The very simple circuit diagram for the controllers is shown in schematic above. The analog signal from two linear-taper potentiometer voltage dividers is sampled by the Arduino A/D converter and sent to the serial port as (0-255) digital data. The diagram above shows the circuit for the Game Paddle controller. The schematic for the Joystick controller is exactly the same except that the "Paddle 0" potentiometer becomes the "X-axis" of the Joystick and "Paddle 1" becomes the "Y-axis."
Assembly






The construction of these devices is straightforward. I have included a drilling template if you are building the joystick with the suggested joystick potentiometer unit. Note that the metric screws provided with the suggested potentiometer unit are barely long enough if you are also using the suggested project box. You can avoid having to source longer metric screws if you very carefully countersink the bezel ring on the potentiometer assembly.
Downloads
Program the Arduino Pro Micro
Here is the Arduino code for the circuit, which uses Matthew Heironimus' excellent Joystick Library to make the Arduino Pro Micro function as a USB HID (Human Interface Device). The code reads the analog values from the potentiometers and digital states of the push buttons, and sends them as joystick inputs. Download and install the Arduino IDE and also the Arduino Joystick Library version 2.1.1 by Matthew Heironimus. Thank you for this excellent library, Matthew!
Note that when you compile the code below, you will see that in the Arduino IDE the board pull-down menu does not have an entry for the "Arduino Pro Micro" that we are using. You should choose the "Arduino Micro" board option.
My Suggestion for Choice of Emulator

The next step will test the controllers using an Apple II emulator. If you are familiar with Apple II emulators, you can skip this section. If you have never used an Apple II emulator, I strongly encourage you to use the excellent Apple IIjse, a free, online Apple IIe emulator by Will Scullin. It is free, simple to use (online--you don't need to download and install an app), and supports these game controllers without special setup or configuring. If you would like more info about Apple IIjs, please see Step 7 below.
Look at the video above to illustrate these hints for using Apple IIjse:
- Increase/Decrease the CPU speed: Click on the Settings icon near the lower right-hand corner of the display screen and check/uncheck the "Accelerated" box
- increase the screen size: There are two ways to do this: (a) Click on the settings icon and then check the "Full Page" box. This is easy but it hides the Apple II controls below the screen. You can return to the controls by clicking "Exit Full Page" but there is a better way to do this, as shown in the video above. (b) The better way is to click on the three-vertical-dot icon at the far upper right hand corner of the Chrome browser and go down to the "Zoom" option to choose a size. Please see the video.
- Load a new disk: Either drop and drag it onto the screen, or browse by clicking the file folder icon for "Disk 1" at the lower left-hand corner of the screen, and then click on the "Browse..." button.
- Eject a disk: Control-click anywhere on the keyboard or gray case area, and then from the menu, choose the third option "Reload."
Testing the Game Controllers

The next step will be to test the controller. Testing the controller consists of three steps:
Step 1. Verify that the controller works with your operating system, in my case, Apple macOS. Launching a joystick monitor diagnostic app is the easiest way to check your controller's basic operation. A great one for Apple macOS is Takahide Noro's Joystick Monitor, available for free at the Apple App Store. Please see the video above for details.
Step 2. Verify that the controller works on the particular Apple II emulator you want to use. This is not at all guaranteed! Different emulators have differing levels of support for game controllers. There are at least three different ways to do this. Please take a look at the video above for details.
Method 1: For this example, I am running macOS Sequoia 15.3, and I used the microM8-GUI a very simple, barebones Apple II emulator. I used a venerable Apple II gamepad diagnostic XPS Diagnostic IIe 1.0.5 to test the controller. Please take a look at the video above.
Method 2: If you are comfortable with entering and running a simple Applesoft program, type in the following program when your emulator is displaying the ] prompt.
10 HOME
20 VTAB 5 : HTAB 5 : PRINT PDL(0); " "
30 VTAB 5 : HTAB 12 : PRINT PDL(1); " "
40 GOTO 20
Enter this and then type RUN. See the video above for details. Note that in the video above, I typed in only the line for Paddle 0, omitting line 30 to save time.
Method 3: Some old Apple II game systems included a built-in game controller diagnostic. If you already have a particular emulator and a particular such game in mind, go for it! See the video above for my choice of using the game controller diagnostic utility I built into Webster's Numbers.
Step 3. Verify that the controller works with the particular Apple II game you want to use. Note: Even if your controller passes the first test, it's not guaranteed to work with all emulators and with all games. The last step is to see if the particular Apple II game you'd like to use works with the controllers. Again, this can vary from emulator to emulator. In this section, I present an overview of some of the emulators that run on macOS.
Survery of Selected MacOS Apple II Emulators
Maybe you already have a favorite Apple II emulator. If you don't, I survey here some of the currently available emulators for macOS. Please note two disclaimers:
Disclaimer 1: I am strictly an Apple guy. I have limited access to Windows machines, but I can at least verify that these controllers successfully pass the three tests for one particular set of parameters running in Windows. At my local public library, I successfully ran the venerable Choplifter arcade game running Windows 10 on a Dell Optiplex 3080 using the Apple ][js emulator for Windows. The controllers passed all three of my above tests.
Disclaimer 2: This is by no means an exhaustive list. For a more extensive survey, please see Emulation Evaluation 2023 in the quarterly Apple II magazine. As a matter of personal preference, I confess that my overall favorite emulators are Apple IIjse and microM8-GUI. My choices are heavily biased because these two are the only emulators I have found to fully execute my two Edu-Ware games faithfully. While some of the other emulators may have better fancier features and greater flexibility, none of the others run my games without problems ranging from minor annoyances to crashing completely.
With those two disclaimers on the record, here is my survey. All of the emulators here work with the controllers in this Instructable.
microM8-GUI is an excellent Apple II emulator developed by Melody and April Ayres-Griffiths at Paleotronic.com. As stated above, this emulator is my top choice. A description of the Graphical User Interface version microM8-GUI of microM8 is available at the Paleotronic website. The actual download page is available from Github. Don't be intimidated if you are not a Github user. It's a trivial download. Click on the second line to download "microM8-gui-macOS.zip," and then drag it to the desktop. When you first click on the unizipped app, you will see a warning notice that says "Apple could not verify "microM8-GUI" is free of malware that may harm your Mac...etc." You are presented with two buttons: One says "Move to Trash" and one says "Done." Knowing that Paleotronic is a safe, legitimate site, you can choose "Done." Next, go to the Mac System Settings/Privacy & Security, scroll all the way to the bottom where you will see under "Security" the line "microM8" was blocked to protect your Mac." Now punch the button that says "Open Anyway." You will get one more warning, which requires you to enter your Mac password, and finally you are ready to roll!
Apple IIjse ( commonly stylized as Apple ][jse ) is a free, online Apple IIe emulator built by Will Scullin using JavaScript and HTML5. An Apple II/Apple II+ version is also available at Apple IIjs. Note that this emulator do not support my game controllers when running in Safari. To use these game controllers with Apple IIjse or Apple IIjs, you must use either Chrome--not Safari.
Apple2TS is an outstanding emulator by Chris Torrence, who in my mind has set the standard for the best Apple II emulator ever. Note that like AppleIIjs, Apple2TS does not support these controllers when running in Safari. To use game controllers with Apple IIjs, you must use either Chrome--not Safari.
AMPLE is a user-friendly front-end for MAME (Multi-Arcade Machine Emulator). You can download Useful info in MAMEDEV Wiki. This is an excellent emulator with great flexibility and superb displays. The only downside is that it requires some setup, especially to support my USB game controllers. In particular, note that regardless of which controller you want to use (game paddles or the joystick) when configuring the app, choose "Apple II Analog Joysticks" as the last option. Even if you are using the game paddles!
Virtual II by Gerard Putter has a very nice user interface. On the positive side, Virtual II supports these game controllers perfectly without any special setup or restrictions. Unfortunately for my purposes, for some reason my Edu-Ware games do not work reliably with Virtual II.
Sources of Vintage Apple II Games and Other Software?
There are many archives and repositories of emulator-readable disk images of vintage Apple II games and other software. Look for disk image files with .dsk or .woz formats.
Suggested archives:
Internet Archive 4am Collection
Internet Archive of Apple II Disk Image Collection ( Click on the "Zip 1 file" link, and be patient--huge file! )
Internet Archive Apple Educational
Internet Archive Apple Educational Edu-Ware
A Bunch of Random Apple II Disk Images
Apple II Software Mirrors / Educational
My Edu-Ware Titles (and Others!)



For the sake of posterity, the video above gives an overview of my two early education games published by Edu-Ware. The Apple II disk images for all of my software are available online at:
Edu-Ware
Spelling Bee Disk File (.woz) Click on the "SHOW ALL / 42 Files" link.
Introduction to Counting Disk File (.woz) Click on the "SHOW ALL / 38 Original" link.
Introduction to Counting Manual Scroll down to Eduware_Introduction_To_Counting_manual.pdf
Spelling Bee Games Disk File (.dsk). Click on Zip
Webster's Numbers (originally published as Counting Bee Games )
Webster's Numbers Disk File (.dsk) Scroll down to Webster's Numbers (1983-EduWare).dsk
Counting Bee Games Disk File (.dsk)
Counting Bee Games Manual
Wizard of Where
Wizard of Where Disk File (.dsk)
Wizard of Where Manual
Ampergraph
Ampergraph Manual
Acknowledgements
I am grateful to many Apple II enthusiasts who have made possible this project. First and foremost, none of this would have happened without the encouragement of Sherwin Steffin, the founder of Edu-Ware Services, Inc. Thanks Sherwin! Thanks also to the many constructors of Apple emulator platforms: Melody and April Ayres-Griffiths, Gerard Putter, Will Scullin, Chris Torrence. Thanks to Matthew Heironimus for his Arduino joystick library, and special thanks to David Schmidt at RetroFloppy for recovering the forty year old copy of Wizard of Where. Thanks are due to those unsung heroes who have been preserving the legacy of these old Apple disks, particularly the work of the mysteriously anonymous "4 am" who is responsible for most of the files in the previous section. Finally, thanks to those of you on the Facebook Apple II Enthusiasts page, especially Jonathan Adar, who amazingly actually had offered to ship me his personal Apple IIc so that I could try my hand at recovering old disks!