mirror of
https://github.com/correl/dotfiles.git
synced 2024-12-22 19:17:34 +00:00
132 lines
6.3 KiB
Bash
132 lines
6.3 KiB
Bash
#!/bin/bash
|
|
# Description: A frontend for multiple emulators
|
|
set -e
|
|
|
|
function __emulationstation_config {
|
|
mkdir -p $HOME/.emulationstation
|
|
if test -f $HOME/.emulationstation/es_systems.cfg; then
|
|
return
|
|
fi
|
|
cat > $HOME/.emulationstation/es_systems.cfg <<EOF
|
|
<!-- This is the EmulationStation Systems configuration file.
|
|
All systems must be contained within the <systemList> tag.-->
|
|
|
|
<systemList>
|
|
<!-- Here's an example system to get you started. -->
|
|
<system>
|
|
|
|
<!-- A short name, used internally. Traditionally lower-case. -->
|
|
<name>nes</name>
|
|
|
|
<!-- A "pretty" name, displayed in menus and such. -->
|
|
<fullname>Nintendo Entertainment System</fullname>
|
|
|
|
<!-- The path to start searching for ROMs in. '~' will be expanded to $HOME on Linux or %HOMEPATH% on Windows. -->
|
|
<path>~/roms/nes</path>
|
|
|
|
<!-- A list of extensions to search for, delimited by any of the whitespace characters (", \r\n\t").
|
|
You MUST include the period at the start of the extension! It's also case sensitive. -->
|
|
<extension>.nes .NES</extension>
|
|
|
|
<!-- The shell command executed when a game is selected. A few special tags are replaced if found in a command:
|
|
%ROM% is replaced by a bash-special-character-escaped absolute path to the ROM.
|
|
%BASENAME% is replaced by the "base" name of the ROM. For example, "/foo/bar.rom" would have a basename of "bar". Useful for MAME.
|
|
%ROM_RAW% is the raw, unescaped path to the ROM. -->
|
|
<command>retroarch -L /usr/lib/libretro/mesen_libretro.so %ROM%</command>
|
|
|
|
<!-- The platform to use when scraping. You can see the full list of accepted platforms in src/PlatformIds.cpp.
|
|
It's case sensitive, but everything is lowercase. This tag is optional.
|
|
You can use multiple platforms too, delimited with any of the whitespace characters (", \r\n\t"), eg: "genesis, megadrive" -->
|
|
<platform>nes</platform>
|
|
|
|
<!-- The theme to load from the current theme set. See THEMES.md for more information.
|
|
This tag is optional. If not set, it will default to the value of <name>. -->
|
|
<theme>nes</theme>
|
|
</system>
|
|
<system>
|
|
<name>snes</name>
|
|
<fullname>Super Nintendo Entertainment System</fullname>
|
|
<path>~/roms/snes</path>
|
|
<extension>.smc .sfc .SMC .SFC</extension>
|
|
<command> retroarch -L /usr/lib/libretro/snes9x_libretro.so %ROM%</command>
|
|
<platform>snes</platform>
|
|
<theme>snes</theme>
|
|
</system>
|
|
<system>
|
|
<name>ps2</name>
|
|
<fullname>Playstation 2</fullname>
|
|
<path>~/roms/ps2</path>
|
|
<extension>.iso .ISO</extension>
|
|
<command>retroarch -L /usr/lib/libretro/pcsx2_libretro.so %ROM%</command>
|
|
<platform>ps2</platform>
|
|
<theme>ps2</theme>
|
|
</system>
|
|
</systemList>
|
|
|
|
EOF
|
|
}
|
|
|
|
function __emulationstation_theme_simple {
|
|
if test -d $HOME/.emulationstation/themes/simple; then
|
|
return
|
|
fi
|
|
echo "[curl] Downloading simple emulationstation theme"
|
|
local tempdir=$(mktemp -d)
|
|
curl -skL https://www.emulationstation.org/downloads/themes/simple_latest.zip --output "$tempdir/simple.zip"
|
|
unzip -qd $HOME/.emulationstation/themes "$tempdir/simple.zip"
|
|
rm -rf "$tempdir"
|
|
}
|
|
|
|
case $_PLATFORM in
|
|
arch)
|
|
_recipe _arch
|
|
|
|
_yay emulationstation-git
|
|
_yay retroarch
|
|
|
|
# _yay libretro-beetle-pce # NEC PC Engine/SuperGrafx/CD core
|
|
# _yay libretro-beetle-pce-fast # NEC PC Engine/CD core
|
|
# _yay libretro-beetle-psx # Sony PlayStation core
|
|
# _yay libretro-beetle-psx-hw # Sony PlayStation core
|
|
# _yay libretro-beetle-supergrafx # NEC SuperGrafx core
|
|
# _yay libretro-blastem # Sega Mega Drive core
|
|
# _yay libretro-bsnes # Super Nintendo Entertainment System cores
|
|
# _yay libretro-bsnes-hd # Super Nintendo Entertainment System core
|
|
# _yay libretro-bsnes2014 # Super Nintendo Entertainment System cores
|
|
# _yay libretro-citra # Nintendo 3DS core
|
|
# _yay libretro-core-info # Libretro core info files
|
|
# _yay libretro-desmume # Nintendo DS core
|
|
# _yay libretro-dolphin # Nintendo GC/Wii core
|
|
# _yay libretro-duckstation # Sony PlayStation core
|
|
# _yay libretro-flycast # Sega Dreamcast core
|
|
# _yay libretro-gambatte # Nintendo Game Boy/Game Boy Color core
|
|
# _yay libretro-genesis-plus-gx # Sega MS/GG/MD/CD core
|
|
# _yay libretro-kronos # Sega Saturn core
|
|
# _yay libretro-mame # MAME Arcade core
|
|
# _yay libretro-mame2016 # MAME 2016 Arcade core
|
|
# _yay libretro-melonds # Nintendo DS core
|
|
_yay libretro-mesen # Nintendo Entertainment System core
|
|
# _yay libretro-mesen-s # Super Nintendo Entertainment System core
|
|
# _yay libretro-mgba # Nintendo Game Boy Advance core
|
|
# _yay libretro-mupen64plus-next # Nintendo 64 core
|
|
# _yay libretro-nestopia # Nintendo Entertainment System core
|
|
# _yay libretro-overlays # Collection of overlays for libretro
|
|
# _yay libretro-parallel-n64 # Nintendo 64 core
|
|
_yay libretro-pcsx2 # Sony PlayStation 2 core
|
|
# _yay libretro-picodrive # Sega MS/MD/CD/32X core
|
|
# _yay libretro-play # Sony PlayStation 2 core
|
|
# _yay libretro-ppsspp # Sony PlayStation Portable core
|
|
# _yay libretro-retrodream # Sega Dreamcast core
|
|
# _yay libretro-sameboy # Nintendo Game Boy/Game Boy Color core
|
|
# _yay libretro-scummvm # ScummVM core
|
|
# _yay libretro-shaders-slang # Collection of shaders for libretro
|
|
_yay libretro-snes9x # Super Nintendo Entertainment System core
|
|
# _yay libretro-yabause # Sega Saturn core
|
|
# _yay libretro-mame-git # libretro implementation of MAME. (Arcade)
|
|
# _yay libretro-opera-git # libretro implementation of 4DO/libfreedo (3DO)
|
|
# _yay libretro-stella2014-git # libretro implementation of Stella. (Atari 2600)
|
|
|
|
_run "[emulationstation] Configuring systems" __emulationstation_config
|
|
__emulationstation_theme_simple
|
|
;;
|
|
esac
|