Pixelcade for Batocera
You’ll need at least 600 MB free on your SD card for the Pixelcade LED installation. Pixelcade will be installed in /userdata/system/pixelcade.
Note Batocera V33 or above is required for Pixelcade to change dynamically while scrolling through games and consoles including the screen saver. If you are on a lower version, then Pixelcade will update only when a game is launched. Batocera V38 is required for the in game RetroAchievements feature.Â
The following hardware devices have been tested with Batocera and Pixelcade together. Please note that dynamic Pixelcade updates while scrolling games will not work on a Raspberry Pi 3 Model B and lower.Â
- Raspberry Pi 5
- Raspberry Pi400
- Raspberry Pi 4 Model B
- ODroid N2+
- Raspberry Pi 3 Model B
- x86 64-bit
- Raspberry Pi Model B+ (slow performance, not recommended)
Installation

ssh root@batocera.local
password: linux
IMPORTANT: If you have a Pixelcade LCD marquee connected via USB, do not plug it in yet. Please run this command with your Pixelcade LCD marquee unplugged. Note that you must be on Pixelcade LCD Firmware Version 6.1 or higher for USB connectivity support.
Pixelcade LCD USB Connected Installer Command
curl -kLO https://raw.githubusercontent.com/alinke/pixelcade-linux-builds/main/batocera/lcdusb.sh && chmod +x lcdusb.sh && ./lcdusb.sh

Pixelcade LED and LCD Installer Command
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

Pixelcade LED and LCD Installer Beta (if a beta does not exist, the production version will be installed)
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 beta
Early Beta – MAME In Game Effects Powered by DOFLinx
MAME in game effects for Batocera powered by DOFLinx is in early Beta. Just the following are supported at this time:
- Raspberry Pi 4 (Game performance is noticeably slower, not recommended at this time)
- Raspberry Pi 5
- Batocera V40, 41, and V42 Only
IMPORTANT: DOFLinx in game effects does require a more recent version of MAME, the installer will switch your default libretro MAME core on Batocera to a recent MAME core. As part of this change, you’ll need to ensure your MAME roms are compatible with the newer MAME core, specifically MAME 265 for Batocera V40, MAME 268 for Batocera V41, and MAME 277 for Batocera V42. Note that MAME 260 based ROMs seem to be fine for the ones that have DOFLinx effects.
Installation Instructions:
Step 1: Install the latest version of the Pixelcade software (see above)
Step 2: ssh into your Batocera device and run this command:
After rebooting, DOFLinx will automatically start and you should see a DOFLinx logo.
More info on which MAME games have DOFLinx in game effects here. Please note that not all rom variants will work like for example galaga.zip will work but galagamk.zip will not so be sure and use the primary roms.
Please use the Pixelcade Discord support channel for questions and feedback
Arcade Marquee to Pinball DMD Auto-Switching
Pixelcade Companion Web Interface
Use the Pixelcade Companion Web interface to browse marquee artwork. From any web browser on the same network as your Batocera, go to:
http://batocera.local:8080 or <Batocera IP Address>:8080
For example: http://batocera.local:8080 or 192.168.1.198:8080
Browse Artwork
Browse marquee artwork by system /console type.Â
Update Artwork
Check for new artwork and click “UPDATE / INSTALL ARTWORK” when there is an update.
Also, an optional paid LED art pack is available for Pixelcade LED with additional animated marquees. Note this art pack is for Pixelcade LED only and not for Pixelcade LCD marquees.
After purchasing the LED art pack, you’ll receive a serial code and then enter it in the “Enter Art Pack License” box.Â
Widgets
While not in Arcade marquee mode, Pixelcade can display weather, act as a clock, display sport scores, and stock prices.Â
First click the “Widget Settings” box to configure your favorite teams, stocks, and zip code for weather.
Settings
Use Settings to access the Pixelcade log. This is a great tool when customizing artwork. For example, this line tells you that your arcade front end sent a request to Pixelcade for a file called mame/3stooges.png
Received request for arcade stream: Console: mame ROM: 3stooges
API Access to Widgets
Weather
http://batocera.local:8080/weather?location=x
x can be a zip code or a city/country name
Clock
http://batocera.local:8080/clock
Sports Scores Ticker
http://batocera.local:8080/sports/x
x can be: nfl, nba, nhl, mlb
Stock Ticker
http://batocera.local:8080/stocks?tickers=x,y,z
where x,y, z are ticker names
ex.Â
http://batocera.local:8080/stocks?tickers=aapl,googl,sbux
Pixelcade Command Line Parameters
Pixelcade will start automatically utilizing the custom.sh built in startup script of Batocera located at:
/userdata/system/custom.sh
The Pixelcade installer adds this line to custom.sh which will start Pixelcade automatically with these command line parameters:
cd /userdata/system/pixelcade && ./pixelweb -image "system/batocera.png" -startup &
Pixelcade has additional command line parameters for customization. Use this command to see the possible parameters.
cd /userdata/system/pixelcade && ./pixelweb -h
Usage of ./pixelweb:
 -b string
  optional bind address (default “0.0.0.0”)
 -check-artwork
  check Pixelcade artwork for updates. Exits with code 0 if no update available, 1 if update is available, 2 if directory does not exist, 3 if unknown error.
 -d string
  path to pixelcade device. Set to auto to scan for device. On Windows use COM# (default “auto”)
 -debug
  debug log level
 -delay int
  time (in seconds) to delay device init
 -devicescan
  scan for device if not found or not specified with -d (default true)
 -font string
  default font for text (default “Arial Narrow 7”)
 -fontcolor string
  default font color for text (default “red”)
 -fontcolorrandom
  random default font color. Overrides -fontcolor
 -fontsize int
  default font size for text (default 28)
 -fuzzy
  enable fuzzy matching for images
 -image string
  optional image to display on startup (default “mame/pixelcade.png”)
 -install-artpack string
  install art pack with license code
 -install-artwork
  install Pixelcade artwork to pixelcade root. Exits with code 2 if artwork already installed.
 -logfile string
  optional log file
 -nointro
  skips playing the startup text and logo. Screen will be black on startup.
 -p string
  path to pixelcade root (default “/userdata/system/pixelcade”)
 -port int
  optional port to listen on (default 8080)
 -progress-stdout
  print progress output as stdout only
 -startup
  startup mode
 -swapbluegreen
  swap blue and green. Only needed for certain panels.
 -system-image string
  optional system image to display on startup. Overrides -image
 -text string
  optional text to display on startup (default “Welcome to Pixelweb”)
 -trace
  trace log level
 -update-artwork
  install Pixelcade artwork to pixelcade root
 -version
  display the version number
