MiSTeryNano icon indicating copy to clipboard operation
MiSTeryNano copied to clipboard

4 all cores: 2nd retro D9 Joystick Interface multiplex

Open vossstef opened this issue 1 year ago • 9 comments

idea how to design a 2nd D9 retro Joystick interface multiplex.

  • PMOD shape. Usable for boards as such with spare PMOD like TP20k, TM60k, TM138k Pro. Assume that user will select Dualshock PMOD or D9 Joystick PMOD for use and not both types at the same time.
  • use two pcs 74LVC245 TSSOP-20 as 5V tolerant buffer with enable
  • dedicated control line from core to each buffer. Single buffer at a time enabled ensured by core.
  • 220R series resistors at buffer outputs to avoid excessive current drawn in case FPGA and buffer drive at the same time. e.g. user select Dualshock in OSD but plugs a D9 Joystick PMOD sharing the same interface to FPGA.
  • idea would support TN20k cores as well.
  • 3V3 to 5V converter (same as m0s pmod) driving the Joystick supply
  • presently unused TN20k IO6 and IO7 (first idea) as multiplex control signal.
  • if multiplex signals not driven use just single D9 use.
  • Two Joystick buttons supported.

vossstef avatar Nov 12 '24 22:11 vossstef

early study prototype for a dual D9 Joystick to PMOD / SDRAM slot combo Adapter.

grafik

TN9k adhoc wiring via PMOD TN20K adhoc wiring via PMOD TP20K PMOD TP25K SDRAM slot (support A2600 (VIC20) D9 Joystick use as no DRAM needed) TM60K NEO 2nd SDRAM slot or PMOD (support A2600 (VIC20) D9 Joystick use and Dualshock at the same time) TM138K Pro PMOD

vossstef avatar Nov 21 '24 21:11 vossstef

Funny idea. I totally missed that one. Yes, why not? The TN20k is low on pins and this may help solving it. And the multiplexers can act as level shifters as well.

harbaum avatar Apr 04 '25 18:04 harbaum

Another vote for adding a second joystick port to the MiSTeryNano here.

danboid avatar May 04 '25 12:05 danboid

If you plan a dedicated board, could you consider adding support for Mega Drive / Genesis pads via a switch?

Reasons:

  1. New stock is available in larger quantities.
  2. Gamepads offer better handling for certain games.

References:

Alternatives / Related Projects:

darius600 avatar Sep 16 '25 09:09 darius600

Why would one want that instead of the USB variant?

harbaum avatar Sep 16 '25 12:09 harbaum

Why would one want that instead of the USB variant?

Can't we have support for both?

I have had my (clone, 6 button) Mega Drive joypad working with the MisteryNano anyway. albeit using only one button

Does / could the MisteryNano support 6 button MD controllers is the question here I think. Unfortunately, I only own the Nano 20K and there isn't a MD core for the Nano 20K yet, right? I think the ST only supports 2 fire buttons, in specific games and with the right port and joystick combo. The Amiga only supports up to 3 fire buttons, I'm not sure 3 are supported by NanoMig tho?

6 buttons MD controllers are also used by the ZX Spectrum Next and its clones. I'd like to see a ZXN core for the Nano 20K.

danboid avatar Sep 16 '25 12:09 danboid

You need bidirectional level shifters as the extra buttons on Genesis pads are IMHO switched on by an output on the connector. The level shifters on the shields are actually bidirectional. But they are huge and need many components. So for the stand alone board with two joystick ports I switched to uni directional and smaller level shifters. So that board will not support the extra pins the Genesis pads need.

But ... It's all open source and open hardware and whoever wants support for any kind of peripherals is very welcome to support that.

The Genesis has not been ported to the Tang Nano 20k and I doubt it would fit into it. So there's not much use for it.

Also, this device is mainly for technology tests and probably not for end users. Producing these isn't trivial nor cheap and I doubt there'll be more than my usual 5 prototype devices. This may be different with later devices.

harbaum avatar Sep 16 '25 13:09 harbaum

The Genesis has not been ported to the Tang Nano 20k and I doubt it would fit into it. So there's not much use for it.

I'm not an electronics engineer, FPGA programmer, chip designer or any such thing but my laymans impression was that, although the Amiga was released a few years before the Mega Drive, it was just as complex and powerful with several custom chips and more ports and expansion options than the Mega Drive, and they both use pretty much the same spec CPU.

There is also a SNES core ( https://github.com/nand2mario/snestang ) for the Nano 20K, I've tested SNEStang on my Nano 20K and it works well so is the MD really that much more complex than both the Amiga and the SNES that it would be out of the question on the 20K?

danboid avatar Sep 16 '25 13:09 danboid

Why would one want that instead of the USB variant?

Latency. There’s a whole set of products around this topic. Here e.g. a nicely explaining video from the MiSTer universe. To me, using DB9 feels more original. If you try a side scroller with DB9 vs. USB there is a good chance you’ll notice the difference too.

Regarding the Mega Drive controllers:

  • I was really only referring to 1-button use (NanoMig core)
  • My cheapo third-party Mega Drive controller worked (before the fire button broke 😁).
  • My M30 wireless with DB9 port did not.

I was hoping compatibility could be extended to more controllers by ensuring 5V is on the correct line.

darius600 avatar Sep 16 '25 16:09 darius600