void PSPInputInitPads() { void *NESPads; int attrib = 0; FCEUI_DisableFourScore(1); NESPads = &NESButtons; FCEUI_SetInput(0, SI_GAMEPAD, NESPads, attrib); FCEUI_SetInput(1, SI_GAMEPAD, NESPads, attrib); }
// Set up controllers based on their type (zapper, gamepad, etc.) // For more info, see setInputFC, which sets the JSreturn variable void InitOtherInput(void) { void *InputDPtr; int t; int x; int attrib; for(t=0,x=0;x<2;x++) // For both controllers... { attrib=0; InputDPtr=0; switch(InputType[x]) // Switch on controller type { case SI_POWERPADA: case SI_POWERPADB:InputDPtr=&powerpadbuf[x];break; case SI_GAMEPAD: InputDPtr=&JSreturn; // JSreturn is a global that contains a map of keys and their pressed state // DEBUG -- YES, like we want, we hit this for both controllers break; case SI_ARKANOID:InputDPtr=MouseData;t|=1;break; case SI_ZAPPER:InputDPtr=MouseData; t|=1; attrib=1; break; } FCEUI_SetInput(x,InputType[x],InputDPtr,attrib); // Just updates pointers in Driver's input.c. Example call FCEUI_SetInput(0, SI_GAMEPAD, &JSreturn, 0); } attrib=0; InputDPtr=0; switch(InputType[2]) // Switch on game-specific settings { case SIFC_SHADOW:InputDPtr=MouseData;t|=1;attrib=1;break; case SIFC_OEKAKIDS:InputDPtr=MouseData;t|=1;attrib=1;break; case SIFC_ARKANOID:InputDPtr=MouseData;t|=1;break; case SIFC_FKB:InputDPtr=fkbkeys;break; case SIFC_HYPERSHOT:InputDPtr=&HyperShotData;break; case SIFC_MAHJONG:InputDPtr=&MahjongData;break; case SIFC_QUIZKING:InputDPtr=&QuizKingData;break; case SIFC_TOPRIDER:InputDPtr=&TopRiderData;break; case SIFC_BWORLD:InputDPtr=BWorldData;break; case SIFC_FTRAINERA: case SIFC_FTRAINERB:InputDPtr=&FTrainerData;break; } FCEUI_SetInputFC(InputType[2],InputDPtr,attrib); FCEUI_DisableFourScore(eoptions&EO_NOFOURSCORE); if(t) InitMouse(); }
void InitOtherInput(void) { void *InputDPtr; int t; int x; int attrib; for(t=0,x=0;x<2;x++) { attrib=0; InputDPtr=0; switch(InputType[x]) { case SI_POWERPADA: case SI_POWERPADB:InputDPtr=&powerpadbuf[x];break; case SI_GAMEPAD:InputDPtr=&JSreturn;break; case SI_ARKANOID:InputDPtr=MouseData;t|=1;break; case SI_ZAPPER:InputDPtr=MouseData; t|=1; attrib=1; break; } FCEUI_SetInput(x,InputType[x],InputDPtr,attrib); } attrib=0; InputDPtr=0; switch(InputType[2]) { case SIFC_SHADOW:InputDPtr=MouseData;t|=1;attrib=1;break; case SIFC_OEKAKIDS:InputDPtr=MouseData;t|=1;attrib=1;break; case SIFC_ARKANOID:InputDPtr=MouseData;t|=1;break; case SIFC_FKB:InputDPtr=fkbkeys;break; case SIFC_HYPERSHOT:InputDPtr=&HyperShotData;break; case SIFC_MAHJONG:InputDPtr=&MahjongData;break; case SIFC_QUIZKING:InputDPtr=&QuizKingData;break; case SIFC_TOPRIDER:InputDPtr=&TopRiderData;break; case SIFC_BWORLD:InputDPtr=BWorldData;break; case SIFC_FTRAINERA: case SIFC_FTRAINERB:InputDPtr=&FTrainerData;break; } FCEUI_SetInputFC(InputType[2],InputDPtr,attrib); FCEUI_DisableFourScore(eoptions&EO_NOFOURSCORE); if(t) InitMouse(); }
void ConfigPAD() { int menu = 0; int quit = 0; short j; int redraw = 1; int i; for ( i = 0; i < 6; i++ ) { mpads[i] = padmenu[i][15] == 'A' ? 0 : padmenu[i][15] == 'B' ? 1 : padmenu[i][15] == 'X' ? 2 : padmenu[i][15] == 'Y' ? 3 : padmenu[i][15] == 'S' ? 4 : padmenu[i][15] == 'Z' ? 5 : 0; } line = 0; scrollerx = 320 - MARGIN; while ( quit == 0 ) { if ( redraw ) DrawMenu(&padmenu[0], configpadcount, menu); redraw = 0; j = PAD_ButtonsDown(0); if ( j & PAD_BUTTON_DOWN ) { menu++; redraw = 1; } if ( j & PAD_BUTTON_UP ) { menu--; redraw = 1; } if ( j & PAD_BUTTON_A ) { redraw = 1; switch( menu ) { case 0: i = 0; break; case 1: i = 1; break; case 2: i = 2; break; case 3: i = 3; break; case 4: i = 4; break; case 5: i = 5; break; case 6: i = -1; FSDisable ^= 1; if ( FSDisable ) strcpy(padmenu[6], " FOUR SCORE - OFF"); else strcpy(padmenu[6], " FOUR SCORE - ON "); FCEUI_DisableFourScore(FSDisable); break; case 7: i = -1; PADCAL += 5; if ( PADCAL > 90 ) PADCAL = 40; sprintf(padmenu[7]," ANALOG CLIP - %d", PADCAL); break; case 8: i = -1; PADTUR += 1; if ( PADTUR > 10 ) PADTUR += 4; if ( PADTUR > 30 ) PADTUR = 2; sprintf(padmenu[8]," TURBO SPEED - %.2f pps", (float)60/PADTUR); break; case 9: quit=1; return; break; default: break; } if ( i >= 0 ) { mpads[i]++; if ( mpads[i] == 6 ) mpads[i] = 0; padmenu[i][15] = PADMap( mpads[i], i ); } } if ( j & PAD_BUTTON_B ) { quit=1; return; } if ( menu < 0 ) menu = configpadcount - 1; if ( menu == configpadcount ) menu = 0; scroller(SCROLLY, &text[0], 2); VIDEO_WaitVSync(); } return; }