Customizing Pixelcade Behavior in Batocera
You can customize the Pixelcade behavior by modifying the scripts located in
/userdata/system/configs/emulationstation/scripts
Here are the scripts for reference which you can customize
https://github.com/alinke/pixelcade-linux/tree/main/batocera/scripts
Script | Description |
system-selected | Launches each time a system/console/collection is selected. This script make this API call to display the system/console marquee:
|
game-selected | Launches each time a game is selected like for example while scrolling through games. This script makes this API call to display the game marquee:
|
game-start | Launches each time a game is launched. This script will check if the game has high scores and display high scores in cycle mode if yes. Cycle mode means cycling between the game marquee and the high score scrolling. If the game does not have or does not support high scores, then the text “Now Playing will scroll and then the game marquee will be displayed. You can customize these settings in this script: DISPLAYHIGHSCORES=yes If set to no, high scores will not scroll and the “Now Playing will scroll and then the game marquee will be displayed. DISPLAYSCROLLINGTEXT=yes  If set to no, the “Now Playing <Game Name>” scrolling text will be skipped and the game marquee only will be displayed.  DISPLAYANIMATIONS=no If set to no (default), only a still image marquee (PNG) will be displayed upon game launch. If set to yes and if there is a matching animated marquee (GIF), the animated marquee will continue to loop upon game launch. Note displaying a continuous animated marquee during game play may be distracting which is why the default is set to no. NUMBERHIGHSCORES=3 The number of high scores to scroll, choose 1 for example to only show the top score. CYCLEMODE=yes Cycle mode continually cycles between the game marquee and scrolling high scores while a game is active. If set to no, then high scores will scroll only once on game launch and then display the game marquee. NUMBER_MARQUEE_LOOPS=10 For cycle mode, number of seconds a still image PNG marquee will remain before scrolling the high score text. This has no effect if it’s an animated GIF marquee which will always loop once. |
Front End Restart or Shutdown | Â Launches when the EmulationStation front end is restarted or shutdown. This script will display the text “Bye” using this API call:
|
Here are features available from the Pixelcade API which you can use in the above scripts https://pixelcade.org/api