diff options
Diffstat (limited to 'misc/emu')
-rwxr-xr-x | misc/emu | 51 |
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" |