thebezelproject / BezelProject

The Bezel Project installer script
213 stars 46 forks source link

Unable to save configuration #36

Open evil666 opened 5 years ago

evil666 commented 5 years ago

I am not sure if this is an issue, bug or just lack of knowledge on my part. When playing a game without the bezel project installed I can save the input configuration and features during the game. However once bezels are installed I cannot save anything emulator wise. What are my options besides uninstalling the bezel project. I think the cfg files in "/opt/retropie/configs/all/retroarch/config/nes" for example are preventing it. If I move that NES folder up one level, launch the game do my configuration and save it works. Then I just move the NES folder back to the config folder. Allot of work just to save some settings.

Any ideas?

thebezelproject commented 5 years ago

According to official Libretro docs and postings by the devs and mods on the Libretro forums, there is a lot of confusion concerning how Retroarch config files are used, and how they are/can be saved.

Retroarch uses a layered approach to reading config files. It first reads the main cfg file called retroarch.cfg. It then looks for a core specific cfg under the config directory, example: nestopia_libretro.cfg. Lastly, it looks for a game specific cfg file that would be saved in a subdirectory under config using the same name as the core, in this case, Nestopia.

Here is the part that gets people in trouble. As long as a game override DOES NOT exist, you can save a new nestopia_libretro.cfg file from the Retroarch gui. If a game override does exist, you can't directly save to a new nestopia_libretro.cfg file. You must save a to a new output file which will start with -1 and increment from there if you don't clean up these new cfg files, example nestopia_libretro-1.cfg (Save New Configuration).

Since the Bezel Project relies on game overrides to specify each game specific bezel, you must use the 'save new cfg file' process described above.

Related to this, you no longer have to save a new cfg file if you are changing controls. As long as you are using a current version of Retroarch, you can use remaps. What follows is from the Libretro docs.

Remaps are configuration files that store the parameters from the controls menu under Quick Menu. This is the recommended method to change core inputs without affecting GUI control or controls for other cores. We’ve been working hard to make this menu support all input remapping use cases and as of now it can do:

Mapping keyboard keys from more than one gamepad (works with dosbox)
Mapping more than one button to the same action
Unmapping buttons
Unmapping analogs
Mapping a button to trigger an analog response (tested with mupen, can run on SM64 with the d-pad now, triggers a full analog tilt)
Mapping an analog to another analog (having more than one analog mapped to the same output causes issues)
Mapping an analog to produce a button response

Remaps can be saved in the same exact levels as overrides, core, content, dir. Remaps can save dpad analogue mode, libretro device.

Remaps are loaded on content load.

evil666 commented 5 years ago

Thank for the detailed explanation. Ill try this when I get home. However I do see one issue in regards to that. Besides remapping buttons, that's about all you can do. Turning options on like rewind will not save along with the mapped button for rewind. But in the end I guess thats not too bad.

Oh and thank you for all your hard work. Can I suggest a "install all bezels" option in the script?