From 5f55fc1243809fa19895e4cb42e6b502cd1f80f7 Mon Sep 17 00:00:00 2001 From: Newsdee Date: Sun, 12 Nov 2017 18:36:20 +0800 Subject: [PATCH] Gamepad support: * Logitech F710 * Retrode (Genesis/SNES adapter) --- input.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/input.c b/input.c index d3467b1..9587892 100644 --- a/input.c +++ b/input.c @@ -2101,6 +2101,7 @@ int input_test(int getchar) // axis ranges vary per USB controller: some have 0-255, others -32768-32767 etc. int16_t mid_axis = 127; if (input[i].vid == 0x045e && input[i].pid == 0x028e) mid_axis = -1; // 8BitDo NES30 Retro Receiver + if (input[i].vid == 0x0403 && input[i].pid == 0x97c1) mid_axis = 0; // Retrode char l, r, u, d; l = r = u = d = 0; @@ -2114,6 +2115,7 @@ int input_test(int getchar) if(ev.code == 0 || ev.code == extra_axis || ev.code == 16) // x { + if ((ev.code < 16) ? ev.value < mid_axis - 64 : ev.value == -1) l = 1; if ((ev.code < 16) ? ev.value > mid_axis + 64 : ev.value == 1) r = 1; @@ -2140,6 +2142,9 @@ int input_test(int getchar) if (ev.code == base_y_axis || ev.code == 5 || ev.code == 17) // y { + // override specific to x axis + if (input[i].vid == 0x046d && input[i].pid == 0xc21f) mid_axis = -129; // Logitech F710 + if ((ev.code < 16) ? ev.value < mid_axis - 64 : ev.value == -1) u = 1; if ((ev.code < 16) ? ev.value > mid_axis + 64 : ev.value == 1) d = 1;