summaryrefslogtreecommitdiff
path: root/rc/bin/joy
diff options
context:
space:
mode:
authorqwx <qwx@sciops.net>2021-09-01 22:47:30 +0000
committerqwx <qwx@sciops.net>2021-09-01 22:47:30 +0000
commit6d4261baabfece44dea8033b9d5a9d90978f8477 (patch)
treece7eba781bd58412a39b6abba1658661bee886b9 /rc/bin/joy
parent6c9462710539bd35ae5c51de27e7894522683bd7 (diff)
add joy(1): joystick script for all emulators, and docs
remove old /sys/src/games/nes/joynes in favor of joy(1). joy(1) has more buttons for the other emulators; there is no longer a significance in the order of the keys. document nusb/joy, add information in each emulator manpage.
Diffstat (limited to 'rc/bin/joy')
-rwxr-xr-xrc/bin/joy39
1 files changed, 39 insertions, 0 deletions
diff --git a/rc/bin/joy b/rc/bin/joy
new file mode 100755
index 000000000..47a0fe4c0
--- /dev/null
+++ b/rc/bin/joy
@@ -0,0 +1,39 @@
+#!/bin/rc
+# usage: nusb/joy epX.Y | joy [N]
+~ $#* 0 && *=''
+awk -safe -v 'joy='$1 '
+ /^axis 0 0/ { k[0] = "left " }
+ /^axis 0 255/ { k[0] = "right " }
+ /^axis 0 128/ { k[0] = "" }
+
+ /^axis 1 0/ { k[1] = "up " }
+ /^axis 1 255/ { k[1] = "down " }
+ /^axis 1 128/ { k[1] = "" }
+
+ /^down 1$/ { k[3] = "b " }
+ /^down 5$/ { k[2] = "a " }
+ /^down 6$/ { k[8] = "x " }
+ /^down 2$/ { k[9] = "y " }
+ /^down 3$/ { k[4] = "control " }
+ /^down 4$/ { k[5] = "start " }
+ /^down 7$/ { k[6] = "l1 " }
+ /^down 8$/ { k[7] = "r1 " }
+
+ /^up 1$/ { k[3] = "" }
+ /^up 5$/ { k[2] = "" }
+ /^up 6$/ { k[8] = "" }
+ /^up 2$/ { k[9] = "" }
+ /^up 3$/ { k[4] = "" }
+ /^up 4$/ { k[5] = "" }
+ /^up 7$/ { k[6] = "" }
+ /^up 8$/ { k[7] = "" }
+
+ {
+ if(joy != "")
+ printf "joy%s ", joy
+ for(i in k)
+ printf k[i]
+ printf "\n"
+ fflush
+ }
+'