evilynux patch for joypad support

This commit is contained in:
damdoum 2007-01-08 12:57:32 +00:00
parent 7b37990d8f
commit 3afd618c0d
5 changed files with 47 additions and 4 deletions

View File

@ -3,7 +3,7 @@ desmume_glade_SOURCES = \
callbacks.c callbacks.h callbacks_IO.c callbacks_IO.h desmume.c desmume.h \ callbacks.c callbacks.h callbacks_IO.c callbacks_IO.h desmume.c desmume.h \
globals.h keyval_names.c main.c printscreen.c \ globals.h keyval_names.c main.c printscreen.c \
dTools/callbacks_1_ioregs.c dTools/callbacks_dtools.h \ dTools/callbacks_1_ioregs.c dTools/callbacks_dtools.h \
../sndsdl.h ../sndsdl.c ../sndsdl.h ../sndsdl.c joysdl.h joysdl.c
desmume_glade_LDADD = ../libdesmume.a $(SDL_LIBS) $(LIBGLADE_LIBS) desmume_glade_LDADD = ../libdesmume.a $(SDL_LIBS) $(LIBGLADE_LIBS)
desmume_glade_CFLAGS = $(SDL_CFLAGS) $(LIBGLADE_CFLAGS) desmume_glade_CFLAGS = $(SDL_CFLAGS) $(LIBGLADE_CFLAGS)
desmume_glade_LDFLAGS = -rdynamic desmume_glade_LDFLAGS = -rdynamic

View File

@ -66,6 +66,7 @@ BOOL desmume_running()
void desmume_cycle() void desmume_cycle()
{ {
process_joy_events();
desmume_last_cycle = NDS_exec((560190 << 1) - desmume_last_cycle, FALSE); desmume_last_cycle = NDS_exec((560190 << 1) - desmume_last_cycle, FALSE);
SPU_Emulate(); SPU_Emulate();
} }

View File

@ -24,6 +24,7 @@
#define DESMUME_KEY_BOOST 14 #define DESMUME_KEY_BOOST 14
#include "globals.h" #include "globals.h"
#include "joysdl.h"
extern void desmume_init(); extern void desmume_init();
extern void desmume_free(); extern void desmume_free();

View File

@ -24,6 +24,7 @@
uint Frameskip; uint Frameskip;
gint Keypad_Config[DESMUME_NB_KEYS]; gint Keypad_Config[DESMUME_NB_KEYS];
gint Keypad_Temp[DESMUME_NB_KEYS]; gint Keypad_Temp[DESMUME_NB_KEYS];
u16 Joypad_Config[DESMUME_NB_KEYS];
/* main.c */ /* main.c */
GtkWidget * pWindow; GtkWidget * pWindow;

View File

@ -21,6 +21,23 @@ NULL
gint Keypad_Config[DESMUME_NB_KEYS]; gint Keypad_Config[DESMUME_NB_KEYS];
const u16 Default_Joypad_Config[DESMUME_NB_KEYS] =
{ 1, // A
0, // B
5, // select
8, // start
20, // Right -- Start cheating abit...
21, // Left
22, // Up
23, // Down -- End of cheating.
7, // R
6, // L
3, // Y
4, // X
-1, // DEBUG
-1 // BOOST
};
const char *Ini_Keypad_Values[DESMUME_NB_KEYS] = const char *Ini_Keypad_Values[DESMUME_NB_KEYS] =
{ {
"KEY_A", "KEY_A",
@ -128,6 +145,8 @@ int WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgumen
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
const char *commandLine_File = NULL; const char *commandLine_File = NULL;
int nbJoysticks;
int i;
if(argc == 2) commandLine_File = argv[1]; if(argc == 2) commandLine_File = argv[1];
@ -136,13 +155,34 @@ int main(int argc, char *argv[]) {
#endif #endif
init_keyvals(); init_keyvals();
memcpy(Joypad_Config, Default_Joypad_Config, sizeof(Joypad_Config));
gtk_init(&argc, &argv); gtk_init(&argc, &argv);
SDL_Init(SDL_INIT_VIDEO); if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) == -1)
{
fprintf(stderr, "Error trying to initialize SDL: %s\n",
SDL_GetError());
return 1;
}
desmume_init(); desmume_init();
CONFIG_FILE = g_build_filename(g_get_home_dir(), ".desmume.ini", NULL); CONFIG_FILE = g_build_filename(g_get_home_dir(), ".desmume.ini", NULL);
Read_ConfigFile(); Read_ConfigFile();
/* Initialize joysticks */
nbJoysticks = SDL_NumJoysticks();
printf("Nbr of joysticks: %d\n\n", nbJoysticks);
for (i = 0; i < nbJoysticks; i++)
{
SDL_Joystick * joy = SDL_JoystickOpen(i);
printf("Joystick %s\n", i, SDL_JoystickName(i));
printf("Axes: %d\n", SDL_JoystickNumAxes(joy));
printf("Buttons: %d\n", SDL_JoystickNumButtons(joy));
printf("Trackballs: %d\n", SDL_JoystickNumBalls(joy));
printf("Hats: %d\n\n", SDL_JoystickNumHats(joy));
}
/* load the interface */ /* load the interface */
xml = glade_xml_new("glade/DeSmuMe.glade", NULL, NULL); xml = glade_xml_new("glade/DeSmuMe.glade", NULL, NULL);
xml_tools = glade_xml_new("glade/DeSmuMe_Dtools.glade", NULL, NULL); xml_tools = glade_xml_new("glade/DeSmuMe_Dtools.glade", NULL, NULL);