batocera-linux / batocera.linux

batocera.linux
https://batocera.org
Other
1.92k stars 495 forks source link

Duckstation generator sets incorrect value for analog hotkey #11849

Open connorfawcett opened 3 months ago

connorfawcett commented 3 months ago

Batocera build version

39 2024/03/04 10:11

Your architecture

Beelink Ser5 Mini (AMD Ryzen 7 5800H - x86_64)

Your Graphic Processor Unit(s) (GPU)

AMD Ryzen 7 5800H with Radeon Graphics

Issue description

With controller type set to analog, the generator script for duckstation generates this setting in the duckstation/settings.ini:

Analog = SDL-1/Guide & SDL-1/+LeftTrigger

But this will trigger the analog toggle on either the hotkey button OR trigger being pressed which is not the intended behaviour. Here is the equivalent generator code in duckstationGenerator.py:

if system.isOptSet("duckstation_digitalmode"): settings.set(pad_num, "AnalogDPadInDigitalMode", system.config["duckstation_digitalmode"]) if system.isOptSet("duckstation_" + ctrl_num) and system.config["duckstation_" + ctrl_num] == "AnalogController": settings.set(pad_num, "Analog", sdl_num+"/Guide & "+sdl_num+"/+LeftTrigger")

Detailed reproduction steps

  1. Set emulator to Duckstation
  2. Set controller 1 type to Dualshock/Xbox Type
  3. Launch a game and press hotkey or left trigger. The analog will toggle

Details of any attempts to fix this yourself

I assume there is a proper way to set a combination of two key presses in the Duckstation.ini file, i have tried editing the generator but can't figure out the correct syntax to make it work.

Details of any modifications you have made to Batocera.

None.

Logs and data

I can't generate logs right now, sorry. I'm hoping the issue is recreate-able on demand, if not please return it to me and I will generate logs when possible.

dmanlfc commented 3 months ago

duckstation uses the guide / hotkey button in v40 - https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=drive_link

connorfawcett commented 3 months ago

Confirmed that L2 no longer mistakenly triggers analog switch on v40, thanks. Having it as L2 + hotkey would be ideal but this is a lot better for the meantime