From 9c5012874a982fcf6965a9f50e7a72b7a2bef40e Mon Sep 17 00:00:00 2001
From: Mathieu Loiseau <mlois_-gr@yahoo.fr>
Date: Tue, 7 Apr 2015 00:05:12 +0200
Subject: [PATCH] added ps3 support and vvvvvv, now with optionnal parameters

---
 game.sh                 | 137 ++++++++++++++++++++++++++--------------
 modules/amnesia.sh      |   2 +-
 modules/braid.sh        |   2 +-
 modules/limbo.sh        |   2 +-
 modules/lonesurvivor.sh |   2 +-
 modules/minecraft.sh    |   2 +-
 modules/psychonauts.sh  |   2 +-
 modules/vvvvvv.sh       |  11 ++++
 modules/vvvvvv.xboxdrv  |  30 +++++++++
 9 files changed, 136 insertions(+), 54 deletions(-)
 create mode 100755 modules/vvvvvv.sh
 create mode 100644 modules/vvvvvv.xboxdrv

diff --git a/game.sh b/game.sh
index 2966a97..90a077e 100755
--- a/game.sh
+++ b/game.sh
@@ -1,54 +1,95 @@
 #!/bin/bash
 # This is a script designed to switch between several preconfigured layouts as defined by the xboxdrv settings held within modules.
+# 2 parameters can be used : 1 → x for xbox controller, p for ps3
+#                            2 → name of the game as suggested in menu
 
-# Give a list of available games
-echo What game would you like to play?
-echo 1\) Amnesia
-echo 2\) Braid
-echo 3\) Limbo
-echo 4\) Lone Survivor
-echo 5\) Minecraft
-echo 6\) Psychonauts
-echo "99) None, give me my gamepad mode back."
-echo
-read userinput
-echo
+if [ $# = 0 ]
+then
+	echo "(X)box or (P)S3 ?"
+	read userinput
+else
+	userinput="$1"
+fi
+
+if [ "$userinput" = "p" -o "$userinput" = "P" -o "$userinput" = "PS3" -o "$userinput" = "ps3" ]
+then
+	pad=' --detach-kernel-driver'
+	echo "PS3 it is → $pad"
+elif [ "$userinput" = "X" -o "$userinput" = "x" -o "$userinput" = "Xbox" -o "$userinput" = "xbox" ]
+then
+	pad=""
+	echo "Xbox it is"
+else
+	pad=""
+	echo "Whatever"
+fi
+export pad
+
+if [ $# -gt 1 ]
+then
+	userinput=$2
+else
+	# Give a list of available games
+	echo What game would you like to play?
+	echo 1\) vvvvvv
+	echo 2\) Braid
+	echo 3\) Limbo
+	echo 4\) Lone Survivor
+	echo 5\) Minecraft
+	echo 6\) Psychonauts
+	echo 7\) Amnesia
+	echo "99) None, give me my gamepad mode back."
+	read userinput
+fi
 
 # Use basic logic to determine which module to load
-if [ "$userinput" == 1 -o "$userinput" == "Amnesia" -o "$userinput" == "amnesia" ]
-then echo "Your controller will now be configured for Amnesia."
-echo
-cd modules 
-./amnesia.sh
-elif [ "$userinput" == 2 -o "$userinput" == "Braid" -o "$userinput" == "braid" ]
-then echo "Your controller will now be configured for Braid."
-echo
-cd modules 
-./braid.sh
-elif [ "$userinput" == 3 -o "$userinput" == "Limbo" -o "$userinput" == "limbo" ]
-then echo "Your controller will now be configured for Limbo."
-echo
-cd modules 
-./limbo.sh
-elif [ "$userinput" == 4 -o "$userinput" == "Lone Survivor" -o "$userinput" == "lone survivor" ]
-then echo "Your controller will now be configured for Lone Survivor"
-echo
-cd modules 
-./lonesurvivor.sh
-elif [ "$userinput" == 5 -o "$userinput" == "Minecraft" -o "$userinput" == "minecraft" ]
-then echo "Your controller will now be configured for Minecraft."
-echo
-cd modules 
-./minecraft.sh
-elif [ "$userinput" == 6 -o "$userinput" == "Psychonauts" -o "$userinput" == "psychonauts" ]
-then echo "Your controller will now be configured for Psychonauts."
-echo
-cd modules 
-./psychonauts.sh
-elif [ "$userinput" == 99 ]
-then echo "Your controller will now be returned to a normal gamepad."
-cd modules
-./xpad.sh
-else echo That is not a valid choice.
-echo
+if [ "$userinput" = 1 -o "$userinput" = "vvvvvv" -o "$userinput" = "Vvvvvv" -o "$userinput" = "v" -o "$userinput" = "V" ]
+then
+	echo "Your controller will now be configured for vvvvvv."
+	echo
+	cd modules 
+	./vvvvvv.sh
+elif [ "$userinput" = 2 -o "$userinput" = "Braid" -o "$userinput" = "braid" ]
+then
+	echo "Your controller will now be configured for Braid."
+	echo
+	cd modules 
+	./braid.sh
+elif [ "$userinput" = 3 -o "$userinput" = "Limbo" -o "$userinput" = "limbo" ]
+then
+	echo "Your controller will now be configured for Limbo."
+	echo
+	cd modules 
+	./limbo.sh
+elif [ "$userinput" = 4 -o "$userinput" = "Lone Survivor" -o "$userinput" = "lone survivor" ]
+then
+	echo "Your controller will now be configured for Lone Survivor"
+	echo
+	cd modules 
+	./lonesurvivor.sh
+elif [ "$userinput" = 5 -o "$userinput" = "Minecraft" -o "$userinput" = "minecraft" ]
+then
+	echo "Your controller will now be configured for Minecraft."
+	echo
+	cd modules 
+	./minecraft.sh
+elif [ "$userinput" = 6 -o "$userinput" = "Psychonauts" -o "$userinput" = "psychonauts" ]
+then
+	echo "Your controller will now be configured for Psychonauts."
+	echo
+	cd modules 
+	./psychonauts.sh
+elif [ "$userinput" = 7 -o "$userinput" = "Amnesia" -o "$userinput" = "amnesia" ]
+then
+	echo "Your controller will now be configured for Amnesia."
+	echo
+	cd modules 
+	./amnesia.sh
+elif [ "$userinput" = 99 ]
+then
+	echo "Your controller will now be returned to a normal gamepad."
+	cd modules
+	./xpad.sh
+else
+	echo $userinput → that is not a valid choice.
 fi
