Exemplo n.º 1
0
int ui_event(void)
{
    static const unsigned map[] = {
        RETRO_DEVICE_ID_JOYPAD_UP,
        RETRO_DEVICE_ID_JOYPAD_DOWN,
        RETRO_DEVICE_ID_JOYPAD_LEFT,
        RETRO_DEVICE_ID_JOYPAD_RIGHT,
        RETRO_DEVICE_ID_JOYPAD_A,
        RETRO_DEVICE_ID_JOYPAD_B,
        RETRO_DEVICE_ID_JOYPAD_X,
        RETRO_DEVICE_ID_JOYPAD_Y,
        RETRO_DEVICE_ID_JOYPAD_L,
        RETRO_DEVICE_ID_JOYPAD_R
    };

    static const input_key keyb_layout[4][10] = {
        {
            INPUT_KEY_1, INPUT_KEY_2, INPUT_KEY_3, INPUT_KEY_4, INPUT_KEY_5,
            INPUT_KEY_6, INPUT_KEY_7, INPUT_KEY_8, INPUT_KEY_9, INPUT_KEY_0
        },
        {
            INPUT_KEY_q, INPUT_KEY_w, INPUT_KEY_e, INPUT_KEY_r, INPUT_KEY_t,
            INPUT_KEY_y, INPUT_KEY_u, INPUT_KEY_i, INPUT_KEY_o, INPUT_KEY_p
        },
        {
            INPUT_KEY_a, INPUT_KEY_s, INPUT_KEY_d, INPUT_KEY_f, INPUT_KEY_g,
            INPUT_KEY_h, INPUT_KEY_j, INPUT_KEY_k, INPUT_KEY_l, INPUT_KEY_Return
        },
        {
            INPUT_KEY_Shift_L, INPUT_KEY_z, INPUT_KEY_x, INPUT_KEY_c, INPUT_KEY_v,
            INPUT_KEY_b, INPUT_KEY_n, INPUT_KEY_m, INPUT_KEY_Shift_R, INPUT_KEY_space
        }
    };

    //log_cb( RETRO_LOG_DEBUG, "%s\n", __FUNCTION__ );

    if (keyb_send != 0 && perf_cb.get_time_usec() >= keyb_send)
    {
        keyb_event.type = INPUT_EVENT_KEYRELEASE;
        input_event(&keyb_event);
        keyb_send = 0;
    }

    int16_t is_down = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT);

    if (is_down)
    {
        if (!select_pressed)
        {
            select_pressed = true;
            keyb_overlay = !keyb_overlay;
        }
    }
    else
    {
        select_pressed = false;
    }

    if (!keyb_overlay)
    {
        unsigned port, id;
        input_event_t fuse_event;

        for (port = 0; port < MAX_PADS; port++)
        {
            for (id = 0; id < sizeof(map) / sizeof(map[0]); id++)
            {
                unsigned device = input_devices[port] & RETRO_DEVICE_MASK;

                if (device == RETRO_DEVICE_JOYPAD)
                {
                    is_down = input_state_cb(port, RETRO_DEVICE_JOYPAD, 0, map[id]);

                    if (is_down)
                    {
                        if (!joypad_state[port][id])
                        {
                            joypad_state[port][id] = true;
                            input_key button = translate(map[id]);

                            if (button == INPUT_KEY_Return || button == INPUT_KEY_space)
                            {
                                fuse_event.type = INPUT_EVENT_KEYPRESS;
                                fuse_event.types.key.native_key = button;
                                fuse_event.types.key.spectrum_key = button;

                                input_event(&fuse_event);
                            }
                            else if (button != INPUT_KEY_NONE)
                            {
                                fuse_event.type = INPUT_EVENT_JOYSTICK_PRESS;
                                fuse_event.types.joystick.which = port;
                                fuse_event.types.joystick.button = button;

                                input_event(&fuse_event);
                            }
                        }
                    }
                    else
                    {
                        if (joypad_state[port][id])
                        {
                            joypad_state[port][id] = false;
                            input_key button = translate(map[id]);

                            if (button == INPUT_KEY_Return || button == INPUT_KEY_space)
                            {
                                fuse_event.type = INPUT_EVENT_KEYRELEASE;
                                fuse_event.types.key.native_key = button;
                                fuse_event.types.key.spectrum_key = button;

                                input_event(&fuse_event);
                            }
                            else if (button != INPUT_KEY_NONE)
                            {
                                fuse_event.type = INPUT_EVENT_JOYSTICK_RELEASE;
                                fuse_event.types.joystick.which = port;
                                fuse_event.types.joystick.button = button;

                                input_event(&fuse_event);
                            }
                        }
                    }
                }
            }
        }

        for (port = 0; port < MAX_PADS; port++)
        {
            for (id = 0; keysyms_map[id].ui; id++)
            {
                unsigned device = input_devices[port] & RETRO_DEVICE_MASK;

                if (device == RETRO_DEVICE_KEYBOARD)
                {
                    unsigned ui = keysyms_map[id].ui;
                    is_down = input_state_cb(port, RETRO_DEVICE_KEYBOARD, 0, ui);

                    if (is_down)
                    {
                        if (!keyb_state[ui])
                        {
                            keyb_state[ui] = true;

                            fuse_event.type = INPUT_EVENT_KEYPRESS;
                            fuse_event.types.key.native_key = keysyms_map[id].fuse;
                            fuse_event.types.key.spectrum_key = keysyms_map[id].fuse;

                            input_event(&fuse_event);
                        }
                    }
                    else
                    {
                        if (keyb_state[ui])
                        {
                            keyb_state[ui] = false;

                            fuse_event.type = INPUT_EVENT_KEYRELEASE;
                            fuse_event.types.key.native_key = keysyms_map[id].fuse;
                            fuse_event.types.key.spectrum_key = keysyms_map[id].fuse;

                            input_event(&fuse_event);
                        }
                    }
                }
            }
        }
    }
    else
    {
        unsigned port, id;

        for (port = 0; port < MAX_PADS; port++)
        {
            for (id = 0; id < sizeof(map) / sizeof(map[0]); id++)
            {
                unsigned device = input_devices[port] & RETRO_DEVICE_MASK;

                if (device == RETRO_DEVICE_JOYPAD)
                {
                    is_down = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, map[id]);

                    if (is_down)
                    {
                        if (!joypad_state[0][id])
                        {
                            joypad_state[0][id] = true;

                            switch (map[id])
                            {
                            case RETRO_DEVICE_ID_JOYPAD_UP:
                                keyb_y = (keyb_y - 1) & 3;
                                break;
                            case RETRO_DEVICE_ID_JOYPAD_DOWN:
                                keyb_y = (keyb_y + 1) & 3;
                                break;
                            case RETRO_DEVICE_ID_JOYPAD_LEFT:
                                keyb_x = keyb_x == 0 ? 9 : keyb_x - 1;
                                break;
                            case RETRO_DEVICE_ID_JOYPAD_RIGHT:
                                keyb_x = keyb_x == 9 ? 0 : keyb_x + 1;
                                break;
                            case RETRO_DEVICE_ID_JOYPAD_A:
                                if (keyb_send == 0)
                                {
                                    keyb_overlay = false;

                                    keyb_event.type = INPUT_EVENT_KEYPRESS;
                                    keyb_event.types.key.native_key = keyb_layout[keyb_y][keyb_x];
                                    keyb_event.types.key.spectrum_key = keyb_layout[keyb_y][keyb_x];
                                    input_event(&keyb_event);

                                    keyb_send = perf_cb.get_time_usec() + keyb_hold_time;
                                }
                                return 0;
                            }
                        }
                    }
                    else
                    {
                        if (joypad_state[0][id])
                        {
                            joypad_state[0][id] = false;
                        }
                    }
                }
            }
        }
    }

    return 0;
}
Exemplo n.º 2
0
void retro_poll_mame_input()
{
	//Mouse
#if 0
   static int mbL=0,mbR=0;
	int mouse_l;
	int mouse_r;
  	int16_t mouse_x;
   int16_t mouse_y;
#endif

	input_poll_cb();

#if 0

	mouse_x = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_X);
	mouse_y = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_Y);
	mouse_l = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_LEFT);
	mouse_r = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_RIGHT);

	if(mouse_enabled)
   {
		mouseLX=mouse_x*INPUT_RELATIVE_PER_PIXEL;;
		mouseLY=mouse_y*INPUT_RELATIVE_PER_PIXEL;;
	
		if(mbL==0 && mouse_l)
      {
			mbL=1;		
			mouseBUT[0]=0x80;
		}
		else if(mbL==1 && !mouse_l)
      {	
			mouseBUT[0]=0;
         mbL=0;
		}
	
		if(mbR==0 && mouse_r)
      {
			mbR=1;
			mouseBUT[1]=1;
		}
		else if(mbR==1 && !mouse_r)
      {
 			mouseBUT[1]=0;
         mbR=0;
		}
	}
