summaryrefslogtreecommitdiff
path: root/misc/emu
blob: df24b1070c1ac1f6e495c022d107b8735edd5250 (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
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"