RetroArch 1.3.4 - libretro_path config key broken using --appendconfig?

Hey,

with older RetroArch versions I used the libretro_path key for autoloading a core. With multiple platform specific configurations in place, I can issue the following command for loading a core and launching a rom:

retroarch --verbose --appendconfig platform_configs\genesis_plus_gx.cfg d:\rom.md

This is also handy when not only storing the libretro_path key in the platform specific config but also appropriate shaders, key configs etc.

This worked at least up to version 1.2.2. Unfortunately it doesn’t work with RetroArch 1.3.4 (tested with x64, x86, stable and nightly 20160607).

Please have a look into that issue in the hopes that this is not intended :slight_smile:

I saw there being the -L command line parameter, which would pose some redundancy. It would be nice to be able to avoid using it as the libretro_path key should already cover that.

cheers

– MK2k

Verbose Outputs of the command (see above) for reference:

RetroArch 1.3.4 (failing)


RetroArch [INFO] :: === Build =======================================RetroArch [INFO] :: [CPUID]: Vendor: GenuineIntel
RetroArch [INFO] :: [CPUID]: Features: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX
MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES Built: May  3 2016
RetroArch [INFO] :: Version: 1.3.4
RetroArch [INFO] :: Git: acd1e0b
RetroArch [INFO] :: =================================================
RetroArch [INFO] :: [CPUID]: Vendor: GenuineIntel
RetroArch [INFO] :: [CPUID]: Features: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX
RetroArch [INFO] :: Config: appending config "platform_configs\genesis_plus_gx.cfg"
RetroArch [INFO] :: Config: loading config from: d:\Games\_Emulation\RetroArch 1.3.4\retroarch.cfg.
RetroArch [ERROR] :: RetroArch is built for dynamic libretro cores, but libretro_path is not set. Cannot continue.
RetroArch [ERROR] :: Fatal error received in: "init_libretro_sym()"

[B]RetroArch 1.2.2 (working)

[/B]


