A clone of the First Byte Joystick Interface with audio out and pass-through for the Acorn Electron that uses the rear expansion connector.
Features
- 9-pin standard Atari-type digital joystick connector
- Compatible with the First Byte Switched Joystick Interface
- Compatible with games that include native First Byte support
- Compatible with most keyboard only games (via FB utility)
- Compatible with most analogue joystick games (via FB utility)
- 3.5mm Audio Out Jack (externally amplified devices only)
- Pass-through connector
- Power LED
Compatible Joysticks
Any DE9 (9pin) digital joystick or joypad that uses the 'Atari' single button standard. This standard was very common on many computers and consoles of the era and was not exclusive to Atari systems. For example joysticks which claim they are compatible with Atari Systems, C64, Amiga, VIC-20, Kempston and others should generally work fine. Some joysticks have switches with different modes of operation. Ensure they are in the correct mode.
Incompatible Joystick Standards
Although the following joystick standards use the same DE9 connector, they use incompatible signalling and should not be used with the Stickleback.
| Incompatible Standards |
|---|
| 3D0 |
| J-PC |
| MSX |
| SEGA |
| Sinclair / Interface II |
| X68000 |
| Qty | Component |
|---|---|
| 1 | 5mm LED |
| 1 | 330Ω Axial Resistor - ¼ watt (LED) |
| 4 | 10KΩ Axial Resistors - ¼ watt |
| 1 | 74LS138 16pin DIP |
| 1 | 74LS367 16pin DIP |
| 1 | 74LS30 14pin DIP |
| 1 | 10uF Radial Electrolytic Capacitor |
| 1 | 5-pin 3.5mm Audio Jack Socket TN/T/RN/R/S |
| 1 | Male DE-9 Connector - right angled |
| 1 | 50pin (2x25) Edge Connector |
- IC sockets optional
- The LED resistor is nominally 330Ω but anything up to 1K is fine
- If you do not care about audio, you can omit the audio socket and the 10uF capacitor entirely.
- When assembling, gently bend the pins of the edge connector so it aligns with the pads on the PCB. Make sure the PCB is straight before soldering.
A 3D printable case specifically designed for this PCB is also available. STLs are included in this repo.
- Insert the PCB in the bottom part of the case, making sure the holes are aligned with the screw posts.
- Align the top part of the case with the bottom.
- Use 4 x 3.5mm self-tapping screws to attach the case parts. Max length about 15mm
The Stickleback has several modes of operation which allow the Joystick to be used with almost every Acorn Electron game.
Native mode means the game has built-in support for this joystick interface and no further setup is required. This joystick interface is referred to by several names as shown in the table
| Name |
|---|
| First Byte Interface |
| FB Interface |
| FCC0 Interface |
In cases where a game requests joystick configuration values, use these values
| Parameter | Value |
|---|---|
| Address | FCC0 |
| Code Type | 1 |
Examples of games with native support
| Game |
|---|
| CRACK-UP |
| FRAK! |
| HOSTAGES |
| RUBBLE TROUBLE |
This mode is used for games that have no joystick support at all. A small software routine is installed which makes the joystick emulate key presses. See the software section for more information.
This mode is used for games that only support Acorn's Analogue Joystick. A small software routine is installed which makes the joystick simulate. the Acorn Analogue Joystick. See the software section for more information.
- The Stickleback provides an audio out connection using a 3.5mm jack socket. Any connected audio device MUST be externally amplified.
- When an external audio device is connected, the Electron's internal speaker will still produce sound. If this is not desired you can open the case and simply disconnect the internal speaker.
There are some cassette tape and disc images available in the repo which contain software utilities to support the First Byte (and consequently the Stickleback) joystick interface.
Available on the disc image. Test the joystick by moving a little stickleback. Very simple, only - up, down, left, right and fire.
10 REM STICKLEBACK JOYSTICK TEST
20 MODE 5
30 VDU 23,1,0;0;0;0
40 CLS
50 VDU 23,240,6,12,62,127,223,255,127,62
60 VDU 23,241,0,0,48,96,224,192,96,48
70 X=10:Y=10
80 COLOUR 2
90 PRINT "STICKLEBACK JOYSTICK"
100 PRINT TAB(X,Y);CHR$(240)+CHR$(241)
110 F% = 0
120 J% = ?&FCC0 AND 32
130 IF J% <> 32 THEN F%=1
140 J% = 31 AND ?&FCC0
150 IF F% = 1 THEN J% = 31 - J%
160 IF J% > 14 AND J% < 31 THEN PRINT TAB(X,Y);" "
170 IF J% = 30 AND Y > 1 THEN Y = Y - 1
180 IF J% = 29 AND Y < 29 THEN Y = Y + 1
190 IF J% = 27 AND X > 1 THEN X = X - 1
200 IF J% = 23 AND X < 18 THEN X = X + 1
210 IF J% = 15 THEN SOUND 12,12,12,12
220 GOTO 100
Available on the disc image. The original First Byte test program which also prints the the direction values for use in BASIC
10 FLAG% = 0
20 JOY% = ?&FCC0 AND 32
30 IF JOY% <> 32 THEN FLAG% = 1
40 JOY% = 31 AND ?&FCC0
50 IF FLAG% = 1 THEN JOY% = 31 - JOY%
60 PRINT JOY%
70 GOTO 40
This is the "First Byte Joystick Interface" games menu which can be loaded from the cassette or disc image. It essentially contains a list of games which are automatically "patched" to add support for the joystick. Choose the game and then continue to load the game from cassette or disc.
| Games Menu |
|---|
| SNAPPER |
| ARCADE |
| FREE FALL |
| STARSHIP COMMAND |
| HOPPER |
| MONSTERS |
| METEORS |
| MOONRAIDER |
| CYBERTRON MISSION |
| SWOOP |
| KILLER GORILLA |
| CROAKER |
| ESCAPE FROM MOONBASE ALPHA |
| BANDITS AT 3 O'CLOCK |
| POSITRON |
| ELECTRON INVADERS |
| GALACTIC COMMANDER |
| GISBURNE'S CASTLE |
| MR WIZ |
| ALIEN DROPOUT |
| CHUCKIE EGG |
| KAMIKAZE |
| SPACE STATION ALPHA |
| VORTEX |
| DIAMOND MINE |
| ALIEN BREAK IN |
| BIRDS OF PREY |
| ATOM SMASHER |
| DYNABYTE POOL |
| BLAGGER |
| BUGBLASTER |
| LUNAR RESCUE |
| GUARDIAN |
| CITY DEFENCE |
| GALAXY WARS |
| PENGWYN |
| HUNCHBACK |
Cassette Loading
- Insert the JoyGame cassette
*TAPECHAIN ""- Choose your game from the menu
- Insert your game cassette
CHAIN ""
Disc Loading
- Insert the JoyUtils disc
*DISCCHAIN "JOYGAME"- Choose your game from the menu
- Insert your game disc
*EXEC !BOOT(do not use SHIFT+BREAK to boot)
This is the "First Byte Joystick Interface" setup menu which can be loaded from the cassette or disc image. It essentially allows you to patch any game for use with the joystick. There are two analogue routines which work with games that support analogue joysticks. The only difference between the routines is the addresses that they sit at. The last option is for keyboard emulation. You can define the keys that the joystick will emulate then load the game.
Cassette Loading
- Insert the JoyPch cassette
*TAPECHAIN ""- Choose the routine to use
- Insert your game cassette
CHAIN ""
Disc Loading
- Insert the JoyUtils disc
*DISCCHAIN "JOYPCH"- Choose the routine to use
- Insert your game disc
*EXEC !BOOT(do not use SHIFT+BREAK to boot)
Everything is freely available so you can make your own PCB and case, however if you would like to support me, please see the following links.
- My Projects - Donate on this page
- Order the Stickleback PCB
- Order the Stickleback Case

