summaryrefslogtreecommitdiff
path: root/misc/emu
diff options
context:
space:
mode:
Diffstat (limited to 'misc/emu')
-rwxr-xr-xmisc/emu51
1 files changed, 51 insertions, 0 deletions
diff --git a/misc/emu b/misc/emu
new file mode 100755
index 0000000..df24b10
--- /dev/null
+++ b/misc/emu
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# This only works for collections with a common extension. You can rename all your roms to use the same extension and (in any decent emulator at least) they should work regardless of the actual header type
+gamedir=${XDG_DATA_HOME:-$HOME/.local/share}/games
+dmenuprompt="dmenu -l 25"
+resolution=`cat /sys/class/drm/*/modes | head -1`
+case "$1" in
+ 2600)
+ dmenucolors="-nb #111 -nf #e4963c -sb #6c3b17 -sf #fff -nhb #121212 -nhf #fc5231 -shb #804f2d -shf #fc5231"
+ emulator="stella"
+ ext=bin
+ ;;
+ 3ds)
+ dmenucolors="-nb #111 -nf #888 -sb #999 -sf #F00 -nhb #111 -nhf #fff -shb #999"
+ emulator="citra"
+ ext=3ds
+ ;;
+ nes)
+ dmenucolors="-nb #6d6a6d -nf #fff -sb #dfdcdd -sf #c1121c -nhb #222 -nhf #dc444d -shb #a29fa3 -shf #dc444d"
+ emulator="fceux"
+ ext=nes
+ ;;
+ snes)
+ dmenucolors="-nb #b2b4b2 -nf #000 -sb #514689 -sf #fff -nhb #707372 -nhf #fff -shb #a7a4e0 -shf #000"
+ emulator="launch snes"
+ ext=sfc
+ ;;
+ n64)
+ dmenucolors="-nb #223 -nf #fff -sb #069330 -sf #fff -nhb #c20d02 -nhf #ffc001 -shb #011da9 -shf #ffc001"
+ emulator="mupen64plus --fullscreen --gfx mupen64plus-video-glide64mk2 --resolution $resolution"
+ ext=z64
+ ;;
+ gcn)
+ dmenucolors="-nb #4d3b7c -nf #ddd -sb #000 -sf #fff -nhb #4d3b7c -nhf #eba982 -shb #000 -shf #eba982"
+ emulator="dolphin-emu -b"
+ ext=iso
+ ;;
+ nds)
+ dmenucolors="-nb #ccc -nf #000 -sb #52398d -sf #fff -nhb #888 -nhf #fff -shb #52398d"
+ emulator="desmume --3d-engine 2"
+ ext=nds
+ ;;
+ *)
+ console=`ls $gamedir | dmenu -l 25` && ($0 $console || emu) # Allows going back to select a different console
+ exit
+ ;;
+esac
+
+gamedir="$gamedir/$1" && [ -e "$gamedir" ] \
+ && selgame="`ls "$gamedir" | sed -n "s/\.$ext$//p" | $dmenuprompt $dmenucolors`.$ext" \
+ && $emulator "$gamedir/$selgame"