this post was submitted on 12 Mar 2024
174 points (99.4% liked)

RetroGaming

19573 readers
693 users here now

Vintage gaming community.

Rules:

  1. Be kind.
  2. No spam or soliciting for money.
  3. No racism or other bigotry allowed.
  4. Obviously nothing illegal.

If you see these please report them.

founded 1 year ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] thanks_shakey_snake@lemmy.ca 29 points 8 months ago (2 children)

If anyone else was wondering, I found this neat data table of controller latencies to compare:

https://rpubs.com/misteraddons/inputlatency

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?

[–] lectricleopard@lemmy.world 9 points 8 months ago (3 children)

I use an 8bitdo sn30 pro. Apparently I haven't been using a good controller. Fooled me!

[–] v1605@lemmy.world 8 points 8 months ago

I wouldn't call that controller bad, just not optimal. For this, I would want to have it be under 10ms to publish the code and instructions.

[–] Splatterphace@lemm.ee 4 points 8 months ago (1 children)

I've had a lot of connection issues with that model

[–] lectricleopard@lemmy.world 3 points 8 months ago (1 children)

How so? It disconnects? Or won't connect to start?

[–] Splatterphace@lemm.ee 1 points 8 months ago (1 children)

Both, and I was literally right next to my phone

[–] lectricleopard@lemmy.world 1 points 8 months ago (1 children)
[–] Splatterphace@lemm.ee 1 points 8 months ago (1 children)
[–] lectricleopard@lemmy.world 2 points 8 months ago

Hmm I was thinking maybe an old phone but that's not that old.

Try charging while connecting. I've found that a low battery often seems like poor connection quality. The way it gives up when it can't connect is very similar to just the battery dying.

[–] thanks_shakey_snake@lemmy.ca 3 points 8 months ago (1 children)

I have two of em-- They're pretty good! Definitely not perceptibly laggy or anything, at least to me.

Probably just outed myself as a casual.

[–] lectricleopard@lemmy.world 3 points 8 months ago

Casuals unite! Fuck it I'm just trying to have fun lol!

[–] v1605@lemmy.world 4 points 8 months ago (1 children)

It definitely could but the idea was to use only an esp32 rather than incorporating additional hardware.

[–] thanks_shakey_snake@lemmy.ca 3 points 8 months ago (1 children)

Yeah, I get that. Do you have any sense of whether that's a limitation of the ESP32, or with your implementation?

[–] v1605@lemmy.world 3 points 8 months ago (1 children)

It's really hard to judge without additional testing, I'm always more likely to blame my code than hardware. My guess would be something in the stack, be it my code or the library that puts it above a frame but that kind of investigation is more than I want a hobby project to be.

[–] Croquette@sh.itjust.works 3 points 8 months ago (1 children)

I think the esp32 maximum throughput is 700 kbps, so you might be able to get a better performance.

I don't have much experience with the esp32, but the first thing I would do is just a spoof program that sends simulated inputs, and see how's the latency without any other functionalities.

That will give you a good idea if the problem is your code or the stack (its not infaillible though).

[–] v1605@lemmy.world 3 points 8 months ago

Yeah one approach is that BLE-Gamepad library supports gpio pins as button inputs, so in theory I could get a baseline of what the Bluetooth stack of the library is by soldering the jst connector to connect the Arduino (that triggers the button presses and measures the result from the Mister SNAC port).

Otherwise I'd basically have to develop my own controller code to port onto various Bluetooth stacks for testing, but that seems like more than I want to do right now.