The RetroZord Adapter

Discussion of keyboards, gamepads, joysticks and other input related peripherals.
User avatar
sonik
Posts: 91
Joined: Sun May 09, 2021 3:31 pm
Location: Brazil
Has thanked: 15 times
Been thanked: 17 times

The RetroZord Adapter

Unread post by sonik »

Quick history

In the past I used all sorts of console controllers on a PC via parallel port adapters. Those are unusable nowadays.
Used to play MAME with a saturn multitap and a bunch of controllers and it was great.
Some years ago I wanted to reuse my old saturn adapter to output via usb. I could not find any adapter do to this. Then I decided to do my own adapter.
I also wanted to use a guncon on pc. This functionality existed back in the day via parallel port too! But I could not find any adapter to make it work via usb. I decided to make my own adapter too.
With an Arduino Leonardo and the dual Saturn port connected, I see that it still have a lot of free pins to connect stuff. Then I added the PlayStation port and even a SNES port.
Then the RetroZord is born.

So what is it the RetroZord?

It's a DIY Arduino based adapter for:
  • Saturn / MegaDrive controllers and multitap* for up to 6 players
  • PlayStation controllers
  • SNES / NES controllers and multitap* for up to 4 players
Can be made just for one kind of adapter or combined.

Each adapter have at least a unique USB Serial ID.
This is useful on MiSTer as it can distinguish each Arduino based adapter by it's ID and each adapter will have it's own input mapping.
The PlayStation adapter have multiple IDs as it implements various output modes.

Source and more info on github:
https://github.com/sonik-br/RetroZordAdapter


Saturn / MegaDrive adapter

Some of the supported Saturn/MegaDrive devices
Some of the supported Saturn/MegaDrive devices
saturn.jpg (66.51 KiB) Viewed 4072 times

Adapter can be made with a single or dual Saturn ports.
Dual ports can be used at the same time. Both supports multitap.
Both ports also supports MegaDrive devices with a simple to build DB9 to Saturn adapter. This adapter follows the SEGA documentation and is also compatible with some saturn games.
If Saturn connection is not required, then use a DB9 port connector instead of the saturn one.
It's also possible to mix the ports. eg: 1 x Saturn port and 1 x MegaDrive port.

Supported devices:
Saturn Normal pad, Fighting pad, Twin Stick, Saturn Analog pad, Racing wheel, Saturn multitap
MegaDrive 3 and 6 button pad, MegaDrive multitap
MegaDrive controllers are also supported on Saturn multitap.


PlayStation adapter

Some of the supported PlayStation devices
Some of the supported PlayStation devices
ps.jpg (76.52 KiB) Viewed 4072 times

This one is a bit complex to make as it requires voltage conversion. But is well worthy to use on MiSTer with a Guncon!

Supported devices:
Normal pad, DualShock, DualShock 2, Guncon, NeGcon, Volume (Paddle), JogCon (works as the JogConUSB by sorgelig)

Guncon is supported on MiSTer since version 20220326 (Mar 26, 2022). It's detected as a lightgun and works on any core with lightgun support.


SNES / NES adapter

Some of the supported SNES/NES devices
Some of the supported SNES/NES devices
snes.jpg (23.8 KiB) Viewed 4072 times

Supported devices:
SNES pad, NES pad, SNES multitap, SNES NTT pad (untested)
NES controller can be used if adapter is made with a NES port. Or if made with a SNES port then a simple NES to SNES adapter can be used.


General notes

NeGcon and the Namco Volume controller works as paddle on MiSTer. Currently there's no support for paddle in the PSX core. I'm testing a mode compatible with the core but it's not ready and also the core is beta and the support for the NeGcon might change.
The Guncon requires a standard definition CRT display and also a composite sync signal from the MiSTer. Adapter only works with 1st party Namco Guncon. All 3rd party guns I tested not worked.
To use the JogCon I recommend to supply 9v to power it's motors.

If you already have some Arduino based adapter and want the RetroZord features, it might be possible to use it's code. The voltage level and used pins must match. Pins are easily configurable on the arduino sketch files.

*Saturn/MegaDrive multitap
Saturn multitap supported.
MegaDrive multitap supported but only the SEGA ones.
EA multitap not supported.

*NES/SNES multitap
The provided Arduino sketch is hardcoded to work with only one controller. I will be updating it to output up to 4 controllers.
NES multitap not supported.
SNES multitap supported but only in single adapter mode.
If using all the adapters (2 x Saturn and 1 x PlayStation) there's no extra pins available to use and the multitap requires additional pins.


Image credits: Wikipedia, The Vanamo Online Game Museum, segaretro.org, fullyretro.com.
User avatar
sonik
Posts: 91
Joined: Sun May 09, 2021 3:31 pm
Location: Brazil
Has thanked: 15 times
Been thanked: 17 times

Re: The RetroZord Adapter

Unread post by sonik »

My fully assembled adapter with two Saturn, one SNES and one PlayStation inputs.
There's a three position switch to select between Saturn/MegaDrive, SNES/NES, PlayStation modes.

RetroZord1.jpg
RetroZord1.jpg (52.32 KiB) Viewed 4094 times
RetroZord2.jpg
RetroZord2.jpg (49.35 KiB) Viewed 4094 times


