diff --git a/gtk/src/gtk_config.cpp b/gtk/src/gtk_config.cpp index 771a32db..ee8c3531 100644 --- a/gtk/src/gtk_config.cpp +++ b/gtk/src/gtk_config.cpp @@ -332,7 +332,6 @@ Snes9xConfig::save_config_file (void) xml_out_int (xml, "npot_textures", npot_textures); xml_out_int (xml, "use_shaders", use_shaders); xml_out_string (xml, "fragment_shader", fragment_shader); - xml_out_string (xml, "vertex_shader", vertex_shader); #endif #ifdef USE_JOYSTICK @@ -550,7 +549,7 @@ Snes9xConfig::set_option (const char *name, const char *value) else if (!strcasecmp (name, "vertex_shader")) { #ifdef USE_OPENGL - strncpy (vertex_shader, value, PATH_MAX); + /* Deprecated */ #endif } else if (!strcasecmp (name, "joystick_threshold")) @@ -1141,6 +1140,8 @@ Snes9xConfig::load_config_file (void) parse_snes9x (xml_root); + xmlFreeDoc (xml_doc); + return 0; } diff --git a/gtk/src/gtk_display_driver_opengl.cpp b/gtk/src/gtk_display_driver_opengl.cpp index 1160c34c..f479676b 100644 --- a/gtk/src/gtk_display_driver_opengl.cpp +++ b/gtk/src/gtk_display_driver_opengl.cpp @@ -1,5 +1,7 @@ #include #include +#include +#include #include #include #include @@ -40,44 +42,6 @@ static const char *glUnmapBufferNames[] = { "glUnmapBuffer", "glUnmapBufferEXT", NULL }; -static char * -get_file_contents (const char *filename) -{ - struct stat fs; - int fd; - - if (!filename || !strlen (filename) || stat (filename, &fs)) - { - return NULL; - } - - fd = open (filename, O_RDONLY); - if (fd == -1) - return NULL; - - char *contents = new char[fs.st_size + 1]; - - int bytes_read = 0; - while (bytes_read < fs.st_size) - { - int retval; - retval = read (fd, contents + bytes_read, fs.st_size - bytes_read); - if (retval == -1) - { - delete[] contents; - close (fd); - return NULL; - } - bytes_read += retval; - } - - contents[fs.st_size] = '\0'; - - close (fd); - - return contents; -} - gl_proc get_null_address_proc (const GLubyte *name) { @@ -539,10 +503,11 @@ S9xOpenGLDisplayDriver::load_shader_functions (void) } int -S9xOpenGLDisplayDriver::load_shaders (const char *vertex_file, - const char *fragment_file) +S9xOpenGLDisplayDriver::load_shaders (const char *shader_file) { - char *fragment, *vertex; + xmlDoc *xml_doc = NULL; + xmlNodePtr node = NULL; + char *fragment = NULL, *vertex = NULL; if (!load_shader_functions ()) { @@ -550,18 +515,42 @@ S9xOpenGLDisplayDriver::load_shaders (const char *vertex_file, return 0; } - fragment = get_file_contents (fragment_file); - if (!fragment) + xml_doc = xmlReadFile (shader_file, NULL, 0); + + if (!xml_doc) { - fprintf (stderr, _("Cannot load fragment program.\n")); + fprintf (stderr, _("Cannot read shader file.\n")); return 0; } - vertex = get_file_contents (vertex_file); - if (!vertex) + node = xmlDocGetRootElement (xml_doc); + + if (xmlStrcasecmp (node->name, BAD_CAST "shader")) { - fprintf (stderr, _("Cannot load vertex program.\n")); - delete[] fragment; + fprintf (stderr, _("File %s is not a shader file.\n"), shader_file); + xmlFreeDoc (xml_doc); + return 0; + } + + for (xmlNodePtr i = node->children; i; i = i->next) + { + if (!xmlStrcasecmp (i->name, BAD_CAST "vertex")) + { + if (i->children) + vertex = (char *) i->children->content; + } + + if (!xmlStrcasecmp (i->name, BAD_CAST "fragment")) + { + if (i->children) + fragment = (char *) i->children->content; + } + } + + if (!vertex || !fragment) + { + fprintf (stderr, _("Shader is missing either a vertex or fragment program.\n")); + xmlFreeDoc (xml_doc); return 0; } @@ -578,6 +567,8 @@ S9xOpenGLDisplayDriver::load_shaders (const char *vertex_file, glUseProgram (program); + xmlFreeDoc (xml_doc); + return 1; } @@ -602,7 +593,7 @@ S9xOpenGLDisplayDriver::opengl_defaults (void) using_shaders = 0; if (config->use_shaders) { - if (!load_shaders (config->vertex_shader, config->fragment_shader)) + if (!load_shaders (config->fragment_shader)) { config->use_shaders = 0; } diff --git a/gtk/src/gtk_display_driver_opengl.h b/gtk/src/gtk_display_driver_opengl.h index 8a39493c..0f6ee800 100644 --- a/gtk/src/gtk_display_driver_opengl.h +++ b/gtk/src/gtk_display_driver_opengl.h @@ -90,7 +90,7 @@ class S9xOpenGLDisplayDriver : public S9xDisplayDriver void gl_swap (void); int load_pixel_buffer_functions (void); int load_shader_functions (void); - int load_shaders (const char *, const char *); + int load_shaders (const char *); gl_proc get_aliased_extension (const char **name); void update_texture_size (int width, int height); int init_glx (void); diff --git a/gtk/src/gtk_preferences.cpp b/gtk/src/gtk_preferences.cpp index 72986b6c..918e0956 100644 --- a/gtk/src/gtk_preferences.cpp +++ b/gtk/src/gtk_preferences.cpp @@ -232,10 +232,6 @@ event_shader_select (GtkButton *widget, gpointer data) { entry = GTK_ENTRY (window->get_widget ("fragment_shader")); } - else - { - entry = GTK_ENTRY (window->get_widget ("vertex_shader")); - } dialog = gtk_file_chooser_dialog_new ("Select Shader File", window->get_window (), @@ -733,7 +729,6 @@ Snes9xPreferences::move_settings_to_dialog (void) set_check ("npot_textures", config->npot_textures); set_check ("use_shaders", config->use_shaders); set_entry_text ("fragment_shader", config->fragment_shader); - set_entry_text ("vertex_shader", config->vertex_shader); #endif #ifdef USE_JOYSTICK @@ -861,7 +856,6 @@ Snes9xPreferences::get_settings_from_dialog (void) config->sync_every_frame = get_check ("sync_every_frame"); strncpy (config->fragment_shader, get_entry_text ("fragment_shader"), PATH_MAX); - strncpy (config->vertex_shader, get_entry_text ("vertex_shader"), PATH_MAX); config->pbo_format = get_combo ("pixel_format"); #endif diff --git a/gtk/src/snes9x.ui b/gtk/src/snes9x.ui index 759c5dd1..2c8c71cc 100644 --- a/gtk/src/snes9x.ui +++ b/gtk/src/snes9x.ui @@ -2,1631 +2,779 @@ - - 560 - 448 - About Snes9x - normal - True - - - True - 2 - - - True - 5 - - - True - 5 - - - True - gtk-missing-image - - - - - False - 0 - - - - - True - 0 - 10 - 10 - label106 - True - center - True - - - False - 1 - - - - - True - queue - - - True - True - automatic - - - True - True - False - False - textbuffer1 - - - - - - - 2 - - - - - 0 - - - - - True - end - - - gtk-close - True - True - True - False - True - - - False - False - 0 - - - - - False - end - 1 - - - - - - button15 - - - - Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. - - (c) Copyright 1996 - 2002 Gary Henderson (gary.henderson@ntlworld.com), - Jerremy Koot (jkoot@snes9x.com) - - (c) Copyright 2002 - 2004 Matthew Kendora - - (c) Copyright 2002 - 2005 Peter Bortas (peter@bortas.org) - - (c) Copyright 2004 - 2005 Joel Yliluoma (http://iki.fi/bisqwit/) - - (c) Copyright 2001 - 2006 John Weidman (jweidman@slip.net) - - (c) Copyright 2002 - 2006 funkyass (funkyass@spam.shaw.ca), - Kris Bleakley (codeviolation@hotmail.com) - - (c) Copyright 2002 - 2010 Brad Jorsch (anomie@users.sourceforge.net), - Nach (n-a-c-h@users.sourceforge.net), - zones (kasumitokoduck@yahoo.com) - - (c) Copyright 2006 - 2007 nitsuja - - (c) Copyright 2009 - 2010 BearOso, - OV2 - - - BS-X C emulator code - (c) Copyright 2005 - 2006 Dreamer Nom, - zones - - C4 x86 assembler and some C emulation code - (c) Copyright 2000 - 2003 _Demo_ (_demo_@zsnes.com), - Nach, - zsKnight (zsknight@zsnes.com) - - C4 C++ code - (c) Copyright 2003 - 2006 Brad Jorsch, - Nach - - DSP-1 emulator code - (c) Copyright 1998 - 2006 _Demo_, - Andreas Naive (andreasnaive@gmail.com), - Gary Henderson, - Ivar (ivar@snes9x.com), - John Weidman, - Kris Bleakley, - Matthew Kendora, - Nach, - neviksti (neviksti@hotmail.com) - - DSP-2 emulator code - (c) Copyright 2003 John Weidman, - Kris Bleakley, - Lord Nightmare (lord_nightmare@users.sourceforge.net), - Matthew Kendora, - neviksti - - DSP-3 emulator code - (c) Copyright 2003 - 2006 John Weidman, - Kris Bleakley, - Lancer, - z80 gaiden - - DSP-4 emulator code - (c) Copyright 2004 - 2006 Dreamer Nom, - John Weidman, - Kris Bleakley, - Nach, - z80 gaiden - - OBC1 emulator code - (c) Copyright 2001 - 2004 zsKnight, - pagefault (pagefault@zsnes.com), - Kris Bleakley - Ported from x86 assembler to C by sanmaiwashi - - SPC7110 and RTC C++ emulator code used in 1.39-1.51 - (c) Copyright 2002 Matthew Kendora with research by - zsKnight, - John Weidman, - Dark Force - - SPC7110 and RTC C++ emulator code used in 1.52+ - (c) Copyright 2009 byuu, - neviksti - - S-DD1 C emulator code - (c) Copyright 2003 Brad Jorsch with research by - Andreas Naive, - John Weidman - - S-RTC C emulator code - (c) Copyright 2001 - 2006 byuu, - John Weidman - - ST010 C++ emulator code - (c) Copyright 2003 Feather, - John Weidman, - Kris Bleakley, - Matthew Kendora - - Super FX x86 assembler emulator code - (c) Copyright 1998 - 2003 _Demo_, - pagefault, - zsKnight - - Super FX C emulator code - (c) Copyright 1997 - 1999 Ivar, - Gary Henderson, - John Weidman - - Sound emulator code used in 1.5-1.51 - (c) Copyright 1998 - 2003 Brad Martin - (c) Copyright 1998 - 2006 Charles Bilyue' - - Sound emulator code used in 1.52+ - (c) Copyright 2004 - 2007 Shay Green (gblargg@gmail.com) - - SH assembler code partly based on x86 assembler code - (c) Copyright 2002 - 2004 Marcus Comstedt (marcus@mc.pp.se) - - 2xSaI filter - (c) Copyright 1999 - 2001 Derek Liauw Kie Fa - - HQ2x, HQ3x, HQ4x filters - (c) Copyright 2003 Maxim Stepin (maxim@hiend3d.com) - - NTSC filter - (c) Copyright 2006 - 2007 Shay Green - - GTK+ GUI code - (c) Copyright 2004 - 2010 BearOso - - Win32 GUI code - (c) Copyright 2003 - 2006 blip, - funkyass, - Matthew Kendora, - Nach, - nitsuja - (c) Copyright 2009 - 2010 OV2 - - Mac OS GUI code - (c) Copyright 1998 - 2001 John Stiles - (c) Copyright 2001 - 2010 zones - - - Specific ports contains the works of other authors. See headers in - individual files. - - - Snes9x homepage: http://www.snes9x.com/ - - Permission to use, copy, modify and/or distribute Snes9x in both binary - and source form, for non-commercial purposes, is hereby granted without - fee, providing that this license information and copyright notice appear - with all copies and any derived work. - - This software is provided 'as-is', without any express or implied - warranty. In no event shall the authors be held liable for any damages - arising from the use of this software or it's derivatives. - - Snes9x is freeware for PERSONAL USE only. Commercial users should - seek permission of the copyright holders first. Commercial use includes, - but is not limited to, charging money for Snes9x or software derived from - Snes9x, including Snes9x or derivatives in commercial game bundles, and/or - using Snes9x as a promotion for your commercial product. - - The copyright holders request that bug fixes and improvements to the code - should be forwarded to them so everyone can benefit from the modifications - in future versions. - - Super NES and Super Nintendo Entertainment System are trademarks of - Nintendo Co., Limited and its subsidiary companies. - - - 2 - 8 - 2 - 1 - 1 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 1.0408340855860843e-17 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - -1 - 1 - 0.01 - 0.10000000000000001 - - - 2 - 256 - 2 - 1 - 1 - - - 31500 - 32500 - 31990 - 1 - 10 - - - 1 - 100 - 50 - 1 - 10 - - - 1 - 9999 - 6096 - 1 - 1 - - - 1 - 9999 - 6096 - 1 - 1 - - - 1 - 60 - 1 - 1 - 1 - - - True - gtk-preferences - 1 - - - True - gtk-fullscreen - 1 - - - True - gtk-zoom-in - 1 - - - True - gtk-leave-fullscreen - 1 - - - True - gtk-refresh - 1 - - - True - gtk-redo - 1 - - - True - gtk-revert-to-saved - 1 - - - True - gtk-media-next - 1 - - - True - gtk-media-stop - 1 - - - True - gtk-media-record - 1 - - - True - gtk-open - 1 - - - True - gtk-media-pause - 1 - - - True - gtk-go-forward - 1 - - - True - gtk-quit - 1 - - - True - gtk-dialog-info - 1 - - - True - gtk-save - 1 - - - True - gtk-network - 1 - - - True - gtk-open - 1 - - - 5 - Open Multiple ROM Images (MultiCart) - center-on-parent - 320 - dialog - - + + GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_SUBSTRUCTURE_MASK + Snes9x + + + + + + + + True - - True - 5 - - - True - 12 - - - True - Slot A: - - - False - 0 - - - - - True - Select an Image for Slot A - - - 1 - - - - - False - 0 - - - - - True - 12 - - - True - Slot B: - - - False - 0 - - - - - True - Select an Image for Slot B - - - 1 - - - - - False - 1 - - - - - 1 - - - - - True - end - - - gtk-cancel - True - True - True - True - - - False - False - 0 - - - - - gtk-ok - True - True - True - True - - - False - False - 1 - - - - - False - end - 0 - - - - - - button14 - button13 - - - - 5 - Snes9x NetPlay - center-on-parent - dialog - - - True - 2 - - - True - 5 - 5 - - - True - 0 - none - - - True - 12 - - - True - 5 - 5 - - - True - True - The game chosen will be loaded before connecting. This field can be blank if the server will send the ROM image - False - - - 0 - - - - - Browse... - True - True - True - - - - False - 1 - - - - - True - True - True - - - - True - Clear entry - gtk-clear - 1 - - - - - False - 2 - - - - - - - - - True - <b>ROM Image</b> - True - - - - - False - 0 - - - - - True - 0 - none - - - True - 5 - 12 - - - True - - - Connect to another computer - True - True - False - Connect to another computer that is running Snes9x NetPlay as a server - True - True - - - 0 - - - - - True - 5 - 5 - - - True - Name or IP address: - - - False - 0 - - - - - True - True - Domain name or internet protocol address of a remote computer - - - 1 - - - - - True - Port: - - - False - 2 - - - - - True - True - Connect to specified TCP port on remote computer - adjustment3 - True - True - - - False - 3 - - - - - 1 - - - - - Act as a server - True - True - False - Host a game on this computer as Player 1, requiring extra throughput to support multitple users - True - True - connect_radio - - - - 2 - - - - - - - - - True - <b>Server</b> - True - - - - - False - 1 - - - - - True - 0 - none - - - True - 12 - - - True - 5 - 5 - - - Sync using reset - True - True - False - Reset the game when players join instead of transferring potentially unreliable freeze states - True - - - False - 0 - - - - - Send ROM image to clients - True - True - False - Send the running game image to players instead of requiring them to have their own copies - True - - - False - 1 - - - - - True - 5 - - - True - Default port: - - - False - 0 - - - - - True - True - TCP port used as a connection point for remote clients - adjustment2 - True - True - - - False - 1 - - - - - False - 2 - - - - - True - 5 - - - True - Ask server to pause when - - - False - 0 - - - - - True - True - adjustment1 - True - True - - - False - 1 - - - - - True - frames behind - - - False - 2 - - - - - False - 3 - - - - - - - - - True - <b>Settings</b> - True - - - - - 2 - - - - - 1 - - - - - True - end - - - gtk-cancel - True - True - True - True - - - False - False - 0 - - - - - gtk-connect - True - True - True - True - True - - - False - False - 1 - - - - - False - end - 0 - - - - - - button9 - button10 - - - - 512 - 350 - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 - Snes9x Cheats - center-on-parent - dialog - True - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 2 - - - True - 5 - - - True - 0 - in - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - - - - 0 - - - - - True - 5 - 5 - - - True - 0 - Type: - - - False - 0 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - liststore1 - - - - 0 - - - - - False - False - 1 - - - - - True - 0 - Description: - - - False - 2 - - - - - True - True - 21 - - - False - 3 - - - - - True - 0 - Code: - - - False - 4 - - - - - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - - - False - 5 - - - - - gtk-add - True - True - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - - - - False - False - 6 - - - - - True - - - False - 7 - - - - - gtk-remove - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - - - - False - False - 8 - - - - - False - False - 1 - - - - - 1 - - - - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - end - - gtk-close + True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True + _File + True + + + + + _Open ROM Image... + True + True + image2 + False + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Open Recent + True + + + + + True + + + + + Open with _NetPlay... + True + Open a ROM to use with NetPlay + True + image3 + False + + + + + + True + Open _MultiCart... + True + + + + + + True + + + + + True + _Load State + True + + + + + + True + Slot _0 + True + + + + + + True + Slot _1 + True + + + + + + True + Slot _2 + True + + + + + + True + Slot _3 + True + + + + + + True + Slot _4 + True + + + + + + True + Slot _5 + True + + + + + + True + Slot _6 + True + + + + + + True + Slot _7 + True + + + + + + True + Slot _8 + True + + + + + + True + + + + + True + From _File... + True + + + + + + + + + + True + _Save State + True + + + + + + True + Slot _0 + True + + + + + + True + Slot _1 + True + + + + + + True + Slot _2 + True + + + + + + True + Slot _3 + True + + + + + + True + Slot _4 + True + + + + + + True + Slot _5 + True + + + + + + True + Slot _6 + True + + + + + + True + Slot _7 + True + + + + + + True + Slot _8 + True + + + + + + True + + + + + True + To _File... + True + + + + + + + + + + True + + + + + Save SPC... + True + True + image4 + False + + + + + + True + + + + + Show ROM _Info... + True + True + image5 + False + + + + + + True + + + + + _Quit + True + True + image18 + False + + + + + + + + + + True + _Emulation + True + + + + + Run / _Continue + True + True + image6 + False + + + + + + _Pause + True + True + image7 + False + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + + + Load _Movie... + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + image8 + False + + + + + + R_ecord Movie... + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + image19 + False + + + + + + _Stop Recording + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + image9 + False + + + + + + _Jump to Frame... + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + image10 + False + + + + + + True + + + + + Sy_nc Clients + True + True + image11 + False + + + + + + True + + + + + Reset + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + image12 + False + + + + + + Soft _Reset + True + True + image13 + False + + + + + + + + + + True + _View + True + + + + + + _Hide Menu + True + True + image14 + False + + + + + + True + _Status Bar + True + + + + + + True + + + + + _Change Size + True + True + image17 + False + + + True + + + True + False + Exact Pixels + True + + + + + True + _1x + True + + + + + + True + _2x + True + + + + + + True + _3x + True + + + + + + True + _4x + True + + + + + + True + _5x + True + + + + + + True + + + + + True + False + Correct Aspect + True + + + + + True + 1x + True + + + + + + True + 2x + True + + + + + + True + 3x + True + + + + + + True + 4x + True + + + + + + True + 5x + True + + + + + + + + + + True + + + + + _Fullscreen + True + True + image15 + False + + + + + + + + + + True + _Options + True + + + + + True + Controller Ports + True + + + + + True + SNES Port 1 + True + + + + + + True + Joypad + True + + + + + + True + Mouse + True + joypad1 + + + + + + True + Superscope + True + True + joypad1 + + + + + + + + + + True + SNES Port 2 + True + + + + + + True + Joypad + True + + + + + + True + Mouse + True + joypad2 + + + + + + True + Multitap + True + joypad2 + + + + + + True + Superscope + True + True + joypad2 + + + + + + + + + + + + + + True + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + _Cheats... + True + + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + + + _Preferences... + True + True + image16 + False + + + + + - - False - False - 0 - False - end 0 - - - - button7 - - - - - - - - - - - - - - - - 8:7 Square pixels - - - 4:3 SNES correct aspect - - - - - - - - - - - None - - - SuperEagle - - - 2xSaI - - - Super2xSaI - - - EPX - - - EPX Smooth - - - Blargg's NTSC - - - Scanlines - - - - - - - - - - - 0% - - - 12.5% - - - 25% - - - 50% - - - 100% - - - - - - - - - - - 12.5% - - - 25% - - - 50% - - - 100% - - - - - - - - - - - - - - - - - 16-bit (GL_BGRA) - - - 24-bit (GL_RGB) - - - 32-bit (GL_BGRA) - - - - - - - - - - - - - - - - - 48000 hz - - - 44100 hz - - - 32000 hz (SNES Default) - - - 22050 hz - - - 16000 hz - - - 11025 hz - - - 8000 hz - - - 0 hz - - - - - - - - - - - Automatic - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 9 - - - - - - - - - - - Toggle the menu bar - - - Exit fullscreen mode - - - Quit Snes9x - - - - - - - - - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 1+ - - - 2+ - - - 3+ - - - 4+ - - - 5+ - - - - - - - - - - - 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 1+ - - - 2+ - - - 3+ - - - 4+ - - - 5+ - - - - - - - - - - - Game Genie - - - Pro Action Replay - - - Goldfinger - - - - - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 - Advance to Frame - center-on-parent - dialog - True - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 2 - + + 256 + 224 True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 - 10 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - The current frame in the movie is - True - - - 0 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 10 - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - Fast-forward to frame - - - 0 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - - - 1 - - - - - 1 - - + True + GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK | GDK_SUBSTRUCTURE_MASK + + + + + - False 1 - - + + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - end - - - gtk-cancel - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - - - False - False - 0 - - - - - gtk-ok - True - True - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - - - False - False - 1 - - False - end - 0 + 2 - - button3 - button2 - GDK_KEY_PRESS_MASK @@ -2688,58 +1836,22 @@ - - Use GLSL shaders + True - True - False - True - - - 6 - - - - - True - 2 - 3 + 5 - + + Use GLSL shader: True - 10 - 12 - - - True - 0 - Fragment shader: - - + True + False + False + 0 + True - GTK_FILL - GTK_FILL - - - - - True - 10 - 12 - - - True - 0 - Vertex shader: - - - - - 1 - 2 - GTK_FILL - GTK_FILL + False + 0 @@ -2747,25 +1859,10 @@ True True • + True - 1 - 2 - GTK_FILL - - - - - True - True - • - - - 1 - 2 - 1 - 2 - GTK_FILL + 1 @@ -2777,32 +1874,13 @@ - 2 - 3 - GTK_FILL - GTK_FILL - - - - - Browse... - True - True - True - - - - 2 - 3 - 1 - 2 - GTK_FILL - GTK_FILL + False + 2 - 7 + 6 @@ -6784,778 +5862,1630 @@ button8 - - GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_SUBSTRUCTURE_MASK - Snes9x - - - - - - - - + + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + Advance to Frame + center-on-parent + dialog + True + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + 10 - + True - _File - True - - - - - _Open ROM Image... - True - True - image2 - False - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Open Recent - True - - - - - True - - - - - Open with _NetPlay... - True - Open a ROM to use with NetPlay - True - image3 - False - - - - - - True - Open _MultiCart... - True - - - - - - True - - - - - True - _Load State - True - - - - - - True - Slot _0 - True - - - - - - True - Slot _1 - True - - - - - - True - Slot _2 - True - - - - - - True - Slot _3 - True - - - - - - True - Slot _4 - True - - - - - - True - Slot _5 - True - - - - - - True - Slot _6 - True - - - - - - True - Slot _7 - True - - - - - - True - Slot _8 - True - - - - - - True - - - - - True - From _File... - True - - - - - - - - - - True - _Save State - True - - - - - - True - Slot _0 - True - - - - - - True - Slot _1 - True - - - - - - True - Slot _2 - True - - - - - - True - Slot _3 - True - - - - - - True - Slot _4 - True - - - - - - True - Slot _5 - True - - - - - - True - Slot _6 - True - - - - - - True - Slot _7 - True - - - - - - True - Slot _8 - True - - - - - - True - - - - - True - To _File... - True - - - - - - - - - - True - - - - - Save SPC... - True - True - image4 - False - - - - - - True - - - - - Show ROM _Info... - True - True - image5 - False - - - - - - True - - - - - _Quit - True - True - image18 - False - - - - - + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + The current frame in the movie is + True + + 0 + - + True - _Emulation - True - - - - - Run / _Continue - True - True - image6 - False - - - - - - _Pause - True - True - image7 - False - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - Load _Movie... - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - image8 - False - - - - - - R_ecord Movie... - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - image19 - False - - - - - - _Stop Recording - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - image9 - False - - - - - - _Jump to Frame... - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - image10 - False - - - - - - True - - - - - Sy_nc Clients - True - True - image11 - False - - - - - - True - - - - - Reset - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - image12 - False - - - - - - Soft _Reset - True - True - image13 - False - - - - - - - - - - True - _View - True - - - - - - _Hide Menu - True - True - image14 - False - - - - - - True - _Status Bar - True - - - - - - True - - - - - _Change Size - True - True - image17 - False - - - True - - - True - False - Exact Pixels - True - - - - - True - _1x - True - - - - - - True - _2x - True - - - - - - True - _3x - True - - - - - - True - _4x - True - - - - - - True - _5x - True - - - - - - True - - - - - True - False - Correct Aspect - True - - - - - True - 1x - True - - - - - - True - 2x - True - - - - - - True - 3x - True - - - - - - True - 4x - True - - - - - - True - 5x - True - - - - - - - - - - True - - - - - _Fullscreen - True - True - image15 - False - - - - - - - - - - True - _Options - True - - - - - True - Controller Ports - True - - - - - True - SNES Port 1 - True - - - - - - True - Joypad - True - - - - - - True - Mouse - True - joypad1 - - - - - - True - Superscope - True - True - joypad1 - - - - - - - - - - True - SNES Port 2 - True - - - - - - True - Joypad - True - - - - - - True - Mouse - True - joypad2 - - - - - - True - Multitap - True - joypad2 - - - - - - True - Superscope - True - True - joypad2 - - - - - - - - - - - - - - True - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - _Cheats... - True - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - _Preferences... - True - True - image16 - False - - - + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 10 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + Fast-forward to frame + + 0 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + 1 + + + 1 + False + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + end + + + gtk-cancel + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + False + False + 1 + + + + + False + end 0 + + + + button3 + button2 + + + + + + + + + + Game Genie + + + Pro Action Replay + + + Goldfinger + + + + + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 1+ + + + 2+ + + + 3+ + + + 4+ + + + 5+ + + + + + + + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 1+ + + + 2+ + + + 3+ + + + 4+ + + + 5+ + + + + + + + + + + + Toggle the menu bar + + + Exit fullscreen mode + + + Quit Snes9x + + + + + + + + + + + Automatic + + + 0 + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + + + + + + + + + 48000 hz + + + 44100 hz + + + 32000 hz (SNES Default) + + + 22050 hz + + + 16000 hz + + + 11025 hz + + + 8000 hz + + + 0 hz + + + + + + + + + + + + + + + + + 16-bit (GL_BGRA) + + + 24-bit (GL_RGB) + + + 32-bit (GL_BGRA) + + + + + + + + + + + + + + + + + 12.5% + + + 25% + + + 50% + + + 100% + + + + + + + + + + + 0% + + + 12.5% + + + 25% + + + 50% + + + 100% + + + + + + + + + + + None + + + SuperEagle + + + 2xSaI + + + Super2xSaI + + + EPX + + + EPX Smooth + + + Blargg's NTSC + + + Scanlines + + + + + + + + + + + 8:7 Square pixels + + + 4:3 SNES correct aspect + + + + + + + + + + + 512 + 350 + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 + Snes9x Cheats + center-on-parent + dialog + True + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 2 - - 256 - 224 + True - True - GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK | GDK_SUBSTRUCTURE_MASK - - - - - + 5 + + + True + 0 + in + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + + + + + + 0 + + + + + True + 5 + 5 + + + True + 0 + Type: + + + False + 0 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + liststore1 + + + + 0 + + + + + False + False + 1 + + + + + True + 0 + Description: + + + False + 2 + + + + + True + True + 21 + + + False + 3 + + + + + True + 0 + Code: + + + False + 4 + + + + + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + False + 5 + + + + + gtk-add + True + True + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + + False + False + 6 + + + + + True + + + False + 7 + + + + + gtk-remove + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + + False + False + 8 + + + + + False + False + 1 + + 1 - - + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + end + + + gtk-close + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + + + False + False + 0 + + False - 2 + end + 0 + + button7 + + + + 5 + Snes9x NetPlay + center-on-parent + dialog + + + True + 2 + + + True + 5 + 5 + + + True + 0 + none + + + True + 12 + + + True + 5 + 5 + + + True + True + The game chosen will be loaded before connecting. This field can be blank if the server will send the ROM image + False + + + 0 + + + + + Browse... + True + True + True + + + + False + 1 + + + + + True + True + True + + + + True + Clear entry + gtk-clear + 1 + + + + + False + 2 + + + + + + + + + True + <b>ROM Image</b> + True + + + + + False + 0 + + + + + True + 0 + none + + + True + 5 + 12 + + + True + + + Connect to another computer + True + True + False + Connect to another computer that is running Snes9x NetPlay as a server + True + True + + + 0 + + + + + True + 5 + 5 + + + True + Name or IP address: + + + False + 0 + + + + + True + True + Domain name or internet protocol address of a remote computer + + + 1 + + + + + True + Port: + + + False + 2 + + + + + True + True + Connect to specified TCP port on remote computer + adjustment3 + True + True + + + False + 3 + + + + + 1 + + + + + Act as a server + True + True + False + Host a game on this computer as Player 1, requiring extra throughput to support multitple users + True + True + connect_radio + + + + 2 + + + + + + + + + True + <b>Server</b> + True + + + + + False + 1 + + + + + True + 0 + none + + + True + 12 + + + True + 5 + 5 + + + Sync using reset + True + True + False + Reset the game when players join instead of transferring potentially unreliable freeze states + True + + + False + 0 + + + + + Send ROM image to clients + True + True + False + Send the running game image to players instead of requiring them to have their own copies + True + + + False + 1 + + + + + True + 5 + + + True + Default port: + + + False + 0 + + + + + True + True + TCP port used as a connection point for remote clients + adjustment2 + True + True + + + False + 1 + + + + + False + 2 + + + + + True + 5 + + + True + Ask server to pause when + + + False + 0 + + + + + True + True + adjustment1 + True + True + + + False + 1 + + + + + True + frames behind + + + False + 2 + + + + + False + 3 + + + + + + + + + True + <b>Settings</b> + True + + + + + 2 + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + True + + + False + False + 0 + + + + + gtk-connect + True + True + True + True + True + + + False + False + 1 + + + + + False + end + 0 + + + + + + button9 + button10 + + + + 5 + Open Multiple ROM Images (MultiCart) + center-on-parent + 320 + dialog + + + True + + + True + 5 + + + True + 12 + + + True + Slot A: + + + False + 0 + + + + + True + Select an Image for Slot A + + + 1 + + + + + False + 0 + + + + + True + 12 + + + True + Slot B: + + + False + 0 + + + + + True + Select an Image for Slot B + + + 1 + + + + + False + 1 + + + + + 1 + + + + + True + end + + + gtk-cancel + True + True + True + True + + + False + False + 0 + + + + + gtk-ok + True + True + True + True + + + False + False + 1 + + + + + False + end + 0 + + + + + + button14 + button13 + + + + True + gtk-open + 1 + + + True + gtk-network + 1 + + + True + gtk-save + 1 + + + True + gtk-dialog-info + 1 + + + True + gtk-quit + 1 + + + True + gtk-go-forward + 1 + + + True + gtk-media-pause + 1 + + + True + gtk-open + 1 + + + True + gtk-media-record + 1 + + + True + gtk-media-stop + 1 + + + True + gtk-media-next + 1 + + + True + gtk-revert-to-saved + 1 + + + True + gtk-redo + 1 + + + True + gtk-refresh + 1 + + + True + gtk-leave-fullscreen + 1 + + + True + gtk-zoom-in + 1 + + + True + gtk-fullscreen + 1 + + + True + gtk-preferences + 1 + + + 1 + 60 + 1 + 1 + 1 + + + 1 + 9999 + 6096 + 1 + 1 + + + 1 + 9999 + 6096 + 1 + 1 + + + 1 + 100 + 50 + 1 + 10 + + + 31500 + 32500 + 31990 + 1 + 10 + + + 2 + 256 + 2 + 1 + 1 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 1.0408340855860843e-17 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + -1 + 1 + 0.01 + 0.10000000000000001 + + + 2 + 8 + 2 + 1 + 1 + + + Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. + + (c) Copyright 1996 - 2002 Gary Henderson (gary.henderson@ntlworld.com), + Jerremy Koot (jkoot@snes9x.com) + + (c) Copyright 2002 - 2004 Matthew Kendora + + (c) Copyright 2002 - 2005 Peter Bortas (peter@bortas.org) + + (c) Copyright 2004 - 2005 Joel Yliluoma (http://iki.fi/bisqwit/) + + (c) Copyright 2001 - 2006 John Weidman (jweidman@slip.net) + + (c) Copyright 2002 - 2006 funkyass (funkyass@spam.shaw.ca), + Kris Bleakley (codeviolation@hotmail.com) + + (c) Copyright 2002 - 2010 Brad Jorsch (anomie@users.sourceforge.net), + Nach (n-a-c-h@users.sourceforge.net), + zones (kasumitokoduck@yahoo.com) + + (c) Copyright 2006 - 2007 nitsuja + + (c) Copyright 2009 - 2010 BearOso, + OV2 + + + BS-X C emulator code + (c) Copyright 2005 - 2006 Dreamer Nom, + zones + + C4 x86 assembler and some C emulation code + (c) Copyright 2000 - 2003 _Demo_ (_demo_@zsnes.com), + Nach, + zsKnight (zsknight@zsnes.com) + + C4 C++ code + (c) Copyright 2003 - 2006 Brad Jorsch, + Nach + + DSP-1 emulator code + (c) Copyright 1998 - 2006 _Demo_, + Andreas Naive (andreasnaive@gmail.com), + Gary Henderson, + Ivar (ivar@snes9x.com), + John Weidman, + Kris Bleakley, + Matthew Kendora, + Nach, + neviksti (neviksti@hotmail.com) + + DSP-2 emulator code + (c) Copyright 2003 John Weidman, + Kris Bleakley, + Lord Nightmare (lord_nightmare@users.sourceforge.net), + Matthew Kendora, + neviksti + + DSP-3 emulator code + (c) Copyright 2003 - 2006 John Weidman, + Kris Bleakley, + Lancer, + z80 gaiden + + DSP-4 emulator code + (c) Copyright 2004 - 2006 Dreamer Nom, + John Weidman, + Kris Bleakley, + Nach, + z80 gaiden + + OBC1 emulator code + (c) Copyright 2001 - 2004 zsKnight, + pagefault (pagefault@zsnes.com), + Kris Bleakley + Ported from x86 assembler to C by sanmaiwashi + + SPC7110 and RTC C++ emulator code used in 1.39-1.51 + (c) Copyright 2002 Matthew Kendora with research by + zsKnight, + John Weidman, + Dark Force + + SPC7110 and RTC C++ emulator code used in 1.52+ + (c) Copyright 2009 byuu, + neviksti + + S-DD1 C emulator code + (c) Copyright 2003 Brad Jorsch with research by + Andreas Naive, + John Weidman + + S-RTC C emulator code + (c) Copyright 2001 - 2006 byuu, + John Weidman + + ST010 C++ emulator code + (c) Copyright 2003 Feather, + John Weidman, + Kris Bleakley, + Matthew Kendora + + Super FX x86 assembler emulator code + (c) Copyright 1998 - 2003 _Demo_, + pagefault, + zsKnight + + Super FX C emulator code + (c) Copyright 1997 - 1999 Ivar, + Gary Henderson, + John Weidman + + Sound emulator code used in 1.5-1.51 + (c) Copyright 1998 - 2003 Brad Martin + (c) Copyright 1998 - 2006 Charles Bilyue' + + Sound emulator code used in 1.52+ + (c) Copyright 2004 - 2007 Shay Green (gblargg@gmail.com) + + SH assembler code partly based on x86 assembler code + (c) Copyright 2002 - 2004 Marcus Comstedt (marcus@mc.pp.se) + + 2xSaI filter + (c) Copyright 1999 - 2001 Derek Liauw Kie Fa + + HQ2x, HQ3x, HQ4x filters + (c) Copyright 2003 Maxim Stepin (maxim@hiend3d.com) + + NTSC filter + (c) Copyright 2006 - 2007 Shay Green + + GTK+ GUI code + (c) Copyright 2004 - 2010 BearOso + + Win32 GUI code + (c) Copyright 2003 - 2006 blip, + funkyass, + Matthew Kendora, + Nach, + nitsuja + (c) Copyright 2009 - 2010 OV2 + + Mac OS GUI code + (c) Copyright 1998 - 2001 John Stiles + (c) Copyright 2001 - 2010 zones + + + Specific ports contains the works of other authors. See headers in + individual files. + + + Snes9x homepage: http://www.snes9x.com/ + + Permission to use, copy, modify and/or distribute Snes9x in both binary + and source form, for non-commercial purposes, is hereby granted without + fee, providing that this license information and copyright notice appear + with all copies and any derived work. + + This software is provided 'as-is', without any express or implied + warranty. In no event shall the authors be held liable for any damages + arising from the use of this software or it's derivatives. + + Snes9x is freeware for PERSONAL USE only. Commercial users should + seek permission of the copyright holders first. Commercial use includes, + but is not limited to, charging money for Snes9x or software derived from + Snes9x, including Snes9x or derivatives in commercial game bundles, and/or + using Snes9x as a promotion for your commercial product. + + The copyright holders request that bug fixes and improvements to the code + should be forwarded to them so everyone can benefit from the modifications + in future versions. + + Super NES and Super Nintendo Entertainment System are trademarks of + Nintendo Co., Limited and its subsidiary companies. + + + 560 + 448 + About Snes9x + normal + True + + + True + 2 + + + True + 5 + + + True + 5 + + + True + gtk-missing-image + + + + + False + 0 + + + + + True + 0 + 10 + 10 + label106 + True + center + True + + + False + 1 + + + + + True + queue + + + True + True + automatic + + + True + True + False + False + textbuffer1 + + + + + + + 2 + + + + + 0 + + + + + True + end + + + gtk-close + True + True + True + False + True + + + False + False + 0 + + + + + False + end + 1 + + + + + + button15 +