libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.08k stars 1.81k forks source link

All turbo modes are nearly unusable #13349

Open bkoropoff opened 2 years ago

bkoropoff commented 2 years ago

Description

Classic turbo mode is extremely inconvenient. You have to have a spare button to be the "turbo" button, and any button pressed at the same time will be turbo, even if it doesn't make sense (e.g. the button for jumping).

Single button mode tries to fix this, but it's extremely counterintuitive. You still need to press the turbo button to activate it. You can work around this by making the turbo button the same as the button you want to be turbo, but this requires a core/game-specific config override since ordinary mapping overrides can't change the turbo button.

Expected behavior

When mapping buttons for a core, all core buttons (e.g. SNES "X") should have a turbo version (e.g. "Turbo X") which you can set as a mapping. This is simple and flexible and covers 90% of use cases. Several cores already do this by explicitly registering special inputs with retroarch and performing the modulation internally, but availability of this feature is inconsistent. This should be done by retroarch itself.

If this feature is implemented, consider stripping out all existing turbo modes because they mostly confuse and frustrate users. More sophisticated turbo options should be built on this simple foundation.

Actual behavior

Doing something as simple as setting a single button in a shmup to rapid fire, which would take a flick of a switch on a turbo controller from the 90s, is an enormous ordeal on retroarch which only works with hacky core-specific config overrides. The feature might as well not exist for casual users.

Steps to reproduce the bug

  1. Try to use turbo mode
  2. Feel confused
  3. Feel frustrasted
  4. Give up

Version/Commit

Environment information

sonninnos commented 2 years ago

Same button turbo (as in MAME style) suffers from the fact that many games have a hold function on the same button, which can never be accessed without a separate turbo button.

bkoropoff commented 2 years ago

Same button turbo (as in MAME style) suffers from the fact that many games have a hold function on the same button, which can never be accessed without a separate turbo button.

My suggestion handles this. You could map one controller button to "fire" and another to "turbo fire" if you also need a non-turbo version.

Augusto7743 commented 2 years ago

In Retroarch one detail need be better is button config. Retroarch allow configure one console button to only one controller button. Not is possible create a combo button (press one controller button is how if pressing A+B+C at same time) that help very much when playing NES (Double Dragon jump need press A+B at same time). Also not is possible create own turbo button for each core. If the core not have turbo button not have any turbo button.

Button configuration is only detail really to be fixed in Retroarch.