RetroArch [WARN] :: SYSTEM DIR is empty, assume CONTENT DIR d:\rom.md
RetroArch [INFO] :: === Build =======================================RetroArch [INFO] :: [CPUID]: Vendor: GenuineIntel
RetroArch [INFO] :: [CPUID]: Features: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AVX2 AES Built: Jul 19 2015
RetroArch [INFO] :: Version: 1.2.2
RetroArch [INFO] :: Git: f073739
RetroArch [INFO] :: =================================================
RetroArch [INFO] :: [CPUID]: Vendor: GenuineIntel
RetroArch [INFO] :: [CPUID]: Features: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
RetroArch [INFO] :: Appending config "platform_configs\genesis_plus_gx.cfg"
RetroArch [WARN] :: system_directory is not set in config. Assuming system directory is same folder as game: "default".
RetroArch [INFO] :: Loading config from: d:\Games\_Emulation\RetroArch 1.2.2\retroarch.cfg.
RetroArch [INFO] :: Loading dynamic libretro core from: "d:\Games\_Emulation\RetroArch 1.2.2\cores\genesis_plus_gx_libretro.dll"
RetroArch [INFO] :: Environ SET_VARIABLES.
RetroArch [INFO] :: Environ SET_CONTROLLER_INFO.
RetroArch [INFO] :: Controller port: 1
RetroArch [INFO] ::    Joypad Auto (ID: 1)
RetroArch [INFO] ::    Joypad Port Empty (ID: 0)
RetroArch [INFO] ::    MD Joypad 3 Button (ID: 257)
RetroArch [INFO] ::    MD Joypad 6 Button (ID: 513)
RetroArch [INFO] ::    MS Joypad 2 Button (ID: 769)
RetroArch [INFO] ::    MD Joypad 3 Button + 4-WayPlay (ID: 1025)
RetroArch [INFO] ::    MD Joypad 6 Button + 4-WayPlay (ID: 1281)
RetroArch [INFO] ::    MD Joypad 3 Button + Teamplayer (ID: 1537)
RetroArch [INFO] ::    MD Joypad 6 Button + Teamplayer (ID: 1793)
RetroArch [INFO] ::    MS Joypad 2 Button + Master Tap (ID: 2049)
RetroArch [INFO] ::    MS Light Phaser (ID: 260)
RetroArch [INFO] ::    MS Paddle Control (ID: 261)
RetroArch [INFO] ::    MS Sports Pad (ID: 517)
RetroArch [INFO] ::    MS Graphic Board (ID: 262)
RetroArch [INFO] ::    MD XE-1AP (ID: 773)
RetroArch [INFO] ::    MD Mouse (ID: 2)
RetroArch [INFO] :: Controller port: 2
RetroArch [INFO] ::    Joypad Auto (ID: 1)
RetroArch [INFO] ::    Joypad Port Empty (ID: 0)
RetroArch [INFO] ::    MD Joypad 3 Button (ID: 257)
RetroArch [INFO] ::    MD Joypad 6 Button (ID: 513)
RetroArch [INFO] ::    MS Joypad 2 Button (ID: 769)
RetroArch [INFO] ::    MD Joypad 3 Button + 4-WayPlay (ID: 1025)
RetroArch [INFO] ::    MD Joypad 6 Button + 4-WayPlay (ID: 1281)
RetroArch [INFO] ::    MD Joypad 3 Button + Teamplayer (ID: 1537)
RetroArch [INFO] ::    MD Joypad 6 Button + Teamplayer (ID: 1793)
RetroArch [INFO] ::    MS Joypad 2 Button + Master Tap (ID: 2049)
RetroArch [INFO] ::    MD Menacer (ID: 516)
RetroArch [INFO] ::    MD Justifiers (ID: 772)
RetroArch [INFO] ::    MS Light Phaser (ID: 260)
RetroArch [INFO] ::    MS Paddle Control (ID: 261)
RetroArch [INFO] ::    MS Sports Pad (ID: 517)
RetroArch [INFO] ::    MS Graphic Board (ID: 262)
RetroArch [INFO] ::    MD XE-1AP (ID: 773)
RetroArch [INFO] ::    MD Mouse (ID: 2)
RetroArch [INFO] :: Version of libretro API: 1
RetroArch [INFO] :: Compiled against API: 1
RetroArch [INFO] :: Environ PERFORMANCE_LEVEL: 1.
RetroArch [INFO] :: Environ GET_LOG_INTERFACE.
RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
RetroArch [libretro INFO] ::  :: Frontend supports RGB565 - will use that instead of XRGB1555.
RetroArch [INFO] :: Environ PERFORMANCE_LEVEL: 7.
RetroArch [INFO] :: Content loading skipped. Implementation will load it on its own.
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"
RetroArch [INFO] ::     RetroPad, User 3, Button "B (bottom)" => "B"
RetroArch [INFO] ::     RetroPad, User 3, Button "Y (left)" => "A"
RetroArch [INFO] ::     RetroPad, User 3, Button "Select" => "Mode"
RetroArch [INFO] ::     RetroPad, User 3, Button "Start" => "Start"
RetroArch [INFO] ::     RetroPad, User 3, Button "D-Pad Up" => "D-Pad Up"
RetroArch [INFO] ::     RetroPad, User 3, Button "D-Pad Down" => "D-Pad Down"
RetroArch [INFO] ::     RetroPad, User 3, Button "D-Pad Left" => "D-Pad Left"
RetroArch [INFO] ::     RetroPad, User 3, Button "D-Pad Right" => "D-Pad Right"
RetroArch [INFO] ::     RetroPad, User 3, Button "A (right)" => "C"
RetroArch [INFO] ::     RetroPad, User 3, Button "X (up)" => "Y"
RetroArch [INFO] ::     RetroPad, User 3, Button "L" => "X"
RetroArch [INFO] ::     RetroPad, User 3, Button "R" => "Z"
RetroArch [INFO] ::     RetroPad, User 4, Button "B (bottom)" => "B"
RetroArch [INFO] ::     RetroPad, User 4, Button "Y (left)" => "A"
RetroArch [INFO] ::     RetroPad, User 4, Button "Select" => "Mode"
RetroArch [INFO] ::     RetroPad, User 4, Button "Start" => "Start"
RetroArch [INFO] ::     RetroPad, User 4, Button "D-Pad Up" => "D-Pad Up"
RetroArch [INFO] ::     RetroPad, User 4, Button "D-Pad Down" => "D-Pad Down"
RetroArch [INFO] ::     RetroPad, User 4, Button "D-Pad Left" => "D-Pad Left"
RetroArch [INFO] ::     RetroPad, User 4, Button "D-Pad Right" => "D-Pad Right"
RetroArch [INFO] ::     RetroPad, User 4, Button "A (right)" => "C"
RetroArch [INFO] ::     RetroPad, User 4, Button "X (up)" => "Y"
RetroArch [INFO] ::     RetroPad, User 4, Button "L" => "X"
RetroArch [INFO] ::     RetroPad, User 4, Button "R" => "Z"
RetroArch [INFO] ::     RetroPad, User 5, Button "B (bottom)" => "B"
RetroArch [INFO] ::     RetroPad, User 5, Button "Y (left)" => "A"
RetroArch [INFO] ::     RetroPad, User 5, Button "Select" => "Mode"
RetroArch [INFO] ::     RetroPad, User 5, Button "Start" => "Start"
RetroArch [INFO] ::     RetroPad, User 5, Button "D-Pad Up" => "D-Pad Up"
RetroArch [INFO] ::     RetroPad, User 5, Button "D-Pad Down" => "D-Pad Down"
RetroArch [INFO] ::     RetroPad, User 5, Button "D-Pad Left" => "D-Pad Left"
RetroArch [INFO] ::     RetroPad, User 5, Button "D-Pad Right" => "D-Pad Right"
RetroArch [INFO] ::     RetroPad, User 5, Button "A (right)" => "C"
RetroArch [INFO] ::     RetroPad, User 5, Button "X (up)" => "Y"
RetroArch [INFO] ::     RetroPad, User 5, Button "L" => "X"
RetroArch [INFO] ::     RetroPad, User 5, Button "R" => "Z"
RetroArch [WARN] :: SYSTEM DIR is empty, fill assume CONTENT DIR d:\rom.md
RetroArch [INFO] :: Environ SYSTEM_DIRECTORY: "d:\".
RetroArch [libretro INFO] ::  :: Game Genie ROM should be located at: d:\\ggenie.bin
RetroArch [libretro INFO] ::  :: Action Replay (Pro) ROM should be located at: d:\\areplay.bin
RetroArch [libretro INFO] ::  :: Sonic & Knuckles (2 MB) ROM should be located at: d:\\sk.bin
RetroArch [libretro INFO] ::  :: Sonic & Knuckles UPMEM (256 KB) ROM should be located at: d:\\sk2chip.bin
RetroArch [libretro INFO] ::  :: Mega Drive TMSS BOOTROM should be located at: d:\\bios_MD.bin
RetroArch [libretro INFO] ::  :: Game Gear TMSS BOOTROM should be located at: d:\\bios.gg
RetroArch [libretro INFO] ::  :: Master System (PAL) BOOTROM should be located at: d:\\bios_E.sms
RetroArch [libretro INFO] ::  :: Master System (NTSC-U) BOOTROM should be located at: d:\\bios_U.sms
RetroArch [libretro INFO] ::  :: Master System (NTSC-J) BOOTROM should be located at: d:\\bios_J.sms
RetroArch [libretro INFO] ::  :: Mega CD (PAL) BIOS should be located at: d:\\bios_CD_E.bin
RetroArch [libretro INFO] ::  :: Sega CD (NTSC-U) BIOS should be located at: d:\\bios_CD_U.bin
RetroArch [libretro INFO] ::  :: Mega CD (NTSC-J) BIOS should be located at: d:\\bios_CD_J.bin
RetroArch [libretro INFO] ::  :: Mega CD (PAL) BRAM is located at: d:\\scd_E.brm
RetroArch [libretro INFO] ::  :: Sega CD (NTSC-U) BRAM is located at: d:\\scd_U.brm
RetroArch [libretro INFO] ::  :: Mega CD (NTSC-J) BRAM is located at: d:\\scd_J.brm
RetroArch [libretro INFO] ::  :: Sega/Mega CD RAM CART is located at: d:\\cart.brm
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_system_hw:
RetroArch [INFO] ::     auto
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_region_detect:
RetroArch [INFO] ::     auto
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_bios:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_force_dtack:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_addr_error:
RetroArch [INFO] ::     enabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_lock_on:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_ym2413:
RetroArch [INFO] ::     auto
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_dac_bits:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_blargg_ntsc_filter:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_lcd_filter:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_overscan:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_gg_extra:
RetroArch [INFO] ::     disabled
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_render:
RetroArch [INFO] ::     single field
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_gun_cursor:
RetroArch [INFO] ::     no
RetroArch [INFO] :: Environ GET_VARIABLE genesis_plus_gx_invert_mouse:
RetroArch [INFO] ::     no
RetroArch [libretro INFO] ::  :: INFORMATION - Loading 2097152 bytes ...
RetroArch [INFO] :: Skipping SRAM load..
RetroArch [INFO] :: Set audio input rate to: 44100.00 Hz.
RetroArch [INFO] :: Timings deviate too much. Will not adjust. (Display = 59.95 Hz, Game = 49.70 Hz)
RetroArch [INFO] :: Video @ 768x576
RetroArch [INFO] :: Found GL context: wgl
RetroArch [INFO] :: Detecting screen resolution 1920x1080.
RetroArch [INFO] :: [WGL]: wglSwapInterval(1)
RetroArch [INFO] :: [GL]: Vendor: NVIDIA Corporation, Renderer: GeForce GTX 980M/PCIe/SSE2.
RetroArch [INFO] :: [GL]: Version: 4.5.0 NVIDIA 359.06.
RetroArch [INFO] :: Querying GL extension: ARB_ES2_compatibility => exists
RetroArch [INFO] :: Querying GL extension: ARB_sync => exists
RetroArch [INFO] :: Querying GL extension: ARB_texture_float => exists
RetroArch [INFO] :: Querying GL extension: EXT_texture_sRGB => exists
RetroArch [INFO] :: Querying GL extension: ARB_framebuffer_sRGB => exists
RetroArch [INFO] :: GL: Using resolution 768x576
RetroArch [INFO] :: [GL]: Default shader backend found: glsl.
RetroArch [INFO] :: [GL]: Not loading any shader.
RetroArch [INFO] :: [GL]: Using 4 textures.
RetroArch [INFO] :: [GL]: Loaded 0 program(s).
RetroArch [INFO] :: [GL]: Using GL_RGB565 for texture uploads.
RetroArch [INFO] :: Found XInput v1.4.
RetroArch [INFO] :: Found XInput controller, user #0
RetroArch [INFO] :: Enumerating DInput joypads ...
RetroArch [INFO] :: Device #0 PID: {02A1} VID:{045E}
RetroArch [INFO] :: Done enumerating DInput joypads ...
RetroArch [INFO] :: Autoconf: configuration score=2
RetroArch [INFO] :: XInput Controller (User 1) configured in port #0.
RetroArch [INFO] :: Found joypad driver: "xinput".
RetroArch [INFO] :: Using font rendering backend: freetype.
RetroArch [INFO] :: [CPUID]: Vendor: GenuineIntel
RetroArch [INFO] :: [CPUID]: Features: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
RetroArch [INFO] :: DirectSound devices:
RetroArch [INFO] ::     0: Primary Sound Driver
RetroArch [INFO] ::     1: Lautsprecher (XW-J1 Audio)
RetroArch [INFO] ::     2: Lautsprecher (Realtek High Definition Audio)
RetroArch [INFO] ::     3: SONY TV-C (NVIDIA High Definition Audio)
RetroArch [INFO] :: [DirectSound]: Setting buffer size of 12288 bytes
RetroArch [INFO] :: [DirectSound]: Latency = 64 ms
RetroArch [INFO] :: [CPUID]: Vendor: GenuineIntel
RetroArch [INFO] :: [CPUID]: Features: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX AVX2
RetroArch [INFO] :: Using font rendering backend: freetype.
RetroArch [INFO] :: Using font rendering backend: freetype.
RetroArch [INFO] :: [GL]: VSync => on
RetroArch [INFO] :: [WGL]: wglSwapInterval(1)
RetroArch [INFO] :: null: [d:\Games\_Emulation\RetroArch 1.3.4\content_history.lpl].
RetroArch [INFO] :: Found XInput v1.4.
RetroArch [INFO] :: Found XInput controller, user #0
RetroArch [INFO] :: Enumerating DInput joypads ...
RetroArch [INFO] :: Device #0 PID: {02A1} VID:{045E}
RetroArch [INFO] :: Done enumerating DInput joypads ...
RetroArch [INFO] :: Autoconf: configuration score=2
RetroArch [INFO] :: XInput Controller (User 1) configured in port #0.
RetroArch [INFO] :: Found joypad driver: "xinput".
RetroArch [INFO] :: Environ SET_GEOMETRY.
RetroArch [INFO] :: SET_GEOMETRY: 320x192, aspect: 1.333.
RetroArch [INFO] :: [Data Thread]: Initializing data thread.
RetroArch [INFO] :: [Data Thread]: Starting data thread.
RetroArch [INFO] :: Environ SET_GEOMETRY.
RetroArch [INFO] :: SET_GEOMETRY: 320x224, aspect: 1.333.
RetroArch [INFO] :: Found XInput v1.4.
RetroArch [INFO] :: Found XInput controller, user #0
RetroArch [INFO] :: Enumerating DInput joypads ...
RetroArch [INFO] :: Device #0 PID: {02A1} VID:{045E}
RetroArch [INFO] :: Done enumerating DInput joypads ...
RetroArch [INFO] :: Autoconf: configuration score=2
RetroArch [INFO] :: XInput Controller (User 1) configured in port #0.
RetroArch [INFO] :: Found joypad driver: "xinput".
RetroArch [INFO] :: Saving config at path: "d:\Games\_Emulation\RetroArch 1.3.4\retroarch.cfg"
RetroArch [INFO] :: Saving RAM type #0 to "d:\rom.srm".
RetroArch [INFO] :: Saved successfully to "d:\rom.srm".
RetroArch [INFO] :: Saving RAM type #1 to "d:\rom.rtc".
RetroArch [INFO] :: Average audio buffer saturation: 80.20 %, standard deviation (percentage points): 19.85 %.
RetroArch [INFO] :: Amount of time spent close to underrun: 3.70 %. Close to blocking: 69.84 %.
RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
RetroArch [INFO] :: Average audio buffer saturation: 80.20 %, standard deviation (percentage points): 19.85 %.
RetroArch [INFO] :: Amount of time spent close to underrun: 3.70 %. Close to blocking: 69.84 %.
RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.

Content of the file platform_configs\genesis_plus_gx.cfg:


# Core to be used
libretro_path = "cores\genesis_plus_gx_libretro.dll"

Yeah, libretro_path wasn’t really supposed to do that, it was unintended behavior. We fixed that and now you just need to add -L /path/to/core.dll to your launch command. No big deal.

Okay. It was a big deal when after updating nothing worked :slight_smile: