-static void DoCheatSeq(void)
-{
- #if defined(DOS) || defined(SDL)
- if(inited&1)
- SilenceSound(1);
- #endif
- KillKeyboard();
- KillVideo();
-
- DoConsoleCheatConfig();
- InitVideo();
- InitKeyboard();
- #if defined(DOS) || defined(SDL)
- if(inited&1)
- SilenceSound(0);
- #endif
-}
-
-#include "keyscan.h"
-static char *keys;
-static int DIPS=0;
-#ifndef GP2X
-static uint8 keyonce[MK_COUNT];
-#define KEY(__a) keys[MK(__a)]
-#define keyonly(__a,__z) {if(KEY(__a)){if(!keyonce[MK(__a)]) {keyonce[MK(__a)]=1;__z}}else{keyonce[MK(__a)]=0;}}
-#endif
-
-static int JoySwap=0;
-static int cidisabled=0;
-static int KeyboardUpdate(void)
-{
-#ifndef GP2X
- if(!UpdateKeyboard())
- if(keys)
- return 0;
-
- keys=GetKeyboard();
-
- if(InputTypeFC==SIFC_FKB)
- {
- keyonly(SCROLLLOCK,cidisabled^=1;
- FCEUI_DispMessage("Family Keyboard %sabled.",cidisabled?"en":"dis");)
- #ifdef SDL
- SDL_WM_GrabInput(cidisabled?SDL_GRAB_ON:SDL_GRAB_OFF);
- #endif
- if(cidisabled) return(1);
- }
- #ifdef SVGALIB
- keyonly(F3,LockConsole();)
- keyonly(F4,UnlockConsole();)
- #elif SDL
- keyonly(F4,ToggleFS();)
- #endif
- NoWaiting&=~1;
- if(KEY(GRAVE))
- NoWaiting|=1;
-
- if(gametype==GIT_FDS)
- {
- keyonly(S,DriverInterface(DES_FDSSELECT,0);)
- keyonly(I,DriverInterface(DES_FDSINSERT,0);)
- keyonly(E,DriverInterface(DES_FDSEJECT,0);)
- }
-
- keyonly(F9,FCEUI_SaveSnapshot();)
- if(gametype!=GIT_NSF)
- {
- keyonly(F2,DoCheatSeq();)
- keyonly(F5,FCEUI_SaveState();)
- keyonly(F7,FCEUI_LoadState();)
- }
- else
- {
- keyonly(CURSORLEFT,DriverInterface(DES_NSFDEC,0);)
- keyonly(CURSORRIGHT,DriverInterface(DES_NSFINC,0);)
- if( KEY(ENTER)) DriverInterface(DES_NSFRES,0);
- if( KEY(CURSORUP)) DriverInterface(DES_NSFINC,0);
- if( KEY(CURSORDOWN)) DriverInterface(DES_NSFDEC,0);
- }
-
- keyonly(F10,DriverInterface(DES_RESET,0);)
- keyonly(F11,DriverInterface(DES_POWER,0);)
- if(KEY(F12) || KEY(ESCAPE)) FCEUI_CloseGame();
-
- if(gametype==GIT_VSUNI)
- {
- keyonly(C,DriverInterface(DES_VSUNICOIN,0);)
- keyonly(V,DIPS^=1;DriverInterface(DES_VSUNITOGGLEDIPVIEW,0);)
- if(!(DIPS&1)) goto DIPSless;
- keyonly(1,DriverInterface(DES_VSUNIDIPSET,(void *)1);)
- keyonly(2,DriverInterface(DES_VSUNIDIPSET,(void *)2);)
- keyonly(3,DriverInterface(DES_VSUNIDIPSET,(void *)3);)
- keyonly(4,DriverInterface(DES_VSUNIDIPSET,(void *)4);)
- keyonly(5,DriverInterface(DES_VSUNIDIPSET,(void *)5);)
- keyonly(6,DriverInterface(DES_VSUNIDIPSET,(void *)6);)
- keyonly(7,DriverInterface(DES_VSUNIDIPSET,(void *)7);)
- keyonly(8,DriverInterface(DES_VSUNIDIPSET,(void *)8);)
- }
- else
- {
- keyonly(H,DriverInterface(DES_NTSCSELHUE,0);)
- keyonly(T,DriverInterface(DES_NTSCSELTINT,0);)
- if(KEY(KP_MINUS) || KEY(MINUS)) DriverInterface(DES_NTSCDEC,0);
- if(KEY(KP_PLUS) || KEY(EQUAL)) DriverInterface(DES_NTSCINC,0);
-
- DIPSless:
- keyonly(0,FCEUI_SelectState(0);)
- keyonly(1,FCEUI_SelectState(1);)
- keyonly(2,FCEUI_SelectState(2);)
- keyonly(3,FCEUI_SelectState(3);)
- keyonly(4,FCEUI_SelectState(4);)
- keyonly(5,FCEUI_SelectState(5);)
- keyonly(6,FCEUI_SelectState(6);)
- keyonly(7,FCEUI_SelectState(7);)
- keyonly(8,FCEUI_SelectState(8);)
- keyonly(9,FCEUI_SelectState(9);)
- }
- return 1;
-#else
- return 1;
-#endif
-}
-
-static uint32 KeyboardDodo(void)
-{
-#ifndef GP2X
- uint32 JS=0;
-
- if(gametype!=GIT_NSF)
- {
- int x,y;
- x=y=0;
- keyonly(CAPSLOCK,
- {
- char tmp[64];
- JoySwap=(JoySwap+8)%32;
- sprintf(tmp,"Joystick %d selected.",(JoySwap>>3)+1);
- FCEUI_DispMessage(tmp);
- })
-
- if(KEY(LEFTALT) || KEY(X)) JS|=JOY_A<<JoySwap;
- if(KEY(LEFTCONTROL) || KEY(SPACE) || KEY(Z) ) JS |=JOY_B<<JoySwap;
- if(KEY(ENTER)) JS |= JOY_START<<JoySwap;
- if(KEY(TAB)) JS |= JOY_SELECT<<JoySwap;
- if(KEY(CURSORDOWN)) y|= JOY_DOWN;
- if(KEY(CURSORUP)) y|= JOY_UP;
- if(KEY(CURSORLEFT)) x|= JOY_LEFT;
- if(KEY(CURSORRIGHT)) x|= JOY_RIGHT;
- if(y!=(JOY_DOWN|JOY_UP)) JS|=y<<JoySwap;
- if(x!=(JOY_LEFT|JOY_RIGHT)) JS|=x<<JoySwap;
- }
- return JS;
-#else
- return 0;
-#endif
-}
-
-#ifndef GP2X
-static int powerpadsc[2][12]={
- {
- MK(O),MK(P),MK(BRACKET_LEFT),
- MK(BRACKET_RIGHT),MK(K),MK(L),MK(SEMICOLON),
- MK(APOSTROPHE),
- MK(M),MK(COMMA),MK(PERIOD),MK(SLASH)
- },
- {
- MK(O),MK(P),MK(BRACKET_LEFT),
- MK(BRACKET_RIGHT),MK(K),MK(L),MK(SEMICOLON),
- MK(APOSTROPHE),
- MK(M),MK(COMMA),MK(PERIOD),MK(SLASH)
- }
- };
-
-static uint32 powerpadbuf[2];
-#else