Swanstation Core not launching on Raspberry Pi 3 Model B+ Lakka 4.3

Hi, I recently installed Lakka 4.3 on a Raspberry Pi 3 Model B+.

I cannot get the Swanstation Core to load a game. I have all the BIOS files and they are recognised.

I am hoping someone may be able to help?

I enabled logging and saved the contents below; it looks like it is related to the GL driver?:

 [INFO] [Content]: Updating firmware status for: "/tmp/cores/swanstation_libretro.so" on "/storage/roms/200GB/PBU-ROMs/RETROARCH SYSTEM/system".
[INFO] [Core]: Using content: "/storage/roms/200GB/PBU-ROMs/_SELECT-EXPANDED/Sony Playstation/Road Rash (USA)/Road Rash (USA).bin".
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] Threaded video stats: Frames pushed: 25096, Frames dropped: 0.
[INFO] RetroArch 1.14.0 (Git ad89b0c)
[INFO] === Build =======================================
[INFO] Capabilities: ASIMD
[INFO] Built: Jan 16 2023
[INFO] Version: 1.14.0
[INFO] Git: ad89b0c
[INFO] =================================================
[INFO] [Input]: Found input driver: "udev".
[INFO] [Core]: Loading dynamic libretro core from: "/tmp/cores/swanstation_libretro.so"
[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] [Overrides]: Redirecting save file to "/storage/savefiles/Road Rash (USA).srm".
[INFO] [Overrides]: Redirecting save state to "/storage/savestates/Road Rash (USA).state".
[INFO] [Environ]: GET_RUMBLE_INTERFACE.
[INFO] [Environ]: GET_DISK_CONTROL_INTERFACE_VERSION.
[INFO] [Environ]: SET_DISK_CONTROL_EXT_INTERFACE.
[INFO] [Environ]: GET_MESSAGE_INTERFACE_VERSION.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Environ]: GET_SAVE_DIRECTORY.
[INFO] [Content]: Content loading skipped. Implementation will load it on its own.
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[libretro INFO] [System] Loading CD image '/storage/roms/200GB/PBU-ROMs/_SELECT-EXPANDED/Sony Playstation/Road Rash (USA)/Road Rash (USA).bin'...
[libretro INFO] [System] Auto-detected console NTSC-U region for '/storage/roms/200GB/PBU-ROMs/_SELECT-EXPANDED/Sony Playstation/Road Rash (USA)/Road Rash (USA).bin' (region NTSC-U)
[libretro INFO] [System] Console Region: NTSC-U/C (US, Canada)
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/200GB/PBU-ROMs/RETROARCH SYSTEM/system".
[libretro INFO] [Common::MemoryArena] File mapping name: duckstation_691_0x7f70c040d4
[libretro INFO] [CDROMAsyncReader] Read thread started with readahead of 8 sectors
[INFO] [Environ]: GET_PREFERRED_HW_RENDER, video driver name: gl.
[INFO] [Environ]: GET_PREFERRED_HW_RENDER - Context callback set to RETRO_HW_CONTEXT_OPENGL.
[libretro INFO] [LibretroHostInterface] Renderer = OpenGL
[libretro INFO] [LibretroHostInterface] Requesting hardware renderer context for OpenGL
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[ERROR] Requesting OpenGL context, but RetroArch is compiled against OpenGLES. Cannot use HW context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[INFO] Requesting unknown context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[INFO] Requesting unknown context.
[ERROR] [Environ]: SET_HW_RENDER - Dynamic request HW context failed.
[INFO] [Environ]: SET_HW_RENDER, context type: gl.
[INFO] Requesting OpenGLES3 context.
[INFO] Reached end of SET_HW_RENDER.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Audio]: Set audio input rate to: 44234.67 Hz.
[INFO] [Video]: Set video size to: fullscreen.
[INFO] [Video]: Using HW render, OpenGL driver forced.
[INFO] [Video]: Using configured "gl" driver for GL HW render.
[INFO] [DRM]: Found 1 connectors.
[INFO] [DRM]: Connector 0 connected: yes
[INFO] [DRM]: Connector 0 has 29 modes.
[INFO] [DRM]: Connector 0 assigned to monitor index: #1.
[INFO] [DRM]: Mode 0: (1920x1080) 1920 x 1080, 60.000000 Hz
[INFO] [DRM]: Mode 1: (1920x1080) 1920 x 1080, 59.940201 Hz
[INFO] [DRM]: Mode 2: (1920x1080i) 1920 x 1080, 30.000000 Hz
[INFO] [DRM]: Mode 3: (1920x1080i) 1920 x 1080, 29.970100 Hz
[INFO] [DRM]: Mode 4: (1920x1080) 1920 x 1080, 50.000000 Hz
[INFO] [DRM]: Mode 5: (1920x1080i) 1920 x 1080, 25.000000 Hz
[INFO] [DRM]: Mode 6: (1920x1080) 1920 x 1080, 30.000000 Hz
[INFO] [DRM]: Mode 7: (1920x1080) 1920 x 1080, 29.970100 Hz
[INFO] [DRM]: Mode 8: (1920x1080) 1920 x 1080, 24.000000 Hz
[INFO] [DRM]: Mode 9: (1920x1080) 1920 x 1080, 23.976080 Hz
[INFO] [DRM]: Mode 10: (1600x900) 1600 x 900, 60.000000 Hz
[INFO] [DRM]: Mode 11: (1280x1024) 1280 x 1024, 60.019741 Hz
[INFO] [DRM]: Mode 12: (1280x720) 1280 x 720, 60.000000 Hz
[INFO] [DRM]: Mode 13: (1280x720) 1280 x 720, 59.940201 Hz
[INFO] [DRM]: Mode 14: (1280x720) 1280 x 720, 50.000000 Hz
[INFO] [DRM]: Mode 15: (1280x720) 1280 x 720, 30.000000 Hz
[INFO] [DRM]: Mode 16: (1280x720) 1280 x 720, 29.970100 Hz
[INFO] [DRM]: Mode 17: (1280x720) 1280 x 720, 24.000000 Hz
[INFO] [DRM]: Mode 18: (1280x720) 1280 x 720, 23.976162 Hz
[INFO] [DRM]: Mode 19: (1024x768) 1024 x 768, 60.003841 Hz
[INFO] [DRM]: Mode 20: (800x600) 800 x 600, 60.316540 Hz
[INFO] [DRM]: Mode 21: (720x576) 720 x 576, 50.000000 Hz
[INFO] [DRM]: Mode 22: (720x576i) 720 x 576, 25.000000 Hz
[INFO] [DRM]: Mode 23: (720x480) 720 x 480, 60.000000 Hz
[INFO] [DRM]: Mode 24: (720x480) 720 x 480, 59.940060 Hz
[INFO] [DRM]: Mode 25: (720x480i) 720 x 480, 30.001110 Hz
[INFO] [DRM]: Mode 26: (720x480i) 720 x 480, 29.970030 Hz
[INFO] [DRM]: Mode 27: (640x480) 640 x 480, 60.000000 Hz
[INFO] [DRM]: Mode 28: (640x480) 640 x 480, 59.940475 Hz
[INFO] [GL]: Found GL context: "kms".
[INFO] [GL]: Detecting screen resolution: 1280x720.
[INFO] [EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay
[INFO] [EGL]: EGL version: 1.4
[ERROR] [EGL]: #0x3005, EGL_BAD_CONFIG
[ERROR] [Video]: Cannot open video driver ... Exiting ...
[ERROR] Fatal error received in: "video_driver_init_internal()"
[INFO] [Core]: Content ran for a total of: 00 hours, 00 minutes, 00 seconds.
[libretro INFO] [LibretroHostInterface] Hardware context destroyed
[INFO] [Core]: Unloading game..
[INFO] [Core]: Unloading core..
[INFO] [Core]: Unloading core symbols..
[INFO] [Core]: Saved core options file to "/storage/.config/retroarch/config/SwanStation/SwanStation.opt".
[ERROR] failed_to_start_audio_driver

EDIT: I have an updated version of this core that fixes this and should also run faster. I can share it next week.

Swanstation need to use the Software renderer on the Pi3.

See this link for a workaround. Note that the setting string may have changed.

1 Like

That is awesome, thanks very much @metchebe :+1:

I overclocked Road Rash 3D to 200% and it runs really well.

(Edit: 200% caused CDDA errors, but it was still impressive either way)

I found the opt file here:

LAKKA_DISK/.config/retroarch/config/SwanStation/SwanStation.opt