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/13 02:45] – corrections to the DIY section atarihardware:lcd_led_marquees [2024/04/12 22:22] (current) – [Customize output (batocera 40+)] nadenislamarre
Line 6: Line 6:
  
 Remember back in the physical arcades how game cabinets would proudly display the logo of the game they featured on the overhead billboards? Well, thanks to the aid of modern technology, it is now possible to replicate those banners! And since we're in Batocera, we can dynamically change those artworks to reflect the game that's being played at that current moment! Remember back in the physical arcades how game cabinets would proudly display the logo of the game they featured on the overhead billboards? Well, thanks to the aid of modern technology, it is now possible to replicate those banners! And since we're in Batocera, we can dynamically change those artworks to reflect the game that's being played at that current moment!
 +
 +===== DIY dmd =====
 +An article to build you own dmd at a lower cost : [[DIY_DMD]]
 +
 +{{:hardware:dmd-diy.jpg?400|}}
 +{{:hardware:dmd-diy-front.jpg?400|}}
 +
  
 ===== Pixelcade ===== ===== Pixelcade =====
  
-The premier digital marquee manufacturers! [[https://pixelcade.org/|Pixelcade]] has been integrated into Batocera since **v33**.+The premier digital marquee manufacturers! [[https://pixelcade.org/|Pixelcade]] has been integrated into Batocera since **v33**. Note that Pixelcade will still work with Batocera versions older than V33 with the limitation that Pixelcade will only update when a game has been launched vs. dynamically during scrolling through the Batocera front end
  
 {{:pixelcade_led_display.jpg?400|}} {{:pixelcade_led_display.jpg?400|}}
- 
-<WRAP center round info> 
-Pixelcade themselves offer [[https://pixelcade.org/batocera/|installation instructions over on there website]], which might update at a quicker pace than the ones on this wiki page. If the commands on this page aren't working, check that page out. 
-</WRAP> 
  
 Supported platforms include: Supported platforms include:
Line 26: Line 29:
   * Theoretically, any aarch64/32 and/or x86_64 platform that supports Batocera **v33+**, but these have not been tested yet.   * Theoretically, any aarch64/32 and/or x86_64 platform that supports Batocera **v33+**, but these have not been tested yet.
  
-<WRAP center round important> 
-Pixelcade's software requires symlink and executable bit support in the filesystem it is installed to. This means you cannot install the software if the userdata is using FAT32, exFAT or NTFS. 
-</WRAP> 
  
-Pixelcade offer their marquees in two delicious flavors. The installation instructions change depending on which you want to install for.+Pixelcade offer their marquees in two flavors, Pixelcade LED (8-bit, low-res) and Pixelcade LCD (high res).
  
 ==== Pixelcade LED ==== ==== Pixelcade LED ====
Line 38: Line 38:
 </WRAP> </WRAP>
  
-This is the lower resolution LED panel that's more suited to pixel-art display than full-color imagesIt's easy to tell this one from the LCD panel as it has a USB port on the back, while the LCD panel does not.+{{:hardware:20220218_150944_color_adjusted.jpg?400|}} {{:hardware:20220203_155232.jpg?400|}}
  
-Installation is simple. Power on the Pixelcade panelplug in its USB port into the Batocera machine[[:access_the_batocera_via_ssh|SSH into Batocera]] and run the following:+Pixelcade LED marquees are based on LED panels for a low-res 128x32 display suited for 8-bit, pixel art marquee artwork. Pixelcade and the community has created and updates the Pixelcade LED artwork which you can browse here https://github.com/alinke/pixelcade. While not every game has an associated pixel art marqueeyou'll find most of the iconic games and consoles have matchingpixel perfect artwork. Pixelcade LED comes in 6 sizes https://pixelcade.org/mounting/ with mounts available for various arcade cabinets.
  
-<code bash> +Installation is simple. Power on the Pixelcade panel and plug in its USB port into the Batocera machine: 
-curl -kLO -H "Cache-Control: no-cache" https://raw.githubusercontent.com/alinke/pixelcade-linux/main/installer-scripts/setup-batocera.sh && chmod +x setup-batocera.sh && ./setup-batocera.sh+ 
 +{{:hardware:pixelcade_back_usb_port.jpg?400|}} 
 + 
 +Then [[:access_the_batocera_via_ssh|SSH into Batocera]] and run the following: 
 + 
 +<code bash> 
 +curl -kLO -H "Cache-Control: no-cache" https://raw.githubusercontent.com/alinke/pixelcade-linux-builds/main/install-scripts/setup-batocera.sh && chmod +x setup-batocera.sh && ./setup-batocera.sh
 </code> </code>
  
-After the downloading and installation is complete, you will see the 1941 marquee being displayed on the panel. Confirm the prompt and close it.+<WRAP center round info> 
 +In case that doesn't work, the latest instructions for the LED panel can be found at https://pixelcade.org/batocerav2/ 
 +</WRAP> 
 + 
 +After the downloading and installation is complete, the 1941 game marquee will be displayed on the panel. Confirm the prompt in the terminal and reboot.
  
-If the panel did not display the marquee, refer to the [[#my_pixelcade_led_lcd_panel_isn't working!|troubleshooting section]]. 
  
 ==== Pixelcade LCD ==== ==== Pixelcade LCD ====
Line 56: Line 65:
 </WRAP> </WRAP>
  
-This is the higher resolution LCD panel that's suited to displaying full-color images. It supports Wi-Fi and sends its signals over the network instead of a USB cable. It is also possible to use an Ethernet connection in case a fully wired setup is preferred.+This is the higher resolution LCD panel that's suited for high resolution marquee artwork in 1920 x 360 resolution. It supports Ethernet cables or Wi-Fi and sends its signals over the network instead of a USB cable.
  
-Installation uses a different command from the LED panel, so be careful. Power on the Pixelcade panel, plug in its USB port into the Batocera machine, [[:access_the_batocera_via_ssh|SSH into Batocera]] and run the following:+To set up the Pixelcade LCD, plug its SD card into an already running OS (Batocera will do just fine) and then run the ''setupWifi.sh'' script from its root folder. For example, if doing this from a terminal and the SD card has mounted itself to ''/media/NO_LABEL'':
  
-<code bash>+<code
 +cd /media/NO_LABEL 
 +./setupWifi.sh 
 +</code> 
 + 
 +You will be asked a series of questions (FIXME what questions?). When the script is complete, safely remove the SD card and put it back into the Pixelcade LCD. 
 + 
 +Power on the Pixelcade LCD and if you see the Pixelcade retrowave banner then the Pixelcade has successfully connected to the WiFi network: 
 + 
 +{{:hardware:pixelcadegen3-logo-993x1024.jpg|Photo of the Pixelcade showing the mostly purple Pixelcade banner.}} 
 + 
 +Once confirmed, finish setting up Batocera's side by [[:access_the_batocera_via_ssh|SSH'ing into Batocera]] and running the following: 
 + 
 +<code - bash>
 curl -kLO -H "Cache-Control: no-cache" https://raw.githubusercontent.com/alinke/pixelcade-linux/main/installer-scripts/setup-batocera-lcd.sh && chmod +x setup-batocera-lcd.sh && ./setup-batocera-lcd.sh curl -kLO -H "Cache-Control: no-cache" https://raw.githubusercontent.com/alinke/pixelcade-linux/main/installer-scripts/setup-batocera-lcd.sh && chmod +x setup-batocera-lcd.sh && ./setup-batocera-lcd.sh
 </code> </code>
  
-If the panel did not display the marquee, refer to the [[#my_pixelcade_led_lcd_panel_isn'working!|troubleshooting section]].+<WRAP center round info> 
 +In case that doesn'work, the latest instructions for the LCD panel can be found at https://pixelcade.org/lcdgen3/ and https://pixelcade.org/batocera/ 
 +</WRAP>
  
 If you have both panels and want to use them at the same time, it is possible to install both these scripts at once. If you have both panels and want to use them at the same time, it is possible to install both these scripts at once.
  
-==== Pixelcade web UI ====+==== Pixelcade Companion Web UI ====
  
 A simple web interface can be used to upload new artwork to the panel's SD card. Visit http://batocera.local:8080 (if that doesn't work, use %%http://<IP of Batocera>:8080%%) to bring it up. A simple web interface can be used to upload new artwork to the panel's SD card. Visit http://batocera.local:8080 (if that doesn't work, use %%http://<IP of Batocera>:8080%%) to bring it up.
  
-{{https://pixelcade.org/wp-content/uploads/2020/03/webui.jpg|}}+{{https://pixelcade.org/wp-content/uploads/2023/07/companion-1-scaled-e1688411871110.jpg|}} 
 +{{https://pixelcade.org/wp-content/uploads/2023/07/companion-2-scaled-e1688411900637.jpg|}} 
 + 
 + 
 + 
 +==== Customize output (batocera 40+) ==== 
 +=== Screensaver === 
 +By default, when es go in screensaver, the batocera logo is displayed on the dmd. 
 + 
 +Put an image name in /userdata/system/dmd/screensaver.png or /userdata/system/dmd/screensaver.gif and it will be used instead. 
 + 
 +=== System selected === 
 +By default, when you select a system in es, the system logo is displayed on the dmd. 
 + 
 +Put an image in /userdata/system/dmd/systems/<system>.png (or gif) (replace <system> by snes, or nes or whatever) and it will be used instead. 
 + 
 +=== Game selected === 
 +By default, when you select a game in es, the game marquee is displayed on the dmd (if scrapped, otherwise, the name is displayed). 
 + 
 +Put an image in /userdata/system/dmd/games/<system>/<game>.png (or gif) (replace <system> by snes, or nes or whatever and <game> by the exact name, or the name simplified) and it will be used instead. 
 + 
 +Name simplified is the name without any special char, any parenthesis and lowercase. (if your rome is Super Mario World (EU).smc, then, the image supermarioworld.png or .gif will work) 
 + 
 +=== Achievement === 
 +When you succeed to an achievement, batocera will display the WOUHOU text. 
 + 
 +Put an image in /userdata/system/dmd/achievement.png (or gif) and it will be used instead. 
 + 
 + 
 +=== Full custom scripts === 
 +If you don't like the behavior described upper, you can just create the following scripts to replace them: 
 +  * /userdata/system/configs/emulationstation/scripts/screensaver-start/dmd-simulator.sh 
 +This script has no parameter. 
 +  * /userdata/system/configs/emulationstation/scripts/system-selected/dmd-simulator.sh 
 +This script takes 1 argument : the name of the system (snes, nes, ...) 
 +  * /userdata/system/configs/emulationstation/scripts/game-selected/dmd-simulator.sh 
 +This script takes 2 arguments : the name of the system (snes, nes, ...), and the full name of the rom. 
 +  * /userdata/system/configs/emulationstation/scripts/achievements/dmd-simulator.sh 
 +This script has no parameter. 
 + 
 +==== DMD simulator (batocera 40+) ==== 
 +  * In menu > system > services, enable dmd_simulator service. 
 +  * From a computer on your local network, go on http://batocera.local:8080 
 +  * Enjoy
  
 ==== Pixelcade advanced scripting ==== ==== Pixelcade advanced scripting ====
Line 110: Line 177:
 </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 commands below in an SSH terminal session on your Batocera device. This is also good for cases where artwork is missing for particular game. Use the log output to know what specific filenames are being passed and then rename artwork accordingly following this guide for Pixelcade LED https://pixelcade.org/art/ and this guide for Pixelcade LCD https://pixelcade.org/lcdartwork/
  
-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.+For Pixlecade LED
  
-Artwork needs to be sourced and placed in the appropriate ''Marquee'' and ''roms/Marquee'' folders first.+<code> 
 +curl localhost:8080/quit 
 +cd /userdata/system/pixelcade && ./pixelweb 
 +</code>
  
-Place ''game.sh'' into ''system/configs/emulationstation/scripts/game-selected''+For Pixelcade LCD
  
-<file bash game.sh+<code
-#!/bin/bash +killall java 
-System=$1 #system name +/userdata/system/pixelcade/jdk/bin/java -jar /userdata/system/pixelcade/pixelweb.jar -b -e 
-Romname=${2%.*} #romname +</code>
-rom=${Romname##*/+
-/userdata/marquee.sh Gameselected $System "$rom" +
-</file>+
  
-Place ''system.sh'' into ''system/configs/emulationstation/scripts/system-selected''+Now you'll get the following debug output:
  
-<file bash system.sh> +{{:hardware:pixelcade_debug.png?600|}}
-#!/bin/bash +
-System=$1 #System name +
-/userdata/marquee.sh Systemselected $System & +
-</file>+
  
-Place ''marquee.sh'' in ''/userdata''+===== Using the two HDMI outputs on a RPi4 =====
  
-<file bash marquee.sh> +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.
-#!/bin/bash+
  
-case $1 in +<WRAP center round important> 
-Start) +This has broken on **v34** and higherStay on **v33** or lower if you intend to use this
-Romname=$3 +</WRAP>
-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+===== Using two computers =====
  
-if -f "/userdata/roms/Marquee/hires/$Romname.jpg" ] +[[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.]]
-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+
  
-;; +This can be done using Batocera installed onto a device and another computer/Raspberry Pi connected to a separate displaySo far, this has been tested successfully using Batocera installed on an x86_64 computer/Raspberry Pi with another Raspberry Pi acting as the marquee.
-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>+
  
 ===== Troubleshooting ===== ===== Troubleshooting =====
Line 214: Line 215:
 ==== My Pixelcade LED/LCD panel isn't working! ==== ==== My Pixelcade LED/LCD panel isn't working! ====
  
-It could be that it's simply not plugged in correctly. Ensure that the USB cable on both ends is firmly secure in their ports. On the Batocera machine itself, it might be worth checking if it's functional on a different port (such as a USB 3.0 port if you were using a 2.0 port, or vice-versa).+Pixelcade takes a few more moments after ES has started before it "kicks in". 
 + 
 +If it's still not working, it could be that it's simply not plugged in correctly. Ensure that the USB cable on both ends is firmly secure in their ports (or if using the LCD panel, that it's paired to the same Wi-Fi network as Batocera). On the Batocera machine itself, it might be worth checking if it's functional on a different port (such as a USB 3.0 port if you were using a 2.0 port, or vice-versa).
  
 If it's still not working, try out the following: If it's still not working, try out the following:
Line 226: Line 229:
 ~/jdk/bin/java -jar pixelcade.jar -m stream -c mame -g 1941 ~/jdk/bin/java -jar pixelcade.jar -m stream -c mame -g 1941
 </code> </code>
-  * If using the LED panel (not the LCD one), run ''ls /dev'' and search for ''ttyACM0'' or ''ttyACM1''. If neither are present, then your machine has not detected the Pixelcade LED device.+  * If using Pixelcade LED (not Pixelcade LCD), run ''ls /dev'' and search for ''ttyACM0'' or ''ttyACM1''. If neither are present, then your machine has not detected the Pixelcade LED device
 + 
 +==== Further Pixelcade troubleshooting ==== 
 + 
 +Refer to [[https://pixelcade.org/howto/|Pixelcade's how to sections]] on resetting the firmware and visit [[https://pixelcade.org/forum/main-category/|the Pixelcade forums]].
  
  • hardware/lcd_led_marquees.1644716720.txt.gz
  • Last modified: 2 years ago
  • by atari