Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
some changes to the dummy driver for debug purposes that should be re…
Browse files Browse the repository at this point in the history
…verted.

most importantly, commenting out a check for an env. var.
  • Loading branch information
Darren Alton committed Jun 12, 2008
1 parent e1bfa2d commit 5e805ea
Show file tree
Hide file tree
Showing 14 changed files with 668 additions and 537 deletions.
3 changes: 1 addition & 2 deletions include/SDL_config_nintendods.h
Expand Up @@ -111,7 +111,6 @@ typedef unsigned __PTRDIFF_TYPE__ uintptr_t;
#define SDL_TIMERS_DISABLED 1

/* Enable various video drivers */
#define SDL_VIDEO_DRIVER_NDS 1
#define SDL_VIDEO_DRIVER_DUMMY 1

#endif /* _SDL_config_nintendods_h */

10 changes: 5 additions & 5 deletions include/SDL_stdinc.h
Expand Up @@ -147,9 +147,9 @@ SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
#ifndef __NINTENDODS__ /* TODO: figure out why the following happens:
include/SDL_stdinc.h:150: error: size of array 'SDL_dummy_uint64' is negative
include/SDL_stdinc.h:151: error: size of array 'SDL_dummy_sint64' is negative */
#ifndef __NINTENDODS__ /* TODO: figure out why the following happens:
include/SDL_stdinc.h:150: error: size of array 'SDL_dummy_uint64' is negative
include/SDL_stdinc.h:151: error: size of array 'SDL_dummy_sint64' is negative */
SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
#endif
Expand All @@ -166,7 +166,7 @@ SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
#endif

#ifndef DOXYGEN_SHOULD_IGNORE_THIS
#ifndef __NINTENDODS__ /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
#ifndef __NINTENDODS__ /* TODO: include/SDL_stdinc.h:174: error: size of array 'SDL_dummy_enum' is negative */
typedef enum
{
DUMMY_ENUM_VALUE
Expand Down Expand Up @@ -432,7 +432,7 @@ extern DECLSPEC size_t SDLCALL SDL_strlen(const char *string);
#define SDL_wcslen wcslen
#else
#if !defined(wchar_t) && defined(__NINTENDODS__)
#define wchar_t short /* TODO: figure out why libnds doesn't have this */
#define wchar_t short /* TODO: figure out why libnds doesn't have this */
#endif
extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t * string);
#endif
Expand Down
254 changes: 170 additions & 84 deletions src/joystick/nds/SDL_sysjoystick.c
Expand Up @@ -22,13 +22,13 @@

#ifdef SAVE_RCSID
static char rcsid =
"@(#) $Id: SDL_sysjoystick.c,v 1.2 2001/04/26 16:50:17 hercules Exp $";
"@(#) $Id: SDL_sysjoystick.c,v 1.2 2001/04/26 16:50:17 hercules Exp $";
#endif

/* This is the system specific header for the SDL joystick API */
#include <nds.h>
//#include <nds/registers_alt.h>
#include <stdio.h> /* For the definition of NULL */
#include <stdio.h> /* For the definition of NULL */

#include "SDL_error.h"
#include "SDL_joystick.h"
Expand All @@ -42,113 +42,199 @@ static char rcsid =
* joysticks. Joystick 0 should be the system default joystick.
* It should return 0, or -1 on an unrecoverable fatal error.
*/
int SDL_SYS_JoystickInit(void)
int
SDL_SYS_JoystickInit(void)
{
SDL_numjoysticks = 1;
//keysInit();

return(1);
SDL_numjoysticks = 1;

//keysInit();
return (1);
}

/* Function to get the device-dependent name of a joystick */
const char *SDL_SYS_JoystickName(int index)
const char *
SDL_SYS_JoystickName(int index)
{
if(!index)
return "NDS builtin joypad";
SDL_SetError("No joystick available with that index");
return (NULL);
if (!index)
return "NDS builtin joypad";
SDL_SetError("No joystick available with that index");
return (NULL);
}

/* Function to open a joystick for use.
The joystick to open is specified by the index field of the joystick.
This should fill the nbuttons and naxes fields of the joystick structure.
It returns 0, or -1 if there is an error.
*/
int SDL_SYS_JoystickOpen(SDL_Joystick *joystick)
int
SDL_SYS_JoystickOpen(SDL_Joystick * joystick)
{
joystick->nbuttons=8;
joystick->nhats=0;
joystick->nballs=0;
joystick->naxes=2;
return 0;
joystick->nbuttons = 8;
joystick->nhats = 0;
joystick->nballs = 0;
joystick->naxes = 2;
return 0;
}



/* Function to update the state of a joystick - called as a device poll.
* This function shouldn't update the joystick structure directly,
* but instead should call SDL_PrivateJoystick*() to deliver events
* and update joystick device state.
*/

int prevbutton=0;
int prevkey=0;

