Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hardware:lcd_led_marquees [2022/02/24 01:37] – [Setting up the scripts in Batocera] pdapicehardware:lcd_led_marquees [2022/10/04 06:22] (current) – removal of broken scripts atari
Line 131: Line 131:
 It is possible to use the two HDMI outputs on an RPi4, with one displaying Batocera and the other displaying the dynamic marquee. [[https://forum.batocera.org/d/7129-dynamic-marquee-for-pi4-working|Link to the original forum post explaining this.]] Essentially, the Raspberry Pi draws images/videos directly to the framebuffer, which is still visible on the other display even though it's hidden by Batocera on the main display. It is possible to use the two HDMI outputs on an RPi4, with one displaying Batocera and the other displaying the dynamic marquee. [[https://forum.batocera.org/d/7129-dynamic-marquee-for-pi4-working|Link to the original forum post explaining this.]] Essentially, the Raspberry Pi draws images/videos directly to the framebuffer, which is still visible on the other display even though it's hidden by Batocera on the main display.
  
-Artwork needs to be sourced and placed in the appropriate ''Marquee'' and ''roms/Marquee'' folders first. +<WRAP center round important
- +This has broken on **v34** and higherStay on **v33** or lower if you intend to use this
-Place ''game.sh'' into ''system/configs/emulationstation/scripts/game-selected'' +</WRAP>
- +
-<file bash game.sh+
-#!/bin/bash +
-System=$1 #system name +
-Romname=${2%.*} #romname +
-rom=${Romname##*/} +
-/userdata/marquee.sh Gameselected $System "$rom" +
-</file> +
- +
-Place ''system.sh'' into ''system/configs/emulationstation/scripts/system-selected'' +
- +
-<file bash system.sh> +
-#!/bin/bash +
-System=$1 #System name +
-/userdata/marquee.sh Systemselected $System & +
-</file> +
- +
-Place ''marquee.sh'' in ''/userdata'' +
- +
-<file bash marquee.sh> +
-#!/bin/bash +
- +
-case $1 in +
-Start) +
-Romname=$3 +
-Gamepath=$2 +
-marqueeimage=$Gamepath/images/$romname-marquee.png +
-if [ -f "/userdata/roms/Marquee/videos/$Romname.mp4"+
-then +
-ffmpeg -i /userdata/roms/Marquee/videos/$Romname.mp4 -vf scale=1280:720 -sws_flags bilinear -pix_fmt rgb565le -f fbdev /dev/fb0 +
- +
-fi +
- +
-if [ -f "/userdata/roms/Marquee/hires/$Romname.jpg"+
-then +
-fbv /userdata/roms/Marquee/hires/$Romname.jpg -fer +
-elif [ -f "$marqueeimage"+
-then +
-fbv $marqueeimage -fer +
-else +
-fbv /userdata/roms/mame/images/mame.png -fer +
-fi +
- +
-;; +
-Gameselected) +
-System=$2 #system name +
-Romname=$3 #romname +
- +
-if [ -f "/userdata/roms/Marquee/$Romname.png"+
-then +
-fbv /userdata/roms/Marquee/$Romname.png -fer +
-elif [ -f "/userdata/roms/$System/images/$Romname-marquee.png"+
-then +
-fbv "/userdata/roms/$System/images/$Romname-marquee.png" -fer +
-else +
-fbv /userdata/roms/Marquee/mame.png -fer +
-fi +
- +
-;; +
- +
-Systemselected) +
-imagepath="/userdata/roms/sysimages/$2" +
-if [ -f "$imagepath.png"+
-then +
-fbv "$imagepath.png" -fer +
-else +
-fbv /userdata/roms/mame/images/mame.png -fer +
-fi +
- +
-;; +
- +
-esac +
-</file> +
- +
-Place ''script.sh'' in ''system/scripts'' +
- +
-<file bash script.sh> +
-#!/bin/bash +
- +
-case $1 in +
-gameStart) +
- +
-gamepath=${5%/*+
-romname=${5##*/} +
-/userdata/marquee.sh Start $gamepath ${romname%.*} & +
-;; +
- +
-gameStop) +
-killall ffmpeg +
-;; +
-esac +
-</file>+
  
 ===== Using two computers ===== ===== Using two computers =====
  
 [[https://forum.batocera.org/d/7269-dynamic-marquee-setup-for-all-platforms|Link to original forum post.]] [[https://www.youtube.com/watch?v=VLtqgMS90A0|Link to video demonstration.]] [[https://forum.batocera.org/d/7269-dynamic-marquee-setup-for-all-platforms|Link to original forum post.]] [[https://www.youtube.com/watch?v=VLtqgMS90A0|Link to video demonstration.]]
-[[https://mega.nz/folder/cgEgHBTb#5ZYNIZ9VKPYpCS2ujwghbQ|Link to sample artwork]]+
 This can be done using Batocera installed onto a device and another computer/Raspberry Pi connected to a separate display. So far, this has been tested successfully using Batocera installed on an x86_64 computer/Raspberry Pi with another Raspberry Pi acting as the marquee. This can be done using Batocera installed onto a device and another computer/Raspberry Pi connected to a separate display. So far, this has been tested successfully using Batocera installed on an x86_64 computer/Raspberry Pi with another Raspberry Pi acting as the marquee.
- 
-==== Setting up the Marquee computer ==== 
- 
-  - Install Raspbian OS on the Raspberry Pi to act as the marquee (referred to as Marquee from now on). 
-    - Set this up with a static IP to make things easier. 
-  - On the Marquee run the following: <code bash> 
-sudo apt-get update 
-sudo apt-get upgrade 
-sudo apt-get install ffmpeg git libjpeg9-dev libjpeg9 libpng16-16 libpng-dev 
-</code> 
-  - Now compile FBV on the Marquee using the following commands: <code bash> 
-sudo git clone https://github.com/godspeed1989/fbv.git 
-cd fbv 
-sudo ./configure 
-sudo make 
-sudo make install 
-</code> 
-  - Set up the Marquee to automatically start the appropriate software on boot. Open the text file with root privileges with the following: <code bash> 
-sudo nano /etc/rc.local 
-</code> 
-    - Then add the following right before the ''exit 0'' line: <code bash> 
-cd /home/pi 
-nc -vklp 5555 | /bin/bash & 
-</code> Save with ''Ctrl'' + ''S''. 
-  - Edit the bootup file: <code bash> 
-sudo nano /boot/cmdline.txt 
-</code> 
-    - Change the following line from: <code bash> 
-console=tty1 
-</code> to <code bash> 
-console=tty3 
-</code> 
-    - In that same file, add onto the end of the line: <code bash> 
-logo.nologo vt.global_cursor_default=0 
-</code> 
-    * For example, the resulting ''cmdline.txt'' might contain: <file - cmdline.txt> 
-console=serial0,115200 console=tty3 root=PARTUUID=692a6271-02 rootfstype=ext4 fsck.repair=yes rootwait logo.nologo vt.global_cursor_default=0 
-</file> 
-  - Add the following script to the ''/home/pi/'' folder named as ''marquee.sh'': <file bash marquee.sh> 
-#!/bin/bash 
- 
-case $1 in 
-GameStart) 
-Systemname=$2 
-Romname="$3" 
- 
-if [ -f "/home/pi/Marquee/hires/$Romname.jpg" ] 
-then 
-fbv "/home/pi/Marquee/hires/$Romname.jpg" -fel 
-elif [ -f "/home/pi/Marquee/$Systemname/images/$Romname-marquee.png" ] 
-then 
-fbv "/home/pi/Marquee/$Systemname/images/$Romname-marquee.png" -fel 
-else 
-fbv /home/pi/Marquee/default.png -fel 
-fi 
-;; 
- 
-Gameselected) 
-Systemname=$2 #system name 
-Romname="$3" #romname 
-if [ -f "/home/pi/Marquee/$Systemname/images/$Romname-marquee.png" ] 
-then 
-fbv "/home/pi/Marquee/$Systemname/images/$Romname-marquee.png" -fel 
-else 
-fbv /home/pi/Marquee/default.png -fel 
-fi 
-;; 
- 
-Systemselected) 
-imagepath="/home/pi/Marquee/sysimages/$2" 
-if [ -f "$imagepath.png" ] 
-then 
-fbv "$imagepath.png" -fel 
-else 
-fbv /home/pi/Marquee/default.png -fel 
-fi 
-;; 
-esac 
-</file> 
- 
-==== Setting up the Marquee folder ==== 
- 
-  - On the Marquee computer, create a ''/marquee'' folder in the root of the drive. 
-  - In this folder, create/place the ''default.png'' image file you wish to display when no other image can be found. 
-  - Create a new folder in the ''/marquee'' folder named ''sysimages''. This folder will contain all of the system's generic marquees (for when you're on the system list before entering into the game list). 
-  - Then, for every game which marquee you want to display, create a system subfolder with the same name as the [[:systems|system shortname Batocera uses]] and place the marquee image with the name of the game itself inside of an ''image'' subfolder in that system. 
-  - In addition, any "high resolution" versions of the images can be put into a separate subfolder in ''marquee/'' named ''hires''. 
- 
-Here's an example of the final folder structure: 
- 
-<code> 
-/marquee/ 
- ├─ 3do/ 
- │  └─ images/ 
- │     └─ Space Hulk - Vengeance of the Blood Angels (USA)-marquee.png 
- ├─ atari2600/ 
- │  └─ images/ 
- │     └─ Air Raid (USA)-marquee.png 
- ├─ daphne/ 
- │  └─ images/ 
- │     └─ ace-marquee.png 
- ├─ hires/ 
- │  ├─ 1943.jpg 
- │  ├─ a51site4.png 
- │  ├─ Air Raid (USA)-marquee.png 
- │  └─ Space Hulk - Vengeance of the Blood Angels (USA)-marquee.png 
- ├─ mame/ 
- │  └─ images/ 
- │     └─ a51site4.png 
- ├─ nes/ 
- │  └─ images/ 
- │     └─ Super Mario Bros. (World)-marquee.png 
- ├─ sega32x/ 
- │  └─ images/ 
- │     └─ BC Racers (USA)-marquee.png 
- ├─ sysimages/ 
- │  ├─ 3do.png 
- │  ├─ atari2600.png 
- │  ├─ daphne.png 
- │  ├─ fbneo.png 
- │  ├─ mame.png 
- │  ├─ nes.png 
- │  └─ sega32x.png 
- └─ default.png 
-</code> 
- 
-==== Setting up the scripts in Batocera ==== 
- 
-<WRAP center round todo> 
-These scripts need revision. 
-</WRAP> 
- 
-Install Batocera on the main machine. This is only supported in Batocera **v33** and up. 
- 
-Navigate to ''/userdata/system/configs/emulationstation'' and create a folder named ''scripts''. 
- 
-Create the following scripts and download them to the mentioned location on the Batocera computer: 
-  * Create a folder named ''game-start'', save the following as ''01-marquee.sh'' (eg. ''/userdata/system/configs/emulationstation/scripts/game-start/01-marquee.sh''): <file bash 01-marquee.sh> 
-#!/bin/bash 
-Marqueeip=192.168.123.147 #enter your marquee computer ip address here. 
-case 1 in    gameStart) 
-        romname={5##*/} 
-gamename=${romname%.*}       
-echo ./marquee.sh GameStart 2 "\\"gamename\"" | nc $Marqueeip 5555 >temp.log & 
-;; 
-gameStop)       
-echo sudo pkill ffmpeg  | nc 192.168.123.147 5555 &    
-;; 
-esac 
-</file> 
-  * In ''game-selected'' save the following as ''01-marquee.sh'' (eg. ''/userdata/system/configs/emulationstation/scripts/game-selected/01-marquee.sh''): <file bash 01-marquee.sh> 
-#!/bin/bash 
- 
-Marqueeip=192.168.123.147 
-System=$1 #system name 
-Romname=${2%.*} #romname 
-rom=${Romname##*/} 
- 
-echo ./marquee.sh Gameselected $System “\”$rom\"" | nc $Marqueeip 5555 >temp.log & 
-</file> 
-  * In ''system-selected'' save the following as ''01-marquee.sh'' (eg. ''/userdata/system/configs/emulationstation/scripts/system-selected/01-marquee.sh''): <file bash 01-marquee.sh> 
-#!/bin/bash 
- 
-SMarqueeip=192.168.123.147 
- 
-System=$1    #System name 
-echo ./marquee.sh Systemselected $System | nc $Marqueeip 5555 >temp.log & 
-</file> 
-Once done, make all those scripts executable (''chmod +x <name of file>'' or right-click and check "Executable") 
  
 ===== Troubleshooting ===== ===== Troubleshooting =====
  • hardware/lcd_led_marquees.1645666675.txt.gz
  • Last modified: 9 months ago
  • by pdapice