Homepage › Forums › RetroPie Project › Splash screens › Mushberry Video Splashscreen
- This topic has 54 replies, 8 voices, and was last updated 9 years, 7 months ago by shimlemons.
-
AuthorPosts
-
02/17/2015 at 02:15 #87753herbfargusMember
I made a new intro video that I use with omxplayer- here’s what I did to make it work: Note this only worked on 2.4 and prior- omxplayer doesn’t quite work with the newer versions
***EDIT for RetroPie version 2.6 use this method here: https://www.petrockblock.com/forums/topic/mushberry-video-splashscreen/page/2/#post-88438
sudo apt-get install omxplayer
I created a new folder called video in
/home/pi/RetroPie-Setup/supplementary/splashscreens/
and I added mushberryintro.mp4 into it
I modified the asplashscreen file:
sudo nano /etc/init.d/asplashscreen
I commented out (i.e. added a “#” at the beginning of each line):
#line=$(head -n 1 /etc/splashscreen.list) #isMovie=$(echo $line | grep -o "*.mp4") #if [ -z "$isMovie" ]; then #/usr/bin/fbi -T 2 -once -t 20 -noverbose -a -l /etc/splashscreen.list & #else #mplayer $line & #fi
and added these lines right above the previously commented lines:
/usr/bin/omxplayer -o hdmi /home/pi/RetroPie-Setup/supplementary/splashscreens/video/mushberryintro.mp4 &
This is an optional step to hide all of the boot text:
modify /boot/cmdline.txt to look like:dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty3 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait loglevel=3 quiet
you can also add logo.nologo in the /boot/cmdline.txt to remove the raspberry pi logo. This will essentially give you a completely blank terminal on boot (just hope you dont have any boot errors :P)
For anyone else who wants to try something similar I give the credit of my work to:
I developed the video in blender
I’ve also included an SVG of the mushberry that I traced out in Illustrator: all credit to the creator SHAWN or whoever it was that started the mushberry thing
DOWNLOAD LINK FOR VIDEO: (site says my submission is to big to attach)
https://www.dropbox.com/s/yinfnqgcodbiv4k/mushberryintro.mp4?dl=0
MUSHBERRY SVG:
https://www.dropbox.com/s/9eo6438yddzzhs8/mushberry.svg?dl=002/17/2015 at 10:30 #87790robertybobParticipantIt looks like a great idea. I’m assuming this overrides the normal (static) splash screen? Could you have made the video longer, or is 8 seconds chosen for a specific reason? Just wondering :)
02/17/2015 at 16:46 #87825herbfargusMemberYes, by commenting out those lines it does override the static image splash screen I’m sure there is a way to just add it to the asplashscreen file while allowing the static screens to still Be an option but I don’t know enough code to make that work in the asplashcreen file so it was just a quicker fix for me to replace it with what I know worked (but you can always just revert it if you want your static image back).
-BTW if someone knows how to make omxplayer work in the asplashcreen file while still giving the option for using static images with fbi- (for example being able to choose a video splash screen from the setup script like we are able to choose static images) I’m all ears (I’m not sure if thats what they were going for with the mplayer command in the script but i couldnt figure it out)
*** EDIT the above issues are solved with the script in post 88050 below (big thanks to free5y1e)
I left it at 8 seconds because it allows people to expand it depending on their preferences and their specific boot times (raspi2 boots faster and the amount of roms people have might affect loading times for emulationstation as well). What I ended up doing for my particular setup- I took a bunch of videos of gameplay from each emulator, mashed them together and threw a Zelda remix for the audio and it ended up being about 40 seconds (which was the original boot time on my pi from boot to the emulation station loading screen). If you want a longer video intro without the emulationstation splash screen cutting into it, just remove the “&” in the line here:
/usr/bin/omxplayer -o hdmi /home/pi/RetroPie-Setup/supplementary/splashscreens/video/mushberryintro.mp4 &
I also have modified versions of the video (instead of saying your childhood in a box I have one that just says loading and then I repeated the video a bunch so it looked like a scrolling loading screen.) If you would like the one that says loading I can add that link too. I’m also open to new slogan ideas. if anyone wants the same layout with different colours or a different slogan let me know and I’ll try and make it in my free time.
02/18/2015 at 07:14 #87909Mike ManleyParticipantam i doing something wrong follow every step and i got a black screen with no video except the raspberry pi logo top upper left corner and then it just sits there and does nothing
02/18/2015 at 07:45 #87911herbfargusMemberThe fact that the only thing you see is the raspberry pi logo means that you edited the cmdline text right otherwise you would see all of the scrolling text. I take it it still boots up into emulationstation but doesn’t start the video? (Which BTW maybe I should have added a caveat to maybe not change the boot text until the video just in case it didn’t work so you could read the error it puts out) Anyhow if the video is not playing that means either
-omxplayer wasn’t installed correctly
-the path to the video specified in the asplashcreen file is incorrect (hopefully its this one- easy to fix) really your video can be placed anywhere, just make sure that you have the right path listed in the asplashcreen file.
– or I’m an idiot and gave you flawed intsructions… (Most likely)Verify your asplashcreen file and then if that’s in order see If you can revert the cmdtxt changes and see what error it spits out.
to eliminate any discrepancies here is my full working asplashcreen.
#! /bin/sh ### BEGIN INIT INFO # Provides: asplashscreen # Required-Start: # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Show custom splashscreen # Description: Show custom splashscreen ### END INIT INFO do_start () { /usr/bin/omxplayer -o hdmi /home/pi/RetroPie-Setup/supplementary/splashscreens/video/mushberryintro.mp4 & # line=$(head -n 1 /etc/splashscreen.list) # isMovie=$(echo $line | grep -o "*.mpg") # if [ -z "$isMovie" ]; then # /usr/bin/fbi -T 2 -once -t 20 -noverbose -a -l /etc/splashscreen.list & #else # mplayer $line & #fi exit 0 } case "$1" in start|"") do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # No-op ;; status) exit 0 ;; *) echo "Usage: asplashscreen [start|stop]" >&2 exit 3 ;; esac :
02/18/2015 at 23:41 #88005mallaParticipantNice work!
Do you mind to share your (40 seconds) videos with us?
02/19/2015 at 02:43 #88043Mike ManleyParticipantSo this is what i have done because its still not working.
SSH
1) expanded my sd card
sudo apt-get install omxplayer (to install omxplayer)2)made a file called video under here
/home/pi/RetroPie-Setup/supplementary/splashscreens/video
and I added mushberryintro.mp4 into it (i kept the same file name for the movie so i dont mess anything up)3)I modified the asplashscreen file
sudo nano /etc/init.d/asplashscreen#! /bin/sh
### BEGIN INIT INFO
# Provides: asplashscreen
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Show custom splashscreen
# Description: Show custom splashscreen
### END INIT INFOdo_start () {
/usr/bin/omxplayer -o hdmi /home/pi/RetroPie-Setup/supplementary/splashscreens/video/mushberryintro.mp4 &
# line=$(head -n 1 /etc/splashscreen.list)
# isMovie=$(echo $line | grep -o “*.mpg”)
# if [ -z “$isMovie” ]; then
# /usr/bin/fbi -T 2 -once -t 20 -noverbose -a -l /etc/splashscreen.list &
#else
# mplayer $line &
#fiexit 0
}case “$1″ in
start|””)
do_start
;;
restart|reload|force-reload)
echo “Error: argument ‘$1’ not supported” >&2
exit 3
;;
stop)
# No-op
;;
status)
exit 0
;;
*)
echo “Usage: asplashscreen [start|stop]” >&2
exit 3
;;
esac:
4)this time i left the cmdline alone so i can see what the text say
5)made the file executable
sudo chmod a+x /etc/init.d/asplashscreen6)then i activated with
sudo insserv /etc/init.d/asplashscreenand thats it and this what it keeps saying on boot text
“waiting for dbus address to appear”
and still no video
but it does go to emulationstation after a little bit but just no video :-(02/19/2015 at 02:45 #88044Mike ManleyParticipantvideo i put my little 2 cents in that i wanted to play for my intro
02/19/2015 at 04:08 #88050herbfargusMemberAlright so I’ve been thinking about this pretty much all day and I’ve come up with a few things (BTW your video is fantastic- much cooler than mine)
So. A wonderful person named free5ty1e came up with an alternate code that quite frankly is much better than mine. I tested it today and it works swimmingly (I’m currently on the 2.4 beta image but I’m going to try and start fresh from the 2.6 image this weekend just to make sure it works there too.)
Here’s what I did: Just to eliminate any issues I located two files:
sudo nano /etc/init.d/asplashscreen
sudo nano /home/pi/RetroPie-Setup/supplementary/asplashscreen/asplashcreenand changed their code to look like this:
#! /bin/sh ### BEGIN INIT INFO # Provides: asplashscreen # Required-Start: # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Show custom splashscreen # Description: Show custom splashscreen ### END INIT INFO do_start () { while read splashline; do echo Playing splash video or image $splashline isMovie=$(echo $splashline | grep -o ".mov\|.mp4\|.mkv\|.3gp\|.mpg") if [ -z "$isMovie" ]; then /usr/bin/fbi -T 1 -once -t 10 -noverbose -a $splashline sleep 12 else omxplayer $splashline fi done </etc/splashscreen.list exit 0 } case "$1" in start|"") do_start & ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # No-op ;; status) exit 0 ;; *) echo "Usage: asplashscreen [start|stop]" >&2 exit 3 ;; esac :
Then you go into the setup script:
cd RetroPie-Setup sudo ./retropie_setup.sh
then select #3 Setup
go to #325 Enable/Disable splash screen
Choose Enable splash Screen
then choose #326 select splashscreen
Then scroll down and select the folder you added named video
sudo rebootand hopefully…. when it reboots your video will play.
The beautiful thing about this updated script is you shouldn’t have to go into all of your configs everytime you want to change a video, you should just be able to change it in the setup script just like you would a static image (and if you want to go back to using images instead of videos its no problem at all)
02/19/2015 at 06:43 #88066lightthiefParticipantSo pardon my maybe dumb question,
Do splash screens play while other things load in the background or does emulation station loading not being till after the Splash screen.I’d been disabling it hoping to save a bit of time. But maybe it’s not saving me any time.
02/19/2015 at 06:54 #88067herbfargusMemberIt’s not a dumb question, it took me forever this week to figure that very thing out. So by the very nature of splashscreens running they do consume some of your processing power and can slow down boot times a bit (to be honest in my case it never slowed it down more than 10 seconds or so), but you can also have programs running in the background. In the above script at the end of the line there is a “&” which basically tells the underlying programs to run while the splashscreen is running, if you remove that, your splash screen video can be 20 minutes long and then once it finishes, emulationstation will open up, otherwise if you leave that “&” there, once emulationstation loads, it will cut your video off and load up (which I wanted it to do for mine so that worked out great).
02/19/2015 at 13:45 #88104Mike ManleyParticipantyea that one didnt work either lol
02/19/2015 at 14:37 #88109herbfargusMemberHa ha my goodness. Which image are you using? Are you on a B+ or Pi 2? Are you using an hdmi cable or the 3.5 mm jack?My pi 2 will be here any day now and I’m going to load the 2.6 image starting right from the beginning just to make sure it works. I’ve read up on the dbus error issue and that may have come from using rpi-update (its seems to have been a recent issue with omxplayer) or updated firmware. as far as I understand it the error originates from loading too quickly before the other required services for omxplayer to work start.
[REDACTED]
see here for a solution:
http://www.raspberrypi.org/forums/viewtopic.php?t=97693&p=679064Mplayer works with the current code (if you change omxplayer to mplayer):
sudo apt-get install mplayer
but it is much more sluggish than omxplayer
02/19/2015 at 16:24 #88134lightthiefParticipantPossibly unrelated follow up question, can so,ething similar be implemented when moving in and out of games so no code shows?
02/19/2015 at 17:43 #88162Mike ManleyParticipantI’m using b+ model with rp 2.4 with hdmi and ethernet cable instead of wireless
02/19/2015 at 17:48 #88163Mike ManleyParticipantThat last code to enable splash screen u gave me boot up to es but it said unable to load video if u can get that one to work that be awesome because I could change videos or photos without coding again
02/19/2015 at 18:08 #88169herbfargusMemberI’ve yet to figure at how to hide the text between games (that may be specific to each emulator). I’ve usually leave it so I know what the error is if a ROM doesn’t work.
@ Mike Manley:
Another thing you could check is the video encoding. The recommended encoding for omxplayer is H264 MPEG4. (But if my video on mine works it should work on yours too)
***Update: I have tested this method with a fresh install of 2.6 and it does not work. I get a dbus error upon boot. It is an issue with omxplayer and newer firmware, not the asplashcreen code.
(mplayer does currently work but it is very sluggish)If it still doesn’t work you may want to just start from a fresh 2.6 image. I’m currently developing a blog as I configure my 2.6 image on my raspberry pi B+, I’m doing it step by step so anyone can follow it. When I get it up and working I’ll post the link. If I’m really ambitious I may create some YouTube videos.
02/20/2015 at 02:37 #88231herbfargusMemberOK! QUICK AND DIRTY HACK!
I was able to get it to work but it takes a little configuration in 3 file locations:
/home/pi/RetroPie-Setup/scriptmodules/supplementary/splashenable.sh
you’ll change every instance inside of the file that says “asplashscreen” to “jsplashscreen” (except the instance that refers to a folder directory rather than a file)rp_module_id="splashenable" rp_module_desc="Enable/disable Splashscreen" rp_module_menus="3+" rp_module_flags="nobin" function set_enableSplashscreenAtStart() { clear printHeading "Enabling custom splashscreen on boot." getDepends fbi chmod +x "$scriptdir/supplementary/asplashscreen/jsplashscreen" cp "$scriptdir/supplementary/asplashscreen/jsplashscreen" "/etc/init.d/" find $scriptdir/supplementary/splashscreens/retropieproject2014/ -type f > /etc/splashscreen.list # This command installs the init.d script so it automatically starts on boot update-rc.d jsplashscreen defaults # not-so-elegant hack for later re-enabling the splashscreen update-rc.d jsplashscreen enable # # =========================================== # # TODO Alternatively use plymouth. However, this does not work completely. So there is still some work to be done here ... # # instructions at https://github.com/notro/fbtft/wiki/FBTFT-shield-image#bootsplash # apt-get install -y plymouth-drm # echo "export FRAMEBUFFER=/dev/fb1" | tee /etc/initramfs-tools/conf.d/fb1 # if [[ ! -f /boot/$(uname -r) ]]; then # update-initramfs -c -k $(uname -r) # else # update-initramfs -u -k $(uname -r) # fi # imgname=$(echo "update-initramfs: Generating /boot/initrd.img-3.12.20+" | sed "s|update-initramfs: Generating /boot/||g") # echo "initramfs=$imgname" >> /boot/config.txt # echo "splash quiet plymouth.ignore-serial-consoles $(cat /boot/cmdline.txt)" > tempcmdline.txt # cp /boot/cmdline.txt /boot/cmdline.txt.bak # mv tempcmdline.txt /boot/cmdline.txt # mkdir -p "/usr/share/plymouth/themes/retropie" # cat > "/usr/share/plymouth/themes/retropie/retropie.plymouth" << _EOF_ # [Plymouth Theme] # Name=RetroPie Theme # Description=RetroPie Theme # ModuleName=script # [script] # ImageDir=/usr/share/plymouth/themes/retropie # ScriptFile=/usr/share/plymouth/themes/retropie/retropie.script # _EOF_ # cat > "/usr/share/plymouth/themes/retropie/retropie.script" << _EOF_ # # only PNG is supported # pi_image = Image("splashscreen.png"); # screen_ratio = Window.GetHeight() / Window.GetWidth(); # pi_image_ratio = pi_image.GetHeight() / pi_image.GetWidth(); # if (screen_ratio > pi_image_ratio) # { # Screen ratio is taller than image ratio, we will match the screen width # scale_factor = Window.GetWidth() / pi_image.GetWidth(); # } # else # { # Screen ratio is wider than image ratio, we will match the screen height # scale_factor = Window.GetHeight() / pi_image.GetHeight(); # } # scaled_pi_image = pi_image.Scale(pi_image.GetWidth() * scale_factor, pi_image.GetHeight() * scale_factor); # pi_sprite = Sprite(scaled_pi_image); # # Place in the centre # pi_sprite.SetX(Window.GetWidth() / 2 - scaled_pi_image.GetWidth () / 2); # pi_sprite.SetY(Window.GetHeight() / 2 - scaled_pi_image.GetHeight() / 2); # _EOF_ # plymouth-set-default-theme -R retropie # # ============================= } function set_disableSplashscreenAtStart() { clear printHeading "Disabling custom splashscreen on boot." update-rc.d jsplashscreen disable # # TODO plymouth command. Not used yet ... # sed -i 's|splash quiet plymouth.ignore-serial-consoles ||g' /boot/cmdline.txt } function configure_splashenable() { cmd=(dialog --backtitle "$__backtitle" --menu "Choose the desired boot behaviour." 22 86 16) options=(1 "Disable custom splashscreen on boot." 2 "Enable custom splashscreen on boot") choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) if [[ -n "$choices" ]]; then case $choices in 1) set_disableSplashscreenAtStart dialog --backtitle "$__backtitle" --msgbox "Disabled custom splashscreen on boot." 22 76 ;; 2) set_enableSplashscreenAtStart dialog --backtitle "$__backtitle" --msgbox "Enabled custom splashscreen on boot." 22 76 ;; esac fi }
/home/pi/RetroPie-Setup/supplementary/asplashscreen/asplashscreen
– rename to: /home/pi/RetroPie-Setup/supplementary/asplashscreen/jsplashscreen
then replace every reference in the newly renamed file of “asplashscreen” to “jsplashscreen”#! /bin/sh ### BEGIN INIT INFO # Provides: jsplashscreen # Required-Start: dbus # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Show custom splashscreen # Description: Show custom splashscreen ### END INIT INFO do_start () { while read splashline; do echo Playing splash video or image $splashline isMovie=$(echo $splashline | grep -o ".mov\|.mp4\|.mkv\|.3gp\|.mpg") if [ -z "$isMovie" ]; then /usr/bin/fbi -T 1 -once -t 10 -noverbose -a $splashline sleep 12 else omxplayer $splashline fi done </etc/splashscreen.list exit 0 } case "$1" in start|"") do_start & ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) # No-op ;; status) exit 0 ;; *) echo "Usage: jsplashscreen [start|stop]" >&2 exit 3 ;; esac :
/etc/init.d/asplashscreen
-Rename to /etc/init.d/jsplashscreen
This will the exact same file as the code above- so just repeat the same stepsnow place the video you want as your splash in this directory:
/home/pi/RetroPie-Setup/supplementary/splashscreens/videoinstall omxplayer (if you haven’t already)
sudo apt-get install omxplayer
then enable splashcreen in the setup script and then choose the splashcreen you added (the folder named “video”):
cd RetroPie-Setup sudo ./retropie_setup.sh choose option #3 setup choose option #325 and enable the splashscreen choose option #326 and select the folder that you added (in my case it was the folder named "video")
sudo reboot.
Now your video should play. This should be the only time you should have to change these configurations. In the future you can just change your splashcreens through the setup script.
@mike – if this doesn’t work…. well it better ha ha.note- the video may take 10-15 seconds to start from the boot sequence. you may also have to try other letters than J depending on how long your video is= i realised when i chose shorter videos I ran into the dbus error again so I had to go down a few letters to N.
02/20/2015 at 06:45 #88253Mike ManleyParticipanthey how do u rename /etc/init.d/asplashscreen
-Rename to /etc/init.d/jsplashscreen
because i keep getting permission denied02/20/2015 at 06:50 #88254herbfargusMemberThe best way I’ve found I to log into winscp as root instead of pi and then you can just rename it like you would any file name.
or if you are in the command line make sure to use sudo first.
02/20/2015 at 06:56 #88255Mike ManleyParticipantyea i figured it out how to rename in putty right now im installing omxplayer and then im done and just have to do retropie setup
then enable splashcreen in the setup script and then choose a the splashcreen you added “video”: and then see if it works
cross fingers02/20/2015 at 07:05 #88256Mike ManleyParticipantyea video didnt come up it said
/home/pi/RetroPie-Setup/supplementary/splashscreens/video/mushberryintro.mp4 loading failed02/20/2015 at 07:08 #88257Mike ManleyParticipantand when i choose to enable/disable splashscreen it doesnt do anything expect go back to the first highlighted one that says configure audio setting 301
02/20/2015 at 07:10 #88258Mike ManleyParticipantlol about to give up god its so crazy
02/20/2015 at 07:17 #88260Mike ManleyParticipantwent step by step and still nothing ugh i dont know how many times i reformated my sd card now lol and started fresh
02/20/2015 at 07:18 #88261herbfargusMemberpm me and I will send you the exact files i have working on my pi.
02/20/2015 at 07:19 #88262Mike ManleyParticipantwhat verison u used that code for? because i have 2.4 on mine right now but i do have the image for 2.3 that i can try out depending what verison u have
02/20/2015 at 07:26 #88263herbfargusMemberI’m on a raspberry pi B+ with using the 2.6 image. I would recommend updating to the 2.6 image. some of the file structure may have changed. https://www.petrockblock.com/retropie/retropie-downloads/download-info/retropie-sd-card-image-for-rpi-version-1/
02/20/2015 at 07:30 #88264Mike ManleyParticipantok downloading right now
02/20/2015 at 07:58 #88267Mike ManleyParticipantlol same thing on the 2.6 image loading video error again like the same way
02/20/2015 at 08:15 #88269herbfargusMemberif anyone else wants the link to my working files, here they are:
https://drive.google.com/open?id=0B2TMeZ6iEFvHSzFsQlpNdFZOazg&authuser=0
remove or backup your current asplashscreen files and replace them with the nsplashscreen file I provided. You will copy it to these two locations:
/home/pi/RetroPie-Setup/supplementary/asplashscreen
/etc/init.dremove or backup the current splashenable.sh and add the splashenable.sh I provided to:
/home/pi/RetroPie-Setup/scriptmodules/supplementary
then you’ll go into the setup script, enable splashcreens and then choose your splashscreen and then reboot
02/21/2015 at 02:53 #88407Mike ManleyParticipantok i did everything replaced those two files you sent and into the correct spots and i still dont get a video and when i try to enable splashscreen i get this and it skips
02/21/2015 at 03:56 #88420Mike ManleyParticipantHere is my step by step what i did and still dont get any video intro
https://drive.google.com/folderview?id=0B4qA5fbBPIqTVlpDdmpKc0VRaGs&usp=sharing
02/21/2015 at 04:21 #88427herbfargusMember[removed]
02/21/2015 at 06:21 #88434Mike ManleyParticipantok done everything you said and nothing still change all permissions to 777 through root and deleted the a in chmod a+x
-
AuthorPosts
- The forum ‘Splash screens’ is closed to new topics and replies.