1+ /*
2+ * SPDX-License-Identifier: MIT
3+ * SPDX-FileCopyrightText: Copyright (c) 2024 OpenStickCommunity (gp2040-ce.info)
4+ */
5+
6+ #ifndef FLATBOX_REV5_CONFIG_H_
7+ #define FLATBOX_REV5_CONFIG_H_
8+
9+ #include "enums.pb.h"
10+ #include "class/hid/hid.h"
11+
12+ #define BOARD_CONFIG_LABEL "Flatbox Rev. 5 USB Passthrough"
13+
14+ // Main pin mapping Configuration
15+ // Mapping between Flatbox Rev4 switch number (as silkscreened) and GPIO pin listed under "Flatbox Rev4 SW#"
16+ // // Flatbox Rev5 SW# | GP2040 | Xinput | Switch | PS3/4/5 | Dinput | Arcade |
17+ #define GPIO_PIN_10 GpioAction::BUTTON_PRESS_UP // UP | UP | UP | UP | UP | UP |
18+ #define GPIO_PIN_12 GpioAction::BUTTON_PRESS_DOWN // DOWN | DOWN | DOWN | DOWN | DOWN | DOWN |
19+ #define GPIO_PIN_11 GpioAction::BUTTON_PRESS_RIGHT // RIGHT | RIGHT | RIGHT | RIGHT | RIGHT | RIGHT |
20+ #define GPIO_PIN_13 GpioAction::BUTTON_PRESS_LEFT // LEFT | LEFT | LEFT | LEFT | LEFT | LEFT |
21+ #define GPIO_PIN_09 GpioAction::BUTTON_PRESS_B1 // B1 | A | B | Cross | 2 | K1 |
22+ #define GPIO_PIN_07 GpioAction::BUTTON_PRESS_B2 // B2 | B | A | Circle | 3 | K2 |
23+ #define GPIO_PIN_05 GpioAction::BUTTON_PRESS_R2 // R2 | RT | ZR | R2 | 8 | K3 |
24+ #define GPIO_PIN_03 GpioAction::BUTTON_PRESS_L2 // L2 | LT | ZL | L2 | 7 | K4 |
25+ #define GPIO_PIN_08 GpioAction::BUTTON_PRESS_B3 // B3 | X | Y | Square | 1 | P1 |
26+ #define GPIO_PIN_06 GpioAction::BUTTON_PRESS_B4 // B4 | Y | X | Triangle | 4 | P2 |
27+ #define GPIO_PIN_04 GpioAction::BUTTON_PRESS_R1 // R1 | RB | R | R1 | 6 | P3 |
28+ #define GPIO_PIN_02 GpioAction::BUTTON_PRESS_L1 // L1 | LB | L | L1 | 5 | P4 |
29+ #define GPIO_PIN_15 GpioAction::BUTTON_PRESS_S1 // S1 | Back | Minus | Select | 9 | Coin |
30+ #define GPIO_PIN_14 GpioAction::BUTTON_PRESS_S2 // S2 | Start | Plus | Start | 10 | Start |
31+ #define GPIO_PIN_28 GpioAction::BUTTON_PRESS_L3 // L3 | LS | LS | L3 | 11 | LS |
32+ #define GPIO_PIN_29 GpioAction::BUTTON_PRESS_R3 // R3 | RS | RS | R3 | 12 | RS |
33+ #define GPIO_PIN_26 GpioAction::BUTTON_PRESS_A1 // A1 | Guide | Home | PS | 13 | ~ |
34+ #define GPIO_PIN_27 GpioAction::BUTTON_PRESS_A2 // A2 | ~ | Capture | ~ | 14 | ~ |
35+
36+ // Setting GPIO pins to assigned by add-on
37+ //
38+ #define GPIO_PIN_00 GpioAction::ASSIGNED_TO_ADDON
39+ #define GPIO_PIN_01 GpioAction::ASSIGNED_TO_ADDON
40+
41+ // Keyboard Mapping Configuration
42+ // // GP2040 | Xinput | Switch | PS3/4/5 | Dinput | Arcade |
43+ #define KEY_DPAD_UP HID_KEY_ARROW_UP // UP | UP | UP | UP | UP | UP |
44+ #define KEY_DPAD_DOWN HID_KEY_ARROW_DOWN // DOWN | DOWN | DOWN | DOWN | DOWN | DOWN |
45+ #define KEY_DPAD_RIGHT HID_KEY_ARROW_RIGHT // RIGHT | RIGHT | RIGHT | RIGHT | RIGHT | RIGHT |
46+ #define KEY_DPAD_LEFT HID_KEY_ARROW_LEFT // LEFT | LEFT | LEFT | LEFT | LEFT | LEFT |
47+ #define KEY_BUTTON_B1 HID_KEY_SHIFT_LEFT // B1 | A | B | Cross | 2 | K1 |
48+ #define KEY_BUTTON_B2 HID_KEY_Z // B2 | B | A | Circle | 3 | K2 |
49+ #define KEY_BUTTON_R2 HID_KEY_X // R2 | RT | ZR | R2 | 8 | K3 |
50+ #define KEY_BUTTON_L2 HID_KEY_V // L2 | LT | ZL | L2 | 7 | K4 |
51+ #define KEY_BUTTON_B3 HID_KEY_CONTROL_LEFT // B3 | X | Y | Square | 1 | P1 |
52+ #define KEY_BUTTON_B4 HID_KEY_ALT_LEFT // B4 | Y | X | Triangle | 4 | P2 |
53+ #define KEY_BUTTON_R1 HID_KEY_SPACE // R1 | RB | R | R1 | 6 | P3 |
54+ #define KEY_BUTTON_L1 HID_KEY_C // L1 | LB | L | L1 | 5 | P4 |
55+ #define KEY_BUTTON_S1 HID_KEY_5 // S1 | Back | Minus | Select | 9 | Coin |
56+ #define KEY_BUTTON_S2 HID_KEY_1 // S2 | Start | Plus | Start | 10 | Start |
57+ #define KEY_BUTTON_L3 HID_KEY_EQUAL // L3 | LS | LS | L3 | 11 | LS |
58+ #define KEY_BUTTON_R3 HID_KEY_MINUS // R3 | RS | RS | R3 | 12 | RS |
59+ #define KEY_BUTTON_A1 HID_KEY_9 // A1 | Guide | Home | PS | 13 | ~ |
60+ #define KEY_BUTTON_A2 HID_KEY_F2 // A2 | ~ | Capture | ~ | 14 | ~ |
61+ #define KEY_BUTTON_FN -1 // Hotkey Function |
62+
63+ #define USB_PERIPHERAL_ENABLED 1
64+ #define USB_PERIPHERAL_PIN_DPLUS 0
65+
66+ #define DEFAULT_INPUT_MODE INPUT_MODE_PS5
67+ #define DEFAULT_INPUT_MODE_R1 INPUT_MODE_XBONE
68+ #define DEFAULT_INPUT_MODE_B4 INPUT_MODE_PS5
69+ #define DEFAULT_PS5AUTHENTICATION_TYPE INPUT_MODE_AUTH_TYPE_USB
70+
71+ #endif
0 commit comments