/**************************************************************************** * SetControllers ***************************************************************************/ void SetControllers() { if(!romLoaded) return; InputDPR = &JSReturn; if(GCSettings.Controller == CTRL_PAD4) FCEUI_SetInputFourscore(1); else FCEUI_SetInputFourscore(0); // set defaults zapperdata[0]=NULL; zapperdata[1]=NULL; myzappers[0][0]=myzappers[1][0]=128; myzappers[0][1]=myzappers[1][1]=120; myzappers[0][2]=myzappers[1][2]=0; // Default ports back to gamepad FCEUI_SetInput(0, SI_GAMEPAD, InputDPR, 0); FCEUI_SetInput(1, SI_GAMEPAD, InputDPR, 0); if(GCSettings.Controller == CTRL_ZAPPER) { int p; if(GameInfo->type == GIT_VSUNI) p = 0; else p = 1; zapperdata[p] = FCEU_InitZapper(p); FCEUI_SetInput(p, SI_ZAPPER, myzappers[p], 1); } }
//Initializes the emulator with the current input port configuration void InitInputPorts(bool fourscore) { void *InputDPtr; int attrib; if(fourscore) { FCEUI_SetInput(0,SI_GAMEPAD,&JSreturn,0); FCEUI_SetInput(1,SI_GAMEPAD,&JSreturn,0); } else { for(int i=0;i<2;i++) { attrib=0; InputDPtr=0; switch(InputType[i]) { case SI_POWERPADA: case SI_POWERPADB: InputDPtr=&powerpadbuf[i]; break; case SI_GAMEPAD: InputDPtr=&JSreturn; break; case SI_ARKANOID: InputDPtr=MouseData; break; case SI_ZAPPER: InputDPtr=MouseData; break; case SI_MOUSE: InputDPtr=MouseData; break; case SI_SNES_MOUSE: InputDPtr=MouseData; break; case SI_SNES: InputDPtr=snespad_return; break; } FCEUI_SetInput(i,(ESI)InputType[i],InputDPtr,attrib); } } FCEUI_SetInputFourscore(fourscore); attrib=0; InputDPtr=0; switch(InputType[2]) { case SIFC_SHADOW: InputDPtr=MouseData; break; case SIFC_OEKAKIDS: InputDPtr=MouseData; break; case SIFC_ARKANOID: InputDPtr=MouseData; break; case SIFC_FKB: InputDPtr=fkbkeys; break; case SIFC_PEC586KB: case SIFC_SUBORKB: InputDPtr=suborkbkeys; 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((ESIFC)InputType[2],InputDPtr,attrib); }