This was my attempt to create a a SNES to Bluetooth adapter. It works but the average latency was 18.35ms, which I think is too much to be considered a good controller.
It looks like 18.35ms is not really among the best, but there are still lots of products in that range.
I dunno if I'd say your project didn't work out... Maybe more like you succeeded but still have work to do. Do you think you'll try swapping the Bluetooth for a 2.4Ghz module or something and see if that performs better?
How much are you doing with "rolling your own" vs using off the shelf solutions? For example if you are deep into rolling your own which Bluetooth profile are you using?
So in this case it's my own code to read the state of the controller and using the ble-gamepad library, which uses NimBLE under the hood. There could be some optimizations but getting to be under 10ms probably is going to use a lot of time I could just be playing games.
So you suspect the latency (enough of it anyway) is introduced in your translation code? I absolutely understand not wanting to go to the nth degree for optimization when this is a hobby project. Could you throw hardware at it? Not all ESP32 run at the same speed. Perhaps buy an oversized one that will execute your underperforming code faster?
I have been contemplating making my own HOTAS since every time I have the cash to buy one, I either can't find one or it gets cancelled midway through shipping and I get an automatic refund. I'm not sure where to start with that though...
I read that people who play a lot of FPV shooters have higher than average reaction and perception time. 18ms is ridiculously fast though, I'd be surprised if someone could consciously register it. I know gaming monitors market latency in the 1.5ms range, so maybe elite gamers can perceive the difference. Someone else pointed out that there are concerns over latency stacking between all of the devices, and that's a really valid point.