Hi Ricardo!
Firstly, thank you so much for your work on Unijoysticle! I've got to the prototyping stage for something like this often, but never quite to a finished product. In particular, this project has pretty much the only complete implementation of an ESP32 Bluetooth HID Host for gamepads out there. Great work!!
I'm currently designing my own board to run Unijoysticle on. I've only ever built a bunch of stripboard circuits before, but I'll soon be ordering my PCB for my Unijoysticle clone. It's essentially a 'mini' version, using an ESP32 PICO board. I'm dropping the LEDs and the barrel jack, instead relying on the PICO's USB port for external power. I don't intend to do anything commercial -- just a fun project to keep me out of trouble :)
Anyway, I'm currently looking at adding support for the 8BitDo M30 Bluetooth gamepad. This works well enough in Switch/X-Input mode, but I'd like to move the buttons around a bit to more closely match the proper UJ positions.
These gamepads are very similar to the old Genesis/Megadrive pads, with a single D-Pad, 6 face buttons and a START button. It also adds two shoulder buttons and three option buttons.
They're mapped quite differently to the existing two supported 8BitDo pads. Before I start monkeying about with the code, would a new parser, e.g. uni_hi_parser_8bitdo_m30 be acceptable? I'll get myself set up on Gitlab and raise a PR when it's ready!
I'll eventually be using the Unijoysticle code with a bunch of different systems (Atari XEGS, ST, Falcon030, Commodore CDTV, VIC-20). Also, I plan on reusing UJ's bluetooth code for a couple of machine-specific boards. Foremost, I want to free my Atari Jaguar from the tyranny of its dreadful controller. Once I've got the multiplexing sorted, I'm going to use unused gamepad buttons as 'shift' buttons so that the full 12-key 'telephone-style' buttons can be supported.
Lastly, I want to eventually build a board for my Acorn Archimedes. Sadly those machines never standardised on a particular joystick interface, but some sort of connection via the parallel port seems to be most common.
Thanks again for your work - really great stuff!!
Cheers,
Chris