int dc=NULL;int ldc=0;
u32 keysd,keysu=NULL;
void SDL_SYS_JoystickUpdate(SDL_Joystick *joystick)
{
//dc=keysd;
//if (dc != NULL)
//{
//fprintf(stderr,"heartbeat= %d\n",REG_VCOUNT);
//swiWaitForVBlank();
//scanKeys();
//keysd = keysDown();
//keysu = keysUp();
//ldc=keysd;

//}
/*if (prevkey !=NULL && prevbutton !=NULL)
{
scanKeys();
}
*/

//scanKeys();
keysd = keysDown();
keysu = keysUp();


short ax=0,v=0,h=0;
if((keysd&KEY_UP)) {ax=1;v=-10;SDL_PrivateJoystickAxis(joystick,ax,v);prevkey=KEY_UP;}//fprintf(stderr,"KEY_UP\n");}
if((keysd&KEY_DOWN)) {ax=1;v=10;SDL_PrivateJoystickAxis(joystick,ax,v);prevkey=KEY_DOWN;}//fprintf(stderr,"KEY_DOWN\n");}
if((keysd&KEY_LEFT)) {ax=0;h=-10;SDL_PrivateJoystickAxis(joystick,ax,h);prevkey=KEY_LEFT;}//fprintf(stderr,"KEY_LEFT\n");}
if((keysd&KEY_RIGHT)) {ax=0;h=10;SDL_PrivateJoystickAxis(joystick,ax,h);prevkey=KEY_RIGHT;}//fprintf(stderr,"KEY_RIGHT\n");}

if((keysu&KEY_UP)) {ax=1;v=0;SDL_PrivateJoystickAxis(joystick,ax,v);prevkey=NULL;}//fprintf(stderr,"KEY_UP\n");}
if((keysu&KEY_DOWN)) {ax=1;v=0;SDL_PrivateJoystickAxis(joystick,ax,v);prevkey=NULL;}//fprintf(stderr,"KEY_DOWN\n");}
if((keysu&KEY_LEFT)) {ax=0;h=0;SDL_PrivateJoystickAxis(joystick,ax,h);prevkey=NULL;}//fprintf(stderr,"KEY_LEFT\n");}
if((keysu&KEY_RIGHT)) {ax=0;h=0;SDL_PrivateJoystickAxis(joystick,ax,h);prevkey=NULL;}//fprintf(stderr,"KEY_RIGHT\n");}

if((keysd&KEY_A)) {SDL_PrivateJoystickButton(joystick,0,SDL_PRESSED);prevbutton=KEY_A;}
if((keysd&KEY_B)) {SDL_PrivateJoystickButton(joystick,1,SDL_PRESSED);prevbutton=KEY_B;}
if((keysd&KEY_X)) {SDL_PrivateJoystickButton(joystick,2,SDL_PRESSED);prevbutton=KEY_X;}
if((keysd&KEY_Y)) {SDL_PrivateJoystickButton(joystick,3,SDL_PRESSED);prevbutton=KEY_Y;}
if((keysd&KEY_SELECT)) {SDL_PrivateJoystickButton(joystick,6,SDL_PRESSED);prevbutton=KEY_SELECT;}
if((keysd&KEY_START)) {SDL_PrivateJoystickButton(joystick,7,SDL_PRESSED);prevbutton=KEY_START;}
if((keysd&KEY_L)) {SDL_PrivateJoystickButton(joystick,4,SDL_PRESSED);prevbutton=KEY_L;}
if((keysd&KEY_R)) {SDL_PrivateJoystickButton(joystick,5,SDL_PRESSED);prevbutton=KEY_R;}

if((keysu&KEY_A)) {SDL_PrivateJoystickButton(joystick,0,SDL_RELEASED);prevbutton=NULL;}
if((keysu&KEY_B)) {SDL_PrivateJoystickButton(joystick,1,SDL_RELEASED);prevbutton=NULL;}
if((keysu&KEY_X)) {SDL_PrivateJoystickButton(joystick,2,SDL_RELEASED);prevbutton=NULL;}
if((keysu&KEY_Y)) {SDL_PrivateJoystickButton(joystick,3,SDL_RELEASED);prevbutton=NULL;}
if((keysu&KEY_SELECT)) {SDL_PrivateJoystickButton(joystick,6,SDL_RELEASED);prevbutton=NULL;}
if((keysu&KEY_START)) {SDL_PrivateJoystickButton(joystick,7,SDL_RELEASED);prevbutton=NULL;}
if((keysu&KEY_L)) {SDL_PrivateJoystickButton(joystick,4,SDL_RELEASED);prevbutton=NULL;}
if((keysu&KEY_R)) {SDL_PrivateJoystickButton(joystick,5,SDL_RELEASED);prevbutton=NULL;}



}
int prevbutton = 0;
int prevkey = 0;

