libretro / flycast

Flycast is a multiplatform Sega Dreamcast emulator. NOTE: No longer actively developed, use upstream repo for libretro from now on - https://github.com/flyinghead/flycast
http://reicast.com
GNU General Public License v2.0
155 stars 77 forks source link

L and R triggers seem to be "hardcoded" to the analog when using touch controls on Android. #1023

Closed bslenul closed 2 years ago

bslenul commented 3 years ago

OK so, this is a weird one, I'm not really a phone user but I was curious about this issue someone posted on Reddit: https://www.reddit.com/r/RetroArch/comments/l2ow7a/retroarch_flycast_android_touch_screen_issue/

So I booted Volgarr the Viking and yeah, in the first few seconds I got some random rolls 🤔 I made some testing and recorded:

https://user-images.githubusercontent.com/33353403/105555756-5dd18380-5d0a-11eb-96a4-d6bb5c7543ac.mp4

Here's what happening in the video:

This is on Android 32bit (Samsung Galaxy A5 2016) using ea1278e, for RetroArch on the video I was using a few weeks old version, but I just updated to https://github.com/libretro/RetroArch/commit/a213c2dcdf301e3fba2ac248476b7e8bd2a0ebea and same behavior.

edit: Oh and just to be extra clear, there's 0 issue when connecting a controller, it's only when using touch controls.

edit2: And I've just noticed the zoom as well, which is bound to L trigger, so it looks like the analog send both L and R inputs, not only R!

bslenul commented 3 years ago

At first it seemed unrelated but I'm not a dev so maybe it is after all: I'm aware of an issue that makes analog triggers basically impossible to unbind on a real controller, like if you set them to --- in Quick Menu > Controls they'll keep working ingame. And I guess this is a RetroArch issue since it happens in Dolphin core too. So maybe there's some kind of conflict with how analog triggers are handled in RetroArch and the overlay? No idea tbh, doesn't really make sense to me but heh 🤷

Problem is, Dolphin is 64bit only so I can't test it on my phone to see if this bug (the one with the overlay I mean) also happens with Dolphin or not... So if anyone can try to reproduce with Dolphin and if it happens with this core too, I'll close and move this issue to the RetroArch repo. Unless anyone knows another core with analog triggers support that I could try (so 32bit compatible)?

bslenul commented 3 years ago

As a workaround, I've found that enabling the "Digital Triggers" core option fixes the issue! So I'm guessing the analog stick values from the overlay conflict with the analog triggers values somehow? I'm still not sure if it's a core or a RetroArch issue tho :/

barbudreadmon commented 2 years ago

This is a retroarch issue, closing in favor of https://github.com/libretro/RetroArch/issues/12596