 #include <usbhub.h>
 #include <Keyboard.h>
 #include <Mouse.h>
-
-#define LEN 8
-
-#define MODIFIER_CTRL_LEFT 0x1
-#define MODIFIER_SHIFT_LEFT 0x2
+#include <Joystick.h>
+
+#define OUTPUT_TO_SERIAL 0
+
+#define NUM_REPORT_KEYS 6
+
+#define MODIFIER_LEFT_CTRL 0x1
+#define MODIFIER_LEFT_SHIFT 0x2
+#define MODIFIER_LEFT_ALT 0x4
+#define MODIFIER_RIGHT_SHIFT 0x20
+#define MODIFIER_RIGHT_ALT 0x40
 
 #define KEY_CAPS_LOCK 0x39
 #define KEY_HENKAN 0x8A

#define KEY_B 0x5
#define KEY_N 0x11
#define KEY_M 0x10
#define KEY_COMMA 0x36
#define KEY_PERIOD 0x37
#define KEY_SLASH 0x38

    if (usbStatus == -1) {
        Serial.println("OSC did not start.");
    }
    Serial.println("Started");
#endif

    initKeyMappings();

    HidComposite.SetReportParser(0, &keyboardReportParser);
    HidComposite.SetReportParser(1, &mouseReportParser);
    HidKeyboard.SetReportParser(0, &keyboardReportParser);
    HidMouse.SetReportParser(0, &mouseReportParser);

    Joystick.setXAxisRange(STICK_UP, STICK_DOWN);
    Joystick.setYAxisRange(STICK_LEFT, STICK_RIGHT);

    Mouse.begin();
    Keyboard.begin();
    Joystick.begin();
}

void loop() {
