joystick micro pro

Hi,

I built a joystick with 16 buttons and 4 axes
everything works in the windows control panel, buttons, axis x, axis y, throttle and rudder
in the game does not see axis (configuration does not associate).
can you help me?

#include <Keypad.h>
#include <Joystick.h>

#define ENABLE_PULLUPS

#define NUMBUTTONS 16
#define NUMROWS 4
#define NUMCOLS 4

int X1 = A0;
int Y1 = A1;
int rudder = A2;
int throttle = A3;

byte buttons[NUMROWS][NUMCOLS] = {
  {0, 1, 2, 3},
  {4, 5, 6, 7},
  {8, 9, 10, 11},
  {12, 13, 14, 15},
};

byte rowPins[NUMROWS] = {6, 7, 8, 9};
byte colPins[NUMCOLS] = {2, 3, 4, 5};

Keypad buttbx = Keypad( makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_GAMEPAD, 16, 0,
                   true, true, false, false, false, false, true, true, false, false, false);

void setup() {
  Joystick.begin();
  Joystick.setXAxisRange(-512, 512);
  Joystick.setYAxisRange(-512, 512);
  Joystick.setRudderRange(0, 1023);
  Joystick.setThrottleRange(0, 1023);
}

void JButtonStates() {
  Joystick.setXAxis(analogRead(X1) - 512);
  Joystick.setYAxis(analogRead(Y1) - 512);
  Joystick.setRudder(analogRead(rudder));
  Joystick.setThrottle(analogRead(throttle));
}

void loop() {
  JButtonStates();
  delay(50);
  CheckAllButtons();
}

void CheckAllButtons(void)
{
  if (buttbx.getKeys())
  {
    for (int i = 0; i < LIST_MAX; i++)
    {
      if ( buttbx.key[i].stateChanged )
      {
        switch (buttbx.key[i].kstate)
        {
          case PRESSED:
          case HOLD:
            Joystick.setButton(buttbx.key[i].kchar, 1);
            break;
          case RELEASED:
          case IDLE:
            Joystick.setButton(buttbx.key[i].kchar, 0);
            break;
        }
      }
    }
  }
}