dmenu-scripts/dmenu-retro
2022-07-17 11:03:13 +02:00

133 lines
3.5 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# script to run roms from different systems in their respective emulators
# a functions that list all everything in a directory and gives back the chosen one
source $HOME/.config/dmenu/config
choice (){
(ls -1 | $DMENU -l 30 -p "Choose your $system rom!")
}
run_rom (){
# cd into the given directory
cd "$dir"
# first choice
rom=$(choice)
# first we check if it is a single dot and if it is we exit
[ "$rom" = "." ] && exit 1
# if rom is empty we exit
[ -z "$rom" ] && exit 1
# run the emulator with the chosen rom
gamemoderun mangohud --dlsym $emulator "$dir$rom"
disown $@
}
declare -a systems=(
"Nintendo - Nintendo Entertainment System (1983-2003)"
"Sega - Mega Drive - Genesis (19881997)"
"Nintendo - Game Boy (1989-2003)"
"Nintendo - Super Nintendo Entertainment System (1990-2003)"
"Sony Playstation (19942006)"
"Nintendo - Nintendo 64 (1996-2002)"
"Nintendo - Game Boy Color (1998-2003)"
"Sony Playstation 2 (20002013)"
"Nintendo - Game Boy Advance (2001-2009)"
"Nintendo Gamecube (2001-2009)"
"Sony Playstation Portable (20042014)"
"Nintendo DS (2004-2015)"
)
case "$(printf '%s\n' "${systems[@]}" | $DMENU -l 10 -p "Chose retro console:")" in
"Nintendo - Nintendo Entertainment System (1983-2003)")
emulator="fceux"
system="NES"
dir="$HOME/Roms/Nintendo - Nintendo Entertainment System/"
run_rom
exit
;;
"Nintendo - Nintendo 64 (1996-2002)")
emulator="mupen64plus-gui"
system="N64"
dir="$HOME/Roms/Nintendo - Nintendo 64/"
run_rom
exit
;;
"Nintendo - Game Boy Advance (2001-2009)")
emulator="mgba-qt"
system="GBA"
dir="$HOME/Roms/Nintendo - Game Boy Advance/"
run_rom
exit
;;
"Nintendo Gamecube (2001-2009)")
emulator="dolphin-emu"
system="Gamecube"
dir="$HOME/Roms/Nintendo Gamecube/"
run_rom
exit
;;
"Sony Playstation Portable (20042014)")
emulator="PPSSPPSDL"
system="PSP"
dir="$HOME/Roms/Sony Playstation Portable/"
run_rom
exit
;;
"Sony Playstation 2 (20002013)")
emulator="pcsx2"
system="PS2"
dir="$HOME/Roms/Sony Playstation 2/"
run_rom
exit
;;
"Sega - Mega Drive - Genesis (19881997)")
emulator="kega-fusion"
system="Genesis"
dir="$HOME/Roms/Sega - Mega Drive - Genesis/"
run_rom
exit
;;
"Nintendo - Game Boy (1989-2003)")
emulator="mgba-qt"
system="GameBoy"
dir="$HOME/Roms/Nintendo - Game Boy/"
run_rom
exit
;;
"Nintendo - Game Boy Color (1998-2003)")
emulator="mgba-qt"
system="GBC"
dir="$HOME/Roms/Nintendo - Game Boy Color/"
run_rom
exit
;;
"Nintendo - Super Nintendo Entertainment System (1990-2003)")
emulator="snes9x-gtk"
system="SNES"
dir="$HOME/Roms/Nintendo - Super Nintendo Entertainment System/"
run_rom
exit
;;
"Sony Playstation (19942006)")
emulator="duckstation-nogui"
system="PSX"
dir="$HOME/Roms/Sony Playstation/"
run_rom
exit
;;
"Nintendo DS (2004-2015)")
emulator="melonDS"
system="NDS"
dir="$HOME/Roms/Nintendo DS/"
run_rom
exit
;;
esac