#endif

	P1_state[KEY_TAB] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R2);
	P1_state[KEY_ENTER] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L2);

	P1_state[KEY_START] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START);
	P1_state[KEY_COIN] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT);
	P1_state[KEY_BUTTON_1] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_A);
	P1_state[KEY_BUTTON_2] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_B);
	P1_state[KEY_BUTTON_3] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_X);
	P1_state[KEY_BUTTON_4] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_Y);
	P1_state[KEY_BUTTON_5] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L);
	P1_state[KEY_BUTTON_6] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R);

	P1_state[KEY_JOYSTICK_U] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP);
	P1_state[KEY_JOYSTICK_D] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN);
	P1_state[KEY_JOYSTICK_L] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT);
	P1_state[KEY_JOYSTICK_R] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT);

	P2_state[KEY_TAB] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R2);
	P2_state[KEY_ENTER] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L2);
	P2_state[KEY_START] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START);
	P2_state[KEY_COIN] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT);
	P2_state[KEY_BUTTON_1] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_A);
	P2_state[KEY_BUTTON_2] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_B);
	P2_state[KEY_BUTTON_3] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_X);
	P2_state[KEY_BUTTON_4] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_Y);
	P2_state[KEY_BUTTON_5] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_L);
	P2_state[KEY_BUTTON_6] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_R);

	P2_state[KEY_JOYSTICK_U] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP);
	P2_state[KEY_JOYSTICK_D] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN);
	P2_state[KEY_JOYSTICK_L] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT);
	P2_state[KEY_JOYSTICK_R] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT);
}
Exemplo n.º 3
0
void retro_poll_mame_input()
{
	int i=0,j;

	input_poll_cb();

   if (mouse_enable)
   {
	//MOUSE
      	static int mbL=0,mbR=0;
      	int mouse_l;
      	int mouse_r;
      	int16_t mouse_x;
      	int16_t mouse_y;

      	mouse_x = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_X);
      	mouse_y = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_Y);
      	mouse_l = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_LEFT);
      	mouse_r = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_RIGHT);
      	mouseLX=mouse_x*INPUT_RELATIVE_PER_PIXEL;;
      	mouseLY=mouse_y*INPUT_RELATIVE_PER_PIXEL;;

      	if(mbL==0 && mouse_l)
      	{
      	   mbL=1;		
      	   mouseBUT[0]=0x80;
      	}
      	else if(mbL==1 && !mouse_l)
      	{	
      	   mouseBUT[0]=0;
      	   mbL=0;
      	}

      	if(mbR==0 && mouse_r)
      	{
      	   mbR=1;
      	   mouseBUT[1]=1;
      	}
      	else if(mbR==1 && !mouse_r)
      	{
      	   mouseBUT[1]=0;
      	   mbR=0;
      	}
   }

	//KBD
	//TODO: handle mods:SHIFT/CTRL/ALT/META/NUMLOCK/CAPSLOCK/SCROLLOCK
	i=0;
	do{
 		retrokbd_state[ktable[i].retro_key_name]=input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0,ktable[i].retro_key_name)?0x80:0;
 		if(retrokbd_state[ktable[i].retro_key_name] && retrokbd_state2[ktable[i].retro_key_name]==0){
			ui_ipt_pushchar=ktable[i].retro_key_name;
			retrokbd_state2[ktable[i].retro_key_name]=1;
 		}
		else if(!retrokbd_state[ktable[i].retro_key_name] && retrokbd_state2[ktable[i].retro_key_name]==1)
			retrokbd_state2[ktable[i].retro_key_name]=0;

 		i++;

	}while(ktable[i].retro_key_name!=-1);

	//JOY/PAD
	for(j=0;j<4;j++){

		for(i=0;i<MAX_BUTTONS;i++)
			joystate[j].button[i] = input_state_cb(j, RETRO_DEVICE_JOYPAD, 0,i)?0x80:0;

		joystate[j].a1[0] = 2*(input_state_cb(j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X));
	      	joystate[j].a1[1] = 2*(input_state_cb(j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y));
	      	joystate[j].a2[0] = 2*(input_state_cb(j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X));
	      	joystate[j].a2[1] = 2*(input_state_cb(j, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y));
	}

}
Exemplo n.º 4
0
void retro_poll_mame_input()
{
    input_poll_cb();

    if (mouse_enable)
    {
        static int mbL=0,mbR=0;
        int mouse_l;
        int mouse_r;
        int16_t mouse_x;
        int16_t mouse_y;

        mouse_x = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_X);
        mouse_y = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_Y);
        mouse_l = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_LEFT);
        mouse_r = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_RIGHT);
        mouseLX=mouse_x*INPUT_RELATIVE_PER_PIXEL;;
        mouseLY=mouse_y*INPUT_RELATIVE_PER_PIXEL;;

        if(mbL==0 && mouse_l)
        {
            mbL=1;
            mouseBUT[0]=0x80;
        }
        else if(mbL==1 && !mouse_l)
        {
            mouseBUT[0]=0;
            mbL=0;
        }

        if(mbR==0 && mouse_r)
        {
            mbR=1;
            mouseBUT[1]=1;
        }
        else if(mbR==1 && !mouse_r)
        {
            mouseBUT[1]=0;
            mbR=0;
        }
    }

    P1_state[KEY_TAB] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R2);
    P1_state[KEY_ENTER] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L2);

    P1_state[KEY_START] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START);
    P1_state[KEY_COIN] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT);
    P1_state[KEY_BUTTON_1] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_A);
    P1_state[KEY_BUTTON_2] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_B);
    P1_state[KEY_BUTTON_3] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_X);
    P1_state[KEY_BUTTON_4] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_Y);
    P1_state[KEY_BUTTON_5] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L);
    P1_state[KEY_BUTTON_6] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R);

    P1_state[KEY_JOYSTICK_U] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP);
    P1_state[KEY_JOYSTICK_D] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN);
    P1_state[KEY_JOYSTICK_L] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT);
    P1_state[KEY_JOYSTICK_R] = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT);

    P2_state[KEY_TAB] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_R2);
    P2_state[KEY_ENTER] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_L2);
    P2_state[KEY_START] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START);
    P2_state[KEY_COIN] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT);
    P2_state[KEY_BUTTON_1] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_A);
    P2_state[KEY_BUTTON_2] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_B);
    P2_state[KEY_BUTTON_3] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_X);
    P2_state[KEY_BUTTON_4] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_Y);
    P2_state[KEY_BUTTON_5] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_L);
    P2_state[KEY_BUTTON_6] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0,  RETRO_DEVICE_ID_JOYPAD_R);

    P2_state[KEY_JOYSTICK_U] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP);
    P2_state[KEY_JOYSTICK_D] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN);
    P2_state[KEY_JOYSTICK_L] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT);
    P2_state[KEY_JOYSTICK_R] = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT);

    int i=0;
    do {
        retrokbd_state[ktable[i].retro_key_name]=input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0,ktable[i].retro_key_name);
        if(retrokbd_state[ktable[i].retro_key_name] && retrokbd_state2[ktable[i].retro_key_name]==0) {
            ui_ipt_pushchar=ktable[i].retro_key_name;
            retrokbd_state2[ktable[i].retro_key_name]=1;
        }
        else if(!retrokbd_state[ktable[i].retro_key_name] && retrokbd_state2[ktable[i].retro_key_name]==1)
            retrokbd_state2[ktable[i].retro_key_name]=0;

        i++;

    } while(ktable[i].retro_key_name!=-1);

}
Exemplo n.º 5
0
void retro_run(void)
{
   input_poll_cb();

   ks1.up     = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP);
   ks1.right  = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT);
   ks1.down   = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN);
   ks1.left   = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT);
   ks1.start  = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START);
   ks1.select = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT);
   ks1.a      = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A);
   ks1.b      = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B);
   ks1.x      = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X);
   ks1.y      = input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y);

   ks2.up     = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP);
   ks2.right  = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT);
   ks2.down   = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN);
   ks2.left   = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT);
   ks2.start  = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_START);
   ks2.select = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_SELECT);
   ks2.a      = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A);
   ks2.b      = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B);
   ks2.x      = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_X);
   ks2.y      = input_state_cb(1, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y);

   render_game();
}