Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Swap Buttons A and B in RetroArch RGUI only



  • Pre: I am sorry, this thread was meant for "Help & Support". But when trying to post in that category it always said on submit "Error: Category does not exist". I tried several times. It worked then in this category. Maybe some mod could move please?


    I configured my gamepad in ES to a fitting button mapping when playing libretro cores (so mapping matches the gamepade pictures in the wiki). Also I swapped A/B buttons in ES so the 'south' button means 'confirm' (was 'back/cancel' before). Well, in libretro cores the mapping is fine with that but in RGUI the 'south' button is 'back/cancel' and the 'east' button is 'confirm' (should be swapped).
    I am searching for a way to swap A and B but just for RGUI. ES and the cores should stay as they are currently.

    @meleu said in Inconsistent Menu Navigation - EmulationStation vs Terminal Menus:

    AFAIK in RGUI the Retropad B is allways the "back" and the Retropad A is allways the "OK".
    Retropad is the RetroArch abstraction for its gamepad. The actual button on your physical gamepad is customisable through settings -> input -> input user N binds.
    If after these changings the ingame configs don't fit your taste you can remap as shown in the wiki:
    https://github.com/RetroPie/RetroPie-Setup/wiki/RetroArch-Configuration#core-input-remapping

    Thanks, so as far as I understand it I cannot change the RGUI button mapping explicitly with this, right? The only way I can think of would be to change my default button mapping (through ES input config) so I have a correct mapping inside RGUI. Then I could reconfigure the libretro cores one by one to swap buttons A and B? Or are there also other possibilities? If not I think I would rather live with the swapped A/B buttons in RGUI.


  • Global Moderator

    @vbs can be adjusted in RGUI or retroarch.cfg. eg:

    # Menu buttons.
    # menu_ok_btn          =
    # menu_cancel_btn      =
    

    you'll have to ucomment them first if they're commented like the above. i've never set them. guess it's set to the numeric js button. probably easier to do through the RGUI.



  • I predict an issue using the options @dankcushions mentioned in the global retroarch.cfg: each manufacturer uses different numbers, so you would have to reconfigure when using a different controller.

    It would be nice if it can be used in the /opt/retropie/configs/retroarch-joypads/JOYPAD_CONFIG.cfg files.

    I'm happy with the default configs and never set them either.



  • @dankcushions are these specific options available on RGUI? I didn't find it at what seems to be the expected places: "Settings -> Input" and "Settings -> Menu".


  • Global Moderator

    @meleu said in Swap Buttons A and B in RetroArch RGUI only:

    I predict an issue using the options @dankcushions mentioned in the global retroarch.cfg: each manufacturer uses different numbers, so you would have to reconfigure when using a different controller.

    good point!

    It would be nice if it can be used in the /opt/retropie/configs/retroarch-joypads/JOYPAD_CONFIG.cfg files.

    yeah this is an outstanding request: https://github.com/libretro/retroarch-joypad-autoconfig/issues/207


  • Global Moderator

    @meleu said in Swap Buttons A and B in RetroArch RGUI only:

    @dankcushions are these specific options available on RGUI? I didn't find it at what seems to be the expected places: "Settings -> Input" and "Settings -> Menu".

    from my brief look at the code, i don't think they are in the GUI, only as .cfg options.



  • @dankcushions said in Swap Buttons A and B in RetroArch RGUI only:

    https://github.com/libretro/retroarch-joypad-autoconfig/issues/207

    The improvement @fr500 mentions in the last comment would be really really cool and useful!! "use retropad labels (or the descriptors for the retropad buttons if available)"

    I hope someone take a look at it soon...



  • Big thanks gentlemen, that kinda worked:

    menu_ok_btn = "0"
    menu_cancel_btn = "8"
    

    (strange number though, jstest says may A and B buttons on my X360 pad are 0 and 1, dunno where '8' comes from, I used trial and error)

    But I have one more issue with the retroarch config:
    Out-of-the-box there is the /configs/all/retroarch.cfg (with lots of stuff in there) and the /config/<SYSTEM>/retroarch.cfg with only this:

    # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
    
    input_remapping_directory = "/opt/retropie/configs/arcade/"
    
    #include "/opt/retropie/configs/all/retroarch.cfg"
    

    On first startup of every core it instantly says in the little yellow text something like "Config file saved to /config/<SYSTEM>/retroarch.cfg" (overwriting the tiny default system config). Now this file is huge looking like this:

    <tons of options>
    #include "/opt/retropie/configs/all/retroarch.cfg"
    

    As I have learned libretro uses the first option it finds which means it starts by reading that huge system-config-file (/config/<SYSTEM>/retroarch.cfg) which sets (all?) parameters. Then it includes "/opt/retropie/configs/all/retroarch.cfg" which has no chance to overwrite the already set options anymore.
    I hope I could explain it correctly. I think in the end it means that I cannot set retroarch options globally anymore (in "/opt/retropie/configs/all/retroarch.cfg") since they won't have any effect anymore.

    Is that behavior intended? Am I doing something wrong? Thanks guys!


  • Global Moderator

    @vbs have you set your /all/retroarch.cfg to have config_save_on_exit = true ? in which case it will act like you describe. all the settings in /all/retroarch.cfg will simply migrate to your /system/retroarch.cfgs.



  • @dankcushions
    No I checked that yesterday already. It is 'false' in all my configs:

    root@wz-retro:/opt/retropie/configs# grep -r config_save *
    all/retroarch.cfg.bak:# This is only updated in config if config_save_on_exit is set to true, however.
    all/retroarch.cfg.bak:config_save_on_exit = "false"
    all/retroarch.cfg.rp-dist:# This is only updated in config if config_save_on_exit is set to true, however.
    all/retroarch.cfg.rp-dist:config_save_on_exit = "false"
    all/retroarch.cfg:# This is only updated in config if config_save_on_exit is set to true, however.
    all/retroarch.cfg:config_save_on_exit = "false"
    atari7800/retroarch.cfg:config_save_on_exit = "false"
    megadrive/retroarch.cfg:config_save_on_exit = "false"
    pcengine/retroarch.cfg:config_save_on_exit = "false"
    psx/retroa_vbs.cfg.bak:config_save_on_exit = "false"
    psx/retroarch.cfg:config_save_on_exit = "false"
    snes/retroarch.cfg:config_save_on_exit = "false"
    

    The strange thing is: it does not even do that on exit but right on startup. After it did that once for a core it does not do that again for that core.



  • @vbs it seems that you set config_save_on_exit to true sometime in the past and this action "infected" your system specific retroarch.cfg files...

    My suggestion is (pseudo-bash-code):

    if you have "retroarch.cfg.rp-dist" files at each system directory; then
        rename it to "retroarch.cfg"
    else
        reinstall the respective libretro core
        # the step above creates those ".rp-dist" files
        rename the ".rp-dist" files to "retroarch.cfg"
    fi
    

    (It seems that you're familiar with the shell and I think I can write clearer in pseudo-code than in English. :-) )

    [edit: trying to practice my english a little more and explain to you what's happening.]
    Keep in mind that the RetroArch's config uses the "first match if finds" approach, so if you have options in your system retroarch.cfg and #include the global config in the end, RetroArch ignores all options already taken from the system specific file.

    I hope it's clear enough. :-) Maybe a reading at this post can help to understand a little more (no need to read the entire thread, just the linked post) .



  • Thanks, I really appreciate your help!

    I read that thread yesterday already and today I tried a couple of things. In the end I deleted whole /opt/retropie, ~/.config/retroarch and ~/Retropie and reinstalled Retropie completely from source (btw did I mention that I am using x86 on Intel NUC?).
    So after reinstalling I configured my gamepad, copied some MegaDrive roms and started a game. The next thing that happens is that I see "Save new config to /opt/retropie/config/megadrive/retroarch.cfg".

    So, a long story cut short, I reinstalled everything but it sill happens :)

    What in hell would trigger dumping the whole config right at startup (but only once!)? :/



  • Well, for testing I just started retroarch just like ES does it from the command line and enabled verbose logging:

    vbs@wz-retro:~$ /opt/retropie/emulators/retroarch/bin/retroarch --verbose -L /opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so --config /opt/retropie/configs/megadrive/retroarch.cfg /home/vbs/RetroPie/roms/megadrive/0-E/16\ Tiles\ Mahjong\ \(Unl\)\ [c].zip 
    RetroArch [INFO] :: Redirecting save file to "/home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm".
    RetroArch [INFO] :: === Build =======================================
    Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES 
    Built: Oct 12 2016
    RetroArch [INFO] :: Version: 1.3.6
    RetroArch [INFO] :: Git: 2fe10a0
    RetroArch [INFO] :: =================================================
    RetroArch [INFO] :: Config: loading config from: /opt/retropie/configs/megadrive/retroarch.cfg.
    RetroArch [INFO] :: Resetting undo buffers.
    RetroArch [INFO] :: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so"
    RetroArch [INFO] :: [overrides] no core-specific overrides found at /home/vbs/.config/retroarch/config/PicoDrive/PicoDrive.cfg.
    RetroArch [INFO] :: [overrides] no game-specific overrides found at /home/vbs/.config/retroarch/config/PicoDrive/16 Tiles Mahjong (Unl) [c].cfg.
    RetroArch [INFO] :: Shaders: preset directory: /opt/retropie/emulators/retroarch/shader/presets
    RetroArch [INFO] :: Shaders: no game-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/PicoDrive/16 Tiles Mahjong (Unl) [c].cgp.
    RetroArch [INFO] :: Shaders: no game-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/PicoDrive/16 Tiles Mahjong (Unl) [c].glslp.
    RetroArch [INFO] :: Shaders: no core-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/PicoDrive/PicoDrive.cgp.
    RetroArch [INFO] :: Shaders: no core-specific preset found at /opt/retropie/emulators/retroarch/shader/presets/PicoDrive/PicoDrive.glslp.
    RetroArch [INFO] :: Environ SET_VARIABLES.
    RetroArch [INFO] :: Remaps: remap directory: /opt/retropie/configs/megadrive/
    RetroArch [INFO] :: Remaps: no game-specific remap found at /opt/retropie/configs/megadrive/PicoDrive/16 Tiles Mahjong (Unl) [c].rmp.
    RetroArch [INFO] :: Remaps: no core-specific remap found at /opt/retropie/configs/megadrive/PicoDrive/PicoDrive.rmp.
    RetroArch [INFO] :: Redirecting save file to "/home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm".
    RetroArch [INFO] :: Environ PERFORMANCE_LEVEL: 0.
    RetroArch [INFO] :: Environ GET_LOG_INTERFACE.
    RetroArch [INFO] :: Environ SET_DISK_CONTROL_INTERFACE.
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_input1:
    RetroArch [INFO] :: 	3 button pad
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_input2:
    RetroArch [INFO] :: 	3 button pad
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_sprlim:
    RetroArch [INFO] :: 	disabled
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_ramcart:
    RetroArch [INFO] :: 	disabled
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_region:
    RetroArch [INFO] :: 	Auto
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_region_fps:
    RetroArch [INFO] :: 	Auto
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_aspect:
    RetroArch [INFO] :: 	PAR
    RetroArch [ERROR] :: Failed to extract content from compressed file: /home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].zip.
    RetroArch [INFO] :: Content loading skipped. Implementation will load it on its own.
    RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
    RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "/home/vbs/RetroPie/BIOS".
    RetroArch [libretro INFO] :: bad MD reset vector, assuming SMS
    RetroArch [libretro INFO] :: detected SMS ROM
    RetroArch [INFO] :: Environ SET_INPUT_DESCRIPTORS:
    RetroArch [INFO] :: 	RetroPad, User 1, Button "B (bottom)" => "Button 1 Start"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "Start" => "Button Pause"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Up" => "D-Pad Up"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Down" => "D-Pad Down"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Left" => "D-Pad Left"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Right" => "D-Pad Right"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "A (right)" => "Button 2"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "B (bottom)" => "Button 1 Start"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "Start" => "Button Pause"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Up" => "D-Pad Up"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Down" => "D-Pad Down"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Left" => "D-Pad Left"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Right" => "D-Pad Right"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "A (right)" => "Button 2"
    RetroArch [INFO] :: Skipping SRAM load..
    RetroArch [INFO] :: Version of libretro API: 1
    RetroArch [INFO] :: Compiled against API: 1
    RetroArch [INFO] :: Set audio input rate to: 44055.95 Hz.
    RetroArch [INFO] :: Video @ fullscreen
    RetroArch [INFO] :: Starting threaded video driver ...
    RetroArch [ERROR] :: Failed to connect to Wayland server.
    RetroArch [INFO] :: Found GL context: x
    RetroArch [INFO] :: Detecting screen resolution 1920x1080.
    RetroArch [INFO] :: [X11]: Xinerama version: 1.1.
    RetroArch [INFO] :: [X11]: Xinerama screens: 1.
    RetroArch [INFO] :: [GLX]: Using Xinerama on screen #0.
    RetroArch [INFO] :: [GLX]: X = 0, Y = 0, W = 1920, H = 1080.
    RetroArch [INFO] :: [GLX]: Using windowed fullscreen.
    RetroArch [INFO] :: [GLX]: Found swap function: glXSwapIntervalMESA.
    RetroArch [INFO] :: [GLX]: glXSwapInterval(1)
    RetroArch [INFO] :: [GL]: Vendor: Intel Open Source Technology Center, Renderer: Mesa DRI Intel(R) Haswell Mobile .
    RetroArch [INFO] :: [GL]: Version: 3.0 Mesa 11.2.0.
    RetroArch [INFO] :: GL: Using resolution 1920x1080
    RetroArch [INFO] :: [GL]: Default shader backend found: glsl.
    RetroArch [INFO] :: [Shader driver]: Using GLSL shader backend.
    RetroArch [INFO] :: Checking GLSL shader support ...
    RetroArch [WARN] :: [GL]: Stock GLSL shaders will be used.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: [GL]: Using 4 textures.
    RetroArch [INFO] :: [GL]: Loaded 1 program(s).
    RetroArch [INFO] :: [GL]: Using GL_RGB565 for texture uploads.
    RetroArch [INFO] :: [udev]: Plugged pad: Xbox 360 Wireless Receiver (XBOX) (1118:657) on port #0.
    RetroArch [INFO] :: Autodetect: 1 profiles found
    RetroArch [INFO] :: Autodetect: selected configuration: /opt/retropie/configs/all/retroarch-joypads/Xbox360WirelessReceiver(XBOX).cfg
    RetroArch [INFO] :: [udev]: Pad #0 (/dev/input/event7) supports force feedback.
    RetroArch [INFO] :: [udev]: Pad #0 (/dev/input/event7) supports 16 force feedback effects.
    RetroArch [INFO] :: Found joypad driver: "udev".
    RetroArch [INFO] :: Using font rendering backend: freetype.
    RetroArch [INFO] :: ALSA: Using signed 16-bit format.
    RetroArch [INFO] :: ALSA: Period size: 768 frames
    RetroArch [INFO] :: ALSA: Buffer size: 3072 frames
    RetroArch [INFO] :: ALSA: Can pause: yes.
    RetroArch [INFO] :: Saved new config to "/opt/retropie/configs/megadrive/retroarch.cfg".
    RetroArch [INFO] :: Loading history file: [/opt/retropie/configs/megadrive/content_history.lpl].
    RetroArch [INFO] :: Loading history file: [/opt/retropie/configs/megadrive/content_music_history.lpl].
    RetroArch [INFO] :: Loading history file: [/opt/retropie/configs/megadrive/content_video_history.lpl].
    RetroArch [INFO] :: Loading history file: [/opt/retropie/configs/megadrive/content_image_history.lpl].
    RetroArch [INFO] :: Environ SET_GEOMETRY.
    RetroArch [INFO] :: SET_GEOMETRY: 256x192, aspect: 1.333.
    RetroArch [INFO] :: Resetting undo buffers.
    RetroArch [INFO] :: Trying to write to playlist file: /opt/retropie/configs/megadrive/content_history.lpl
    RetroArch [INFO] :: Trying to write to playlist file: /opt/retropie/configs/megadrive/content_video_history.lpl
    RetroArch [INFO] :: Trying to write to playlist file: /opt/retropie/configs/megadrive/content_music_history.lpl
    RetroArch [INFO] :: Trying to write to playlist file: /opt/retropie/configs/megadrive/content_image_history.lpl
    RetroArch [INFO] :: Average audio buffer saturation: 79.91 %, standard deviation (percentage points): 10.71 %.
    RetroArch [INFO] :: Amount of time spent close to underrun: 0.00 %. Close to blocking: 80.60 %.
    RetroArch [INFO] :: [X11]: Xinerama version: 1.1.
    RetroArch [INFO] :: [X11]: Xinerama screens: 1.
    RetroArch [INFO] :: [X11]: Saved monitor #0.
    RetroArch [INFO] :: Threaded video stats: Frames pushed: 331, Frames dropped: 5.
    RetroArch [INFO] :: Monitor FPS estimation is disabled for threaded video.
    RetroArch [INFO] :: Average audio buffer saturation: 79.91 %, standard deviation (percentage points): 10.71 %.
    RetroArch [INFO] :: Amount of time spent close to underrun: 0.00 %. Close to blocking: 80.60 %.
    RetroArch [INFO] :: Monitor FPS estimation is disabled for threaded video.
    

    There it also just says "RetroArch [INFO] :: Saved new config to "/opt/retropie/configs/megadrive/retroarch.cfg".". I don't understand :(

    Well, also mentioned here:
    https://github.com/libretro/RetroArch/issues/2793
    https://www.reddit.com/r/RetroPie/comments/4wimbd/why_is_retroarch_saving_a_new_config_on_opening_a/



  • @vbs I'm suspecting this:

    RetroArch [INFO] :: [overrides] no core-specific overrides found at /home/vbs/.config/retroarch/config/PicoDrive/PicoDrive.cfg.
    

    I suggest you to rm -rf /home/vbs/.config/retroarch and try again.

    Check if you have those .rp-dist files and do what I suggested in the previous post to avoid the recompilation process.

    EDIT: Oh! I saw you already tried to delete this directory... can you do a grep -r config_save /home/vbs/.config/retroarch/* and paste the output here?



  • @meleu
    Since I reinstalled Retropie I do not have any rp-dist files:

    root@wz-retro:/opt/retropie/configs# find | grep dist
    root@wz-retro:/opt/retropie/configs#
    

    Also all retroarch.cfg files I can see in the /opt/retropie/config/<SYSTEM> directories are ~220 bytes long and only contain the two standard lines.

    And I delete completely ~/.config/retroarch

    Then I started retroarch again with an empty config file (/tmp/empty.cfg):

    vbs@wz-retro:~$ /opt/retropie/emulators/retroarch/bin/retroarch --verbose -L /opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so --config /tmp/empty.cfg /home/vbs/RetroPie/roms/megadrive/0-E/16\ Tiles\ Mahjong\ \(Unl\)\ [c].zip 
    RetroArch [INFO] :: Redirecting save file to "/home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm".
    RetroArch [INFO] :: === Build =======================================
    Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES 
    Built: Oct 12 2016
    RetroArch [INFO] :: Version: 1.3.6
    RetroArch [INFO] :: Git: 2fe10a0
    RetroArch [INFO] :: =================================================
    RetroArch [INFO] :: Config: loading config from: /tmp/empty.cfg.
    RetroArch [WARN] :: screenshot_directory is not an existing directory, ignoring ...
    RetroArch [INFO] :: Resetting undo buffers.
    RetroArch [INFO] :: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so"
    RetroArch [INFO] :: [overrides] no core-specific overrides found at /home/vbs/.config/retroarch/config/PicoDrive/PicoDrive.cfg.
    RetroArch [INFO] :: [overrides] no game-specific overrides found at /home/vbs/.config/retroarch/config/PicoDrive/16 Tiles Mahjong (Unl) [c].cfg.
    RetroArch [INFO] :: Shaders: preset directory: /home/vbs/.config/retroarch/shaders/presets
    RetroArch [INFO] :: Shaders: no game-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/16 Tiles Mahjong (Unl) [c].cgp.
    RetroArch [INFO] :: Shaders: no game-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/16 Tiles Mahjong (Unl) [c].glslp.
    RetroArch [INFO] :: Shaders: no core-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/PicoDrive.cgp.
    RetroArch [INFO] :: Shaders: no core-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/PicoDrive.glslp.
    RetroArch [INFO] :: Environ SET_VARIABLES.
    RetroArch [INFO] :: Remaps: remap directory: /home/vbs/.config/retroarch/config/remaps
    RetroArch [INFO] :: Remaps: no game-specific remap found at /home/vbs/.config/retroarch/config/remaps/PicoDrive/16 Tiles Mahjong (Unl) [c].rmp.
    RetroArch [INFO] :: Remaps: no core-specific remap found at /home/vbs/.config/retroarch/config/remaps/PicoDrive/PicoDrive.rmp.
    RetroArch [INFO] :: Redirecting save file to "/home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm".
    RetroArch [INFO] :: Environ PERFORMANCE_LEVEL: 0.
    RetroArch [INFO] :: Environ GET_LOG_INTERFACE.
    RetroArch [INFO] :: Environ SET_DISK_CONTROL_INTERFACE.
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_input1:
    RetroArch [INFO] :: 	3 button pad
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_input2:
    RetroArch [INFO] :: 	3 button pad
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_sprlim:
    RetroArch [INFO] :: 	disabled
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_ramcart:
    RetroArch [INFO] :: 	disabled
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_region:
    RetroArch [INFO] :: 	Auto
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_region_fps:
    RetroArch [INFO] :: 	Auto
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_aspect:
    RetroArch [INFO] :: 	PAR
    RetroArch [INFO] :: Content loading skipped. Implementation will load it on its own.
    RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
    RetroArch [WARN] :: SYSTEM DIR is empty, assume CONTENT DIR /home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].zip
    RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "/home/vbs/RetroPie/roms/megadrive/0-E/".
    RetroArch [libretro INFO] :: 00000:000: couldn't open carthw.cfg!
    RetroArch [libretro INFO] :: 00000:000: sram: 200000 - 203fff; eeprom: 0
    RetroArch [INFO] :: Environ SET_INPUT_DESCRIPTORS:
    RetroArch [INFO] :: 	RetroPad, User 1, Button "B (bottom)" => "B"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "Y (left)" => "A"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "Select" => "Mode"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "Start" => "Start"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Up" => "D-Pad Up"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Down" => "D-Pad Down"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Left" => "D-Pad Left"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Right" => "D-Pad Right"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "A (right)" => "C"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "X (up)" => "Y"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "L" => "X"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "R" => "Z"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "B (bottom)" => "B"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "Y (left)" => "A"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "Select" => "Mode"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "Start" => "Start"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Up" => "D-Pad Up"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Down" => "D-Pad Down"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Left" => "D-Pad Left"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Right" => "D-Pad Right"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "A (right)" => "C"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "X (up)" => "Y"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "L" => "X"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "R" => "Z"
    Failed to open /home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm: No such file or directory
    RetroArch [INFO] :: Skipping SRAM load..
    RetroArch [INFO] :: Version of libretro API: 1
    RetroArch [INFO] :: Compiled against API: 1
    RetroArch [INFO] :: Set audio input rate to: 44100.00 Hz.
    RetroArch [INFO] :: Timings deviate too much. Will not adjust. (Display = 59.94 Hz, Game = 50.00 Hz)
    RetroArch [INFO] :: Video @ 960x720
    RetroArch [ERROR] :: Failed to connect to Wayland server.
    RetroArch [INFO] :: Found GL context: x
    RetroArch [INFO] :: Detecting screen resolution 1920x1080.
    RetroArch [INFO] :: [GLX]: X = 0, Y = 0, W = 960, H = 720.
    RetroArch [INFO] :: [GLX]: Found swap function: glXSwapIntervalMESA.
    RetroArch [INFO] :: [GLX]: glXSwapInterval(1)
    RetroArch [INFO] :: [GL]: Vendor: Intel Open Source Technology Center, Renderer: Mesa DRI Intel(R) Haswell Mobile .
    RetroArch [INFO] :: [GL]: Version: 3.0 Mesa 11.2.0.
    RetroArch [INFO] :: GL: Using resolution 960x720
    RetroArch [INFO] :: [GL]: Default shader backend found: glsl.
    RetroArch [INFO] :: [Shader driver]: Using GLSL shader backend.
    RetroArch [INFO] :: Checking GLSL shader support ...
    RetroArch [WARN] :: [GL]: Stock GLSL shaders will be used.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: [GL]: Using 4 textures.
    RetroArch [INFO] :: [GL]: Loaded 1 program(s).
    RetroArch [INFO] :: [GL]: Using GL_RGB565 for texture uploads.
    RetroArch [INFO] :: Found joypad driver: "udev".
    RetroArch [INFO] :: Using font rendering backend: freetype.
    RetroArch [ERROR] :: [DBus]: Failed to suspend screensaver via DBus.
    RetroArch [INFO] :: Suspending screensaver (X11, xdg-screensaver).
    RetroArch [WARN] :: Could not suspend screen saver.
    RetroArch [INFO] :: ALSA: Using signed 16-bit format.
    RetroArch [INFO] :: ALSA: Period size: 768 frames
    RetroArch [INFO] :: ALSA: Buffer size: 3072 frames
    RetroArch [INFO] :: ALSA: Can pause: yes.
    RetroArch [INFO] :: Found menu display driver: "menu_display_gl".
    RetroArch [ERROR] :: Failed to create rendering backend: freetype.
    Failed to open /home/vbs/.config/retroarch/assets/xmb/monochrome/font.ttf: No such file or directory
    RetroArch [ERROR] :: Failed to create rendering backend: stb.
    RetroArch [INFO] :: Using font rendering backend: bitmap.
    RetroArch [INFO] :: Saved new config to "/tmp/empty.cfg".
    RetroArch [ERROR] :: Failed to create rendering backend: freetype.
    Failed to open /home/vbs/.config/retroarch/assets/xmb/monochrome/font.ttf: No such file or directory
    RetroArch [ERROR] :: Failed to create rendering backend: stb.
    RetroArch [INFO] :: Using font rendering backend: bitmap.
    RetroArch [INFO] :: Loading history file: [/tmp/content_history.lpl].
    RetroArch [INFO] :: Loading history file: [/tmp/content_music_history.lpl].
    RetroArch [INFO] :: Loading history file: [/tmp/content_video_history.lpl].
    RetroArch [INFO] :: Loading history file: [/tmp/content_image_history.lpl].
    RetroArch [INFO] :: [GL]: VSync => on
    RetroArch [INFO] :: [GLX]: glXSwapInterval(1)
    RetroArch [INFO] :: Environ SET_GEOMETRY.
    RetroArch [INFO] :: SET_GEOMETRY: 320x224, aspect: 1.429.
    RetroArch [libretro INFO] :: 00001:000: 68k z80 read with no bus! [a00008] @ 000310
    RetroArch [libretro INFO] :: 00001:000: 68k z80 read with no bus! [a0000a] @ 000310
    RetroArch [libretro INFO] :: 00001:006: 68k z80 read with no bus! [a0000c] @ 00031a
    RetroArch [INFO] :: Paused.
    ^CRetroArch [INFO] :: Saved new config to "/tmp/empty.cfg".
    RetroArch [INFO] :: Resetting undo buffers.
    RetroArch [INFO] :: Trying to write to playlist file: /tmp/content_history.lpl
    RetroArch [INFO] :: Trying to write to playlist file: /tmp/content_video_history.lpl
    RetroArch [INFO] :: Trying to write to playlist file: /tmp/content_music_history.lpl
    RetroArch [INFO] :: Trying to write to playlist file: /tmp/content_image_history.lpl
    RetroArch [INFO] :: Average audio buffer saturation: 74.79 %, standard deviation (percentage points): 13.64 %.
    RetroArch [INFO] :: Amount of time spent close to underrun: 0.00 %. Close to blocking: 54.23 %.
    RetroArch [INFO] :: [X11]: Xinerama version: 1.1.
    RetroArch [INFO] :: [X11]: Xinerama screens: 1.
    RetroArch [INFO] :: [X11]: Saved monitor #0.
    RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
    RetroArch [INFO] :: Removing temporary content file: /home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].bin.
    RetroArch [INFO] :: Average audio buffer saturation: 74.79 %, standard deviation (percentage points): 13.64 %.
    RetroArch [INFO] :: Amount of time spent close to underrun: 0.00 %. Close to blocking: 54.23 %.
    RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
    vbs@wz-retro:~$ 
    

    It happened again and filled the /tmp/empty.cfgwith lots of options. :(

    Sorry if I misunderstood you but is this as you proposed? (deleted ~/.config/retroarch and resetted all core config files to their 220-byte-default versions).



  • @vbs I reproduced your issue here in my own x86 RetroPie (actually it's reproducible in any platform). The problem is that when you first executed RetroArch with the core, the respective retroarch.cfg was empty or non-existent.

    Steps to reproduce it:

    • delete (or just rename) the /opt/retropie/configs/SYSTEM/retroarch.cfg.
    • start RetroArch with that empty/non-existent retroarch.cfg (using --config or normally via ES).

    It creates and dumps all the RetroArch default options to the retroarch.cfg (I said "RetroArch default options", in other words, the defaults from the RetroArch source code, used when there's no config file).

    My new suggestion is (it's an example for picodrive, adapt accordingly for other cores):

    1. delete all your picodrive system specific retroarch.cfg files (I think it is megadrive, mastersystem and sega32x).
    2. get those .rp-dist files using the following command:
    sudo ~/RetroPie-Setup/retropie_packages.sh lr-picodrive configure
    
    1. make sure that you have that RetroPie default small retroarch.cfg file before invoking RetroArch (rename retroarch.cfg.rp-dist to retroarch.cfg if necessary).

    It creates those short and default files for the individual systems with an #include line at the end.

    Keep in mind that this retropie_packages.sh trick works today but is contraindicated by the main developer, as you can see in this post. I interpret this as "it works today but there is no guarantee that it will always work". I found it useful for x86 because in this platform there's no option to reinstall/update from binary and the compilation is very time consuming.



  • @meleu
    Thanks very much, I really appreciate your effort!
    ...but but but, in all the tests before I didn't start Retroarch with a no/empty config. That was just for my last test. :( In my tests before I just had reinstalled Retropie and I actually had that small (non-empty) standard config. So it still should not have happened for me, right? But I will just try what you suggest:

    So just to make sure I do not miss some configs in step 1:

    root@wz-retro:/opt/retropie/configs# find -name retroarch.cfg | xargs rm
    root@wz-retro:/opt/retropie/configs# find -name retroarch.cfg
    root@wz-retro:/opt/retropie/configs#
    

    They are all gone now :)

    Then I issued that configure command which restored the config for megadrive:

    root@wz-retro:/opt/retropie/configs/megadrive# ls -al
    total 16
    drwxr-xr-x  2 root root 4096 Okt 13 08:18 .
    drwxr-xr-x 36 root root 4096 Okt 12 23:29 ..
    -rw-r--r--  1 root root  427 Okt 13 08:18 emulators.cfg
    -rw-------  1 root root  227 Okt 13 08:18 retroarch.cfg
    

    I think there is an issue now with the file permissions: they belong to user 'root' now and only root as read and write permission. My normal user wouldn't be able to access. I just tried by using normal Retropie-Setup: Then the created files look like this:

    root@wz-retro:/opt/retropie/configs/psx# ls -al
    total 16
    drwxr-xr-x  2 vbs vbs 4096 Okt 13 08:35 .
    drwxr-xr-x 36 vbs vbs 4096 Okt 12 23:29 ..
    -rw-r--r--  1 vbs vbs  210 Okt 13 08:35 emulators.cfg
    -rw-------  1 vbs vbs  221 Okt 13 08:35 retroarch.cfg
    

    Owner is 'vbs' now.

    When I start retroarch with the root-config files then it complains as expected about a failed config read:

    vbs@wz-retro:~$ /opt/retropie/emulators/retroarch/bin/retroarch --verbose -L /opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so --config /opt/retropie/configs/megadrive/retroarch.cfg /home/vbs/RetroPie/roms/megadrive/0-E/16\ Tiles\ Mahjong\ \(Unl\)\ [c].zip 
    RetroArch [INFO] :: Redirecting save file to "/home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm".
    RetroArch [INFO] :: === Build =======================================
    Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES 
    Built: Oct 12 2016
    RetroArch [INFO] :: Version: 1.3.6
    RetroArch [INFO] :: Git: 2fe10a0
    RetroArch [INFO] :: =================================================
    RetroArch [INFO] :: Config: loading config from: /opt/retropie/configs/megadrive/retroarch.cfg.
    RetroArch [ERROR] :: Config: couldn't find config at path: "/opt/retropie/configs/megadrive/retroarch.cfg"
    RetroArch [INFO] :: Resetting undo buffers.
    RetroArch [INFO] :: Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-picodrive/picodrive_libretro.so"
    RetroArch [INFO] :: [overrides] no core-specific overrides found at /home/vbs/.config/retroarch/config/PicoDrive/PicoDrive.cfg.
    RetroArch [INFO] :: [overrides] no game-specific overrides found at /home/vbs/.config/retroarch/config/PicoDrive/16 Tiles Mahjong (Unl) [c].cfg.
    RetroArch [INFO] :: Shaders: preset directory: /home/vbs/.config/retroarch/shaders/presets
    RetroArch [INFO] :: Shaders: no game-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/16 Tiles Mahjong (Unl) [c].cgp.
    RetroArch [INFO] :: Shaders: no game-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/16 Tiles Mahjong (Unl) [c].glslp.
    RetroArch [INFO] :: Shaders: no core-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/PicoDrive.cgp.
    RetroArch [INFO] :: Shaders: no core-specific preset found at /home/vbs/.config/retroarch/shaders/presets/PicoDrive/PicoDrive.glslp.
    RetroArch [INFO] :: Environ SET_VARIABLES.
    RetroArch [INFO] :: Remaps: remap directory: /home/vbs/.config/retroarch/config/remaps
    RetroArch [INFO] :: Remaps: no game-specific remap found at /home/vbs/.config/retroarch/config/remaps/PicoDrive/16 Tiles Mahjong (Unl) [c].rmp.
    RetroArch [INFO] :: Remaps: no core-specific remap found at /home/vbs/.config/retroarch/config/remaps/PicoDrive/PicoDrive.rmp.
    RetroArch [INFO] :: Redirecting save file to "/home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm".
    RetroArch [INFO] :: Environ PERFORMANCE_LEVEL: 0.
    RetroArch [INFO] :: Environ GET_LOG_INTERFACE.
    RetroArch [INFO] :: Environ SET_DISK_CONTROL_INTERFACE.
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_input1:
    RetroArch [INFO] :: 	3 button pad
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_input2:
    RetroArch [INFO] :: 	3 button pad
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_sprlim:
    RetroArch [INFO] :: 	disabled
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_ramcart:
    RetroArch [INFO] :: 	disabled
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_region:
    RetroArch [INFO] :: 	Auto
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_region_fps:
    RetroArch [INFO] :: 	Auto
    RetroArch [INFO] :: Environ GET_VARIABLE picodrive_aspect:
    RetroArch [INFO] :: 	PAR
    RetroArch [INFO] :: Content loading skipped. Implementation will load it on its own.
    RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
    RetroArch [WARN] :: SYSTEM DIR is empty, assume CONTENT DIR /home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].zip
    RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "/home/vbs/RetroPie/roms/megadrive/0-E/".
    RetroArch [libretro INFO] :: 00000:000: couldn't open carthw.cfg!
    RetroArch [libretro INFO] :: 00000:000: sram: 200000 - 203fff; eeprom: 0
    RetroArch [INFO] :: Environ SET_INPUT_DESCRIPTORS:
    RetroArch [INFO] :: 	RetroPad, User 1, Button "B (bottom)" => "B"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "Y (left)" => "A"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "Select" => "Mode"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "Start" => "Start"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Up" => "D-Pad Up"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Down" => "D-Pad Down"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Left" => "D-Pad Left"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "D-Pad Right" => "D-Pad Right"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "A (right)" => "C"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "X (up)" => "Y"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "L" => "X"
    RetroArch [INFO] :: 	RetroPad, User 1, Button "R" => "Z"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "B (bottom)" => "B"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "Y (left)" => "A"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "Select" => "Mode"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "Start" => "Start"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Up" => "D-Pad Up"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Down" => "D-Pad Down"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Left" => "D-Pad Left"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "D-Pad Right" => "D-Pad Right"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "A (right)" => "C"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "X (up)" => "Y"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "L" => "X"
    RetroArch [INFO] :: 	RetroPad, User 2, Button "R" => "Z"
    Failed to open /home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].srm: No such file or directory
    RetroArch [INFO] :: Skipping SRAM load..
    RetroArch [INFO] :: Version of libretro API: 1
    RetroArch [INFO] :: Compiled against API: 1
    RetroArch [INFO] :: Set audio input rate to: 44100.00 Hz.
    RetroArch [INFO] :: Timings deviate too much. Will not adjust. (Display = 59.94 Hz, Game = 50.00 Hz)
    RetroArch [INFO] :: Video @ 960x720
    RetroArch [ERROR] :: Failed to connect to Wayland server.
    RetroArch [INFO] :: Found GL context: x
    RetroArch [INFO] :: Detecting screen resolution 1920x1080.
    RetroArch [INFO] :: [GLX]: X = 0, Y = 0, W = 960, H = 720.
    RetroArch [INFO] :: [GLX]: Found swap function: glXSwapIntervalMESA.
    RetroArch [INFO] :: [GLX]: glXSwapInterval(1)
    RetroArch [INFO] :: [GL]: Vendor: Intel Open Source Technology Center, Renderer: Mesa DRI Intel(R) Haswell Mobile .
    RetroArch [INFO] :: [GL]: Version: 3.0 Mesa 11.2.0.
    RetroArch [INFO] :: GL: Using resolution 960x720
    RetroArch [INFO] :: [GL]: Default shader backend found: glsl.
    RetroArch [INFO] :: [Shader driver]: Using GLSL shader backend.
    RetroArch [INFO] :: Checking GLSL shader support ...
    RetroArch [WARN] :: [GL]: Stock GLSL shaders will be used.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: Found GLSL vertex shader.
    RetroArch [INFO] :: Found GLSL fragment shader.
    RetroArch [INFO] :: Linking GLSL program.
    RetroArch [INFO] :: [GL]: Using 4 textures.
    RetroArch [INFO] :: [GL]: Loaded 1 program(s).
    RetroArch [INFO] :: [GL]: Using GL_RGB565 for texture uploads.
    RetroArch [INFO] :: [udev]: Plugged pad: Xbox 360 Wireless Receiver (XBOX) (1118:657) on port #0.
    RetroArch [INFO] :: Autodetect: 0 profiles found
    RetroArch [INFO] :: Autodetect: no profiles found for Xbox 360 Wireless Receiver (XBOX) (1118/657)
    RetroArch [INFO] :: [udev]: Pad #0 (/dev/input/event7) supports force feedback.
    RetroArch [INFO] :: [udev]: Pad #0 (/dev/input/event7) supports 16 force feedback effects.
    RetroArch [INFO] :: Found joypad driver: "udev".
    RetroArch [INFO] :: Using font rendering backend: freetype.
    RetroArch [ERROR] :: [DBus]: Failed to suspend screensaver via DBus.
    RetroArch [INFO] :: Suspending screensaver (X11, xdg-screensaver).
    RetroArch [WARN] :: Could not suspend screen saver.
    RetroArch [INFO] :: ALSA: Using signed 16-bit format.
    RetroArch [INFO] :: ALSA: Period size: 768 frames
    RetroArch [INFO] :: ALSA: Buffer size: 3072 frames
    RetroArch [INFO] :: ALSA: Can pause: yes.
    RetroArch [INFO] :: Found menu display driver: "menu_display_gl".
    RetroArch [ERROR] :: Failed to create rendering backend: freetype.
    Failed to open /home/vbs/.config/retroarch/assets/xmb/monochrome/font.ttf: No such file or directory
    RetroArch [ERROR] :: Failed to create rendering backend: stb.
    RetroArch [INFO] :: Using font rendering backend: bitmap.
    RetroArch [ERROR] :: Failed saving config to "/opt/retropie/configs/megadrive/retroarch.cfg".
    RetroArch [ERROR] :: Failed to create rendering backend: freetype.
    Failed to open /home/vbs/.config/retroarch/assets/xmb/monochrome/font.ttf: No such file or directory
    RetroArch [ERROR] :: Failed to create rendering backend: stb.
    RetroArch [INFO] :: Using font rendering backend: bitmap.
    RetroArch [INFO] :: Loading history file: [].
    RetroArch [INFO] :: Loading history file: [].
    RetroArch [INFO] :: Loading history file: [].
    RetroArch [INFO] :: Loading history file: [].
    RetroArch [INFO] :: [GL]: VSync => on
    RetroArch [INFO] :: [GLX]: glXSwapInterval(1)
    RetroArch [INFO] :: Trying to write to playlist file: 
    RetroArch [ERROR] :: Failed to write to playlist file: 
    RetroArch [INFO] :: Environ SET_GEOMETRY.
    RetroArch [INFO] :: SET_GEOMETRY: 320x224, aspect: 1.429.
    RetroArch [libretro INFO] :: 00001:000: 68k z80 read with no bus! [a00008] @ 000310
    RetroArch [libretro INFO] :: 00001:000: 68k z80 read with no bus! [a0000a] @ 000310
    RetroArch [libretro INFO] :: 00001:006: 68k z80 read with no bus! [a0000c] @ 00031a
    RetroArch [INFO] :: Paused.
    ^CRetroArch [ERROR] :: Failed saving config to "/opt/retropie/configs/megadrive/retroarch.cfg".
    RetroArch [INFO] :: Resetting undo buffers.
    RetroArch [INFO] :: Trying to write to playlist file: 
    RetroArch [ERROR] :: Failed to write to playlist file: 
    RetroArch [INFO] :: Trying to write to playlist file: 
    RetroArch [ERROR] :: Failed to write to playlist file: 
    RetroArch [INFO] :: Trying to write to playlist file: 
    RetroArch [ERROR] :: Failed to write to playlist file: 
    RetroArch [INFO] :: Trying to write to playlist file: 
    RetroArch [ERROR] :: Failed to write to playlist file: 
    RetroArch [INFO] :: Average audio buffer saturation: 75.51 %, standard deviation (percentage points): 13.60 %.
    RetroArch [INFO] :: Amount of time spent close to underrun: 0.00 %. Close to blocking: 57.24 %.
    RetroArch [INFO] :: [X11]: Xinerama version: 1.1.
    RetroArch [INFO] :: [X11]: Xinerama screens: 1.
    RetroArch [INFO] :: [X11]: Saved monitor #0.
    RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
    RetroArch [INFO] :: Removing temporary content file: /home/vbs/RetroPie/roms/megadrive/0-E/16 Tiles Mahjong (Unl) [c].bin.
    RetroArch [INFO] :: Average audio buffer saturation: 75.51 %, standard deviation (percentage points): 13.60 %.
    RetroArch [INFO] :: Amount of time spent close to underrun: 0.00 %. Close to blocking: 57.24 %.
    RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
    vbs@wz-retro:~$ 
    

    I have to run now, will try more later! Thanks again!



  • Tested a bit: Retroarch saves the config on startup if the option rgui_show_start_screen is either true or not set. If it is not set (and the saving takes place) then it will be created with value false so Retroarch will not save the config on the following starts.

    This is beyond my understanding currently. :(

    Saving the config on exit is another story, but probably less mysterious since hopefully just triggered by save_config_on_exit.

    Well, found the code that triggers config saving when start screen is enabled. Still does not make more sense to me (menu_driver.c:181):

    if (settings->menu_show_start_screen)
    {
       menu_dialog_push_pending(true, MENU_DIALOG_WELCOME);
       settings->menu_show_start_screen   = false;
       command_event(CMD_EVENT_MENU_SAVE_CURRENT_CONFIG, NULL);
    }
    

  • Global Moderator

    this is the sort of area where retroarch regularly gets broken with updates. it's very possible either the retroarch in the current retropie image has an issue, or if you've update to a later version of retroarch then that might be it.

    you could update to the latest retroarch via source and see if it's fixed there?



  • @dankcushions he is using the x86 RetroPie, it means he installed RetroArch from source.

    @vbs the comments I've found in the retroarch.cfg skelleton

    # Show startup screen in menu.
    # Is automatically set to false when seen for the first time.
    # This is only updated in config if config_save_on_exit is set to true, however.
    # rgui_show_start_screen = true
    


Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.