};
extern u32 gp2x_fps_debug;
-
-u32 gpsp_gp2x_joystick_read(void)
-{
- u32 value = (gpsp_gp2x_memregs[0x1198 >> 1] & 0x00FF);
-
- if(value == 0xFD)
- value = 0xFA;
- if(value == 0xF7)
- value = 0xEB;
- if(value == 0xDF)
- value = 0xAF;
- if(value == 0x7F)
- value = 0xBE;
-
- return ~((gpsp_gp2x_memregs[0x1184 >> 1] & 0xFF00) | value |
- (gpsp_gp2x_memregs[0x1186 >> 1] << 16));
-}
+extern u32 gpsp_gp2x_joystick_read(void);
gui_action_type get_gui_input()
{
{
static u32 rapidfire_flag = 1;
static u32 last_buttons;
- u32 non_repeat_buttons;
+ u32 handled_buttons;
u32 button_id;
u32 new_key = 0;
u32 buttons = gpsp_gp2x_joystick_read();
buttons |= GP2X_VOL_MIDDLE;
}
- non_repeat_buttons = (last_buttons ^ buttons) & buttons;
+ /* for Wiz */
+ if((buttons & GP2X_VOL_DOWN) && (buttons & GP2X_SELECT))
+ {
+ buttons &= ~(GP2X_VOL_DOWN | GP2X_SELECT);
+ buttons |= GP2X_VOL_MIDDLE;
+ }
+
+ handled_buttons = ((last_buttons ^ buttons) | GP2X_VOL_DOWN | GP2X_VOL_UP) & buttons;
last_buttons = buttons;
for(i = 0; i < 16; i++)
{
- if(non_repeat_buttons & button_gp2x_mask_to_config[i])
+ if(handled_buttons & button_gp2x_mask_to_config[i])
button_id = gamepad_config_map[i];
else
button_id = BUTTON_ID_NONE;