Attached below are some pics i took during the build process.
The wiring is a mess and the spacing is too tight. It's two stacked Arduino cases.

Don't be afraid! This is for the full adapter with support for Saturn, PlayStation and SNES on a single Arduino board.

Adapters for a single device are much easier to build!
Attachments
Everything wired. View from side
Everything wired. View from side
zord09.jpg (105.04 KiB) Viewed 3620 times
Everything wired. View from side
Everything wired. View from side
zord08.jpg (82.05 KiB) Viewed 3620 times
Everything wired. View from top
Everything wired. View from top
zord07.jpg (80.83 KiB) Viewed 3620 times
Almost assembled. Bottom left is the 3.3v voltage regulator.
Almost assembled. Bottom left is the 3.3v voltage regulator.
zord06.jpg (86.77 KiB) Viewed 3620 times
Mode selection switch
Mode selection switch
zord05.jpg (30.1 KiB) Viewed 3620 times
Stacked cases
Stacked cases
zord04.jpg (76.17 KiB) Viewed 3620 times
Arduino case and top with with switch and level shifter. Also pins for the ISP header
Arduino case and top with with switch and level shifter. Also pins for the ISP header
zord03.jpg (109.42 KiB) Viewed 3620 times
Arduino inside the case
Arduino inside the case
zord02.jpg (62.89 KiB) Viewed 3620 times
Empty case with a piece of plastic to show the Arduino LED.
Empty case with a piece of plastic to show the Arduino LED.
zord01.jpg (44.03 KiB) Viewed 3620 times
Mares
Posts: 2
Joined: Sun May 24, 2020 10:56 pm

Re: The RetroZord Adapter

Unread post by Mares »

Hi
This looks awesome .I was wondering what arduino boards are you using and is it possible to see some photo's of the wired up boards
great project I am eager to get my negcon working on MiSTer :)
MrChatouille
Posts: 18
Joined: Thu Jan 06, 2022 9:38 am
Location: France
Has thanked: 1 time
Been thanked: 11 times
Contact:

Re: The RetroZord Adapter

Unread post by MrChatouille »

This seems great!
User avatar
sonik
Posts: 91
Joined: Sun May 09, 2021 3:31 pm
Location: Brazil
Has thanked: 15 times
Been thanked: 17 times

Re: The RetroZord Adapter

Unread post by sonik »

Mares wrote: Tue Apr 05, 2022 2:13 am Hi
This looks awesome .I was wondering what arduino boards are you using and is it possible to see some photo's of the wired up boards
great project I am eager to get my negcon working on MiSTer :)
I'm using a Leonardo. Updated the post above with pictures. Space is too tight for all the wires and it looks messy XD
User avatar
sonik
Posts: 91
Joined: Sun May 09, 2021 3:31 pm
Location: Brazil
Has thanked: 15 times
Been thanked: 17 times

Re: The RetroZord Adapter

Unread post by sonik »

There's an new, updated branch.

Lower Input Latency of all supported controllers.
Guncon is working even better now with the improved latency.

Snes NTT pad confirmed to work by @MisterAddons.
The additional buttons are not yet mapped to output. I will do this in a later version.

Ps1 Analog Controller in Flighstick mode confirmed to work by @roundy07.
A real Flighstick is expected to work too but untested yet.

Ps1 NeGcon can be used to output as MiSTer Wheel.
Currently AO486 and PSX core supports racing wheel controllers.
With this, real ps1 wheels can be used on mister as long as they implement the NeGcon protocol.
In this mode it will also work as a Paddle across all cores with Paddle support.

Those changes will be merged into main but will take some time as I still need to implement the NTT pad output.
Firmware for the full adapter (MD/SAT/SNES/PSx) is taking the entire space of the arduino. Adding more features will requires some brutal optimization.
KremlingKuthroat19
Posts: 237
Joined: Sat Aug 22, 2020 3:08 am
Has thanked: 27 times
Been thanked: 50 times

Re: The RetroZord Adapter

Unread post by KremlingKuthroat19 »

This looks like an awesome project @sonik! Personally speaking, I'm interested in a SNAC solution as long as it has 2 player support. That'd be the best.

Also, I have a recommendation, if feasible. Since it's possible to play the 2600 console using a Sega Genesis pad, because they use the same pin configuration, is it possible to get Atari 2600 controller support via the Genesis ports? The reason, is that with 2 controller inputs, this may be the best/only way to get 4 player paddle support for the 2600 using original 2600 paddles on MiSTer.

What are your thoughts? Is it possible to get Atari 2600 controller support on this device?
User avatar
sonik
Posts: 91
Joined: Sun May 09, 2021 3:31 pm
Location: Brazil
Has thanked: 15 times
Been thanked: 17 times

Re: The RetroZord Adapter

Unread post by sonik »

KremlingKuthroat19 wrote: Mon Jun 20, 2022 5:44 pm What are your thoughts? Is it possible to get Atari 2600 controller support on this device?
At least on it's current form I only want to support controllers that can be detected.
That's why the adapter supports Genesis and Saturn on the same port but not Master System and Atari 2600.
It's not possible to know if/when an Atari pad is connected.
Also the +5V line wiring is not compatible with atari controllers.
Post Reply