GPIO controllers: reduced input latency?

Hi,

I’m running the Lakka 2.3 build for GPi Case and noticed a real improvement in input latency with the VICE x64 core, when compared to my Pi 3. I use a USB control pad with the Pi 3, so I wondered if there is some benefit from having the controller directly attached to the GPIO pins rather than the USB bus.

Can anyone confirm how Lakka addresses the controller? It appears as an Xbox controller in RetroArch, but I wondered if there were some middleware such as GPIOnext (https://github.com/mholgatem/GPIOnext) to bridge the gap between RA and GPIO.

The BMC64 project (Bare Metal C64, https://github.com/randyrossi/bmc64) can natively use a retro 9-pin joystick directly connected to specific GPIO pins. I have tried this and the input latency is non-existent, feels identical to a real Commodore 64. I wondered if it was possible to achieve the same with RetroArch / Lakka and what the most efficient way to do this might be. I would be grateful to hear the Devs’ view on this!

Thanks.

AFAIK, it should provide some benefit, but only a few milliseconds (that is, the USB polling rate, plus a few ms maybe for processing the USB signal).

In the case of the bare-metal installation, it’s probably more to do with avoiding any driver abstractions at all. That is, no GL in between the program and the graphics output.