M30 8BitDo wireless MegaDrive pad
M30 8BitDo wireless 2.4g gamepad could be obtained for example from amazon or your other favourite vendor.
How to make it work with ZX Next
- power off the ZX Next
- plug the receiver into ZX Next, don't push hard, it shouldn't go completely in, the connector-to-board soldering may be damaged if excessive force is used
- power on the ZX Next
- (first time) press SPACE to enter boot menu, press "e" to edit ZX Spectrum Next configuration (or also others)
- (first time) use cursor keys to navigate in the configuration, edit the desired joystick port to MD1 (MD2)
- (first time) save the modified configuration
- the receiver should keep blinking with blue LED (awaiting controller pairing)
- press START (big "pillow" blue button) on the controller (the English manual says "mode" button, it's a typo!)
- the receiver should stop blinking (staying blue all the time), and controller should work
How to re-pair particular controller with receiver
Power cycle the ZX Next to restart the receiver, it should keep blinking the blue LED. Then hold START button for 3 seconds on the controller to search for the new receiver.
How to test the functionality of controller
You can use either (available on your NextZXOS sdcard) the extras/nextest/NEXTEST.NEX factory tool or extras/kempstontester/KEMPSTON.snx, both should display numeric(letter) values changing when you are pressing the buttons and arrows on controller.
The START button should be read as binary value 10000000, A button as 01000000, B button as 00010000 (Fire1 or regular Fire button on classic Kempston joystick interface) and C button as 00100000 (Fire2 on classic Kempston joystick interface - supported only rarely by legacy games).
If the A button is read as 00001000 (up direction) and START is not being read at all, you have the ZX Next joystick port configured as Kempston1/2 joystick, not as MD1/2. Use the boot menu to modify the configuration permanently, or NMI menu and settings to modify it temporarily.
Hold the ☆ "star" button (the small black round one on the left, it has star symbol), and press one of the A/B/C buttons to enable auto-fire on them. Then pressing the particular button will emit pulses instead of stable "pressed" signal, the pulsing should be visible in testing tools mentioned above.
To disable autofire for particular button, proceed the same way, hold ☆ "star" button and press the button with currently enabled autofire.
Autofire does NOT work on direction pad.
Charging the controller
Use the micro-USB cable provided along the controller and some USB charger/computer (if you have linux PC on the other end, the controller works as game controller with 6+ buttons and digital directions readings, other OS may need some drivers installation - YMMV). Time to charge depleted battery is about 1-2 hours.
Controller firmware upgrade
Requires you to open the receiver, so make sure you have the correct tools. Do NOT upgrade only controller, both controller and receiver must be updated to the same firmware version.
See this handy article for details: https://www.retrorgb.com/how-to-update-your-m30-2-4g-if-youre-having-connection-issues.html