New Development - Programmable Joystick Interface

Propose new game/software design concepts or new game/software ideas. They can be as whimsical as you like, just be careful you don't ask someone to make it for you...
Post Reply
User avatar
TomD
Manic Miner
Posts: 379
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

New Development - Programmable Joystick Interface

Post by TomD »

Something I always wanted as a kid while browsing the magazines adverts was a programmable joystick interface like the COMCON
(https://spectrumcomputing.co.uk/entry/1 ... _Interface), not sure why but they looked cool :-) Anyway I never did get one relying mostly on my trusty Interface 2 or just using keys, that is until now...

I've developed a programmable joystick interface using a Pico which uses a small OLED screen and menu system to pick the keys you want for each direction or fire button (no more wires). It currently works with 9pin Amiga compatible 2button joysticks so you can now have two fire buttons, useful for games like R-Type which has fire and detach buttons. I've tested this with a two button Sega Mastersystem controller and it works great.

The main aim for creating this was to get this working with Bluetooth controllers via a Pico-W so you can use a PS4 Dualshock controller or similar. I'll keep this thread updated with progress on that front.

Few other things on the to-do list:

- Work with Kempston mapping as well as programmable keys
- Work with Megadrive pads, currently only Amiga or original Atari joystick compatible. It does work with Mastersystem controllers but for Megadrive it will need to supply voltage to the correct pin.
- Work with Amstrad CPC 2button joysticks, these are wired differently to Amiga/Atari.
- Bluetooth support

TomD


Image

Image

Image

Image
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
User avatar
TomD
Manic Miner
Posts: 379
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

Re: New Development - Programmable Joystick Interface

Post by TomD »

Another photo Image
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
User avatar
HEXdidnt
Manic Miner
Posts: 224
Joined: Thu Mar 09, 2023 2:40 pm
Location: Harrow, London, UK
Contact:

Re: New Development - Programmable Joystick Interface

Post by HEXdidnt »

Awesome!

Given how common it became, throughout the Spectrum's life, for games to have more than one 'fire' button, I've always wondered why no-one ever developed an interface that would support multiple buttons. So many arcade conversions would benefit by at least two button support.
...Dropping litter in the zen garden of your mind

The Hub of all things HEXdidn't... | HEXdidn't... on YouTube ...on ZXArt ...on deviantart
User avatar
TomD
Manic Miner
Posts: 379
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

Re: New Development - Programmable Joystick Interface

Post by TomD »

HEXdidnt wrote: Mon Sep 25, 2023 12:18 pm Awesome!

Given how common it became, throughout the Spectrum's life, for games to have more than one 'fire' button, I've always wondered why no-one ever developed an interface that would support multiple buttons. So many arcade conversions would benefit by at least two button support.
Yes definitely, even having the ability to re-map the 2nd button to up to make jumping easier. Hoping once I get the bluetooth working you could in theory have 12 buttons all mapped to different keys :-)
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
XoRRoX
Manic Miner
Posts: 233
Joined: Wed Jul 11, 2018 6:34 am

Re: New Development - Programmable Joystick Interface

Post by XoRRoX »

Great work, Tom 8-)
Looking forward to seeing progress.
User avatar
TomD
Manic Miner
Posts: 379
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

Re: New Development - Programmable Joystick Interface

Post by TomD »

Quick update.

I created a new PCB which adds a jumper to improve compatibility with different joystick types. This was mostly so I could get my Amstrad 2 button joysticks to work. Spectrum didn't really get any 2 button ones, in my collection anyway.

Although the Atari 9pin seemed to be a standard with GND, Up, Down, Left, Right & B1 common across manufacturers, when it comes to additional fire buttons and power it was a free for all.

Atari/Kempston/Amiga has Pin9 for B2 and Pin5 for B3, 5V on Pin 7. Amstrad has Pin7 for B2, Pin5 for B3 and no power output, so with a standard set-up you would be pushing 5V to B2 and shorting to GND when pressed. Sega went with 5V on Pin 5 (instead of B3) and a funky combo of Pin 7 and Pin6/9 to get more than 3 fire buttons.

New PCB allows you to swap B2 around as needed and also which pin you want 5V going to, 5 or 7. Power isn't really needed unless you have a fancy autofire joystick and all joysticks I've tried work fine without it, including my ZipStick with autofire.

TomD
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
User avatar
Joefish
Rick Dangerous
Posts: 2059
Joined: Tue Nov 14, 2017 10:26 am

Re: New Development - Programmable Joystick Interface

Post by Joefish »

If you want to make it truly versatile, have it able to simulate Fuller and Kempston style return bytes (one has bits that go low, the other high, with different bit orders) and select the IN port it responds to (127 for Fuller, 31 or optionally 55 for Kempston). In fact, if the Kempston IN port was customisable to anything, you could add multiple interfaces - at least until you ran out of power! And on that note, don't forget a through-port, too!
User avatar
TomD
Manic Miner
Posts: 379
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

Re: New Development - Programmable Joystick Interface

Post by TomD »

Joefish wrote: Tue Oct 10, 2023 12:36 pm If you want to make it truly versatile, have it able to simulate Fuller and Kempston style return bytes (one has bits that go low, the other high, with different bit orders) and select the IN port it responds to (127 for Fuller, 31 or optionally 55 for Kempston). In fact, if the Kempston IN port was customisable to anything, you could add multiple interfaces - at least until you ran out of power! And on that note, don't forget a through-port, too!
It can easily flip the bits and order as it does that for keyboard vs. Kempston already, however I've hardwired Port 31 for Kempston & Port 255 for the keyboard which covers Sinclair & Cursor. With the ability to map to any key combo I think multiplayer should be covered although I could add a jumper so you could flip between 31 and 55 (read A3 instead of A5).

Through port is definitely on the list and I've created the adapter bracket already. While in test I'll keep it as a simple standalone as easier to work with. Idea is once final I will design a board with SMT components (other than the Pico) to shrink it down.

TomD
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
XoRRoX
Manic Miner
Posts: 233
Joined: Wed Jul 11, 2018 6:34 am

Re: New Development - Programmable Joystick Interface

Post by XoRRoX »

TomD wrote: Tue Oct 10, 2023 2:34 pmPort 255 for the keyboard
A typo, I presume?
User avatar
TomD
Manic Miner
Posts: 379
Joined: Tue Nov 13, 2018 9:47 am
Location: Leeds UK
Contact:

Re: New Development - Programmable Joystick Interface

Post by TomD »

XoRRoX wrote: Fri Oct 13, 2023 8:02 pm A typo, I presume?
Good spot, yes I meant port 0xfe which is 254 not 255.

TomD
Retro enthusiast and author of Flynn's Adventure in Bombland, The Order of Mazes & Maze Death Rally-X. Check them out at http://tomdalby.com
Post Reply