X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fjoystick.cpp;h=6ed1fa12194989594a9e234d44884e57d2e8c15b;hb=74e7dd93689112ab80538d98cc5fd9bfe7a08078;hp=07135cc6bc81dc7ea45ba31e5906bab444df4c2b;hpb=fa566a2c8ec532eb5325b4d5a663fb2a7d72adc6;p=virtualjaguar diff --git a/src/joystick.cpp b/src/joystick.cpp index 07135cc..6ed1fa1 100644 --- a/src/joystick.cpp +++ b/src/joystick.cpp @@ -12,7 +12,7 @@ //#endif #include #include -#include "SDLptc.h" +//#include "SDLptc.h" #include "jaguar.h" void main_screen_switch(void); @@ -34,7 +34,6 @@ void main_screen_switch(void); #define BUTTON_6 14 #define BUTTON_3 15 - #define BUTTON_A 16 #define BUTTON_B 17 #define BUTTON_C 18 @@ -45,6 +44,8 @@ static uint8 joystick_ram[4]; static uint8 joypad_0_buttons[21]; static uint8 joypad_1_buttons[21]; extern bool finished; +extern bool showGUI; +bool GUIKeyHeld = false; extern int start_logging; int gpu_start_log = 0; int op_start_log = 0; @@ -55,6 +56,38 @@ bool iLeft, iRight, iToggle = false; bool keyHeld1 = false, keyHeld2 = false, keyHeld3 = false; int objectPtr = 0; + +void main_screen_switch(void) +{ + extern SDL_Surface * mainSurface; + extern Uint32 mainSurfaceFlags; + extern bool fullscreen; + + fullscreen = !fullscreen; + mainSurfaceFlags &= ~SDL_FULLSCREEN; + if (fullscreen) + mainSurfaceFlags |= SDL_FULLSCREEN; + +//???Should we do this??? +// SDL_FreeSurface(mainSurface); + mainSurface = SDL_SetVideoMode(tom_width, tom_height, 16, mainSurfaceFlags); + + if (mainSurface == NULL) + { + WriteLog("Joystick: SDL is unable to set the video mode: %s\n", SDL_GetError()); + exit(1); + } + + SDL_WM_SetCaption("Virtual Jaguar", "Virtual Jaguar"); +/* if (fullscreen) + console.option("fullscreen output"); + else + console.option("windowed output");*/ + +// console.close(); +// console.open("Virtual Jaguar", tom_width, tom_height, format); +} + void joystick_init(void) { joystick_reset(); @@ -62,8 +95,10 @@ void joystick_init(void) void joystick_exec(void) { + extern SDL_Joystick * joystick; + extern bool useJoystick; uint8 * keystate = SDL_GetKeyState(NULL); - extern Console console; +// extern Console console; memset(joypad_0_buttons, 0, 21); memset(joypad_1_buttons, 0, 21); @@ -72,7 +107,7 @@ void joystick_exec(void) blit_start_log = 0; iLeft = iRight = false; - if ((keystate[SDLK_LALT]) & (keystate[SDLK_RETURN])) + if ((keystate[SDLK_LALT] || keystate[SDLK_RALT]) & keystate[SDLK_RETURN]) main_screen_switch(); /* Added/Changed by SDLEMU (http://sdlemu.ngemu.com) */ @@ -85,8 +120,18 @@ void joystick_exec(void) if (keystate[SDLK_z]) joypad_0_buttons[BUTTON_C] = 0x01; if (keystate[SDLK_x]) joypad_0_buttons[BUTTON_B] = 0x01; if (keystate[SDLK_c]) joypad_0_buttons[BUTTON_A] = 0x01; - if (keystate[SDLK_TAB]) joypad_0_buttons[BUTTON_OPTION] = 0x01; +//I may yet move these to O and P... + if (keystate[SDLK_QUOTE]) joypad_0_buttons[BUTTON_OPTION] = 0x01; if (keystate[SDLK_RETURN]) joypad_0_buttons[BUTTON_PAUSE] = 0x01; + + if (keystate[SDLK_TAB]) + { + if (!GUIKeyHeld) + showGUI = !showGUI, GUIKeyHeld = true; + } + else + GUIKeyHeld = false; + if (keystate[SDLK_q]) start_logging = 1; if (keystate[SDLK_w]) @@ -147,10 +192,13 @@ void joystick_exec(void) /* Added/Changed by SDLEMU (http://sdlemu.ngemu.com */ /* Joystick support */ - if (console.JoyEnabled() == 1) +// if (console.JoyEnabled() == 1) + if (useJoystick) { - int16 x = SDL_JoystickGetAxis(console.joystick, 0), - y = SDL_JoystickGetAxis(console.joystick, 1); +// int16 x = SDL_JoystickGetAxis(console.joystick, 0), +// y = SDL_JoystickGetAxis(console.joystick, 1); + int16 x = SDL_JoystickGetAxis(joystick, 0), + y = SDL_JoystickGetAxis(joystick, 1); if (x > 16384) joypad_0_buttons[BUTTON_R] = 0x01; @@ -161,11 +209,14 @@ void joystick_exec(void) if (y < -16384) joypad_0_buttons[BUTTON_U] = 0x01; - if (SDL_JoystickGetButton(console.joystick, 0) == SDL_PRESSED) +// if (SDL_JoystickGetButton(console.joystick, 0) == SDL_PRESSED) + if (SDL_JoystickGetButton(joystick, 0) == SDL_PRESSED) joypad_0_buttons[BUTTON_A] = 0x01; - if (SDL_JoystickGetButton(console.joystick, 1) == SDL_PRESSED) +// if (SDL_JoystickGetButton(console.joystick, 1) == SDL_PRESSED) + if (SDL_JoystickGetButton(joystick, 1) == SDL_PRESSED) joypad_0_buttons[BUTTON_B] = 0x01; - if (SDL_JoystickGetButton(console.joystick, 2) == SDL_PRESSED) +// if (SDL_JoystickGetButton(console.joystick, 2) == SDL_PRESSED) + if (SDL_JoystickGetButton(joystick, 2) == SDL_PRESSED) joypad_0_buttons[BUTTON_C] = 0x01; }