Core overrides not automatically being appended on load of a core
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Is there an existing issue for this?
- This is a bug in RetroArch frontend
- I have searched the existing issues
Description
Greetings,
This issue is impacting multiple cores such as nestopia, gambatte, and mgba. I am able to save a core override for nestopia for instance. When I exit Retroarch then open a nestopia compatible rom via retroarch, it opens, it says it appends the core override, but the settings are not there that should be there such as a change of the savestate slot. They are in the override config file but are not applied upon load of the core and rom even though the interface and logs says this is happening. If I manually load them, it applies the override fine. It's just not truly doing this upon launch of the core and rom even though it claims that it does.
Expected behavior
Properly apply overrides upon load of a core and rom as it used to.
Steps to reproduce the bug
Using nestopia as an example core
- Load Retroarch.
- load a nes rom
- load nestopia core
- Open the retroarch quick menu
- change the savestate slot to any other location like auto
- save core override
- exit retroarch
- repeat steps 1-3 above
- retroarch says overrides have been loaded
- open the retroarch quick menu
- Observe if the stateslot saved in the override is set. In my case, it's not.
- load the override manually from the override menu
- Observe if the stateslot saved in the core override is loaded. In my case, it is.
Version/Commit
1.20.0 05f75b83c190530096935240ffb635d2c729860b
Bisect Results
No response
Present in the nightly version
I don't know
Platform & operating system
Linux aarch64
Affected Cores
nestopia, mgba, gambatte and most likely others if not all
Environment information
Ubuntu aarch64
Relevant log output
ark@rg353m:~$ retroarch -v -L /home/ark/.config/retroarch/cores/nestopia_libretro.so /roms2/nes/Balloon\ Fight.zip | tee -a log.txt
librga:RGA_GET_VERSION:3.02,3.020000
ctx=0x5589010de0,ctx->rgaFd=3
[INFO] RetroArch 1.20.0 (Git 05f75b83c1)
[INFO] === Build =======================================
[INFO] Capabilities: ASIMD
[INFO] Version: 1.20.0
[INFO] Git: 05f75b83c1
[INFO] Built: Feb 2 2025
[INFO] =================================================
[INFO] [Input]: Found input driver: "udev".
[INFO] [Core]: Loading dynamic libretro core from: "/home/ark/.config/retroarch/cores/nestopia_libretro.so"
[INFO] [Overrides]: Redirecting save file to "/roms2/nes/Balloon Fight.srm".
[INFO] [Overrides]: Redirecting save state to "/roms2/nes/Balloon Fight.state".
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: GET_LANGUAGE: "0".
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2_INTL.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: PERFORMANCE_LEVEL: 6.
[INFO] [Content]: Loading content file: "/roms2/nes/Balloon Fight.zip#Balloon Fight.nes".
[INFO] [Content]: CRC32: 0xa0dabe0a.
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO] [Environ]: SYSTEM_DIRECTORY: "/roms2/bios".
[libretro INFO] Custom palette path: /roms2/bios/custom.pal
[libretro INFO] custom.pal not found in system directory.
[libretro INFO] NstDatabase.xml path: /roms2/bios/NstDatabase.xml
[libretro INFO] Using external XML database
[INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888.
[INFO] [Environ]: SAVE_DIRECTORY: "/roms2/nes/".
[INFO] [Environ]: SET_GEOMETRY: 256x224, Aspect: 1.306.
[INFO] [Environ]: SET_GEOMETRY.
[libretro INFO] [Nestopia]: Machine is NTSC.
[INFO] [SRAM]: Skipping SRAM load.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Core]: Geometry: 256x224, Aspect: 1.306, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Video]: Set video size to: fullscreen.
[INFO] [Video]: Starting threaded video driver..
[INFO] [GL]: Found GL context: "kms".
[INFO] [GL]: Detecting screen resolution: 0x0.
[INFO] [GL]: Vendor: ARM, Renderer: Mali-G52.
[INFO] [GL]: Version: OpenGL ES 3.2 v1.g2p0-01eac0.02b077cea4dc2127696dc49c93c0fc7a.
[INFO] [GL]: Using resolution 640x480.
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[WARN] [udev]: Full-screen pointer won't be available.
[INFO] [udev]: Keyboard #0: "adc-keys" (/dev/input/event2).
[INFO] [udev]: Keyboard #1: "rk805 pwrkey" (/dev/input/event0).
[INFO] [udev]: Keyboard #2: "gpio-keys" (/dev/input/event3).
[INFO] [udev]: Keyboard #3: "rk-headset" (/dev/input/event5).
[INFO] [udev]: Mouse/Touch #0: "Hynitron cst3xx Touchscreen" (ABS) /dev/input/event1.
[INFO] [udev]: Pad #0 (/dev/input/event4) supports force feedback.
[INFO] [udev]: Pad #0 (/dev/input/event4) supports 16 force feedback effects.
[INFO] [Joypad]: Found joypad driver: "udev".
[INFO] [Video]: Found display server: "null".
[WARN] [udev]: Mouse grab/ungrab feature unavailable.
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [ALSA] Using ALSA version 1.1.9
[INFO] [ALSA]: Using FLOAT_LE sample format for PLAYBACK device "default"
[INFO] [ALSA]: Period: 4 periods per buffer (1024 frames, 8192 bytes)
[INFO] [ALSA]: Buffer size: 4096 frames (32768 bytes)
[INFO] [ALSA]: Can pause: no.
[INFO] [ALSA]: Initialized PLAYBACK device "default"
[INFO] [Audio]: Started synchronous audio driver.
[INFO] [Display]: Found display driver: "gl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "/home/ark/.config/retroarch/content_favorites.lpl".
[INFO] [Config]: Loading config: "/home/ark/.config/retroarch/retroarch.cfg".
[INFO] [Overrides]: Saved: "/home/ark/.config/retroarch/config/Nestopia/Nestopia.cfg".
[INFO] [Overrides]: Overrides saved successfully.
[INFO] [Config]: Loading config: "/home/ark/.config/retroarch/retroarch.cfg".
[INFO] [Overrides]: Configuration overrides unloaded, original configuration restored.
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 04 seconds.
[INFO] [Core]: Unloading game..
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [Core]: Saved core options file to "/home/ark/.config/retroarch/retroarch-core-options.cfg".
[INFO] Threaded video stats: Frames pushed: 1709, Frames dropped: 6.
Rga built version:version:+2017-09-28 10:12:42
arm_release_ver of this libmali is 'g2p0-01eac0', rk_so_ver is '3'.EGL: major=1, minor=4
EGL: Vendor=ARM
EGL: Version=1.4 Bifrost-"g2p0-01eac0"
EGL: ClientAPIs=OpenGL_ES
EGL: Extensions=EGL_KHR_partial_update EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority EGL_KHR_no_config_context EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_yuv_surface EGL_EXT_pixel_format_float EGL_ARM_pixmap_multisample_discard EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image EGL_EXT_image_gl_colorspace EGL_EXT_create_context_robustness
EGL: ClientExtensions=EGL_EXT_client_extensions EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_KHR_platform_gbm
ark@rg353m:~$ retroarch -v -L /home/ark/.config/retroarch/cores/nestopia_libretro.so /roms2/nes/Balloon\ Fight.zip | tee -a log.txt
librga:RGA_GET_VERSION:3.02,3.020000
ctx=0x55b2d35de0,ctx->rgaFd=3
[INFO] RetroArch 1.20.0 (Git 05f75b83c1)
[INFO] === Build =======================================
[INFO] Capabilities: ASIMD
[INFO] Version: 1.20.0
[INFO] Git: 05f75b83c1
[INFO] Built: Feb 2 2025
[INFO] =================================================
[INFO] [Input]: Found input driver: "udev".
[INFO] [Core]: Loading dynamic libretro core from: "/home/ark/.config/retroarch/cores/nestopia_libretro.so"
[INFO] [Overrides]: Core-specific overrides found at "/home/ark/.config/retroarch/config/Nestopia/Nestopia.cfg".
[INFO] [Config]: Loading config: "/home/ark/.config/retroarch/retroarch.cfg".
[INFO] [Config]: Appending override config: "/home/ark/.config/retroarch/config/Nestopia/Nestopia.cfg".
[INFO] [Overrides]: Redirecting save file to "/roms2/nes/Balloon Fight.srm".
[INFO] [Overrides]: Redirecting save state to "/roms2/nes/Balloon Fight.state".
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: GET_LANGUAGE: "0".
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2_INTL.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: PERFORMANCE_LEVEL: 6.
[INFO] [Content]: Loading content file: "/roms2/nes/Balloon Fight.zip#Balloon Fight.nes".
[INFO] [Content]: CRC32: 0xa0dabe0a.
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO] [Environ]: SYSTEM_DIRECTORY: "/roms2/bios".
[libretro INFO] Custom palette path: /roms2/bios/custom.pal
[libretro INFO] custom.pal not found in system directory.
[libretro INFO] NstDatabase.xml path: /roms2/bios/NstDatabase.xml
[libretro INFO] Using external XML database
[INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888.
[INFO] [Environ]: SAVE_DIRECTORY: "/roms2/nes/".
[INFO] [Environ]: SET_GEOMETRY: 256x224, Aspect: 1.306.
[INFO] [Environ]: SET_GEOMETRY.
[libretro INFO] [Nestopia]: Machine is NTSC.
[INFO] [SRAM]: Skipping SRAM load.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Core]: Geometry: 256x224, Aspect: 1.306, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Video]: Set video size to: fullscreen.
[INFO] [Video]: Starting threaded video driver..
[INFO] [GL]: Found GL context: "kms".
[INFO] [GL]: Detecting screen resolution: 0x0.
[INFO] [GL]: Vendor: ARM, Renderer: Mali-G52.
[INFO] [GL]: Version: OpenGL ES 3.2 v1.g2p0-01eac0.02b077cea4dc2127696dc49c93c0fc7a.
[INFO] [GL]: Using resolution 640x480.
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GL]: Using 4 textures.
[INFO] [GL]: Loaded 1 program(s).
[WARN] [udev]: Full-screen pointer won't be available.
[INFO] [udev]: Keyboard #0: "adc-keys" (/dev/input/event2).
[INFO] [udev]: Keyboard #1: "rk805 pwrkey" (/dev/input/event0).
[INFO] [udev]: Keyboard #2: "gpio-keys" (/dev/input/event3).
[INFO] [udev]: Keyboard #3: "rk-headset" (/dev/input/event5).
[INFO] [udev]: Mouse/Touch #0: "Hynitron cst3xx Touchscreen" (ABS) /dev/input/event1.
[INFO] [udev]: Pad #0 (/dev/input/event4) supports force feedback.
[INFO] [udev]: Pad #0 (/dev/input/event4) supports 16 force feedback effects.
[INFO] [Joypad]: Found joypad driver: "udev".
[INFO] [Video]: Found display server: "null".
[WARN] [udev]: Mouse grab/ungrab feature unavailable.
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [ALSA] Using ALSA version 1.1.9
[INFO] [ALSA]: Using FLOAT_LE sample format for PLAYBACK device "default"
[INFO] [ALSA]: Period: 4 periods per buffer (1024 frames, 8192 bytes)
[INFO] [ALSA]: Buffer size: 4096 frames (32768 bytes)
[INFO] [ALSA]: Can pause: no.
[INFO] [ALSA]: Initialized PLAYBACK device "default"
[INFO] [Audio]: Started synchronous audio driver.
[INFO] [Display]: Found display driver: "gl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/ark/.config/retroarch/content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "/home/ark/.config/retroarch/content_favorites.lpl".
[INFO] [Config]: Loading config: "/home/ark/.config/retroarch/retroarch.cfg".
[INFO] [Overrides]: Configuration overrides unloaded, original configuration restored.
[INFO] [Config]: Loading config: "/home/ark/.config/retroarch/retroarch.cfg".
[INFO] [Config]: Appending override config: "/home/ark/.config/retroarch/config/Nestopia/Nestopia.cfg".
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the automatic override load using retroarch.cfg and config/Nestopia/Nestopia.cfg, then compare the logged append path with manual override loading. Done means core overrides for Nestopia and the other affected cores apply their saved settings, including the savestate slot, when content launches.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100