blob: fe17ed747a1aa83ca9bc860250702a464adc39cc (
plain)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/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 || $0) # 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"
|