int dc = NULL;
int ldc = 0;
u32 keysd, keysu = NULL;
void
SDL_SYS_JoystickUpdate(SDL_Joystick * joystick)
{

//dc=keysd;
//if (dc != NULL)
//{
//fprintf(stderr,"heartbeat= %d\n",REG_VCOUNT);
//swiWaitForVBlank();
//scanKeys();
//keysd = keysDown();
//keysu = keysUp();
//ldc=keysd;

//}
/*if (prevkey !=NULL && prevbutton !=NULL)
{
scanKeys();
}
*/

//scanKeys();
keysd = keysDown();
keysu = keysUp();
short ax = 0, v = 0, h = 0;
if ((keysd & KEY_UP)) {
ax = 1;
v = -10;
SDL_PrivateJoystickAxis(joystick, ax, v);
prevkey = KEY_UP;
} //fprintf(stderr,"KEY_UP\n");}
if ((keysd & KEY_DOWN)) {
ax = 1;
v = 10;
SDL_PrivateJoystickAxis(joystick, ax, v);
prevkey = KEY_DOWN;
} //fprintf(stderr,"KEY_DOWN\n");}
if ((keysd & KEY_LEFT)) {
ax = 0;
h = -10;
SDL_PrivateJoystickAxis(joystick, ax, h);
prevkey = KEY_LEFT;
} //fprintf(stderr,"KEY_LEFT\n");}
if ((keysd & KEY_RIGHT)) {
ax = 0;
h = 10;
SDL_PrivateJoystickAxis(joystick, ax, h);
prevkey = KEY_RIGHT;
} //fprintf(stderr,"KEY_RIGHT\n");}
if ((keysu & KEY_UP)) {
ax = 1;
v = 0;
SDL_PrivateJoystickAxis(joystick, ax, v);
prevkey = NULL;
} //fprintf(stderr,"KEY_UP\n");}
if ((keysu & KEY_DOWN)) {
ax = 1;
v = 0;
SDL_PrivateJoystickAxis(joystick, ax, v);
prevkey = NULL;
} //fprintf(stderr,"KEY_DOWN\n");}
if ((keysu & KEY_LEFT)) {
ax = 0;
h = 0;
SDL_PrivateJoystickAxis(joystick, ax, h);
prevkey = NULL;
} //fprintf(stderr,"KEY_LEFT\n");}
if ((keysu & KEY_RIGHT)) {
ax = 0;
h = 0;
SDL_PrivateJoystickAxis(joystick, ax, h);
prevkey = NULL;
} //fprintf(stderr,"KEY_RIGHT\n");}
if ((keysd & KEY_A)) {
SDL_PrivateJoystickButton(joystick, 0, SDL_PRESSED);
prevbutton = KEY_A;
}
if ((keysd & KEY_B)) {
SDL_PrivateJoystickButton(joystick, 1, SDL_PRESSED);
prevbutton = KEY_B;
}
if ((keysd & KEY_X)) {
SDL_PrivateJoystickButton(joystick, 2, SDL_PRESSED);
prevbutton = KEY_X;
}
if ((keysd & KEY_Y)) {
SDL_PrivateJoystickButton(joystick, 3, SDL_PRESSED);
prevbutton = KEY_Y;
}
if ((keysd & KEY_SELECT)) {
SDL_PrivateJoystickButton(joystick, 6, SDL_PRESSED);
prevbutton = KEY_SELECT;
}
if ((keysd & KEY_START)) {
SDL_PrivateJoystickButton(joystick, 7, SDL_PRESSED);
prevbutton = KEY_START;
}
if ((keysd & KEY_L)) {
SDL_PrivateJoystickButton(joystick, 4, SDL_PRESSED);
prevbutton = KEY_L;
}
if ((keysd & KEY_R)) {
SDL_PrivateJoystickButton(joystick, 5, SDL_PRESSED);
prevbutton = KEY_R;
}
if ((keysu & KEY_A)) {
SDL_PrivateJoystickButton(joystick, 0, SDL_RELEASED);
prevbutton = NULL;
}
if ((keysu & KEY_B)) {
SDL_PrivateJoystickButton(joystick, 1, SDL_RELEASED);
prevbutton = NULL;
}
if ((keysu & KEY_X)) {
SDL_PrivateJoystickButton(joystick, 2, SDL_RELEASED);
prevbutton = NULL;
}
if ((keysu & KEY_Y)) {
SDL_PrivateJoystickButton(joystick, 3, SDL_RELEASED);
prevbutton = NULL;
}
if ((keysu & KEY_SELECT)) {
SDL_PrivateJoystickButton(joystick, 6, SDL_RELEASED);
prevbutton = NULL;
}
if ((keysu & KEY_START)) {
SDL_PrivateJoystickButton(joystick, 7, SDL_RELEASED);
prevbutton = NULL;
}
if ((keysu & KEY_L)) {
SDL_PrivateJoystickButton(joystick, 4, SDL_RELEASED);
prevbutton = NULL;
}
if ((keysu & KEY_R)) {
SDL_PrivateJoystickButton(joystick, 5, SDL_RELEASED);
prevbutton = NULL;
}
}

/* Function to close a joystick after use */
void SDL_SYS_JoystickClose(SDL_Joystick *joystick)
void
SDL_SYS_JoystickClose(SDL_Joystick * joystick)
{
}

/* Function to perform any system-specific joystick related cleanup */
void SDL_SYS_JoystickQuit(void)
void
SDL_SYS_JoystickQuit(void)
{
}

Expand Down

0 comments on commit 5e805ea

Please sign in to comment.