Пример #1
0
static int set_joystick_fire(int value, void *param)
{
    ULONG portstate;
    int port_idx = vice_ptr_to_int(param);
    int joy_dev = joystick_port_map[port_idx];

    joy_arch_init();

    if (joy_dev != JOYDEV_NONE) {
        if (joy_dev >= JOYDEV_JOY0 && joy_dev <= JOYDEV_JOY3) {
            portstate = ReadJoyPort(joy_dev - JOYDEV_JOY0);
            if ((portstate & JP_TYPE_MASK) != JP_TYPE_GAMECTLR) {
                if (value != JPF_BUTTON_RED) {
                    ui_error(translate_text(IDMES_DEVICE_NOT_GAMEPAD));
                    value = JPF_BUTTON_RED;
                }
            }
        } else {
            ui_error(translate_text(IDMES_NOT_MAPPED_TO_AMIGA_PORT));
            return -1;
        }
    } else {
        if (value != JPF_BUTTON_RED) {
            ui_error(translate_text(IDMES_NOT_MAPPED_TO_AMIGA_PORT));
            return -1;
        }
    }
    joystick_fire[port_idx] = value;

    return 0;
}
Пример #2
0
int joy_arch_set_device(int port_idx, int joy_dev)
{
    ULONG portstate;

    switch (joy_dev) {
        case JOYDEV_NONE:
        case JOYDEV_NUMPAD:
        case JOYDEV_KEYSET1:
        case JOYDEV_KEYSET2:
        case JOYDEV_JOY0:
        case JOYDEV_JOY1:
        case JOYDEV_JOY2:
        case JOYDEV_JOY3:
            break;
        default:
            return -1;
    }

    joy_arch_init();

    if (joy_dev >= JOYDEV_JOY0) {
        portstate = ReadJoyPort(joy_dev - JOYDEV_JOY0);
        if ((portstate & JP_TYPE_MASK) == JP_TYPE_JOYSTK) {
            joystick_fire[port_idx] = JPF_BUTTON_RED;
        }
    }

    return 0;
}
Пример #3
0
static int set_joystick_fire_4(int value, void *param)
{
    ULONG portstate;

    joy_arch_init();

    if (joystick_device[3] != JOYDEV_NONE) {
        if (joystick_device[3] >= JOYDEV_JOY0 && joystick_device[3] <= JOYDEV_JOY3) {
            portstate = ReadJoyPort(joystick_device[3] - JOYDEV_JOY0);
            if ((portstate & JP_TYPE_MASK) != JP_TYPE_GAMECTLR) {
                if (value != JPF_BUTTON_RED) {
                    ui_error(translate_text(IDMES_DEVICE_NOT_GAMEPAD));
                    value = JPF_BUTTON_RED;
                }
            }
        } else {
            ui_error(translate_text(IDMES_NOT_MAPPED_TO_AMIGA_PORT));
            return -1;
        }
    } else {
        if (value != JPF_BUTTON_RED) {
            ui_error(translate_text(IDMES_NOT_MAPPED_TO_AMIGA_PORT));
            return -1;
        }
    }
    joystick_fire[3] = value;

    return 0;
}
Пример #4
0
int joystick_init(void)
{
    joystick_alarm = alarm_new(maincpu_alarm_context, "Joystick",
                               joystick_latch_handler, NULL);

#ifdef COMMON_KBD
    kbd_initialize_numpad_joykeys(joykeys[0]);
#endif

    return joy_arch_init();
}
Пример #5
0
static int set_joystick_device_2(int val, void *param)
{
    ULONG portstate;

    joy_arch_init();

    if (val >= JOYDEV_JOY0 && val <= JOYDEV_JOY3) {
        portstate = ReadJoyPort(val - JOYDEV_JOY0);
        if ((portstate & JP_TYPE_MASK) == JP_TYPE_JOYSTK) {
            joystick_fire[1] = JPF_BUTTON_RED;
        }
    }
    joystick_device[1] = val;

    return 0;
}
Пример #6
0
static int set_joystick_device(int val, void *param)
{
    int nr = vice_ptr_to_int(param);

    switch (val) {
        case JOYDEV_NONE:
        case JOYDEV_NUMPAD:
        case JOYDEV_KEYSET1:
        case JOYDEV_KEYSET2:
            break;
        default:
            return -1;
    }
    joy_arch_init();

    joystick_device[nr] = val;

    return 0;
}