diff --git a/modules/amnesia.sh b/modules/amnesia.sh
index f88c010..675e703 100755
--- a/modules/amnesia.sh
+++ b/modules/amnesia.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv -c amnesia.xboxdrv -s
+sudo xboxdrv$pad -c amnesia.xboxdrv -s
diff --git a/modules/braid.sh b/modules/braid.sh
index 24dd3e0..6846608 100755
--- a/modules/braid.sh
+++ b/modules/braid.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv -c braid.xboxdrv -s
+sudo xboxdrv$pad -c braid.xboxdrv -s
diff --git a/modules/limbo.sh b/modules/limbo.sh
index e8dbb70..2aa5e1a 100755
--- a/modules/limbo.sh
+++ b/modules/limbo.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv -c limbo.xboxdrv -s
+sudo xboxdrv$pad -c limbo.xboxdrv -s
diff --git a/modules/lonesurvivor.sh b/modules/lonesurvivor.sh
index 6113863..bcb4984 100755
--- a/modules/lonesurvivor.sh
+++ b/modules/lonesurvivor.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv -c lonesurvivor.xboxdrv -s
+sudo xboxdrv$pad -c lonesurvivor.xboxdrv -s
diff --git a/modules/minecraft.sh b/modules/minecraft.sh
index f777013..58d8fde 100755
--- a/modules/minecraft.sh
+++ b/modules/minecraft.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv -c minecraft.xboxdrv -s
+sudo xboxdrv$pad -c minecraft.xboxdrv -s
diff --git a/modules/psychonauts.sh b/modules/psychonauts.sh
index 993dc57..3a77bdb 100755
--- a/modules/psychonauts.sh
+++ b/modules/psychonauts.sh
@@ -8,4 +8,4 @@ if lsmod | grep -q "^$module "
 then sudo rmmod xpad
 fi
 
-sudo xboxdrv -c psychonauts.xboxdrv -s
+sudo xboxdrv$pad -c psychonauts.xboxdrv -s
diff --git a/modules/vvvvvv.sh b/modules/vvvvvv.sh
new file mode 100755
index 0000000..d049736
--- /dev/null
+++ b/modules/vvvvvv.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Define the default gamepad module name
+module=xpad
+
+# Check if the module is already loaded, if so, remove it and run the xboxdrv module
+if lsmod | grep -q "^$module "
+then sudo rmmod xpad
+fi
+
+sudo xboxdrv$pad -c vvvvvv.xboxdrv -s
diff --git a/modules/vvvvvv.xboxdrv b/modules/vvvvvv.xboxdrv
new file mode 100644
index 0000000..a35f2d2
--- /dev/null
+++ b/modules/vvvvvv.xboxdrv
@@ -0,0 +1,30 @@
+[xboxdrv]
+ui-clear=true
+trigger-as-button = true
+
+[ui-axismap]
+x1=KEY_LEFT:KEY_RIGHT
+#y1=KEY_UP:KEY_DOWN
+x2^dead:6000 = REL_X:750:-1
+y2^dead:6000 = REL_Y:750:-1
+
+# trigger^invert = rel-repeat:REL_WHEEL:1:50
+
+[ui-buttonmap]
+a = KEY_SPACE
+x = KEY_ENTER
+
+lb = KEY_LEFT
+rb = KEY_RIGHT
+
+[ui-buttonmap]
+du = KEY_UP
+dr = KEY_RIGHT
+dd = KEY_DOWN
+dl = KEY_LEFT
+
+[ui-buttonmap]
+start = KEY_ESC
+back  = KEY_TAB
+
+# EOF #
-- 
GitLab