diff --git a/desmume/src/gtk-glade/desmume.cpp b/desmume/src/gtk-glade/desmume.cpp index ddcc47ba0..4707c79af 100755 --- a/desmume/src/gtk-glade/desmume.cpp +++ b/desmume/src/gtk-glade/desmume.cpp @@ -63,7 +63,7 @@ void desmume_free() int desmume_open(const char *filename) { int i; - noticed_3D=attempted_3D_op=FALSE; + noticed_3D=FALSE; clear_savestates(); i = NDS_LoadROM(filename, savetype, savesize, NULL); return i; @@ -91,7 +91,7 @@ void desmume_resume() void desmume_reset() { - noticed_3D=attempted_3D_op=FALSE; + noticed_3D=FALSE; NDS_Reset(); desmume_resume(); } @@ -130,7 +130,7 @@ static void Draw() gboolean EmuLoop(gpointer data) { int i; - if (!noticed_3D && attempted_3D_op) { + if (!noticed_3D) { GtkWidget * dlg = glade_xml_get_widget(xml, "w3Dop"); gtk_widget_show(dlg); noticed_3D=TRUE; diff --git a/desmume/src/gtk-glade/globals.h b/desmume/src/gtk-glade/globals.h index 7a76374b2..06b657dd6 100755 --- a/desmume/src/gtk-glade/globals.h +++ b/desmume/src/gtk-glade/globals.h @@ -94,7 +94,6 @@ typedef union _callback_arg{ #include "../ctrlssdl.h" #include "../types.h" #include "../saves.h" -#include "../gl_vertex.h" #include "../render3D.h" #include "desmume.h" #include "gdk_gl.h" diff --git a/desmume/src/gtk/gdk_3Demu.cpp b/desmume/src/gtk/gdk_3Demu.cpp index 294513440..955a7cac8 100644 --- a/desmume/src/gtk/gdk_3Demu.cpp +++ b/desmume/src/gtk/gdk_3Demu.cpp @@ -188,7 +188,7 @@ init_opengl_gdk_3Demu( void) { return 0; } - + oglrender_init = _oglrender_init; oglrender_beginOpenGL = _oglrender_beginOpenGL; oglrender_endOpenGL = _oglrender_endOpenGL; diff --git a/desmume/src/gtk/main.cpp b/desmume/src/gtk/main.cpp index 040d336f3..62a3d7959 100644 --- a/desmume/src/gtk/main.cpp +++ b/desmume/src/gtk/main.cpp @@ -119,7 +119,8 @@ struct configured_features { }; static void -init_configured_features( struct configured_features *config) { +init_configured_features( struct configured_features *config) +{ config->arm9_gdb_port = 0; config->arm7_gdb_port = 0; @@ -142,7 +143,8 @@ init_configured_features( struct configured_features *config) { static int fill_configured_features( struct configured_features *config, - int argc, char ** argv) { + int argc, char ** argv) +{ int good_args = 1; int print_usage = 0; int i; @@ -180,75 +182,60 @@ fill_configured_features( struct configured_features *config, printf( "\n"); printf( " --help Display this message\n"); good_args = 0; - } - else if ( strcmp( argv[i], "--disable-sound") == 0) { + } else if ( strcmp( argv[i], "--disable-sound") == 0) { config->disable_sound = 1; - } #ifdef GTKGLEXT_AVAILABLE - else if ( strcmp( argv[i], "--opengl-2d") == 0) { + } else if ( strcmp( argv[i], "--opengl-2d") == 0) { config->screen.opengl = 1; - } - else if ( strcmp( argv[i], "--soft-convert") == 0) { + } else if ( strcmp( argv[i], "--soft-convert") == 0) { config->screen.soft_colour = 1; - } - else if ( strcmp( argv[i], "--disable-3d") == 0) { + } else if ( strcmp( argv[i], "--disable-3d") == 0) { config->disable_3d = 1; - } #endif - else if ( strcmp( argv[i], "--disable-limiter") == 0) { + } else if ( strcmp( argv[i], "--disable-limiter") == 0) { config->disable_limiter = 1; - } - else if ( strncmp( argv[i], "--fwlang=", 9) == 0) { + } else if ( strncmp( argv[i], "--fwlang=", 9) == 0) { char *end_char; int lang = strtoul( &argv[i][9], &end_char, 10); if ( lang >= 0 && lang <= 5) { config->firmware_language = lang; - } - else { + } else { fprintf( stderr, "Firmware language must be set to a value from 0 to 5.\n"); good_args = 0; } - } - else if ( strncmp( argv[i], "--arm9gdb=", 10) == 0) { + } else if ( strncmp( argv[i], "--arm9gdb=", 10) == 0) { char *end_char; unsigned long port_num = strtoul( &argv[i][10], &end_char, 10); if ( port_num > 0 && port_num < 65536) { config->arm9_gdb_port = port_num; - } - else { + } else { fprintf( stderr, "ARM9 GDB stub port must be in the range 1 to 65535\n"); good_args = 0; } - } - else if ( strncmp( argv[i], "--arm7gdb=", 10) == 0) { + } else if ( strncmp( argv[i], "--arm7gdb=", 10) == 0) { char *end_char; unsigned long port_num = strtoul( &argv[i][10], &end_char, 10); if ( port_num > 0 && port_num < 65536) { config->arm7_gdb_port = port_num; - } - else { + } else { fprintf( stderr, "ARM7 GDB stub port must be in the range 1 to 65535\n"); good_args = 0; } - } - else if ( strncmp( argv[i], "--cflash=", 9) == 0) { + } else if ( strncmp( argv[i], "--cflash=", 9) == 0) { if ( config->cflash_disk_image_file == NULL) { config->cflash_disk_image_file = &argv[i][9]; - } - else { + } else { fprintf( stderr, "CFlash disk image file (\"%s\") already set\n", config->cflash_disk_image_file); good_args = 0; } - } - else { + } else { if ( config->nds_file == NULL) { config->nds_file = argv[i]; - } - else { + } else { fprintf( stderr, "NDS file (\"%s\") already set\n", config->nds_file); good_args = 0; } @@ -275,7 +262,8 @@ fill_configured_features( struct configured_features *config, */ void * createThread_gdb( void (*thread_function)( void *data), - void *thread_data) { + void *thread_data) +{ GThread *new_thread = g_thread_create( (GThreadFunc)thread_function, thread_data, TRUE, @@ -290,8 +278,6 @@ joinThread_gdb( void *thread_handle) { } - - u16 Keypad_Temp[NB_KEYS]; int Write_ConfigFile() @@ -299,17 +285,15 @@ int Write_ConfigFile() int i; GKeyFile * keyfile; gchar *contents; - + keyfile = g_key_file_new(); - - for(i = 0; i < NB_KEYS; i++) - { + + for(i = 0; i < NB_KEYS; i++) { g_key_file_set_integer(keyfile, "KEYS", key_names[i], keyboard_cfg[i]); g_key_file_set_integer(keyfile, "JOYKEYS", key_names[i], joypad_cfg[i]); } - -// if(FirmwareFile[0]) -// { + +// if(FirmwareFile[0]) { // ini_add_section(ini, "FIRMWARE"); // ini_add_value(ini, "FIRMWARE", "FILE", FirmwareFile); // } @@ -319,7 +303,7 @@ int Write_ConfigFile() g_free (contents); g_key_file_free(keyfile); - + return 0; } @@ -328,16 +312,15 @@ int Read_ConfigFile() int i, tmp; GKeyFile * keyfile = g_key_file_new(); GError * error = NULL; - + load_default_config(); - + g_key_file_load_from_file(keyfile, CONFIG_FILE, G_KEY_FILE_NONE, 0); const char *c; - + /* Load keyboard keys */ - for(i = 0; i < NB_KEYS; i++) - { + for(i = 0; i < NB_KEYS; i++) { tmp = g_key_file_get_integer(keyfile, "KEYS", key_names[i], &error); if (error != NULL) { g_error_free(error); @@ -346,10 +329,9 @@ int Read_ConfigFile() keyboard_cfg[i] = tmp; } } - + /* Load joystick keys */ - for(i = 0; i < NB_KEYS; i++) - { + for(i = 0; i < NB_KEYS; i++) { tmp = g_key_file_get_integer(keyfile, "JOYKEYS", key_names[i], &error); if (error != NULL) { g_error_free(error); @@ -360,7 +342,7 @@ int Read_ConfigFile() } g_key_file_free(keyfile); - + return 0; } @@ -401,7 +383,7 @@ gboolean EmuLoop(gpointer data); void About(GtkWidget* widget, gpointer data) { GdkPixbuf * pixbuf = gdk_pixbuf_new_from_xpm_data(DeSmuME_xpm); - + gtk_show_about_dialog(GTK_WINDOW(pWindow), "name", "DeSmuME", "version", VERSION, @@ -423,12 +405,11 @@ static int Open(const char *filename, const char *cflash_disk_image) static void Launch() { desmume_resume(); - - if(!regMainLoop) - { + + if(!regMainLoop) { g_idle_add_full(EMULOOP_PRIO, &EmuLoop, pWindow, NULL); regMainLoop = TRUE; } - + pStatusBar_Change("Running ..."); gtk_action_set_sensitive(gtk_action_group_get_action(action_group, "pause"), TRUE); @@ -456,7 +437,7 @@ static void *Open_Select(GtkWidget* widget, gpointer data) Pause(); pParent = GTK_WIDGET(data); - + pFilter_nds = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_nds, "*.nds"); #ifdef HAVE_LIBZ @@ -466,11 +447,11 @@ static void *Open_Select(GtkWidget* widget, gpointer data) gtk_file_filter_add_pattern(pFilter_nds, "*.nds.zip"); #endif gtk_file_filter_set_name(pFilter_nds, "Nds binary (.nds)"); - + pFilter_dsgba = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_dsgba, "*.ds.gba"); gtk_file_filter_set_name(pFilter_dsgba, "Nds binary with loader (.ds.gba)"); - + pFilter_any = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_any, "*"); gtk_file_filter_set_name(pFilter_any, "All files"); @@ -488,33 +469,31 @@ static void *Open_Select(GtkWidget* widget, gpointer data) gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_nds); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_dsgba); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_any); - + /* Affichage fenetre */ - switch(gtk_dialog_run(GTK_DIALOG(pFileSelection))) - { - case GTK_RESPONSE_OK: - /* Recuperation du chemin */ - sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection)); - if(Open((const char*)sChemin, bad_glob_cflash_disk_image_file) < 0) - { - GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), - GTK_DIALOG_MODAL, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - "Unable to load :\n%s", sChemin); - gtk_dialog_run(GTK_DIALOG(pDialog)); - gtk_widget_destroy(pDialog); - } else { - gtk_action_set_sensitive(gtk_action_group_get_action(action_group, "run"), TRUE); - gtk_action_set_sensitive(gtk_action_group_get_action(action_group, "reset"), TRUE); - } - - //Launch(NULL, pWindow); - - g_free(sChemin); - break; - default: - break; + switch(gtk_dialog_run(GTK_DIALOG(pFileSelection))) { + case GTK_RESPONSE_OK: + /* Recuperation du chemin */ + sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection)); + if(Open((const char*)sChemin, bad_glob_cflash_disk_image_file) < 0) { + GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), + GTK_DIALOG_MODAL, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "Unable to load :\n%s", sChemin); + gtk_dialog_run(GTK_DIALOG(pDialog)); + gtk_widget_destroy(pDialog); + } else { + gtk_action_set_sensitive(gtk_action_group_get_action(action_group, "run"), TRUE); + gtk_action_set_sensitive(gtk_action_group_get_action(action_group, "reset"), TRUE); + } + + //Launch(NULL, pWindow); + + g_free(sChemin); + break; + default: + break; } gtk_widget_destroy(pFileSelection); } @@ -527,7 +506,7 @@ static void Reset() { NDS_Reset(); desmume_resume(); - + pStatusBar_Change("Running ..."); } @@ -628,7 +607,8 @@ gtk_init_sub_gl_area(GtkWidget *widget, #ifdef GTKGLEXT_AVAILABLE static int -top_screen_expose_fn( GtkWidget *widget, GdkEventExpose *event, gpointer data) { +top_screen_expose_fn( GtkWidget *widget, GdkEventExpose *event, gpointer data) +{ GdkGLContext *glcontext = gtk_widget_get_gl_context (widget); GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget); int software_convert = *((int *)data); @@ -662,8 +642,7 @@ top_screen_expose_fn( GtkWidget *widget, GdkEventExpose *event, gpointer data) { GL_RGB, GL_UNSIGNED_BYTE, converted); - } - else { + } else { glTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 256, 384, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV, @@ -759,7 +738,8 @@ bottom_screen_expose_fn(GtkWidget *widget, GdkEventExpose *event, gpointer data) static gboolean common_configure_fn( GtkWidget *widget, - GdkEventConfigure *event ) { + GdkEventConfigure *event ) +{ if ( gtk_widget_is_gl_capable( widget) == FALSE) return TRUE; @@ -783,7 +763,7 @@ common_configure_fn( GtkWidget *widget, if ( comp_width > comp_height) { use_width = 0; } - + /* Protect against a divide by zero */ if ( event->height == 0 ) event->height = 1; @@ -819,8 +799,7 @@ common_configure_fn( GtkWidget *widget, top = 0.0; bottom = 192.0 * ((double)event->height / other_dimen); - } - else { + } else { top = 0.0; bottom = 192.0; @@ -870,12 +849,12 @@ int gtkFloatExposeEvent (GtkWidget *widget, GdkEventExpose *event, gpointer data { SDL_PixelFormat screenPixFormat; SDL_Surface *rawImage, *screenImage; - + rawImage = SDL_CreateRGBSurfaceFrom((void*)&GPU_screen, 256, 192*2, 16, 512, 0x001F, 0x03E0, 0x7C00, 0); if(rawImage == NULL) return 1; - + memcpy(&screenPixFormat, rawImage->format, sizeof(SDL_PixelFormat)); - + screenPixFormat.BitsPerPixel = 24; screenPixFormat.BytesPerPixel = 3; screenPixFormat.Rshift = 0; @@ -884,15 +863,15 @@ int gtkFloatExposeEvent (GtkWidget *widget, GdkEventExpose *event, gpointer data screenPixFormat.Rmask = 0x0000FF; screenPixFormat.Gmask = 0x00FF00; screenPixFormat.Bmask = 0xFF0000; - + screenImage = SDL_ConvertSurface(rawImage, &screenPixFormat, 0); - + gdk_draw_rgb_image (widget->window, widget->style->fg_gc[widget->state],0,0,screenImage->w, screenImage->h, GDK_RGB_DITHER_NONE,(guchar*)screenImage->pixels,screenImage->pitch); SDL_FreeSurface(screenImage); SDL_FreeSurface(rawImage); - + return 1; } @@ -908,15 +887,13 @@ static gboolean Stylus_Move(GtkWidget *w, GdkEventMotion *e, gpointer data) gint x,y; s32 EmuX, EmuY; const int *opengl = (const int *)data; - - - if(click) - { + + + if(click) { int scaled_x, scaled_y; if(e->is_hint) gdk_window_get_pointer(w->window, &x, &y, &state); - else - { + else { x= (gint)e->x; y= (gint)e->y; state=(GdkModifierType)e->state; @@ -924,14 +901,13 @@ static gboolean Stylus_Move(GtkWidget *w, GdkEventMotion *e, gpointer data) scaled_x = x * nds_screen_size_ratio; scaled_y = y * nds_screen_size_ratio; - + // fprintf(stderr,"X=%d, Y=%d, S&1=%d\n", x,y,state&GDK_BUTTON1_MASK); - + if ( !(*opengl)) { scaled_y -= 192; } - if(scaled_y >= 0 && (state & GDK_BUTTON1_MASK)) - { + if(scaled_y >= 0 && (state & GDK_BUTTON1_MASK)) { EmuX = scaled_x; EmuY = scaled_y; if(EmuX<0) EmuX = 0; else if(EmuX>255) EmuX = 255; @@ -939,7 +915,7 @@ static gboolean Stylus_Move(GtkWidget *w, GdkEventMotion *e, gpointer data) NDS_setTouchPos(EmuX, EmuY); } } - + return TRUE; } static gboolean Stylus_Press(GtkWidget *w, GdkEventButton *e, gpointer data) @@ -949,13 +925,11 @@ static gboolean Stylus_Press(GtkWidget *w, GdkEventButton *e, gpointer data) s32 EmuX, EmuY; const int *opengl = (const int *)data; - if(desmume_running()) - { - if(e->button == 1) - { + if(desmume_running()) { + if(e->button == 1) { int scaled_x, scaled_y; click = TRUE; - + gdk_window_get_pointer(w->window, &x, &y, &state); scaled_x = x * nds_screen_size_ratio; @@ -964,8 +938,7 @@ static gboolean Stylus_Press(GtkWidget *w, GdkEventButton *e, gpointer data) if ( !(*opengl)) { scaled_y -= 192; } - if(scaled_y >= 0 && (state & GDK_BUTTON1_MASK)) - { + if(scaled_y >= 0 && (state & GDK_BUTTON1_MASK)) { EmuX = scaled_x; EmuY = scaled_y; if(EmuX<0) EmuX = 0; else if(EmuX>255) EmuX = 255; @@ -974,7 +947,7 @@ static gboolean Stylus_Press(GtkWidget *w, GdkEventButton *e, gpointer data) } } } - + return TRUE; } static gboolean Stylus_Release(GtkWidget *w, GdkEventButton *e, gpointer data) @@ -1026,9 +999,9 @@ void Modify_Key(GtkWidget* widget, gpointer data) gint Key = GPOINTER_TO_INT(data); char Title[64]; char Key_Label[64]; - + GtkWidget *mkDialog; - + sprintf(Title, "Press \"%s\" key ...\n", key_names[Key]); mkDialog = gtk_dialog_new_with_buttons(Title, GTK_WINDOW(pWindow), @@ -1036,31 +1009,30 @@ void Modify_Key(GtkWidget* widget, gpointer data) GTK_STOCK_OK,GTK_RESPONSE_OK, GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, NULL); - + g_signal_connect(G_OBJECT(mkDialog), "key_press_event", G_CALLBACK(Modify_Key_Press), NULL); - + mkLabel = gtk_label_new(Title); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(mkDialog)->vbox), mkLabel,TRUE, FALSE, 0); - + gtk_widget_show_all(GTK_DIALOG(mkDialog)->vbox); - - switch(gtk_dialog_run(GTK_DIALOG(mkDialog))) - { - case GTK_RESPONSE_OK: - - Keypad_Temp[Key] = Modify_Key_Chosen; - sprintf(Key_Label, "%s (%d)", key_names[Key], Keypad_Temp[Key]); - gtk_button_set_label(GTK_BUTTON(widget), Key_Label); - - break; - case GTK_RESPONSE_CANCEL: - case GTK_RESPONSE_NONE: - Modify_Key_Chosen = 0; - break; + + switch(gtk_dialog_run(GTK_DIALOG(mkDialog))) { + case GTK_RESPONSE_OK: + + Keypad_Temp[Key] = Modify_Key_Chosen; + sprintf(Key_Label, "%s (%d)", key_names[Key], Keypad_Temp[Key]); + gtk_button_set_label(GTK_BUTTON(widget), Key_Label); + + break; + case GTK_RESPONSE_CANCEL: + case GTK_RESPONSE_NONE: + Modify_Key_Chosen = 0; + break; } - + gtk_widget_destroy(mkDialog); - + } void Edit_Controls(GtkWidget* widget, gpointer data) @@ -1069,34 +1041,31 @@ void Edit_Controls(GtkWidget* widget, gpointer data) int i; GtkWidget *ecDialog; GtkWidget *ecKey; - + memcpy(&Keypad_Temp, &keyboard_cfg, sizeof(keyboard_cfg)); - + ecDialog = gtk_dialog_new_with_buttons("Edit controls", - GTK_WINDOW(pWindow), - GTK_DIALOG_MODAL, - GTK_STOCK_OK,GTK_RESPONSE_OK, - GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, - NULL); - - - for(i = 0; i < NB_KEYS; i++) - { + GTK_WINDOW(pWindow), + GTK_DIALOG_MODAL, + GTK_STOCK_OK,GTK_RESPONSE_OK, + GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL, + NULL); + + for(i = 0; i < NB_KEYS; i++) { sprintf(Key_Label, "%s (%s)", key_names[i], gdk_keyval_name(Keypad_Temp[i])); ecKey = gtk_button_new_with_label(Key_Label); g_signal_connect(G_OBJECT(ecKey), "clicked", G_CALLBACK(Modify_Key), GINT_TO_POINTER(i)); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(ecDialog)->vbox), ecKey,TRUE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(ecDialog)->vbox), ecKey,TRUE, FALSE, 0); } gtk_widget_show_all(GTK_DIALOG(ecDialog)->vbox); - - switch (gtk_dialog_run(GTK_DIALOG(ecDialog))) - { - case GTK_RESPONSE_OK: - memcpy(&keyboard_cfg, &Keypad_Temp, sizeof(keyboard_cfg)); - case GTK_RESPONSE_CANCEL: - case GTK_RESPONSE_NONE: - break; + + switch (gtk_dialog_run(GTK_DIALOG(ecDialog))) { + case GTK_RESPONSE_OK: + memcpy(&keyboard_cfg, &Keypad_Temp, sizeof(keyboard_cfg)); + case GTK_RESPONSE_CANCEL: + case GTK_RESPONSE_NONE: + break; } gtk_widget_destroy(ecDialog); @@ -1109,12 +1078,12 @@ void Edit_Controls(GtkWidget* widget, gpointer data) void Modify_ScreenCoeff(GtkWidget* widget, gpointer data) { int Size = GPOINTER_TO_INT(data); - + gtk_drawing_area_size(GTK_DRAWING_AREA(pDrawingArea), 256 * Size, 384 * Size); gtk_widget_set_usize (pDrawingArea, 256 * Size, 384 * Size); - + ScreenCoeff_Size = Size; - + } /////////////////////////////// LAYER HIDING ///////////////////////////////// @@ -1123,39 +1092,31 @@ void Modify_Layer(GtkWidget* widget, gpointer data) { int i; gchar *Layer = (gchar*)data; - - if(!desmume_running()) - { + + if(!desmume_running()) { return; } - - if(memcmp(Layer, "Sub", 3) == 0) - { - if(memcmp(Layer, "Sub BG", 6) == 0) - { + + if(memcmp(Layer, "Sub", 3) == 0) { + if(memcmp(Layer, "Sub BG", 6) == 0) { i = atoi(Layer + strlen("Sub BG ")); if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)) == TRUE) { if(!SubScreen.gpu->dispBG[i]) GPU_addBack(SubScreen.gpu, i); } else { - if(SubScreen.gpu->dispBG[i]) GPU_remove(SubScreen.gpu, i); } - } - else - { + if(SubScreen.gpu->dispBG[i]) GPU_remove(SubScreen.gpu, i); + } + } else { /* TODO: Disable sprites */ } - } - else - { - if(memcmp(Layer, "Main BG", 7) == 0) - { + } else { + if(memcmp(Layer, "Main BG", 7) == 0) { i = atoi(Layer + strlen("Main BG ")); if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)) == TRUE) { if(!MainScreen.gpu->dispBG[i]) GPU_addBack(MainScreen.gpu, i); } else { - if(MainScreen.gpu->dispBG[i]) GPU_remove(MainScreen.gpu, i); } - } - else - { + if(MainScreen.gpu->dispBG[i]) GPU_remove(MainScreen.gpu, i); + } + } else { /* TODO: Disable sprites */ } } @@ -1201,7 +1162,8 @@ typedef struct }BmpFileHeader; -int WriteBMP(const char *filename,u16 *bmp){ +int WriteBMP(const char *filename,u16 *bmp) +{ BmpFileHeader fileheader; BmpImageHeader imageheader; fileheader.size = 14; @@ -1209,7 +1171,7 @@ int WriteBMP(const char *filename,u16 *bmp){ fileheader.r1 = 0; fileheader.r2=0; fileheader.data_offset = 14+40; - + imageheader.header_size = 40; imageheader.r1 = 1; imageheader.depth = 24; @@ -1221,7 +1183,7 @@ int WriteBMP(const char *filename,u16 *bmp){ imageheader.r6 = 0; imageheader.width = 256; imageheader.height = 192*2; - + FILE *fichier = fopen(filename,"wb"); //fwrite(&fileheader, 1, 14, fichier); @@ -1278,22 +1240,22 @@ int LoadFirmware(const char *filename) int i; u32 size; FILE *f; - + strncpy(FirmwareFile, filename, 256); - + f = fopen(filename, "rb"); if(!f) return -1; - + fseek(f, 0, SEEK_END); size = ftell(f); fseek(f, 0, SEEK_SET); - + if(size > MMU.spi7.fw.size) { fclose(f); return -1; } /* this must be a small file*/ - + i = fread(MMU.spi7.fw.data, size, 1, f); - + fclose(f); - + return i; } @@ -1306,17 +1268,17 @@ int SelectFirmwareFile_Load(GtkWidget *w, gpointer data) BOOL oldState = desmume_running(); Pause(); - + pParent = GTK_WIDGET(data); - + pFilter_nds = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_nds, "*.nds"); gtk_file_filter_set_name(pFilter_nds, "Nds binary (.nds)"); - + pFilter_bin = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_bin, "*.bin"); gtk_file_filter_set_name(pFilter_bin, "Binary file (.bin)"); - + pFilter_any = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_any, "*"); gtk_file_filter_set_name(pFilter_any, "All files"); @@ -1334,37 +1296,33 @@ int SelectFirmwareFile_Load(GtkWidget *w, gpointer data) gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_nds); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_bin); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_any); - - if(FirmwareFile[0]) gtk_file_chooser_select_uri(GTK_FILE_CHOOSER(pFileSelection), FirmwareFile); - - /* Affichage fenetre */ - switch(gtk_dialog_run(GTK_DIALOG(pFileSelection))) - { - case GTK_RESPONSE_OK: - /* Recuperation du chemin */ - sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection)); - if(LoadFirmware((const char*)sChemin) < 0) - { - GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Unable to load :\n%s", sChemin); - gtk_dialog_run(GTK_DIALOG(pDialog)); - gtk_widget_destroy(pDialog); - } - else - { - GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Selected firmware :\n%s", sChemin); - gtk_dialog_run(GTK_DIALOG(pDialog)); - gtk_widget_destroy(pDialog); - } - g_free(sChemin); - break; - default: - break; + if(FirmwareFile[0]) gtk_file_chooser_select_uri(GTK_FILE_CHOOSER(pFileSelection), FirmwareFile); + + /* Affichage fenetre */ + switch(gtk_dialog_run(GTK_DIALOG(pFileSelection))) { + case GTK_RESPONSE_OK: + /* Recuperation du chemin */ + sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection)); + if(LoadFirmware((const char*)sChemin) < 0) { + GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Unable to load :\n%s", sChemin); + gtk_dialog_run(GTK_DIALOG(pDialog)); + gtk_widget_destroy(pDialog); + } else { + GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Selected firmware :\n%s", sChemin); + gtk_dialog_run(GTK_DIALOG(pDialog)); + gtk_widget_destroy(pDialog); + } + + g_free(sChemin); + break; + default: + break; } gtk_widget_destroy(pFileSelection); - + if(oldState) Launch(); - + } int SelectFirmwareFile_Load(GtkWidget *w, gpointer data) @@ -1376,17 +1334,17 @@ int SelectFirmwareFile_Load(GtkWidget *w, gpointer data) BOOL oldState = desmume_running(); Pause(); - + pParent = GTK_WIDGET(data); - + pFilter_nds = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_nds, "*.nds"); gtk_file_filter_set_name(pFilter_nds, "Nds binary (.nds)"); - + pFilter_bin = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_bin, "*.bin"); gtk_file_filter_set_name(pFilter_bin, "Binary file (.bin)"); - + pFilter_any = gtk_file_filter_new(); gtk_file_filter_add_pattern(pFilter_any, "*"); gtk_file_filter_set_name(pFilter_any, "All files"); @@ -1404,37 +1362,33 @@ int SelectFirmwareFile_Load(GtkWidget *w, gpointer data) gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_nds); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_bin); gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(pFileSelection), pFilter_any); - - if(FirmwareFile[0]) gtk_file_chooser_select_uri(GTK_FILE_CHOOSER(pFileSelection), FirmwareFile); - - /* Affichage fenetre */ - switch(gtk_dialog_run(GTK_DIALOG(pFileSelection))) - { - case GTK_RESPONSE_OK: - /* Recuperation du chemin */ - sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection)); - if(LoadFirmware((const char*)sChemin) < 0) - { - GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Unable to load :\n%s", sChemin); - gtk_dialog_run(GTK_DIALOG(pDialog)); - gtk_widget_destroy(pDialog); - } - else - { - GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Selected firmware :\n%s", sChemin); - gtk_dialog_run(GTK_DIALOG(pDialog)); - gtk_widget_destroy(pDialog); - } - g_free(sChemin); - break; - default: - break; + if(FirmwareFile[0]) gtk_file_chooser_select_uri(GTK_FILE_CHOOSER(pFileSelection), FirmwareFile); + + /* Affichage fenetre */ + switch(gtk_dialog_run(GTK_DIALOG(pFileSelection))) { + case GTK_RESPONSE_OK: + /* Recuperation du chemin */ + sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection)); + if(LoadFirmware((const char*)sChemin) < 0) { + GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Unable to load :\n%s", sChemin); + gtk_dialog_run(GTK_DIALOG(pDialog)); + gtk_widget_destroy(pDialog); + } else { + GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Selected firmware :\n%s", sChemin); + gtk_dialog_run(GTK_DIALOG(pDialog)); + gtk_widget_destroy(pDialog); + } + + g_free(sChemin); + break; + default: + break; } gtk_widget_destroy(pFileSelection); - + if(oldState) Launch(); - + } #endif @@ -1460,9 +1414,9 @@ BOOL *dTools_running; void Start_dTool(GtkWidget *widget, gpointer data) { int tool = GPOINTER_TO_INT(data); - + if(dTools_running[tool]) return; - + dTools_list[tool]->open(tool); dTools_running[tool] = TRUE; } @@ -1477,8 +1431,7 @@ void dTool_CloseCallback(int tool) static inline void _updateDTools() { int i; - for(i = 0; i < dTools_list_size; i++) - { + for(i = 0; i < dTools_list_size; i++) { if(dTools_running[i]) { dTools_list[i]->update(); } } } @@ -1488,28 +1441,26 @@ Uint32 fps, fps_SecStart, fps_FrameCount; gboolean EmuLoop(gpointer data) { int i; - - if(desmume_running()) /* Si on est en train d'executer le programme ... */ - { + + if(desmume_running()) { /* Si on est en train d'executer le programme ... */ static int limiter_frame_counter = 0; fps_FrameCount += Frameskip + 1; if(!fps_SecStart) fps_SecStart = SDL_GetTicks(); - if(SDL_GetTicks() - fps_SecStart >= 1000) - { + if(SDL_GetTicks() - fps_SecStart >= 1000) { fps_SecStart = SDL_GetTicks(); fps = fps_FrameCount; fps_FrameCount = 0; - + char Title[32]; sprintf(Title, "Desmume - %dfps", fps); gtk_window_set_title(GTK_WINDOW(pWindow), Title); } - + desmume_cycle(); /* Emule ! */ for(i = 0; i < Frameskip; i++) desmume_cycle(); /* cycles supplémentaires pour le frameskip */ - + Draw(); - + _updateDTools(); gtk_widget_queue_draw( nds_screen_widget); @@ -1523,10 +1474,10 @@ gboolean EmuLoop(gpointer data) } } - + return TRUE; } - + regMainLoop = FALSE; return FALSE; } @@ -1541,7 +1492,8 @@ gboolean EmuLoop(gpointer data) * * @return The interval to the next call (required by SDL) */ -static Uint32 fps_limiter_fn(Uint32 interval, void *param) { +static Uint32 fps_limiter_fn(Uint32 interval, void *param) +{ SDL_sem *sdl_semaphore = (SDL_sem *)param; /* signal the semaphore if it is getting low */ @@ -1559,10 +1511,11 @@ static void dui_set_accel_group(gpointer action, gpointer group) { /////////////////////////////// MAIN /////////////////////////////// static int -common_gtk_main( struct configured_features *my_config) { +common_gtk_main( struct configured_features *my_config) +{ int i; SDL_TimerID limiter_timer; - + GtkWidget *pVBox; GtkWidget *pMenuBar; GtkWidget *pMenu, *pSubMenu; @@ -1625,8 +1578,7 @@ common_gtk_main( struct configured_features *my_config) { glconfig = gdk_gl_config_new_by_mode ((GdkGLConfigMode)(GDK_GL_MODE_RGB | GDK_GL_MODE_DEPTH | GDK_GL_MODE_DOUBLE)); - if (glconfig == NULL) - { + if (glconfig == NULL) { g_print ("*** Cannot find the double-buffered visual.\n"); g_print ("*** Trying single-buffered visual.\n"); @@ -1637,16 +1589,15 @@ common_gtk_main( struct configured_features *my_config) { g_print ("*** No appropriate OpenGL-capable visual found.\n"); exit (1); } - } + } #endif /* FIXME: SDL_INIT_VIDEO is needed for joystick support to work!? Perhaps it needs a "window" to catch events...? */ - if(SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO) == -1) - { + if(SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO) == -1) { fprintf(stderr, "Error trying to initialize SDL: %s\n", SDL_GetError()); return 1; - } + } desmume_init( arm9_memio, &arm9_ctrl_iface, arm7_memio, &arm7_ctrl_iface, my_config->disable_sound); @@ -1669,26 +1620,25 @@ common_gtk_main( struct configured_features *my_config) { /* Initialize joysticks */ if(!init_joy()) return 1; - + dTools_running = (BOOL*)malloc(sizeof(BOOL) * dTools_list_size); for(i=0; iscreen.opengl) { gtk_window_set_resizable(GTK_WINDOW (pWindow), TRUE); - } - else { + } else { gtk_window_set_resizable(GTK_WINDOW (pWindow), FALSE); } gtk_window_set_icon(GTK_WINDOW (pWindow), gdk_pixbuf_new_from_xpm_data(DeSmuME_xpm)); - + g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(pWindow), "key_press_event", G_CALLBACK(Key_Press), NULL); g_signal_connect(G_OBJECT(pWindow), "key_release_event", G_CALLBACK(Key_Release), NULL); @@ -1713,7 +1663,7 @@ common_gtk_main( struct configured_features *my_config) { /**** Creation du menu ****/ pMenuBar = gtk_menu_bar_new(); - + /** Menu "Fichier" **/ pMenu = gtk_menu_new(); @@ -1721,128 +1671,127 @@ common_gtk_main( struct configured_features *my_config) { gtk_container_add(GTK_CONTAINER(pMenu), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "open"))); gtk_container_add(GTK_CONTAINER(pMenu), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "printscreen"))); gtk_container_add(GTK_CONTAINER(pMenu), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "quit"))); - + pMenuItem = gtk_menu_item_new_with_label("File"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pMenu); gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem); /** Menu "Emulation" **/ GtkWidget *mEmulation; - GtkWidget *mFrameskip; - GtkWidget *mFrameskip_Radio[MAX_FRAMESKIP]; - GtkWidget *mGraphics; - GtkWidget *mSize; - GtkWidget *mSize_Radio[MAX_SCREENCOEFF]; - GtkWidget *mLayers; - GtkWidget *mLayers_Radio[10]; - - + GtkWidget *mFrameskip; + GtkWidget *mFrameskip_Radio[MAX_FRAMESKIP]; + GtkWidget *mGraphics; + GtkWidget *mSize; + GtkWidget *mSize_Radio[MAX_SCREENCOEFF]; + GtkWidget *mLayers; + GtkWidget *mLayers_Radio[10]; + + mEmulation = gtk_menu_new(); pMenuItem = gtk_menu_item_new_with_label("Emulation"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mEmulation); gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem); - + gtk_container_add(GTK_CONTAINER(mEmulation), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "run"))); - + gtk_container_add(GTK_CONTAINER(mEmulation), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "pause"))); gtk_container_add(GTK_CONTAINER(mEmulation), gtk_action_create_menu_item(gtk_action_group_get_action(action_group, "reset"))); - - mFrameskip = gtk_menu_new(); - pMenuItem = gtk_menu_item_new_with_label("Frameskip"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mFrameskip); - gtk_menu_shell_append(GTK_MENU_SHELL(mEmulation), pMenuItem); - - for(i = 0; i < MAX_FRAMESKIP; i++) { - char frameskipRadio_buf[16]; - sprintf(frameskipRadio_buf, "%d", i); - if(i>0) mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(mFrameskip_Radio[i-1]), frameskipRadio_buf); - else mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label(NULL, frameskipRadio_buf); - g_signal_connect(G_OBJECT(mFrameskip_Radio[i]), "activate", G_CALLBACK(Modify_Frameskip), GINT_TO_POINTER(i)); - gtk_menu_shell_append(GTK_MENU_SHELL(mFrameskip), mFrameskip_Radio[i]); - } - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mFrameskip_Radio[0]), TRUE); - - mGraphics = gtk_menu_new(); - pMenuItem = gtk_menu_item_new_with_label("Graphics"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mGraphics); - gtk_menu_shell_append(GTK_MENU_SHELL(mEmulation), pMenuItem); - + + mFrameskip = gtk_menu_new(); + pMenuItem = gtk_menu_item_new_with_label("Frameskip"); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mFrameskip); + gtk_menu_shell_append(GTK_MENU_SHELL(mEmulation), pMenuItem); + + for(i = 0; i < MAX_FRAMESKIP; i++) { + char frameskipRadio_buf[16]; + sprintf(frameskipRadio_buf, "%d", i); + if(i>0) mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(mFrameskip_Radio[i-1]), frameskipRadio_buf); + else mFrameskip_Radio[i] = gtk_radio_menu_item_new_with_label(NULL, frameskipRadio_buf); + g_signal_connect(G_OBJECT(mFrameskip_Radio[i]), "activate", G_CALLBACK(Modify_Frameskip), GINT_TO_POINTER(i)); + gtk_menu_shell_append(GTK_MENU_SHELL(mFrameskip), mFrameskip_Radio[i]); + } + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mFrameskip_Radio[0]), TRUE); + + mGraphics = gtk_menu_new(); + pMenuItem = gtk_menu_item_new_with_label("Graphics"); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mGraphics); + gtk_menu_shell_append(GTK_MENU_SHELL(mEmulation), pMenuItem); + // TODO: Un jour, peut être... >< - if ( !my_config->screen.opengl) { - mSize = gtk_menu_new(); - pMenuItem = gtk_menu_item_new_with_label("Size"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mSize); - gtk_menu_shell_append(GTK_MENU_SHELL(mGraphics), pMenuItem); - - for(i = 1; i < MAX_SCREENCOEFF; i++) { - char sizeRadio_buf[16]; - sprintf(sizeRadio_buf, "x%d", i); - if(i>1) mSize_Radio[i] = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(mSize_Radio[i-1]), sizeRadio_buf); - else mSize_Radio[i] = gtk_radio_menu_item_new_with_label(NULL, sizeRadio_buf); - g_signal_connect(G_OBJECT(mSize_Radio[i]), "activate", G_CALLBACK(Modify_ScreenCoeff), GINT_TO_POINTER(i)); - gtk_menu_shell_append(GTK_MENU_SHELL(mSize), mSize_Radio[i]); - } - } - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mFrameskip_Radio[0]), TRUE); - - mLayers = gtk_menu_new(); - pMenuItem = gtk_menu_item_new_with_label("Layers"); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mLayers); - gtk_menu_shell_append(GTK_MENU_SHELL(mGraphics), pMenuItem); - - for(i = 0; i < 10; i++) { - mLayers_Radio[i] = gtk_check_menu_item_new_with_label(Layers_Menu[i]); - g_signal_connect(G_OBJECT(mLayers_Radio[i]), "activate", G_CALLBACK(Modify_Layer), (void*)Layers_Menu[i]); - gtk_menu_shell_append(GTK_MENU_SHELL(mLayers), mLayers_Radio[i]); - gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mLayers_Radio[i]), TRUE); - } - - + if ( !my_config->screen.opengl) { + mSize = gtk_menu_new(); + pMenuItem = gtk_menu_item_new_with_label("Size"); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mSize); + gtk_menu_shell_append(GTK_MENU_SHELL(mGraphics), pMenuItem); + + for(i = 1; i < MAX_SCREENCOEFF; i++) { + char sizeRadio_buf[16]; + sprintf(sizeRadio_buf, "x%d", i); + if(i>1) mSize_Radio[i] = gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(mSize_Radio[i-1]), sizeRadio_buf); + else mSize_Radio[i] = gtk_radio_menu_item_new_with_label(NULL, sizeRadio_buf); + g_signal_connect(G_OBJECT(mSize_Radio[i]), "activate", G_CALLBACK(Modify_ScreenCoeff), GINT_TO_POINTER(i)); + gtk_menu_shell_append(GTK_MENU_SHELL(mSize), mSize_Radio[i]); + } + } + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mFrameskip_Radio[0]), TRUE); + + mLayers = gtk_menu_new(); + pMenuItem = gtk_menu_item_new_with_label("Layers"); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mLayers); + gtk_menu_shell_append(GTK_MENU_SHELL(mGraphics), pMenuItem); + + for(i = 0; i < 10; i++) { + mLayers_Radio[i] = gtk_check_menu_item_new_with_label(Layers_Menu[i]); + g_signal_connect(G_OBJECT(mLayers_Radio[i]), "activate", G_CALLBACK(Modify_Layer), (void*)Layers_Menu[i]); + gtk_menu_shell_append(GTK_MENU_SHELL(mLayers), mLayers_Radio[i]); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mLayers_Radio[i]), TRUE); + } + + /** Menu "Options" **/ GtkWidget *mConfig = gtk_menu_new(); pMenuItem = gtk_menu_item_new_with_label("Config"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mConfig); gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem); - + pMenuItem = gtk_menu_item_new_with_label("Edit controls"); g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(Edit_Controls), (GtkWidget*) pWindow); gtk_menu_shell_append(GTK_MENU_SHELL(mConfig), pMenuItem); - + #if 0 - + GtkWidget *mFirmware; - + mFirmware = gtk_menu_new(); pMenuItem = gtk_menu_item_new_with_label("Firmware"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mFirmware); gtk_menu_shell_append(GTK_MENU_SHELL(mConfig), pMenuItem); - + pMenuItem = gtk_menu_item_new_with_label("Select..."); g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(SelectFirmwareFile), (gpointer)0); gtk_menu_shell_append(GTK_MENU_SHELL(mFirmware), pMenuItem); - + pMenuItem = gtk_menu_item_new_with_label("Config"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), mConfig); gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem); - + #endif - + /** Menu "Outils" **/ - + pMenu = gtk_menu_new(); - - for(i = 0; i < dTools_list_size; i++) - { + + for(i = 0; i < dTools_list_size; i++) { pMenuItem = gtk_menu_item_new_with_label(dTools_list[i]->name); g_signal_connect(G_OBJECT(pMenuItem), "activate", G_CALLBACK(Start_dTool), GINT_TO_POINTER(i)); gtk_menu_shell_append(GTK_MENU_SHELL(pMenu), pMenuItem); } - + pMenuItem = gtk_menu_item_new_with_label("Tools"); gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItem), pMenu); gtk_menu_shell_append(GTK_MENU_SHELL(pMenuBar), pMenuItem); - + /** Menu "?" **/ pMenu = gtk_menu_new(); @@ -1863,7 +1812,7 @@ common_gtk_main( struct configured_features *my_config) { gtk_box_pack_start(GTK_BOX(pVBox), pMenuBar, FALSE, FALSE, 0); /* Création de la Toolbar */ - + pToolbar = gtk_toolbar_new(); gtk_box_pack_start(GTK_BOX(pVBox), pToolbar, FALSE, FALSE, 0); @@ -1895,7 +1844,7 @@ common_gtk_main( struct configured_features *my_config) { &my_config->screen.soft_colour) ; g_signal_connect( G_OBJECT(top_screen_widget), "configure_event", G_CALLBACK(common_configure_fn), NULL ) ; - + gtk_box_pack_start(GTK_BOX(pVBox), top_screen_widget, TRUE, TRUE, 0); /* realise the topscreen so we can get the openGL context */ @@ -1938,50 +1887,49 @@ common_gtk_main( struct configured_features *my_config) { /* each frame expose the top screen */ nds_screen_widget = top_screen_widget; - } - else + } else { +#else + { #endif - { pDrawingArea= gtk_drawing_area_new(); - + gtk_drawing_area_size(GTK_DRAWING_AREA(pDrawingArea), 256, 384); gtk_widget_set_usize (pDrawingArea, 256, 384); - + gtk_widget_set_events(pDrawingArea, GDK_EXPOSURE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK ); - + g_signal_connect(G_OBJECT(pDrawingArea), "button_press_event", G_CALLBACK(Stylus_Press), &my_config->screen.opengl); g_signal_connect(G_OBJECT(pDrawingArea), "button_release_event", G_CALLBACK(Stylus_Release), NULL); g_signal_connect(G_OBJECT(pDrawingArea), "motion_notify_event", G_CALLBACK(Stylus_Move), &my_config->screen.opengl); - - + g_signal_connect( G_OBJECT(pDrawingArea), "realize", G_CALLBACK(Draw), NULL ) ; g_signal_connect( G_OBJECT(pDrawingArea), "expose_event", G_CALLBACK(gtkFloatExposeEvent), NULL ) ; - + gtk_box_pack_start(GTK_BOX(pVBox), pDrawingArea, FALSE, FALSE, 0); nds_screen_widget = pDrawingArea; - } - + } + /* Création de la barre d'état */ - + pStatusBar = gtk_statusbar_new(); - + pStatusBar_Ctx = gtk_statusbar_get_context_id(GTK_STATUSBAR(pStatusBar), "Global"); - + pStatusBar_Change("Desmume"); gtk_box_pack_end(GTK_BOX(pVBox), pStatusBar, FALSE, FALSE, 0); - + gtk_widget_show_all(pWindow); - + //LoadFirmware("fw.bin"); gtk_fps_limiter_disabled = my_config->disable_limiter; @@ -2030,16 +1978,12 @@ common_gtk_main( struct configured_features *my_config) { } } - + /* Vérifie la ligne de commandes */ - if( my_config->nds_file != NULL) - { - if(Open( my_config->nds_file, bad_glob_cflash_disk_image_file) >= 0) - { + if( my_config->nds_file != NULL) { + if(Open( my_config->nds_file, bad_glob_cflash_disk_image_file) >= 0) { Launch(); - } - else - { + } else { GtkWidget *pDialog = gtk_message_dialog_new(GTK_WINDOW(pWindow), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, @@ -2049,14 +1993,14 @@ common_gtk_main( struct configured_features *my_config) { gtk_widget_destroy(pDialog); } } - + /* Boucle principale */ - + // gtk_idle_add(&EmuLoop, pWindow); // g_idle_add(&EmuLoop, pWindow); - + gtk_main(); - + desmume_free(); if ( !gtk_fps_limiter_disabled) { @@ -2081,13 +2025,14 @@ common_gtk_main( struct configured_features *my_config) { if ( my_config->arm7_gdb_port != 0) { destroyStub_gdb( arm7_gdb_stub); } - + return EXIT_SUCCESS; } int -main (int argc, char *argv[]) { +main (int argc, char *argv[]) +{ struct configured_features my_config; init_configured_features( &my_config);