2023-11-30
Setting up RetroPie
- Check your locale settings with the
locale
command:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | pi$ locale | sort LANG=en_GB.UTF-8 LANGUAGE= LC_ADDRESS="en_GB.UTF-8" LC_ALL= LC_COLLATE="en_GB.UTF-8" LC_CTYPE="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" |
and set missing values in /etc/environment
:
1 2 | LANGUAGE="en_GB:en" LC_ALL="en_GB.UTF-8" |
- Login as
pi
, clone the setup script and run it:
1 2 3 | git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git ~/RetroPie-Setup cd ~/RetroPie-Setup sudo ./retropie_setup.sh |
do a Basic Install and disable the splashscreen in Configuration to avoid a suddend switch to VT1 after the graphical login (see reddit Q/A and retropie faq).
Disable screenblanker by appending
consoleblank=0
to kernel parameters in /boot/cmdline.txt.Set memory split for the video card to at least 128MB via
raspi-config
.Create a shortcut to launch EmulationStation from the Pixel desktop (or use the
alacarte
menu editor):
1 2 3 4 5 6 7 8 9 | # ~/.local/share/applications/retropie.desktop [Desktop Entry] Type=Application Name=RetroPie Comment=Retro video game emulators Exec=/home/pi/bin/start-retropie Icon=/path/to/retropie.png Terminal=false Categories=Application;Game; |
create the /home/pi/bin/start-retropie
:
1 2 3 4 5 6 7 8 | #!/bin/sh # release the video card and switch to the 1st foreground virtual terminal sudo /path/to/ttyecho -n /dev/tty1 \ "sudo systemctl stop lightdm ; " \ "sleep 1 ; " \ "chvt 1 ; " \ "emulationstation --debug > /run/shm/ra.log 2>&1 ; " \ "sudo systemctl start lightdm" |
then compile and install the ttyecho
program (see attachment).
Note: Make sure you have enabled console autologin on VT1 via raspi-config
.
Optionally you can configure
runcommand
to show a game splashscreen by enabling Launch Menu Art in its configuration, and even set a system default image by installing the experimental packagelaunchingimages
.Show scanlines:
- Configuration
>
Retroarch>
Enable shaders and overlays - Configuration
>
Configedit>
Configure basic libretro emulator options>
Configure default options for all libretro emulators>
Video shader enable and Video shader file>
crt-pi.glslp
- Configuration
When configuring controller you can skip buttons you don't have by simply long press a button.
Setup video mode:
Set your tv/monitor format by setting sdtv_mode=2
(PAL) in /boot/config.txt
.
Set the low resolution VGA mode CEA-1
by putting in /opt/retropie/configs/all/videomodes.cfg
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | mame4all = "CEA-1" mupen64plus = "CEA-1" pifba = "CEA-1" lr-beetle-ngp = "CEA-1" lr-beetle-pce-fast = "CEA-1" lr-beetle-supergrafx = "CEA-1" lr-caprice32 = "CEA-1" lr-fbalpha = "CEA-1" lr-fceumm = "CEA-1" lr-fuse = "CEA-1" lr-gambatte = "CEA-1" lr-genesis-plus-gx = "CEA-1" lr-gpsp = "CEA-1" lr-handy = "CEA-1" lr-mame2000 = "CEA-1" lr-mame2003 = "CEA-1" lr-mgba = "CEA-1" lr-mupen64plus = "CEA-1" lr-nestopia = "CEA-1" lr-pcsx-rearmed = "CEA-1" lr-picodrive = "CEA-1" lr-prosystem = "CEA-1" lr-quicknes = "CEA-1" lr-snes9x2002 = "CEA-1" lr-snes9x2005 = "CEA-1" lr-snes9x2010 = "CEA-1" lr-stella = "CEA-1" lr-vba-next = "CEA-1" lr-vecx = "CEA-1" |
in this manner your TV will do the upscaling work and the emulators will run faster.
Upgrading RetroPie version
1 2 3 | cd ~/RetroPie-Setup git pull sudo ./retropie_setup.sh # and choose "Update" from the menu |
Note: When the upgrade is finished make sure the splashscreen
is disabled.
Scraping game images
- Install
Skyscraper
in the experimental packages - Customize game aliases in
~/.skyscraper/aliasMap.csv
- Import your custom JPG/PNG images by placing them in
~/.skyscraper/import/<covers|screenshots|wheels>
with the same name as your roms
PlayStation tips (lr-pcsx-rearmed
)
- Use this script to rip your own original PSX cd-rom discs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/usr/bin/env ruby require 'shellwords' dev = '/dev/dvd' title = ARGV[0].strip vol = `volname #{dev}`.strip vol = 'NO-LABEL' if vol.size == 0 puts "#{vol} - #{title}\n\n" system "cdrdao read-cd --read-raw --read-subchan rw_raw --datafile #{title.shellescape}.bin --device #{dev} --driver generic-mmc-raw #{title.shellescape}.toc" # 2>&1 | tee #{title.shellescape}.log system "eject #{dev}" if $?.to_i == 0 # add comment lines = File.read("#{title}.toc").split("\n") lines.insert(2, "// #{vol} - #{title}") File.open("#{title}.toc",'w'){|f| f.puts lines } # update m3u if title =~ /^(.+) \(CD(.)\)$/ File.open("#{$1}.m3u", 'a'){|f| f.puts "#{title}.toc"} end #toc2cue $vol.toc $vol.cue # optional |
if using a different program that creates multiple bin
files then you can merge them via binmerge
File extensions:
bin
/img
+toc
/cue
+sbi
(image, descr, subchannel)Multidisc howto:
1 2 3 4 5 6 7 8 9 10 | # files in Retropie/roms/psx folder: .multidisc/Title (CD1).bin .multidisc/Title (CD1).toc .multidisc/Title (CD2).bin .multidisc/Title (CD2).toc Title.m3u # Title.m3u file contents: .multidisc/Title (CD1).toc .multidisc/Title (CD2).toc |
- Datasets, subchannels, CUE sheets: redump.org, emuparadise.org
Setup an arcade controller via xboxdrv
Install xboxdrv
from retropie_setup.sh
, customize and run the command without --silent --daemon --detach
options and test the new virtual controller with jstest /dev/input/js0
, then put it in /etc/rc.local
:
1 2 3 4 5 6 | /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --detach-kernel-driver \ --silent --daemon --detach --pid-file /run/xboxdrv.pid \ --device-by-id 045e:028e --type xbox360 \ --trigger-as-button --dpad-only \ --device-name "DragonSlay Arcade DGSAK17" |
and create a new dbus rule in /etc/dbus-1/system.d/org.seul.Xboxdrv.conf
:
1 2 3 4 5 6 7 | <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <policy context="default"> <allow own="org.seul.Xboxdrv"/> </policy> </busconfig> |
See also:
- https://github.com/RetroPie/RetroPie-Setup/wiki/Xbox-360-Controller
- https://github.com/RetroPie/RetroPie-Setup/wiki/Universal-Controller-Calibration-&-Mapping-Using-xboxdrv
Raspberry Pi4 tips
- suggested video settings on DRM mem error fix paragraph
- overclock & video settings
- psp & n64
- tune retroarch based emulators
- libretro 720p resolution
Source: RetroPie HP, wired, Pixel & RetroPie, RP icon, TTYecho, change linux vt/tty
Retropie docs: Wiki, Manual install, RA hotkeys, Controller setup, Supported systems, Arcade HP & MAME info
PlayStation 1: convert ISO to PBP format on windows and linux -- see gtk-popstation and psx2psp/popstation by Ivan Vega
MAME resources: Snapshots, DAT/XML files, game lists by genre, ES gamelist.xml script
Game systems DAT/XML files: HyperList