Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dosbox-staging/dosbox-staging.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornemo93 <nemo93@users.noreply.github.com>2022-09-29 18:32:49 +0300
committerkcgen <1557255+kcgen@users.noreply.github.com>2022-09-29 23:24:46 +0300
commitf7c4bc37ad3838df4c4d2eeb9028fe782a78f60d (patch)
tree1c875d95aa1d04d6ba9fc7231bccd7b547e965a2 /contrib
parentc4e863e061633387c7cab87218c11c3815b4c509 (diff)
Add pre-configured mapperfiles to bundled resources
Diffstat (limited to 'contrib')
-rw-r--r--contrib/resources/mapperfiles/meson.build3
-rw-r--r--contrib/resources/mapperfiles/xbox/abreed.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/abreedta.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/actuas.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/aitd.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/aitd2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/aitd3.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/aitdjack.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/aladdin.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/alienc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/alienr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/alientri.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/alphasto.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/alqadim.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/amok.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/another.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/batmanac.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/batmanf.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/bigredr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/blam.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/blood.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/bluesb.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/bluesbja.map140
-rw-r--r--contrib/resources/mapperfiles/xbox/bstone.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/bstone2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/bthorne.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/cadillac.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/cataco3d.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/catapoc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/chxquest.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/cite.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ckeen1.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/clifd.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/coolspot.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/covertac.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/crusnreg.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/crusnrem.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/cyberm.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/d.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/dderby.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/dderby2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ddragon.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ddragon2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ddragon3.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/descent.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/descent2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/disc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/dnukem.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/dnukem2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/doom.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/doom2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/drally.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/dstrike.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/duke3d.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ecstatic.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ecstatic2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/eradicat.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ewj.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ewj2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/exhumed.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/extremea.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/fadetb.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/fatalr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/fb.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/fifa.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/fifa96.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/fifa97.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/firestrm.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/funtrack.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/fxfightr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/gb2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/gods.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/goldnaxe.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/gta.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/gtalond.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/heretic.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/hexen.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/hioctane.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/horde.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/hulkpant.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/humans.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/jazz.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/jbazooka.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/jdredd.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/jimpower.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/joemac.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/jstrike.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/jungbook.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/jurassic.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/krusty.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/lba.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/lba2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/lionking.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/lollypop.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/lostv.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/lostv2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/magicp.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mars3d.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mdk.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/megarac2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/megarace.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/menace.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/microcsm.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mk1.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mk2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mk3.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mktril.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mm.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/mm2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/moktar.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/moon.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/nba97.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/nbajamte.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/nfsse.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/nhl97.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/novas.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/oddworld.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/omf2097.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/panzakb.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/petesamp.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/pitfghtr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/pop.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/pop2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/prayfd.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/preh.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/preh2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/primrage.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/pushover.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/quake.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/raiden.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/rallyc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/raptor.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/rayman.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/redneck.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/redneck2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/reloaded.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/rg97.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/rise.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/rise2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/rott.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/scorchdp.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/screamr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/screamr2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/sf2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/shadoww.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/shells.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/simparc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/simpbvs.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/skynet.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/spacer.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/spearod.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/speedbl2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/spidey.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/srally.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/ssf2t.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/stargunr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/streetr.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/strife.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/superc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/swdf.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/swiv3d.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/tbraider.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/term2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/termfs.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/timec.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/timegate.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/timewar.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/tmnt.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/tmntarc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/tmntman.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/trackatk.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/turric2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/tvcd.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/tyrian.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wacky.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/warriors.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wcrew.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/whaven.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/whaven2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wilds.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wipeout.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wolf3d.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wrallyf.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wwfarc.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/wwfiyh.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/xenon2.map143
-rw-r--r--contrib/resources/mapperfiles/xbox/xmcota.map143
-rw-r--r--contrib/resources/meson.build1
188 files changed, 26599 insertions, 0 deletions
diff --git a/contrib/resources/mapperfiles/meson.build b/contrib/resources/mapperfiles/meson.build
new file mode 100644
index 000000000..32816ba46
--- /dev/null
+++ b/contrib/resources/mapperfiles/meson.build
@@ -0,0 +1,3 @@
+resource_dirs = [
+ 'xbox',
+]
diff --git a/contrib/resources/mapperfiles/xbox/abreed.map b/contrib/resources/mapperfiles/xbox/abreed.map
new file mode 100644
index 000000000..84556dd77
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/abreed.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 10"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 0"
+key_x "key 27" "stick_0 button 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/abreedta.map b/contrib/resources/mapperfiles/xbox/abreedta.map
new file mode 100644
index 000000000..1aa8b93e8
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/abreedta.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 4"
+key_f2 "key 59" "stick_0 button 5"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62" "stick_0 button 1"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/actuas.map b/contrib/resources/mapperfiles/xbox/actuas.map
new file mode 100644
index 000000000..0b2554dc1
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/actuas.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1"
+key_left "key 80" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 hat 0 4"
+key_right "key 79" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/aitd.map b/contrib/resources/mapperfiles/xbox/aitd.map
new file mode 100644
index 000000000..2131ee623
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/aitd.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/aitd2.map b/contrib/resources/mapperfiles/xbox/aitd2.map
new file mode 100644
index 000000000..2131ee623
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/aitd2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/aitd3.map b/contrib/resources/mapperfiles/xbox/aitd3.map
new file mode 100644
index 000000000..2131ee623
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/aitd3.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/aitdjack.map b/contrib/resources/mapperfiles/xbox/aitdjack.map
new file mode 100644
index 000000000..2131ee623
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/aitdjack.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/aladdin.map b/contrib/resources/mapperfiles/xbox/aladdin.map
new file mode 100644
index 000000000..a55e3c1eb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/aladdin.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 2"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/alienc.map b/contrib/resources/mapperfiles/xbox/alienc.map
new file mode 100644
index 000000000..e88707a1b
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/alienc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21" "stick_0 button 3"
+key_t "key 23" "stick_0 button 4"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 5"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44" "stick_0 button 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75" "stick_0 axis 5 2"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78" "stick_0 axis 2 2"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/alienr.map b/contrib/resources/mapperfiles/xbox/alienr.map
new file mode 100644
index 000000000..5fe04789d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/alienr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 button 3"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/alientri.map b/contrib/resources/mapperfiles/xbox/alientri.map
new file mode 100644
index 000000000..85221d8f3
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/alientri.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35" "stick_0 button 5"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 button 9"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 2"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74" "stick_0 axis 5 2"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77" "stick_0 axis 2 2"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93" "stick_0 button 3"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/alphasto.map b/contrib/resources/mapperfiles/xbox/alphasto.map
new file mode 100644
index 000000000..d28c10cf5
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/alphasto.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 button 3"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48" "stick_0 axis 2 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13" "stick_0 axis 5 2"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44" "stick_0 button 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1"
+key_left "key 80" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 hat 0 4"
+key_right "key 79" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86" "stick_0 axis 3 0"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 axis 1 0"
+key_kp_9 "key 97"
+key_kp_plus "key 87" "stick_0 axis 3 1"
+key_kp_4 "key 92" "stick_0 axis 0 0"
+key_kp_5 "key 93"
+key_kp_6 "key 94" "stick_0 axis 0 1"
+key_kp_1 "key 89" "stick_0 button 4"
+key_kp_2 "key 90" "stick_0 axis 1 1"
+key_kp_3 "key 91" "stick_0 button 5"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/alqadim.map b/contrib/resources/mapperfiles/xbox/alqadim.map
new file mode 100644
index 000000000..e4db338ed
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/alqadim.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6" "stick_0 button 4" "stick_0 button 5"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/amok.map b/contrib/resources/mapperfiles/xbox/amok.map
new file mode 100644
index 000000000..3f58d0533
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/amok.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 axis 2 2"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 button 2"
+key_tab "key 43" "stick_0 axis 5 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 3"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/another.map b/contrib/resources/mapperfiles/xbox/another.map
new file mode 100644
index 000000000..8df98948a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/another.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1"
+key_left "key 80" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 hat 0 4"
+key_right "key 79" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_kp_5 "key 93"
+key_kp_6 "key 94" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_kp_1 "key 89"
+key_kp_2 "key 90" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/batmanac.map b/contrib/resources/mapperfiles/xbox/batmanac.map
new file mode 100644
index 000000000..6e06a70e5
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/batmanac.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 button 2"
+key_end "key 77" "stick_0 button 1"
+key_pagedown "key 78" "stick_0 button 0"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_kp_5 "key 93" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_kp_6 "key 94" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/batmanf.map b/contrib/resources/mapperfiles/xbox/batmanf.map
new file mode 100644
index 000000000..3e02197a9
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/batmanf.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 8"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 9"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 button 5"
+key_home "key 74" "stick_0 button 1"
+key_pageup "key 75" "stick_0 button 3"
+key_delete "key 76"
+key_end "key 77" "stick_0 button 0"
+key_pagedown "key 78" "stick_0 button 2"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 hat 0 1"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 hat 0 8"
+key_kp_5 "key 93" "stick_0 button 4"
+key_kp_6 "key 94" "stick_0 hat 0 2"
+key_kp_1 "key 89"
+key_kp_2 "key 90" "stick_0 hat 0 4"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/bigredr.map b/contrib/resources/mapperfiles/xbox/bigredr.map
new file mode 100644
index 000000000..4c24e5378
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/bigredr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 2" "stick_0 button 3"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 button 4" "stick_0 button 5"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/blam.map b/contrib/resources/mapperfiles/xbox/blam.map
new file mode 100644
index 000000000..eba44a8cd
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/blam.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59" "stick_0 button 6"
+key_f3 "key 60" "stick_0 button 2"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69" "stick_0 button 9"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26" "stick_0 axis 4 1"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 axis 4 0"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 button 1"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/blood.map b/contrib/resources/mapperfiles/xbox/blood.map
new file mode 100644
index 000000000..0694c6377
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/blood.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 8"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 button 3"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27" "stick_0 button 2"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/bluesb.map b/contrib/resources/mapperfiles/xbox/bluesb.map
new file mode 100644
index 000000000..27152b893
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/bluesb.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64" "stick_0 button 2"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 3"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 1"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/bluesbja.map b/contrib/resources/mapperfiles/xbox/bluesbja.map
new file mode 100644
index 000000000..01b181ee6
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/bluesbja.map
@@ -0,0 +1,140 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 button 7"
+key_2 "key 31" "stick_0 button 4"
+key_3 "key 32" "stick_0 button 5"
+key_4 "key 33"
+key_5 "key 34" "stick_0 button 2"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 1"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/bstone.map b/contrib/resources/mapperfiles/xbox/bstone.map
new file mode 100644
index 000000000..04c0b8377
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/bstone.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/bstone2.map b/contrib/resources/mapperfiles/xbox/bstone2.map
new file mode 100644
index 000000000..04c0b8377
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/bstone2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/bthorne.map b/contrib/resources/mapperfiles/xbox/bthorne.map
new file mode 100644
index 000000000..39caa205c
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/bthorne.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8" "stick_0 button 3"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 button 4"
+key_rbracket "key 48" "stick_0 button 5"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 button 1"
+key_d "key 7" "stick_0 button 2"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/cadillac.map b/contrib/resources/mapperfiles/xbox/cadillac.map
new file mode 100644
index 000000000..ae2388a92
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/cadillac.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230" "stick_0 button 1"
+key_rctrl "key 228" "stick_0 button 0"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/cataco3d.map b/contrib/resources/mapperfiles/xbox/cataco3d.map
new file mode 100644
index 000000000..282321574
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/cataco3d.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5" "stick_0 button 3"
+key_n "key 17" "stick_0 button 2"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/catapoc.map b/contrib/resources/mapperfiles/xbox/catapoc.map
new file mode 100644
index 000000000..e1419f63d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/catapoc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 5"
+key_q "key 20" "stick_0 button 8"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 1"
+key_x "key 27" "stick_0 button 2"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/chxquest.map b/contrib/resources/mapperfiles/xbox/chxquest.map
new file mode 100644
index 000000000..7bcacebdb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/chxquest.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 2 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 5 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/cite.map b/contrib/resources/mapperfiles/xbox/cite.map
new file mode 100644
index 000000000..bdcdbe9d8
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/cite.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 2 2" "stick_0 axis 5 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 0"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 4"
+key_lalt "key 226" "stick_0 button 5"
+key_space "key 44" "stick_0 button 3"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75" "stick_0 button 1"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78" "stick_0 button 2"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ckeen1.map b/contrib/resources/mapperfiles/xbox/ckeen1.map
new file mode 100644
index 000000000..b7cac196d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ckeen1.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 button 8"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7" "stick_0 button 9"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0" "stick_0 button 2"
+key_lalt "key 226" "stick_0 button 1" "stick_0 button 2"
+key_space "key 44" "stick_0 button 3"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/clifd.map b/contrib/resources/mapperfiles/xbox/clifd.map
new file mode 100644
index 000000000..1be91f15e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/clifd.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 axis 4 0"
+key_2 "key 31" "stick_0 axis 3 0"
+key_3 "key 32" "stick_0 axis 4 1"
+key_4 "key 33" "stick_0 axis 3 1"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 4" "stick_0 button 5"
+key_q "key 20" "stick_0 button 8"
+key_w "key 26"
+key_e "key 8" "stick_0 button 9"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/coolspot.map b/contrib/resources/mapperfiles/xbox/coolspot.map
new file mode 100644
index 000000000..b36818918
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/coolspot.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230" "stick_0 button 1"
+key_rctrl "key 228" "stick_0 button 0"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/covertac.map b/contrib/resources/mapperfiles/xbox/covertac.map
new file mode 100644
index 000000000..0445a672e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/covertac.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 1"
+key_f2 "key 59" "stick_0 button 3"
+key_f3 "key 60" "stick_0 button 4"
+key_f4 "key 61" "stick_0 button 5"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66" "stick_0 axis 2 2"
+key_f10 "key 67" "stick_0 axis 5 2"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93" "stick_0 button 10"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/crusnreg.map b/contrib/resources/mapperfiles/xbox/crusnreg.map
new file mode 100644
index 000000000..e4281e646
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/crusnreg.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 hat 0 2"
+key_w "key 26" "stick_0 hat 0 8"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24" "stick_0 axis 2 2"
+key_i "key 12" "stick_0 hat 0 4"
+key_o "key 18" "stick_0 hat 0 1"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 button 2"
+key_d "key 7" "stick_0 button 8"
+key_f "key 9"
+key_g "key 10" "stick_0 axis 5 2"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5" "stick_0 button 9"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 3"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 button 8"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/crusnrem.map b/contrib/resources/mapperfiles/xbox/crusnrem.map
new file mode 100644
index 000000000..851372ee7
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/crusnrem.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 hat 0 2"
+key_w "key 26" "stick_0 hat 0 8"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24" "stick_0 axis 2 2"
+key_i "key 12" "stick_0 hat 0 4"
+key_o "key 18" "stick_0 hat 0 1"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 button 2"
+key_d "key 7" "stick_0 button 8"
+key_f "key 9"
+key_g "key 10" "stick_0 axis 5 2"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5" "stick_0 button 9"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 3"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 button 8"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/cyberm.map b/contrib/resources/mapperfiles/xbox/cyberm.map
new file mode 100644
index 000000000..630453a7c
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/cyberm.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 hat 0 1"
+key_f2 "key 59" "stick_0 hat 0 8"
+key_f3 "key 60" "stick_0 hat 0 4"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20"
+key_w "key 26" "stick_0 axis 4 0"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 9"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 4"
+key_x "key 27" "stick_0 axis 4 1"
+key_c "key 6" "stick_0 button 5"
+key_v "key 25" "stick_0 button 3"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 axis 5 2"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0" "stick_0 axis 5 2"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85" "stick_0 hat 0 2"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98" "stick_0 axis 2 2"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/d.map b/contrib/resources/mapperfiles/xbox/d.map
new file mode 100644
index 000000000..f0fae2820
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/d.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12" "stick_0 button 4" "stick_0 button 5"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/dderby.map b/contrib/resources/mapperfiles/xbox/dderby.map
new file mode 100644
index 000000000..fc1702626
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/dderby.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 3"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 8" "stick_0 button 9"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 4" "stick_0 button 5"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/dderby2.map b/contrib/resources/mapperfiles/xbox/dderby2.map
new file mode 100644
index 000000000..d46a17426
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/dderby2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 2"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 0"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 1"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 4" "stick_0 button 5"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ddragon.map b/contrib/resources/mapperfiles/xbox/ddragon.map
new file mode 100644
index 000000000..5fd52cd7c
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ddragon.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_p "key 19" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ddragon2.map b/contrib/resources/mapperfiles/xbox/ddragon2.map
new file mode 100644
index 000000000..f3f9a8369
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ddragon2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_s "key 22"
+key_d "key 7" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ddragon3.map b/contrib/resources/mapperfiles/xbox/ddragon3.map
new file mode 100644
index 000000000..332d1e72d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ddragon3.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 0"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/descent.map b/contrib/resources/mapperfiles/xbox/descent.map
new file mode 100644
index 000000000..27904a85e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/descent.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20" "stick_0 axis 2 2"
+key_w "key 26"
+key_e "key 8" "stick_0 axis 5 2"
+key_r "key 21" "stick_0 button 8"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9" "stick_0 button 3"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 5"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5" "stick_0 button 2"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86" "stick_0 axis 1 0"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87" "stick_0 axis 1 1"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89" "stick_0 axis 0 0"
+key_kp_2 "key 90"
+key_kp_3 "key 91" "stick_0 axis 0 1"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/descent2.map b/contrib/resources/mapperfiles/xbox/descent2.map
new file mode 100644
index 000000000..fd94addcb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/descent2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62" "stick_0 hat 0 8"
+key_f6 "key 63" "stick_0 hat 0 2"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20" "stick_0 axis 2 2"
+key_w "key 26"
+key_e "key 8" "stick_0 axis 5 2"
+key_r "key 21" "stick_0 button 8"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 4"
+key_s "key 22" "stick_0 button 2"
+key_d "key 7"
+key_f "key 9" "stick_0 hat 0 1"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 button 3"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 5"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5" "stick_0 hat 0 4"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 hat 0 8" "stick_0 hat 0 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86" "stick_0 axis 1 0"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87" "stick_0 axis 1 1"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89" "stick_0 axis 0 0"
+key_kp_2 "key 90"
+key_kp_3 "key 91" "stick_0 axis 0 1"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/disc.map b/contrib/resources/mapperfiles/xbox/disc.map
new file mode 100644
index 000000000..5c40ab1e7
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/disc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60" "stick_0 button 4" "stick_0 button 5"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 button 9" "stick_0 button 10"
+key_tab "key 43" "stick_0 button 7"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 0"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_left "key 80" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_right "key 79" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/dnukem.map b/contrib/resources/mapperfiles/xbox/dnukem.map
new file mode 100644
index 000000000..a28393905
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/dnukem.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_f "key 9" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_g "key 10" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_h "key 11" "stick_0 button 2"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80" "stick_0 button 0"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/dnukem2.map b/contrib/resources/mapperfiles/xbox/dnukem2.map
new file mode 100644
index 000000000..8838dba8a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/dnukem2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11" "stick_0 button 2"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/doom.map b/contrib/resources/mapperfiles/xbox/doom.map
new file mode 100644
index 000000000..7bcacebdb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/doom.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 2 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 5 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/doom2.map b/contrib/resources/mapperfiles/xbox/doom2.map
new file mode 100644
index 000000000..7bcacebdb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/doom2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 2 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 5 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/drally.map b/contrib/resources/mapperfiles/xbox/drally.map
new file mode 100644
index 000000000..d2e2aac0b
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/drally.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 0"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 4"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 1"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 5"
+key_lalt "key 226" "stick_0 button 2"
+key_space "key 44" "stick_0 button 3"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/dstrike.map b/contrib/resources/mapperfiles/xbox/dstrike.map
new file mode 100644
index 000000000..ba551b282
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/dstrike.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59" "stick_0 button 4"
+key_f3 "key 60" "stick_0 button 5"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69" "stick_0 button 10"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 2"
+key_x "key 27" "stick_0 button 1"
+key_c "key 6" "stick_0 button 0"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 7"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/duke3d.map b/contrib/resources/mapperfiles/xbox/duke3d.map
new file mode 100644
index 000000000..91337e4fc
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/duke3d.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53" "stick_0 button 2"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 5"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 button 3"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ecstatic.map b/contrib/resources/mapperfiles/xbox/ecstatic.map
new file mode 100644
index 000000000..780e88445
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ecstatic.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62" "stick_0 button 9"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66" "stick_0 button 8"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95" "stick_0 button 0"
+key_kp_8 "key 96" "stick_0 axis 1 0"
+key_kp_9 "key 97" "stick_0 button 1"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 axis 0 0"
+key_kp_5 "key 93" "stick_0 button 2"
+key_kp_6 "key 94" "stick_0 axis 0 1"
+key_kp_1 "key 89" "stick_0 button 4"
+key_kp_2 "key 90" "stick_0 axis 1 1"
+key_kp_3 "key 91" "stick_0 button 5"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ecstatic2.map b/contrib/resources/mapperfiles/xbox/ecstatic2.map
new file mode 100644
index 000000000..3da53efd4
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ecstatic2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12" "stick_0 button 3"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 2"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 4"
+key_lalt "key 226" "stick_0 button 5"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230" "stick_0 button 1"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95" "stick_0 button 0"
+key_kp_8 "key 96"
+key_kp_9 "key 97" "stick_0 button 1"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93" "stick_0 button 2"
+key_kp_6 "key 94"
+key_kp_1 "key 89" "stick_0 button 4"
+key_kp_2 "key 90"
+key_kp_3 "key 91" "stick_0 button 5"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/eradicat.map b/contrib/resources/mapperfiles/xbox/eradicat.map
new file mode 100644
index 000000000..ec10a1f63
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/eradicat.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 5"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55" "stick_0 hat 0 1"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 3"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74" "stick_0 axis 4 0"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 button 2"
+key_end "key 77" "stick_0 axis 4 1"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ewj.map b/contrib/resources/mapperfiles/xbox/ewj.map
new file mode 100644
index 000000000..ed6e8949f
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ewj.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 3"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ewj2.map b/contrib/resources/mapperfiles/xbox/ewj2.map
new file mode 100644
index 000000000..9d555a06e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ewj2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 3"
+key_q "key 20" "stick_0 button 4"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_v "key 25"
+key_b "key 5" "stick_0 button 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/exhumed.map b/contrib/resources/mapperfiles/xbox/exhumed.map
new file mode 100644
index 000000000..be1ef2085
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/exhumed.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 3"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/extremea.map b/contrib/resources/mapperfiles/xbox/extremea.map
new file mode 100644
index 000000000..60170fbdf
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/extremea.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69" "stick_0 button 9"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31" "stick_0 axis 4 0"
+key_3 "key 32"
+key_4 "key 33" "stick_0 axis 3 0"
+key_5 "key 34"
+key_6 "key 35" "stick_0 axis 3 1"
+key_7 "key 36"
+key_8 "key 37" "stick_0 axis 4 1"
+key_9 "key 38"
+key_0 "key 39" "stick_0 hat 0 8"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 button 5"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20" "stick_0 hat 0 1"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 hat 0 4"
+key_y "key 28" "stick_0 button 10"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 3"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/fadetb.map b/contrib/resources/mapperfiles/xbox/fadetb.map
new file mode 100644
index 000000000..001938d60
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/fadetb.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24" "stick_0 button 5"
+key_i "key 12" "stick_0 button 4"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 2"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13" "stick_0 axis 2 2"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5" "stick_0 button 1"
+key_n "key 17"
+key_m "key 16" "stick_0 button 9"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 5 2"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230" "stick_0 button 3"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75" "stick_0 axis 4 0"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78" "stick_0 axis 4 1"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95" "stick_0 axis 3 0"
+key_kp_8 "key 96"
+key_kp_9 "key 97" "stick_0 axis 3 1"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/fatalr.map b/contrib/resources/mapperfiles/xbox/fatalr.map
new file mode 100644
index 000000000..e63267e8d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/fatalr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60" "stick_0 button 2"
+key_f4 "key 61" "stick_0 button 3"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21" "stick_0 button 4"
+key_t "key 23" "stick_0 button 0"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7" "stick_0 button 5"
+key_f "key 9" "stick_0 button 1"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 axis 0 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/fb.map b/contrib/resources/mapperfiles/xbox/fb.map
new file mode 100644
index 000000000..d4eed22d4
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/fb.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 3"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 2"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 0"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/fifa.map b/contrib/resources/mapperfiles/xbox/fifa.map
new file mode 100644
index 000000000..a1256e28f
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/fifa.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1" "stick_0 button 2"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0" "stick_0 button 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/fifa96.map b/contrib/resources/mapperfiles/xbox/fifa96.map
new file mode 100644
index 000000000..caebb9899
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/fifa96.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 2"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/fifa97.map b/contrib/resources/mapperfiles/xbox/fifa97.map
new file mode 100644
index 000000000..18953a8de
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/fifa97.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 2"
+key_w "key 26" "stick_0 button 4"
+key_e "key 8" "stick_0 button 5"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 3"
+key_s "key 22" "stick_0 button 1"
+key_d "key 7" "stick_0 button 0"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/firestrm.map b/contrib/resources/mapperfiles/xbox/firestrm.map
new file mode 100644
index 000000000..03709984d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/firestrm.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 3"
+key_q "key 20" "stick_0 axis 5 2"
+key_w "key 26" "stick_0 button 2"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 2 2"
+key_s "key 22" "stick_0 button 1"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4" "stick_0 button 5"
+key_space "key 44" "stick_0 button 7"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72" "stick_0 button 8" "stick_0 button 9"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/funtrack.map b/contrib/resources/mapperfiles/xbox/funtrack.map
new file mode 100644
index 000000000..fe9677e7b
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/funtrack.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 8" "stick_0 button 9"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52" "stick_0 button 2"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55" "stick_0 button 4"
+key_slash "key 56" "stick_0 button 5"
+key_rshift "key 229" "stick_0 axis 2 2" "stick_0 axis 5 2"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/fxfightr.map b/contrib/resources/mapperfiles/xbox/fxfightr.map
new file mode 100644
index 000000000..6d1eedb15
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/fxfightr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 1"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_x "key 27" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_c "key 6" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_v "key 25" "stick_0 button 0"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/gb2.map b/contrib/resources/mapperfiles/xbox/gb2.map
new file mode 100644
index 000000000..7aa1e3255
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/gb2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_kp_5 "key 93"
+key_kp_6 "key 94" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_kp_1 "key 89"
+key_kp_2 "key 90" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/gods.map b/contrib/resources/mapperfiles/xbox/gods.map
new file mode 100644
index 000000000..682c6f600
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/gods.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 1"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/goldnaxe.map b/contrib/resources/mapperfiles/xbox/goldnaxe.map
new file mode 100644
index 000000000..0a970cce3
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/goldnaxe.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 4"
+key_x "key 27" "stick_0 button 5"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 3" "stick_0 button 7"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 button 1"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93" "stick_0 button 0"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/gta.map b/contrib/resources/mapperfiles/xbox/gta.map
new file mode 100644
index 000000000..2dbde4168
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/gta.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62" "stick_0 button 5"
+key_f6 "key 63" "stick_0 button 4"
+key_f7 "key 64" "stick_0 button 9"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 8"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38" "stick_0 button 0"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 hat 0 2"
+key_q "key 20"
+key_w "key 26" "stick_0 button 2"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24" "stick_0 axis 1 0" "stick_0 axis 5 2"
+key_i "key 12" "stick_0 axis 1 1" "stick_0 axis 2 2"
+key_o "key 18"
+key_p "key 19" "stick_0 button 1"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 button 3"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 hat 0 8"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 axis 0 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/gtalond.map b/contrib/resources/mapperfiles/xbox/gtalond.map
new file mode 100644
index 000000000..2dbde4168
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/gtalond.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62" "stick_0 button 5"
+key_f6 "key 63" "stick_0 button 4"
+key_f7 "key 64" "stick_0 button 9"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 8"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38" "stick_0 button 0"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 hat 0 2"
+key_q "key 20"
+key_w "key 26" "stick_0 button 2"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24" "stick_0 axis 1 0" "stick_0 axis 5 2"
+key_i "key 12" "stick_0 axis 1 1" "stick_0 axis 2 2"
+key_o "key 18"
+key_p "key 19" "stick_0 button 1"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 button 3"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 hat 0 8"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 axis 0 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/heretic.map b/contrib/resources/mapperfiles/xbox/heretic.map
new file mode 100644
index 000000000..27a9f60a4
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/heretic.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 2 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 5 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/hexen.map b/contrib/resources/mapperfiles/xbox/hexen.map
new file mode 100644
index 000000000..7fcce32fb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/hexen.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56" "stick_0 axis 5 2"
+key_rshift "key 229" "stick_0 button 3"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 axis 2 2"
+key_home "key 74" "stick_0 button 2"
+key_pageup "key 75" "stick_0 axis 5 2"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/hioctane.map b/contrib/resources/mapperfiles/xbox/hioctane.map
new file mode 100644
index 000000000..4ae9af06b
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/hioctane.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 axis 4 0"
+key_2 "key 31" "stick_0 axis 3 0"
+key_3 "key 32" "stick_0 axis 4 1"
+key_4 "key 33" "stick_0 axis 3 1"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 4"
+key_x "key 27" "stick_0 button 5"
+key_c "key 6" "stick_0 button 2" "stick_0 button 3"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/horde.map b/contrib/resources/mapperfiles/xbox/horde.map
new file mode 100644
index 000000000..c43fd35d2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/horde.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60" "stick_0 button 3"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 0"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/hulkpant.map b/contrib/resources/mapperfiles/xbox/hulkpant.map
new file mode 100644
index 000000000..09af8ab4b
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/hulkpant.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 button 1"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 0"
+key_x "key 27" "stick_0 button 5"
+key_c "key 6" "stick_0 button 2"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 10"
+key_lctrl "key 224" "stick_0 button 4"
+key_lalt "key 226"
+key_space "key 44" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/humans.map b/contrib/resources/mapperfiles/xbox/humans.map
new file mode 100644
index 000000000..6c38fb96c
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/humans.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 3"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 1"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/jazz.map b/contrib/resources/mapperfiles/xbox/jazz.map
new file mode 100644
index 000000000..e6b6df740
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/jazz.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 button 4" "stick_0 button 5"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 2"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/jbazooka.map b/contrib/resources/mapperfiles/xbox/jbazooka.map
new file mode 100644
index 000000000..37bf8e08e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/jbazooka.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 5"
+key_x "key 27" "stick_0 button 3"
+key_c "key 6" "stick_0 button 4"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 2"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/jdredd.map b/contrib/resources/mapperfiles/xbox/jdredd.map
new file mode 100644
index 000000000..8d7a587de
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/jdredd.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 axis 4 0"
+key_2 "key 31" "stick_0 axis 3 0"
+key_3 "key 32" "stick_0 axis 4 1"
+key_4 "key 33" "stick_0 axis 3 1"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 8"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 1"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 2"
+key_space "key 44" "stick_0 button 3"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 button 5"
+key_end "key 77" "stick_0 button 4"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/jimpower.map b/contrib/resources/mapperfiles/xbox/jimpower.map
new file mode 100644
index 000000000..be24fcf0e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/jimpower.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 2"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/joemac.map b/contrib/resources/mapperfiles/xbox/joemac.map
new file mode 100644
index 000000000..bfed3e29f
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/joemac.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/jstrike.map b/contrib/resources/mapperfiles/xbox/jstrike.map
new file mode 100644
index 000000000..ba551b282
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/jstrike.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59" "stick_0 button 4"
+key_f3 "key 60" "stick_0 button 5"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69" "stick_0 button 10"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 2"
+key_x "key 27" "stick_0 button 1"
+key_c "key 6" "stick_0 button 0"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 7"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/jungbook.map b/contrib/resources/mapperfiles/xbox/jungbook.map
new file mode 100644
index 000000000..88e08797d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/jungbook.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 2"
+key_x "key 27" "stick_0 button 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/jurassic.map b/contrib/resources/mapperfiles/xbox/jurassic.map
new file mode 100644
index 000000000..f82dd2df9
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/jurassic.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12" "stick_0 button 2"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9" "stick_0 button 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 axis 2 2" "stick_0 axis 5 2"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 4"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25" "stick_0 button 5"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16" "stick_0 button 3"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74" "stick_0 button 10"
+key_pageup "key 75" "stick_0 axis 4 1"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78" "stick_0 axis 4 0"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/krusty.map b/contrib/resources/mapperfiles/xbox/krusty.map
new file mode 100644
index 000000000..18af72a66
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/krusty.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 6"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 0"
+key_x "key 27" "stick_0 button 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/lba.map b/contrib/resources/mapperfiles/xbox/lba.map
new file mode 100644
index 000000000..8cdeeb2c2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/lba.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63" "stick_0 button 3"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/lba2.map b/contrib/resources/mapperfiles/xbox/lba2.map
new file mode 100644
index 000000000..a60865ef2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/lba2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 8"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61" "stick_0 axis 2 2"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 5 2"
+key_q "key 20"
+key_w "key 26" "stick_0 button 9"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 button 4" "stick_0 button 5"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 3"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 2"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/lionking.map b/contrib/resources/mapperfiles/xbox/lionking.map
new file mode 100644
index 000000000..a55e3c1eb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/lionking.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 2"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/lollypop.map b/contrib/resources/mapperfiles/xbox/lollypop.map
new file mode 100644
index 000000000..1b3ff448c
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/lollypop.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 1"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/lostv.map b/contrib/resources/mapperfiles/xbox/lostv.map
new file mode 100644
index 000000000..ef9e5cfb2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/lostv.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 4"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8" "stick_0 button 5"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 button 2"
+key_d "key 7" "stick_0 button 1"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 3"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/lostv2.map b/contrib/resources/mapperfiles/xbox/lostv2.map
new file mode 100644
index 000000000..a774aaa13
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/lostv2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 3"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 2"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 4"
+key_x "key 27" "stick_0 button 5"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 1"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 axis 2 2" "stick_0 axis 5 2"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 axis 3 1"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89" "stick_0 axis 4 0"
+key_kp_2 "key 90" "stick_0 axis 3 0"
+key_kp_3 "key 91" "stick_0 axis 4 1"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/magicp.map b/contrib/resources/mapperfiles/xbox/magicp.map
new file mode 100644
index 000000000..9e2b93d0f
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/magicp.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 button 0"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 1"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mars3d.map b/contrib/resources/mapperfiles/xbox/mars3d.map
new file mode 100644
index 000000000..a085bce7d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mars3d.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 8"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 5"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 axis 4 0"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 axis 4 1"
+key_end "key 77" "stick_0 button 9"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mdk.map b/contrib/resources/mapperfiles/xbox/mdk.map
new file mode 100644
index 000000000..ff8c96a02
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mdk.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69" "stick_0 button 7"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 3"
+key_capslock "key 57" "stick_0 button 5"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27" "stick_0 button 4"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44" "stick_0 button 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/megarac2.map b/contrib/resources/mapperfiles/xbox/megarac2.map
new file mode 100644
index 000000000..058962385
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/megarac2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 5 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 4"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 2 2"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 5"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/megarace.map b/contrib/resources/mapperfiles/xbox/megarace.map
new file mode 100644
index 000000000..c54883ad8
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/megarace.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 axis 2 2" "stick_0 axis 5 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 0"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 1"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_period "key 55" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 4" "stick_0 button 5"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/menace.map b/contrib/resources/mapperfiles/xbox/menace.map
new file mode 100644
index 000000000..ba42bda5d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/menace.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 2" "stick_0 button 3"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/microcsm.map b/contrib/resources/mapperfiles/xbox/microcsm.map
new file mode 100644
index 000000000..8a1f434da
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/microcsm.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mk1.map b/contrib/resources/mapperfiles/xbox/mk1.map
new file mode 100644
index 000000000..c918122a2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mk1.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 9"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24" "stick_0 button 1"
+key_i "key 12" "stick_0 button 3"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13" "stick_0 button 4" "stick_0 button 5"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 0"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mk2.map b/contrib/resources/mapperfiles/xbox/mk2.map
new file mode 100644
index 000000000..c918122a2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mk2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 9"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24" "stick_0 button 1"
+key_i "key 12" "stick_0 button 3"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13" "stick_0 button 4" "stick_0 button 5"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 0"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mk3.map b/contrib/resources/mapperfiles/xbox/mk3.map
new file mode 100644
index 000000000..452f5f27e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mk3.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 9"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24" "stick_0 button 1"
+key_i "key 12" "stick_0 button 3"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10" "stick_0 button 4"
+key_h "key 11"
+key_j "key 13" "stick_0 button 5"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 0"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mktril.map b/contrib/resources/mapperfiles/xbox/mktril.map
new file mode 100644
index 000000000..c24fcf7b1
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mktril.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 button 1"
+key_kp_5 "key 93" "stick_0 button 5"
+key_kp_6 "key 94" "stick_0 button 3"
+key_kp_1 "key 89" "stick_0 button 0"
+key_kp_2 "key 90" "stick_0 button 4"
+key_kp_3 "key 91" "stick_0 button 2"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mm.map b/contrib/resources/mapperfiles/xbox/mm.map
new file mode 100644
index 000000000..76093fa0f
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mm.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9" "stick_0 button 0" "stick_0 button 4" "stick_0 button 5"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_c "key 6" "stick_0 button 1" "stick_0 button 4" "stick_0 button 5"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/mm2.map b/contrib/resources/mapperfiles/xbox/mm2.map
new file mode 100644
index 000000000..5fde4f799
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/mm2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 2" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 0" "stick_0 button 4" "stick_0 button 5"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_p "key 19" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 1" "stick_0 button 4" "stick_0 button 5"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/moktar.map b/contrib/resources/mapperfiles/xbox/moktar.map
new file mode 100644
index 000000000..f214ca390
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/moktar.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 9"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61" "stick_0 button 1"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8" "stick_0 button 2"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/moon.map b/contrib/resources/mapperfiles/xbox/moon.map
new file mode 100644
index 000000000..d349c466e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/moon.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 button 4"
+key_2 "key 31" "stick_0 button 5"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 0"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1" "stick_0 button 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/nba97.map b/contrib/resources/mapperfiles/xbox/nba97.map
new file mode 100644
index 000000000..29c2155bf
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/nba97.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 0"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 1" "stick_0 button 2"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 button 4" "stick_0 button 5"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/nbajamte.map b/contrib/resources/mapperfiles/xbox/nbajamte.map
new file mode 100644
index 000000000..f0ade1fb6
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/nbajamte.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 button 4" "stick_0 button 5"
+key_end "key 77" "stick_0 button 0"
+key_pagedown "key 78" "stick_0 button 2"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_kp_5 "key 93" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_kp_6 "key 94" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_kp_1 "key 89"
+key_kp_2 "key 90" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/nfsse.map b/contrib/resources/mapperfiles/xbox/nfsse.map
new file mode 100644
index 000000000..0336636e1
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/nfsse.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 5"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11" "stick_0 button 2"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 4"
+key_x "key 27"
+key_c "key 6" "stick_0 button 3"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/nhl97.map b/contrib/resources/mapperfiles/xbox/nhl97.map
new file mode 100644
index 000000000..0e0ada047
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/nhl97.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230" "stick_0 button 2"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/novas.map b/contrib/resources/mapperfiles/xbox/novas.map
new file mode 100644
index 000000000..773dda1d7
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/novas.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7" "stick_0 button 2"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11" "stick_0 button 4" "stick_0 button 5"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/oddworld.map b/contrib/resources/mapperfiles/xbox/oddworld.map
new file mode 100644
index 000000000..3286faa4b
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/oddworld.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39" "stick_0 button 3"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 4"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 5"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/omf2097.map b/contrib/resources/mapperfiles/xbox/omf2097.map
new file mode 100644
index 000000000..41d590eb1
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/omf2097.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 0"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 1"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/panzakb.map b/contrib/resources/mapperfiles/xbox/panzakb.map
new file mode 100644
index 000000000..f98361265
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/panzakb.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/petesamp.map b/contrib/resources/mapperfiles/xbox/petesamp.map
new file mode 100644
index 000000000..19751872a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/petesamp.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20" "stick_0 button 0"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 1"
+key_a "key 4" "stick_0 button 3"
+key_s "key 22"
+key_d "key 7" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_c "key 6" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_v "key 25" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/pitfghtr.map b/contrib/resources/mapperfiles/xbox/pitfghtr.map
new file mode 100644
index 000000000..dde003192
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/pitfghtr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_s "key 22"
+key_d "key 7" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/pop.map b/contrib/resources/mapperfiles/xbox/pop.map
new file mode 100644
index 000000000..4867aeaa6
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/pop.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10" "stick_0 button 8"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 0"
+key_lctrl "key 224" "stick_0 button 8"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/pop2.map b/contrib/resources/mapperfiles/xbox/pop2.map
new file mode 100644
index 000000000..4f59089ae
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/pop2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 9"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10" "stick_0 button 8"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 0"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 8" "stick_0 button 9"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/prayfd.map b/contrib/resources/mapperfiles/xbox/prayfd.map
new file mode 100644
index 000000000..a8a4556ee
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/prayfd.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 0"
+key_w "key 26" "stick_0 button 1"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 2"
+key_s "key 22" "stick_0 button 3"
+key_d "key 7"
+key_f "key 9" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_g "key 10" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_h "key 11" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 8"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75" "stick_0 button 4"
+key_delete "key 76"
+key_end "key 77" "stick_0 button 5"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/preh.map b/contrib/resources/mapperfiles/xbox/preh.map
new file mode 100644
index 000000000..e56af2dd6
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/preh.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 3"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/preh2.map b/contrib/resources/mapperfiles/xbox/preh2.map
new file mode 100644
index 000000000..e56af2dd6
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/preh2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 3"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/primrage.map b/contrib/resources/mapperfiles/xbox/primrage.map
new file mode 100644
index 000000000..6de3c6ada
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/primrage.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 9"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24" "stick_0 button 2"
+key_i "key 12" "stick_0 button 3"
+key_o "key 18" "stick_0 button 10"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 0"
+key_m "key 16" "stick_0 button 1"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/pushover.map b/contrib/resources/mapperfiles/xbox/pushover.map
new file mode 100644
index 000000000..2df86f6eb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/pushover.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/quake.map b/contrib/resources/mapperfiles/xbox/quake.map
new file mode 100644
index 000000000..2bca281cb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/quake.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 4 0"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 4 1"
+key_x "key 27"
+key_c "key 6" "stick_0 axis 2 2"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56" "stick_0 button 1"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 axis 5 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 button 3"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77" "stick_0 button 10"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/raiden.map b/contrib/resources/mapperfiles/xbox/raiden.map
new file mode 100644
index 000000000..729168189
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/raiden.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 2"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 1"
+key_m "key 16" "stick_0 button 0"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/rallyc.map b/contrib/resources/mapperfiles/xbox/rallyc.map
new file mode 100644
index 000000000..de13fc41b
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/rallyc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 2"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 9"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 button 5"
+key_quote "key 52" "stick_0 button 0"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55" "stick_0 button 4"
+key_slash "key 56" "stick_0 button 1"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/raptor.map b/contrib/resources/mapperfiles/xbox/raptor.map
new file mode 100644
index 000000000..de65fadbb
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/raptor.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4" "stick_0 button 5"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/rayman.map b/contrib/resources/mapperfiles/xbox/rayman.map
new file mode 100644
index 000000000..b573d8579
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/rayman.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 button 2"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/redneck.map b/contrib/resources/mapperfiles/xbox/redneck.map
new file mode 100644
index 000000000..d87e9b658
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/redneck.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 8"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 button 3"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/redneck2.map b/contrib/resources/mapperfiles/xbox/redneck2.map
new file mode 100644
index 000000000..d87e9b658
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/redneck2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 8"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 button 3"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/reloaded.map b/contrib/resources/mapperfiles/xbox/reloaded.map
new file mode 100644
index 000000000..92ef62f34
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/reloaded.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 1"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 2"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4" "stick_0 button 5"
+key_space "key 44" "stick_0 button 7"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75" "stick_0 axis 5 2"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78" "stick_0 axis 2 2"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0" "stick_0 button 4"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1" "stick_0 button 5"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/rg97.map b/contrib/resources/mapperfiles/xbox/rg97.map
new file mode 100644
index 000000000..514150ef2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/rg97.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61" "stick_0 button 3"
+key_f5 "key 62" "stick_0 button 2"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 8" "stick_0 button 9"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 button 0"
+key_end "key 77" "stick_0 button 1"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/rise.map b/contrib/resources/mapperfiles/xbox/rise.map
new file mode 100644
index 000000000..b4d6e800e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/rise.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_s "key 22" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 1"
+key_lalt "key 226" "stick_0 button 0"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/rise2.map b/contrib/resources/mapperfiles/xbox/rise2.map
new file mode 100644
index 000000000..82abec470
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/rise2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_w "key 26"
+key_e "key 8" "stick_0 button 0"
+key_r "key 21" "stick_0 button 1"
+key_t "key 23" "stick_0 button 4"
+key_y "key 28" "stick_0 button 8" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_s "key 22" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_d "key 7" "stick_0 button 2"
+key_f "key 9" "stick_0 button 3"
+key_g "key 10" "stick_0 button 5"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/rott.map b/contrib/resources/mapperfiles/xbox/rott.map
new file mode 100644
index 000000000..1c29daab9
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/rott.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 axis 4 0"
+key_2 "key 31" "stick_0 axis 3 0"
+key_3 "key 32" "stick_0 axis 4 1"
+key_4 "key 33" "stick_0 axis 3 1"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 3"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75" "stick_0 axis 5 2"
+key_delete "key 76" "stick_0 button 2"
+key_end "key 77"
+key_pagedown "key 78" "stick_0 axis 2 2"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/scorchdp.map b/contrib/resources/mapperfiles/xbox/scorchdp.map
new file mode 100644
index 000000000..f6d4af214
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/scorchdp.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 button 4"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15" "stick_0 button 5"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 axis 5 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230" "stick_0 axis 2 2"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74" "stick_0 button 3"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77" "stick_0 button 2"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/screamr.map b/contrib/resources/mapperfiles/xbox/screamr.map
new file mode 100644
index 000000000..f03ebc2a1
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/screamr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 5"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0" "stick_0 axis 5 2"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1" "stick_0 axis 2 2"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/screamr2.map b/contrib/resources/mapperfiles/xbox/screamr2.map
new file mode 100644
index 000000000..0837b5667
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/screamr2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 button 4"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0" "stick_0 axis 5 2"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1" "stick_0 axis 2 2"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/sf2.map b/contrib/resources/mapperfiles/xbox/sf2.map
new file mode 100644
index 000000000..3361e63a7
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/sf2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 9"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10" "stick_0 button 0"
+key_h "key 11" "stick_0 button 1"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/shadoww.map b/contrib/resources/mapperfiles/xbox/shadoww.map
new file mode 100644
index 000000000..6ef56ab26
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/shadoww.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 10"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 button 8"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 button 3"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/shells.map b/contrib/resources/mapperfiles/xbox/shells.map
new file mode 100644
index 000000000..763abb7b2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/shells.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20" "stick_0 axis 1 0"
+key_w "key 26"
+key_e "key 8" "stick_0 button 8"
+key_r "key 21"
+key_t "key 23" "stick_0 button 3"
+key_y "key 28" "stick_0 button 10"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 10"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 1 1"
+key_s "key 22" "stick_0 button 1"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13" "stick_0 axis 3 0"
+key_k "key 14" "stick_0 button 9"
+key_l "key 15" "stick_0 axis 3 1"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 axis 0 0"
+key_period "key 55" "stick_0 axis 0 1"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1"
+key_left "key 80" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 hat 0 4"
+key_right "key 79" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/simparc.map b/contrib/resources/mapperfiles/xbox/simparc.map
new file mode 100644
index 000000000..6bdc42d3f
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/simparc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_kp_5 "key 93"
+key_kp_6 "key 94" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_kp_1 "key 89"
+key_kp_2 "key 90" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98" "stick_0 button 0"
+key_kp_period "key 99" "stick_0 button 1"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/simpbvs.map b/contrib/resources/mapperfiles/xbox/simpbvs.map
new file mode 100644
index 000000000..9ae0bf2b9
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/simpbvs.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 1"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_p "key 19" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/skynet.map b/contrib/resources/mapperfiles/xbox/skynet.map
new file mode 100644
index 000000000..e48171f9a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/skynet.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 3"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 1"
+key_s "key 22" "stick_0 axis 2 2"
+key_d "key 7" "stick_0 button 4"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 hat 0 8"
+key_quote "key 52" "stick_0 hat 0 2"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 4"
+key_x "key 27"
+key_c "key 6" "stick_0 axis 5 2"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 5"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74" "stick_0 button 10"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 1"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 0"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/spacer.map b/contrib/resources/mapperfiles/xbox/spacer.map
new file mode 100644
index 000000000..e9a70fb15
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/spacer.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 2"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62" "stick_0 button 10"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 9"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14" "stick_0 button 0"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1" "stick_0 button 4" "stick_0 button 5"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_left "key 80" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_right "key 79" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/spearod.map b/contrib/resources/mapperfiles/xbox/spearod.map
new file mode 100644
index 000000000..04c0b8377
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/spearod.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/speedbl2.map b/contrib/resources/mapperfiles/xbox/speedbl2.map
new file mode 100644
index 000000000..624ee28f2
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/speedbl2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_p "key 19" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/spidey.map b/contrib/resources/mapperfiles/xbox/spidey.map
new file mode 100644
index 000000000..01cc9f343
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/spidey.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45" "stick_0 button 4"
+key_equals "key 46" "stick_0 button 5"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_p "key 19" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11" "stick_0 button 3"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/srally.map b/contrib/resources/mapperfiles/xbox/srally.map
new file mode 100644
index 000000000..48f05a445
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/srally.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 button 4"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0" "stick_0 axis 5 2"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1" "stick_0 axis 2 2"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/ssf2t.map b/contrib/resources/mapperfiles/xbox/ssf2t.map
new file mode 100644
index 000000000..a7d5ac487
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/ssf2t.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 button 2"
+key_y "key 28" "stick_0 button 3" "stick_0 button 8"
+key_u "key 24" "stick_0 button 4"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_s "key 22" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_d "key 7" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_f "key 9"
+key_g "key 10" "stick_0 button 0"
+key_h "key 11" "stick_0 button 1"
+key_j "key 13" "stick_0 button 5"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 button 6"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226" "stick_0 button 6"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72" "stick_0 button 9"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/stargunr.map b/contrib/resources/mapperfiles/xbox/stargunr.map
new file mode 100644
index 000000000..88bcea816
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/stargunr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 10"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 10"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/streetr.map b/contrib/resources/mapperfiles/xbox/streetr.map
new file mode 100644
index 000000000..6c5be9564
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/streetr.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 8" "stick_0 button 9"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 4" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21" "stick_0 button 0"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_a "key 4" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_s "key 22"
+key_d "key 7" "stick_0 button 2"
+key_f "key 9"
+key_g "key 10" "stick_0 button 1"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100" "stick_0 button 5"
+key_z "key 29"
+key_x "key 27" "stick_0 button 3"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/strife.map b/contrib/resources/mapperfiles/xbox/strife.map
new file mode 100644
index 000000000..d02aab5a6
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/strife.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 hat 0 4"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26" "stick_0 axis 2 2"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 hat 0 1"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 3"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 hat 0 8"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 hat 0 2"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/superc.map b/contrib/resources/mapperfiles/xbox/superc.map
new file mode 100644
index 000000000..c80cb89c5
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/superc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/swdf.map b/contrib/resources/mapperfiles/xbox/swdf.map
new file mode 100644
index 000000000..64f229a7d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/swdf.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 8"
+key_f2 "key 59" "stick_0 hat 0 2"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62" "stick_0 hat 0 8"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65" "stick_0 hat 0 4"
+key_f9 "key 66" "stick_0 button 3"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 9"
+key_q "key 20"
+key_w "key 26" "stick_0 button 2"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18" "stick_0 button 10"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57" "stick_0 hat 0 1"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7" "stick_0 button 10"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 axis 5 2"
+key_c "key 6" "stick_0 axis 2 2"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/swiv3d.map b/contrib/resources/mapperfiles/xbox/swiv3d.map
new file mode 100644
index 000000000..d87e41d05
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/swiv3d.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 3"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16" "stick_0 button 1"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75" "stick_0 axis 5 2"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78" "stick_0 axis 2 2"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/tbraider.map b/contrib/resources/mapperfiles/xbox/tbraider.map
new file mode 100644
index 000000000..e20351191
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/tbraider.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44" "stick_0 axis 2 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 button 4"
+key_end "key 77" "stick_0 button 3"
+key_pagedown "key 78" "stick_0 button 5"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98" "stick_0 axis 5 2"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/term2.map b/contrib/resources/mapperfiles/xbox/term2.map
new file mode 100644
index 000000000..8529a2a82
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/term2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_kp_5 "key 93"
+key_kp_6 "key 94" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_kp_1 "key 89"
+key_kp_2 "key 90" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/termfs.map b/contrib/resources/mapperfiles/xbox/termfs.map
new file mode 100644
index 000000000..e48171f9a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/termfs.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 3"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 1"
+key_s "key 22" "stick_0 axis 2 2"
+key_d "key 7" "stick_0 button 4"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51" "stick_0 hat 0 8"
+key_quote "key 52" "stick_0 hat 0 2"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 4"
+key_x "key 27"
+key_c "key 6" "stick_0 axis 5 2"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 2"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 5"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74" "stick_0 button 10"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 1"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 0"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/timec.map b/contrib/resources/mapperfiles/xbox/timec.map
new file mode 100644
index 000000000..bc1dfe8fa
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/timec.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 button 2"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4" "stick_0 button 5"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/timegate.map b/contrib/resources/mapperfiles/xbox/timegate.map
new file mode 100644
index 000000000..f6a76a00d
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/timegate.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 button 4"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/timewar.map b/contrib/resources/mapperfiles/xbox/timewar.map
new file mode 100644
index 000000000..91ff1a317
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/timewar.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24" "stick_0 button 0"
+key_i "key 12" "stick_0 button 1"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_s "key 22" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_d "key 7" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13" "stick_0 button 2"
+key_k "key 14" "stick_0 button 3"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 4 0"
+key_left "key 80" "stick_0 axis 3 0"
+key_down "key 81" "stick_0 axis 4 1"
+key_right "key 79" "stick_0 axis 3 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/tmnt.map b/contrib/resources/mapperfiles/xbox/tmnt.map
new file mode 100644
index 000000000..6f7c4e018
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/tmnt.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20" "stick_0 button 9"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 10"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 1" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 2"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228" "stick_0 button 9" "stick_0 axis 5 2" "stick_0 axis 2 2"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/tmntarc.map b/contrib/resources/mapperfiles/xbox/tmntarc.map
new file mode 100644
index 000000000..76565919e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/tmntarc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_s "key 22"
+key_d "key 7" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5" "stick_0 button 0"
+key_n "key 17"
+key_m "key 16" "stick_0 button 4"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/tmntman.map b/contrib/resources/mapperfiles/xbox/tmntman.map
new file mode 100644
index 000000000..4771f94ca
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/tmntman.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 2"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 0" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/trackatk.map b/contrib/resources/mapperfiles/xbox/trackatk.map
new file mode 100644
index 000000000..4db5c36cf
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/trackatk.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 button 4" "stick_0 button 5"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16" "stick_0 button 2"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/turric2.map b/contrib/resources/mapperfiles/xbox/turric2.map
new file mode 100644
index 000000000..4459112a7
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/turric2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 2" "stick_0 button 3"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 1"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/tvcd.map b/contrib/resources/mapperfiles/xbox/tvcd.map
new file mode 100644
index 000000000..33051ee91
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/tvcd.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42" "stick_0 button 3"
+key_tab "key 43" "stick_0 button 2"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 7"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 9"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 button 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 button 5"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74" "stick_0 axis 2 2"
+key_pageup "key 75" "stick_0 axis 5 2"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/tyrian.map b/contrib/resources/mapperfiles/xbox/tyrian.map
new file mode 100644
index 000000000..f43653bf1
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/tyrian.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 1"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 4"
+key_lalt "key 226" "stick_0 button 5"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wacky.map b/contrib/resources/mapperfiles/xbox/wacky.map
new file mode 100644
index 000000000..e910c62d9
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wacky.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 axis 5 2"
+key_space "key 44" "stick_0 button 1" "stick_0 button 4" "stick_0 button 5"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 axis 2 2"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/warriors.map b/contrib/resources/mapperfiles/xbox/warriors.map
new file mode 100644
index 000000000..32226dac6
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/warriors.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 9"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 0"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 1"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wcrew.map b/contrib/resources/mapperfiles/xbox/wcrew.map
new file mode 100644
index 000000000..c4951172a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wcrew.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7" "stick_0 button 3"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52" "stick_0 button 0"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 4"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56" "stick_0 button 1"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 2"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/whaven.map b/contrib/resources/mapperfiles/xbox/whaven.map
new file mode 100644
index 000000000..0644a0b8e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/whaven.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53" "stick_0 button 3"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7" "stick_0 hat 0 4"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22" "stick_0 hat 0 1"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 2"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 axis 4 1"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 axis 4 0"
+key_end "key 77" "stick_0 button 10"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/whaven2.map b/contrib/resources/mapperfiles/xbox/whaven2.map
new file mode 100644
index 000000000..0644a0b8e
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/whaven2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53" "stick_0 button 3"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47" "stick_0 hat 0 8"
+key_rbracket "key 48" "stick_0 hat 0 2"
+key_enter "key 40" "stick_0 button 7" "stick_0 hat 0 4"
+key_capslock "key 57"
+key_a "key 4" "stick_0 axis 5 2"
+key_s "key 22" "stick_0 hat 0 1"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225" "stick_0 button 2"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54" "stick_0 button 4"
+key_period "key 55" "stick_0 button 5"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73" "stick_0 axis 4 1"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76" "stick_0 axis 4 0"
+key_end "key 77" "stick_0 button 10"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wilds.map b/contrib/resources/mapperfiles/xbox/wilds.map
new file mode 100644
index 000000000..4a738ab9a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wilds.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1"
+key_left "key 80" "stick_0 hat 0 8"
+key_down "key 81" "stick_0 hat 0 4"
+key_right "key 79" "stick_0 hat 0 2"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96" "stick_0 axis 1 0" "stick_0 hat 0 1"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92" "stick_0 axis 0 0" "stick_0 hat 0 8"
+key_kp_5 "key 93"
+key_kp_6 "key 94" "stick_0 axis 0 1" "stick_0 hat 0 2"
+key_kp_1 "key 89"
+key_kp_2 "key 90" "stick_0 axis 1 1" "stick_0 hat 0 4"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wipeout.map b/contrib/resources/mapperfiles/xbox/wipeout.map
new file mode 100644
index 000000000..7f8eba567
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wipeout.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43" "stick_0 button 5"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 4"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 axis 2 2"
+key_x "key 27" "stick_0 axis 5 2"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 1"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wolf3d.map b/contrib/resources/mapperfiles/xbox/wolf3d.map
new file mode 100644
index 000000000..04c0b8377
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wolf3d.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30" "stick_0 hat 0 1"
+key_2 "key 31" "stick_0 hat 0 8"
+key_3 "key 32" "stick_0 hat 0 4"
+key_4 "key 33" "stick_0 hat 0 2"
+key_5 "key 34" "stick_0 axis 4 0"
+key_6 "key 35" "stick_0 axis 3 0"
+key_7 "key 36" "stick_0 axis 4 1"
+key_8 "key 37" "stick_0 axis 3 1"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 9"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229" "stick_0 button 5"
+key_lctrl "key 224" "stick_0 button 0"
+key_lalt "key 226" "stick_0 button 4"
+key_space "key 44" "stick_0 button 1"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wrallyf.map b/contrib/resources/mapperfiles/xbox/wrallyf.map
new file mode 100644
index 000000000..2149bb026
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wrallyf.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0" "stick_0 button 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1" "stick_0 button 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wwfarc.map b/contrib/resources/mapperfiles/xbox/wwfarc.map
new file mode 100644
index 000000000..e632ee94c
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wwfarc.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60" "stick_0 axis 2 2" "stick_0 axis 5 2"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8" "stick_0 button 10"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10" "stick_0 button 9"
+key_h "key 11" "stick_0 button 0"
+key_j "key 13" "stick_0 button 5"
+key_k "key 14" "stick_0 button 1"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 2"
+key_m "key 16" "stick_0 button 4"
+key_comma "key 54" "stick_0 button 3"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/wwfiyh.map b/contrib/resources/mapperfiles/xbox/wwfiyh.map
new file mode 100644
index 000000000..a30f748ff
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/wwfiyh.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 9"
+key_f2 "key 59"
+key_f3 "key 60" "stick_0 axis 2 2" "stick_0 axis 5 2"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28" "stick_0 button 8" "stick_0 button 10"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11" "stick_0 button 0"
+key_j "key 13" "stick_0 button 5"
+key_k "key 14" "stick_0 button 1"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_x "key 27" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_c "key 6" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17" "stick_0 button 2"
+key_m "key 16" "stick_0 button 4"
+key_comma "key 54" "stick_0 button 3"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82"
+key_left "key 80"
+key_down "key 81"
+key_right "key 79"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/xenon2.map b/contrib/resources/mapperfiles/xbox/xenon2.map
new file mode 100644
index 000000000..2f6c4e32a
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/xenon2.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23"
+key_y "key 28"
+key_u "key 24"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19" "stick_0 button 3"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4"
+key_s "key 22"
+key_d "key 7"
+key_f "key 9"
+key_g "key 10"
+key_h "key 11"
+key_j "key 13"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44" "stick_0 button 0"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/mapperfiles/xbox/xmcota.map b/contrib/resources/mapperfiles/xbox/xmcota.map
new file mode 100644
index 000000000..9a3b81ce8
--- /dev/null
+++ b/contrib/resources/mapperfiles/xbox/xmcota.map
@@ -0,0 +1,143 @@
+hand_shutdown "key 66 mod1" "stick_0 button 7 mod3"
+hand_fullscr "key 40 mod2"
+hand_restart "key 74 mod1 mod2"
+hand_pause "key 72 mod2"
+hand_mapper "key 58 mod1"
+hand_speedlock "key 69 mod2"
+hand_recwave "key 63 mod1"
+hand_caprawmidi "key 65 mod1 mod2"
+hand_decfskip "key 64 mod1"
+hand_incfskip "key 65 mod1"
+hand_cycledown "key 68 mod1"
+hand_cycleup "key 69 mod1"
+hand_caprawopl "key 64 mod1 mod2"
+hand_swapimg "key 61 mod1"
+key_esc "key 41" "stick_0 button 6"
+key_f1 "key 58" "stick_0 button 7"
+key_f2 "key 59"
+key_f3 "key 60"
+key_f4 "key 61"
+key_f5 "key 62"
+key_f6 "key 63"
+key_f7 "key 64"
+key_f8 "key 65"
+key_f9 "key 66"
+key_f10 "key 67" "stick_0 button 9"
+key_f11 "key 68"
+key_f12 "key 69"
+key_grave "key 53"
+key_1 "key 30"
+key_2 "key 31"
+key_3 "key 32"
+key_4 "key 33"
+key_5 "key 34"
+key_6 "key 35"
+key_7 "key 36"
+key_8 "key 37"
+key_9 "key 38"
+key_0 "key 39"
+key_minus "key 45"
+key_equals "key 46"
+key_bspace "key 42"
+key_tab "key 43"
+key_q "key 20"
+key_w "key 26" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_e "key 8"
+key_r "key 21"
+key_t "key 23" "stick_0 button 2"
+key_y "key 28" "stick_0 button 3" "stick_0 button 8" "stick_0 button 10"
+key_u "key 24" "stick_0 button 4"
+key_i "key 12"
+key_o "key 18"
+key_p "key 19"
+key_lbracket "key 47"
+key_rbracket "key 48"
+key_enter "key 40" "stick_0 button 7"
+key_capslock "key 57"
+key_a "key 4" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_s "key 22" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_d "key 7" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_f "key 9"
+key_g "key 10" "stick_0 button 0"
+key_h "key 11" "stick_0 button 1"
+key_j "key 13" "stick_0 button 5"
+key_k "key 14"
+key_l "key 15"
+key_semicolon "key 51"
+key_quote "key 52"
+key_backslash "key 49"
+key_lshift "key 225"
+key_lessthan "key 100"
+key_z "key 29"
+key_x "key 27"
+key_c "key 6"
+key_v "key 25"
+key_b "key 5"
+key_n "key 17"
+key_m "key 16"
+key_comma "key 54"
+key_period "key 55"
+key_slash "key 56"
+key_rshift "key 229"
+key_lctrl "key 224"
+key_lalt "key 226"
+key_space "key 44"
+key_ralt "key 230"
+key_rctrl "key 228"
+key_printscreen "key 70"
+key_scrolllock "key 71"
+key_pause "key 72"
+key_insert "key 73"
+key_home "key 74"
+key_pageup "key 75"
+key_delete "key 76"
+key_end "key 77"
+key_pagedown "key 78"
+key_up "key 82" "stick_0 hat 0 1" "stick_0 axis 1 0"
+key_left "key 80" "stick_0 hat 0 8" "stick_0 axis 0 0"
+key_down "key 81" "stick_0 hat 0 4" "stick_0 axis 1 1"
+key_right "key 79" "stick_0 hat 0 2" "stick_0 axis 0 1"
+key_numlock "key 83"
+key_kp_divide "key 84"
+key_kp_multiply "key 85"
+key_kp_minus "key 86"
+key_kp_7 "key 95"
+key_kp_8 "key 96"
+key_kp_9 "key 97"
+key_kp_plus "key 87"
+key_kp_4 "key 92"
+key_kp_5 "key 93"
+key_kp_6 "key 94"
+key_kp_1 "key 89"
+key_kp_2 "key 90"
+key_kp_3 "key 91"
+key_kp_enter "key 88"
+key_kp_0 "key 98"
+key_kp_period "key 99"
+jaxis_0_1- "stick_0 axis 1 0"
+jaxis_0_1+ "stick_0 axis 1 1"
+jaxis_0_0- "stick_0 axis 0 0"
+jaxis_0_0+ "stick_0 axis 0 1"
+jbutton_0_0 "stick_0 button 0"
+jbutton_0_1 "stick_0 button 1"
+jbutton_0_2 "stick_0 button 2"
+jbutton_0_3 "stick_0 button 3"
+jbutton_0_4 "stick_0 button 4"
+jbutton_0_5 "stick_0 button 5"
+jaxis_0_2- "stick_0 axis 2 0"
+jaxis_0_2+ "stick_0 axis 2 1"
+jaxis_0_3- "stick_0 axis 3 0"
+jaxis_0_3+ "stick_0 axis 3 1"
+jaxis_1_0-
+jaxis_1_0+
+jaxis_1_1-
+jaxis_1_1+
+jbutton_1_0
+jbutton_1_1
+jhat_0_0_0 "stick_0 hat 0 1"
+jhat_0_0_3 "stick_0 hat 0 8"
+jhat_0_0_2 "stick_0 hat 0 4"
+jhat_0_0_1 "stick_0 hat 0 2"
+mod_1 "key 224" "key 228"
+mod_2 "key 226" "key 230"
+mod_3 "stick_0 button 6"
diff --git a/contrib/resources/meson.build b/contrib/resources/meson.build
index 219491ce5..69f4af3aa 100644
--- a/contrib/resources/meson.build
+++ b/contrib/resources/meson.build
@@ -4,6 +4,7 @@ resources = [
'freedos-keyboard',
'glshaders',
'translations',
+ 'mapperfiles',
# insert new resource subdirectory names here
]