void update_input(void) { int i; // RETRO B Y SLT STA UP DWN LEFT RGT A X L R L2 R2 L3 R3 // INDEX 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 static int vbt[16]={0x1C,0x39,0x01,0x3B,0x01,0x02,0x04,0x08,0x80,0x6D,0x15,0x31,0x24,0x1F,0x6E,0x6F}; static int oldi=-1; static int vkx=0,vky=0; MXjoy0=0; if(oldi!=-1) { retro_key_up(oldi); oldi=-1; } input_poll_cb(); Process_key(); if (key_state[RETROK_F11] || input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y)) { pauseg=1; //enter_gui(); //old } i=3;//show vkey toggle if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) { mbt[i]=0; SHOWKEY=-SHOWKEY; Screen_SetFullUpdate(); } i=2;//mouse/joy toggle if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) { mbt[i]=0; MOUSEMODE=-MOUSEMODE; } i=10;//num joy toggle if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) { mbt[i]=0; NUMJOY++;if(NUMJOY>1)NUMJOY=0; NUMjoy=-NUMjoy; } i=11;//mouse gui speed if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) { mbt[i]=0; PAS++;if(PAS>MAXPAS)PAS=1; } /* //FIXME i=9;//switch shift On/Off if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) { mbt[i]=0; SHIFTON=-SHIFTON; Screen_SetFullUpdate(); } */ i=12;//show/hide statut if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if (mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i)) { mbt[i]=0; STATUTON=-STATUTON; Screen_SetFullUpdate(); } i=13;//sonud on/off if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) { mbt[i]=0; SND=-SND; //Screen_SetFullUpdate(); } if(SHOWKEY==1) { static int vkflag[5]={0,0,0,0,0}; if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP) && vkflag[0]==0 ) vkflag[0]=1; else if (vkflag[0]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP) ) { vkflag[0]=0; vky -= 1; } if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN) && vkflag[1]==0 ) vkflag[1]=1; else if (vkflag[1]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN) ) { vkflag[1]=0; vky += 1; } if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT) && vkflag[2]==0 ) vkflag[2]=1; else if (vkflag[2]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT) ) { vkflag[2]=0; vkx -= 1; } if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT) && vkflag[3]==0 ) vkflag[3]=1; else if (vkflag[3]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT) ) { vkflag[3]=0; vkx += 1; } if(vkx < 0) vkx=9; if(vkx > 9) vkx=0; if(vky < 0) vky=4; if(vky > 4) vky=0; virtual_kdb(bmp,vkx,vky); i=8; if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && vkflag[4]==0) vkflag[4]=1; else if( !input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && vkflag[4]==1) { vkflag[4]=0; i=check_vkey2(vkx,vky); if(i==-2) { NPAGE=-NPAGE;oldi=-1; //Clear interface zone Screen_SetFullUpdate(); } else if(i==-1) oldi=-1; else if(i==-3) {//KDB bgcolor Screen_SetFullUpdate(); KCOL=-KCOL; oldi=-1; } else if(i==-4) {//VKbd show/hide oldi=-1; Screen_SetFullUpdate(); SHOWKEY=-SHOWKEY; } else if(i==-5) {//Change Joy number NUMjoy=-NUMjoy; oldi=-1; } else { if(i==0x60/*AK_LSH*/) { if(SHIFTON == 1) retro_key_up(i); else retro_key_down(i); SHIFTON=-SHIFTON; Screen_SetFullUpdate(); oldi=-1; } else { oldi=i; retro_key_down(i); } } } if(STATUTON==1) Print_Statut(); return; } static int mbL=0,mbR=0; int mouse_l; int mouse_r; int16_t mouse_x; int16_t mouse_y; if(MOUSEMODE==-1) { //Joy mode al[0] =(input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X)); al[1] =(input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y)); setjoybuttonstate (0,0,input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A)); setjoybuttonstate (0,1,input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B)); if(opt_analog) { setjoystickstate (0, 0, al[0], 32767); setjoystickstate (0, 1, al[1], 32767); } else { for(i=4;i<8/*9*/;i++) if( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) MXjoy0 |= vbt[i]; // Joy press retro_joy0(MXjoy0); } 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); fmousex=mouse_x; fmousey=mouse_y; } else { //Mouse mode fmousex=fmousey=0; //ANALOG RIGHT ar[0] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X)); ar[1] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y)); if(ar[0]<=-1024) fmousex-=(-ar[0])/1024; if(ar[0]>= 1024) fmousex+=( ar[0])/1024; if(ar[1]<=-1024) fmousey-=(-ar[1])/1024; if(ar[1]>= 1024) fmousey+=( ar[1])/1024; //PAD if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT)) fmousex += PAS; if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT)) fmousex -= PAS; if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN)) fmousey += PAS; if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP)) fmousey -= PAS; mouse_l=input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A); mouse_r=input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B); } if(mbL==0 && mouse_l) { mbL=1; retro_mouse_but0(1); } else if(mbL==1 && !mouse_l) { retro_mouse_but0(0); mbL=0; } if(mbR==0 && mouse_r) { mbR=1; retro_mouse_but1(1); } else if(mbR==1 && !mouse_r) { retro_mouse_but1(0); mbR=0; } retro_mouse(fmousex, fmousey); if(STATUTON==1) Print_Statut(); }
void update_input(void) { int i; // RETRO B Y SLT STA UP DWN LEFT RGT A X L R L2 R2 L3 R3 // INDEX 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 static int vbt[16]={0x20,0x39,0x01,0x3B,0x01,0x02,0x04,0x08,0x10,0x6D,0x15,0x31,0x24,0x1F,0x6E,0x6F}; static int oldi=-1; static int vkx=0,vky=0; MXjoy0=0; if(oldi!=-1){retro_key_up(oldi);oldi=-1;} input_poll_cb(); if (input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0, RETROK_F11) || input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_Y) ) pauseg=4; //fMSX menu //if (input_state_cb(0, RETRO_DEVICE_KEYBOARD, 0, RETROK_F10) ) // pauseg=1; // DBG LOADFILE i=10;//show vkey toggle if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; SHOWKEY=-SHOWKEY; Screen_SetFullUpdate(); } i=2;//SELECT if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; RVSYNC=!RVSYNC; } i=3;//START if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; MOUSEMODE=-MOUSEMODE; } /* i=0;//BTN B if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; } */ i=9;//BTN X if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; browsedsk1(); } i=12;//show/hide statut if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; STATUTON=-STATUTON; Screen_SetFullUpdate(); } i=13;//snd on/off if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; SND=-SND; } i=11;//reset if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) mbt[i]=1; else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ mbt[i]=0; retro_reset_msx(); } if(SHOWKEY==1){ static int vkflag[5]={0,0,0,0,0}; if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP) && vkflag[0]==0 ) vkflag[0]=1; else if (vkflag[0]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP) ){ vkflag[0]=0; vky -= 1; } if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN) && vkflag[1]==0 ) vkflag[1]=1; else if (vkflag[1]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN) ){ vkflag[1]=0; vky += 1; } if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT) && vkflag[2]==0 ) vkflag[2]=1; else if (vkflag[2]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT) ){ vkflag[2]=0; vkx -= 1; } if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT) && vkflag[3]==0 ) vkflag[3]=1; else if (vkflag[3]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT) ){ vkflag[3]=0; vkx += 1; } if(vkx<0)vkx=9; if(vkx>9)vkx=0; if(vky<0)vky=4; if(vky>4)vky=0; virtual_kdb(bmp,vkx,vky); i=8; if(input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && vkflag[4]==0) vkflag[4]=1; else if( !input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && vkflag[4]==1) { vkflag[4]=0; i=check_vkey2(vkx,vky); if(i==-2){ NPAGE=-NPAGE;oldi=-1; //Screen_SetFullUpdate(); } else if(i==-1)oldi=-1; else if(i==-3){//KDB bgcolor //Screen_SetFullUpdate(); KCOL=-KCOL; oldi=-1; } else if(i==-4){//VKbd show/hide oldi=-1; Screen_SetFullUpdate(); SHOWKEY=-SHOWKEY; } else if(i==-5){//Change Joy NUMjoy=-NUMjoy; oldi=-1; } else if(i==-6){//EXIT oldi=-1; retro_deinit(); exit(0); } else if(i==-7){//savestate //retro_savestate_msx("DEFAULT.STA"); oldi=-1; } else { if(i<200/*128*/){ oldi=i; retro_key_down(i); } else{ i=keyboard_translation[i]; if(i==0x05){ if(SHIFTON == 1)retro_key_up(i); else retro_key_down(i); SHIFTON=-SHIFTON; //Screen_SetFullUpdate(); oldi=-1; } else { oldi=i; retro_key_down(i); } } } } if(STATUTON==1)Print_Statut(); return ; } static int mbL=0,mbR=0; int mouse_l; int mouse_r; int16_t mouse_x; int16_t mouse_y; if(MOUSEMODE==-1){ //Joy mode for(i=4;i<9;i++)if( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) )MXjoy0 |= vbt[i]; // Joy press //btn 2 if( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, 0) )MXjoy0 |=0x20; retro_joy0(MXjoy0); 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); fmousex=mouse_x; fmousey=mouse_y; } else { //Mouse mode fmousex=fmousey=0; if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_RIGHT))fmousex += PAS; if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_LEFT))fmousex -= PAS; if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_DOWN))fmousey += PAS; if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_UP))fmousey -= PAS; mouse_l=input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_A); mouse_r=input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_B); } retro_mouse(fmousex, fmousey); if(mbL==0 && mouse_l){ mbL=1; retro_mouse_but0(1,tomx, tomy); } else if(mbL==1 && !mouse_l) { retro_mouse_but0(0,tomx, tomy); mbL=0; } if(mbR==0 && mouse_r){ mbR=1; retro_mouse_but1(1,tomx, tomy); } else if(mbR==1 && !mouse_r) { retro_mouse_but1(0,tomx, tomy); mbR=0; } if(STATUTON==1)Print_Statut(); return ; }