retrogamecorps / s30-add-on-pack

Add-on pack for the PocketGo S30
30 stars 3 forks source link

Config file overwritten on power down #3

Closed Dantasstic closed 3 years ago

Dantasstic commented 3 years ago

retroarch-core-options.cfg file gets overwritten, even when shutting the unit down from the main menu, as per your instructions.

"Tap the power button and select “Close Content” to go to the main menu, then power down"

deusxmach1na commented 3 years ago

Has something to do with this setting in retroarch.cfg: config_save_on_exit = "true"

I set that to true and when I powered down from inside a GB game it saved only the configs from GB to retroarch-core-options.cfg. That file looks like this:

gambatte_dark_filter_level = "0"
gambatte_gb_bootloader = "enabled"
gambatte_gb_colorization = "disabled"
gambatte_gb_hwmode = "Auto"
gambatte_gb_internal_palette = "GB - DMG"
gambatte_gb_link_mode = "Not Connected"
gambatte_gb_link_network_port = "56400"
gambatte_gb_link_network_server_ip_1 = "0"
gambatte_gb_link_network_server_ip_10 = "0"
gambatte_gb_link_network_server_ip_11 = "0"
gambatte_gb_link_network_server_ip_12 = "0"
gambatte_gb_link_network_server_ip_2 = "0"
gambatte_gb_link_network_server_ip_3 = "0"
gambatte_gb_link_network_server_ip_4 = "0"
gambatte_gb_link_network_server_ip_5 = "0"
gambatte_gb_link_network_server_ip_6 = "0"
gambatte_gb_link_network_server_ip_7 = "0"
gambatte_gb_link_network_server_ip_8 = "0"
gambatte_gb_link_network_server_ip_9 = "0"
gambatte_gbc_color_correction = "GBC only"
gambatte_gbc_color_correction_mode = "accurate"
gambatte_gbc_frontlight_position = "central"
gambatte_mix_frames = "disabled"
gambatte_show_gb_link_settings = "disabled"
gambatte_up_down_allowed = "disabled"
deusxmach1na commented 3 years ago

A potential fix @retrogamecorps is to change the perms on the core options config so it's not writeable, but I'm not sure if that messes anything else up down the line if RetroArch tries to overwrite the config: chmod 555 retroarch-core-options.cfg

retrogamecorps commented 3 years ago

A potential fix @retrogamecorps is to change the perms on the core options config so it's not writeable, but I'm not sure if that messes anything else up down the line if RetroArch tries to overwrite the config: chmod 555 retroarch-core-options.cfg

This is a good idea, I'll try it out.

Dantasstic commented 3 years ago

No this is the first thing I tried; marking it as read only in Windows doesn't prevent it from being over-written in the unit.

A potential fix @retrogamecorps is to change the perms on the core options config so it's not writeable, but I'm not sure if that messes anything else up down the line if RetroArch tries to overwrite the config: chmod 555 retroarch-core-options.cfg

retrogamecorps commented 3 years ago

I just adjusted the permissions in Terminal, so my hope is they persist more than setting it in Windows. I'm not optimistic, though, because after uploading it in GitHub and downloading it back to a computer, it's no longer read-only. There must be more to setting permissions that I'm not aware of.

deusxmach1na commented 3 years ago

I did a chmod on my Mac in Terminal on that file and it worked. I can turn it off mid game and the file still won’t be blank. I think there’s something special you have to do in GitHub to check in file permission changes but I don’t remember how.

Edit: Nevermind, I think I had this setting on config_save_on_exit = "true" which will dump only that cores default config to the file. I double checked the file perms and I can't make it read-only on the SD card. Gonna fiddle with it and see what I can do.

deusxmach1na commented 3 years ago

I've tried messing with this setting game_specific_options with no luck. I've tried passing the game options in the specific retroarch-gb.cfg file with no luck. It doesn't overwrite if you turn if off while playing a game, but it DOES overwrite if you quit the game (Close Content) and then power if off.

retrogamecorps commented 3 years ago

Thanks for helping run this down. It's frustrating!

deusxmach1na commented 3 years ago

Yeah, I agree it's frustrating. It seems like a very common bug, but I can't understand what causes it. I only see the bug when I power off the S30 on the list of games, not when you power it off mid-game, but I also haven't done a TON of testing.

Here's what I've noticed about the file using only the GameBoy emulator:

  1. Power off the S30 while on the list of GameBoy games, file still intact.
  2. Power S30 back on after step 1, file still intact.
  3. Choose GameBoy emulator after step 2, file still intact.
  4. Start a game from the list of GB games, file is replaced with 0 Kb version with a timestamp from 2019.

I have a couple ideas of trying to fix with configs, but I don't know if it's going to be possible.

deusxmach1na commented 3 years ago

Log file dump here

I only see this error: [ERROR] Failed to create rendering backend: freetype.

retrogamecorps commented 3 years ago

This issue has been fixed with the new safe shutdown option I have added to v1.7. Enjoy!