Startup Splash Screen/Video Glitched and Corrupted
-
I have a Odroid XU4 and have just installed Recalbox on the SD card but every time I start it it has this really weird flickering effect and glitch. I hope someone knows more about this than me and can help fix it.
Thanks
PS here is a video of whats happening https://www.youtube.com/watch?v=zTSuKfh5aII (epilepsy warning)
this also hapens on all videos and pictures not just this one. -
@acropolis40 Hi, at this time this bug is not fix yet, it's related to Odroid XU4. Could be fix in a further release.
Meawhile, don't worry and have a good game -
@acropolis40 known problem, and it's a GPU driver problem, hardly any chance to be fixed before a loooooooooooooooooong time
-
Well that sucks I really like the Recalbox OS and this issue is the only thing that is stopping me from sticking with it . But I was trying to find a work around so I deleted everything out of the splash screen folder but when the system booted up this time it still displayed the corrupted image so is there another splash screen folder located somewhere else I hope if I delete this it should only display a black screen.
On further note the Batocera OS that I believe is baced of Recalbox does not have this issue so maybe the devs can talk to those guys about borrowing some of there driver's I could be mistaken though.
Thanks -
@acropolis40 we'll never ever talk with batocera. Never in my life
-
@substring did they steal your OS
-
@acropolis40 long story, no need to brag about it
-
@substring Ok then thanks for the response guess i'l just have to try to find a work around.
-
I am having this same issue. As a temporary measure, I just removed the startup video while I wait for a fix.
-
@haphzrd Same but i'm still getting the same issue if its not a problem could you tell me exactly what files you deleted.
Thanks -
@acropolis40 @HapHzrd I setted
system.splash.length=-1
in recalbox.conf
That disabled video (against description) and no flicker at startup. -
Any news from devs on this? I did try to make the duration that ES would play the video for longer but that didn't help. What you can do is replace the start up video with an mp4 that's just sound. Then you get a nice start up tune without fear of having a seizure and it's better than having nout at all.
-
Shouldnât this be given some kind of priority so no one has an epileptic seizure?
-
@solo-ripper have you tried with the latest beta?
-
@paradadf Thereâs a beta for the XU4? I thought it was only for the pi b+. Thanks.
-
I looked into that.
At startup, on odroid, the
S02splash
script starts the splash mp4 video, in background process, usingffplay
for x seconds (set to 20 by default. see recalbox.conf, system.splash.length parameter).
Meantime the video is running, others startup scripts are running including theS31emulationstation
script that display version logo (that is useless as theS02splash
script do it after the splash video...) and start emulationstation without to wait the splash mp4 video finish. Making flickering effects.
Said simpler,ffplay
output is in conflict withfbv
(viashowlogo.sh
) and emulationstation boot logo as it's displayed in the same time.Waiting a real fix you can do either of the following trick to display splash video properly:
A simple trick is to not run the splash video in background so the other startup scripts will not run untill the video is finished. Boot process will be longer as nothing else will append the time the video is running.
Open a ssh session on your recalbox then run :
mount -o remount rw, /
cd /etc/init.d
nano S02splash
Edit the file as shown bellow
do_ffmpeg_start () { if ! `which ffplay >/dev/null` || [[ ! -f $video ]] ; then return fi ffplay_opts="-hide_banner -autoexit" ffplay_srt="subtitles=/recalbox/system/resources/splash/recalboxintro.srt:force_style='FontName=/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf,Fontsize=10'" ffplay $ffplay_opts -vf "$ffplay_srt" "$video" >/dev/null 2>&1 & PID=$! count=0 if [[ $videolength -gt -1 ]]; then while [[ ! -f "/tmp/emulationstation.ready" && ! -e "/var/run/kodi.msg" && $count -lt $(($videolength*10)) ]]; do sleep 0.1 ((count++)) done fi do_ffmpeg_stop $PID show_logo & # <-- edit here by adding the "&" }
...
case "$1" in start) if [[ `cat /recalbox/recalbox.arch` == "rpi"* ]] ; then ( do_omx_start ; show_logo ) & else ( wait_for_fb ; do_ffmpeg_start ) #& # <-- edit here by removing or commenting the "&" fi ;; stop) ;; restart|reload) ;; *) esac
Save and close it with
STRG + X
You can customize the length of the splash video by editing your/recalbox/share/system/recalbox.conf
file,system.splash.length
parameter. 12 seconds is a good choice.--
Another way is to modify
S31emulationstation
script to wait ffplay finished (or killed) before to start emulationstation. So the others sartup scripts will not wait video completion.
Open an ssh session on your recalbox then run :
mount -o remount rw, /
cd /etc/init.d
nano S31emulationstation
Edit the file as shown bellow
case "$1" in start) enabled="`$systemsetting -command load -key system.es.atstartup`" videoMode="`$systemsetting -command load -key system.es.videomode`" if [ "$enabled" != "0" ];then while [ "$(pidof ffplay)" ]; do #<-- eddit here by adding this sleep 0.1 #<-- eddit here by adding this done #<-- eddit here by adding this /recalbox/scripts/showlogo.sh & # In case the logo has been removed, let's put it back again echo $videoMode | grep -qE "(CEA|DMT) [0-9]{1,2} (HDMI|DVI)" [ $? = "0" ] && tvservice -e "$videoMode" settings_lang="`$systemsetting -command load -key system.language`" recallog "starting emulationstation with lang = $settings_lang" HOME=/recalbox/share/system LANG="${settings_lang}.UTF-8" SDL_VIDEO_GL_DRIVER=/usr/lib/libGLESv2.so SDL_VIDEO_EGL_DRIVER=/usr/lib/libGLESv2.so SDL_NOMOUSE=1 start-stop-daemon -S -q -m -p /var/run/emulationstation.pid --exec /usr/bin/emulationstation & fi ;;
Save and close it with
STRG + X
--
In both case, you can still customize the length of the splash video by editing your
/recalbox/share/system/recalbox.conf
file,system.splash.length
parameter.
12 seconds is a good choice.