libretro / RetroArch

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

Hotkey options for direct save/load states #12990

Open kimimaru4000 opened 3 years ago

kimimaru4000 commented 3 years ago

First and foremost consider this:

Description

This is a follow-up to https://github.com/libretro/RetroArch/issues/12144. I would like to discuss the possibility of adding hotkeys for direct save and load states into RetroArch. I have added it to my own fork, and you can see what it l looks like in the image below:

RetroArch_DirectSaveLoadHotkeys_640

Reasons I want to discuss this feature:

I am fully willing to work on a PR for this, considering I have already done a large chunk of the work implementing it. I hope to discuss this further with you soon!

i30817 commented 3 years ago

Sounds good, the dolphin way is cool.

You probably don't want these set up by default though. RA hotkey menu is a mess and you can't even reset them (this is problem imo), so most position you chose in a keyboard or controller by default would conflict with others, or in the case of the computer emulation cores conflict with text input (1-0 keys particularly but even the F-keys are not free of this).

Speaking personally, i nuke all the hotkeys except the savestates, menu toggle and fps counter, and now that the quit key is not insane that too (though i probably should).

Dolphin uses the shift or ctrl (iirc) keys to override a save or a load state. RA will not be able to do this iirc, so you have even less key real estate here that expected.

I suppose most people will want FKeys to save and 1-5 keys to load but that sounds slightly overwrite or 'load when you wanted to save' dangerous to me.

i30817 commented 3 years ago

In short i kind of suggest that if you implement this you also add a reset option. Individual or for all, not sure.

kimimaru4000 commented 3 years ago

I agree about keeping them unmapped by default. There are only so many keys/buttons and this is a new feature that users shouldn't expect to have mapped, considering the existing savestate system has been in place for so long.

RetroArch already supports unmapping inputs with the delete key on desktop (unsure about consoles and mobile). Go to the action you want on the menu and simply press delete, without selecting it to map it. Even if it weren't implemented, that should be a separate issue as it's not directly related to this one.

i30817 commented 3 years ago

Yes, i was confused at first (it's not delete for me but 'a' as in the controller), but i wasn't thinking about only resetting to nil. I was thinking about resetting it to default. Fair enough about it being another issue though.

kimimaru4000 commented 3 years ago

Sounds good! I will work on a PR with the additional options.