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/18 06:22] – actually finished the instructions (still WIP) atarihardware:lcd_led_marquees [2022/10/04 06:22] (current) – removal of broken scripts atari
Line 116: Line 116:
 </file> </file>
  
-===== Using the two HDMI outputs on a RPi4 =====+If you wish to simply see the events that are being fired off by Pixelcade's EmulationStation scripts as you're navigating the menus, run the following in an SSH terminal:
  
-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.+<code> 
 +killall java 
 +/userdata/system/pixelcade/jdk/bin/java -jar -Dioio.Seriaorts=ttyACM0 /userdata/system/pixelcade/pixelweb.jar -b -e 
 +</code>
  
-Artwork needs to be sourced and placed in the appropriate ''Marquee'' and ''roms/Marquee'' folders first.+Now you'll get the following debug output:
  
-Place ''game.sh'' into ''system/configs/emulationstation/scripts/game-selected''+{{:hardware:pixelcade_debug.png?600|}}
  
-<file bash game.sh> +===== Using the two HDMI outputs on a RPi4 =====
-#!/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''+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.
  
-<file bash system.sh+<WRAP center round important
-#!/bin/bash +This has broken on **v34** and higherStay on **v33** or lower if you intend to use this
-System=$1 #System name +</WRAP>
-/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 =====
Line 221: Line 140:
  
 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> 
-  - 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.1645165336.txt.gz
  • Last modified: 10 months ago
  • by atari