libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.34k stars 1.84k forks source link

On OpenDingux Nightly: [SDL1]: Failed to init SDL surface: Unable to set video mode. #11904

Closed john-parton closed 3 years ago

john-parton commented 3 years ago

Description

RetroArch fails to load a core on nightly OpenDingux, even when both RetroArch and the core are built using the new toolchain.

Expected behavior

You should be able to compile RetroArch and cores using the new toolchain and run it on OpenDingux nightly.

Actual behavior

I compiled RetroArch master using the new OpenDingux toolchain, available here: http://od.abstraction.se/opendingux/opendingux-gcw0-toolchain.2020-10-01.tar.gz I also compiled dosbox-pure using the new toolchain. I'm on the Anbernic RG350M, with the firmware available here: http://od.abstraction.se/opendingux/ca2eb4d29774781f6843361f66a7817ffdbf3895/ (Built 2021-01-02)

RetroArch starts successfully, but when I try to load a core, I get this error:

[ERROR] [SDL1]: Failed to init SDL surface: Unable to set video mode.

[ERROR] [Video]: Cannot open video driver ... Exiting ...
[ERROR] Fatal error received in: "init_video()"

Full log: error.log

Steps to reproduce the bug

  1. Compile RetroArch using the new toolchain (See diff below for how to get it to compile)
  2. Compile a core using the new toolchain
  3. Install/copy RetroArch and core to RG350M with nightly firmware
  4. Start RetroArch
  5. Load content/core

Version/Commit

You can find this information under Information/System Information

Environment information

To compile

I needed to use the mksquashfs from the old toolchain to finish the last step of actually making the opk, but otherwise everything else used the new toolchain that I installed at /opt/gcw-toolchain.2020-10-01

diff --git a/Makefile.rg350 b/Makefile.rg350
index bddd13e48b..fec5bf19af 100644
--- a/Makefile.rg350
+++ b/Makefile.rg350
@@ -3,7 +3,7 @@
 #########################

 # Default toolchain directory
-TOOLCHAIN_DIR=/opt/gcw0-toolchain
+TOOLCHAIN_DIR=/opt/gcw0-toolchain.2020-10-01

 # All toolchain-related variables may be
 # overridden via the command line
@@ -21,7 +21,7 @@ endif

 GCW0_SDL_CONFIG      ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/sdl-config
 GCW0_FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/freetype-config
-GCW0_MK_SQUASH_FS    ?= $(TOOLCHAIN_DIR)/usr/bin/mksquashfs
+GCW0_MK_SQUASH_FS    ?= /opt/gcw0-toolchain/usr/bin/mksquashfs

 GCW0_INC_DIR         ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include
 GCW0_LIB_DIR         ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
sav2880 commented 3 years ago

Since this got pushed to GCW Zero, has this ever worked or has this been a problem from the get go? Trying to see if I can go back in nightlies to find a time where this did work ok.

john-parton commented 3 years ago

I'm testing on the RG350M. I'm a new dev, so I don't know the history of this entire build. I just know it doesn't build with the referenced commit.

sav2880 commented 3 years ago

sting on the RG350M. I'm a new dev, so I don't know the history of this entire build. I just know it doesn't build with the referenced co

Cool deal. Not a dev at all myself, just went to the most recent nightly and saw this was the case on my GCW Zero. FWIW, I'm on the most recent Alpha 2021 firmware for it, I suspect that doesn't make a huge difference for this though.

jdgleaver commented 3 years ago

We now have OpenDingux Beta support: https://github.com/libretro/RetroArch/pull/12190

There's currently a little bug in the OS related to IPU scaling - this has already been fixed by zcrc, though, and the update should be included in tomorrow's OD beta nightly

I needed to use the mksquashfs from the old toolchain to finish the last step of actually making the opk, but otherwise everything else used the new toolchain that I installed at /opt/gcw-toolchain.2020-10-01

Yeah, the mksquashfs in the latest toolchain requires glibc 2.32, which is only installed on 'bleeding edge' distros. It should be okay to use the old one for personal builds - otherwise you'll need something like ubuntu groovy or opensuse tumbleweed (both of which run nicely in VirtualBox)