BearOso wrote:
You probably didn't do a "make clean gtkclean" before trying to rebuild with different settings.

Wow, there's a cleaner-than-clean target? How confusing! Why isn't it part of the regular "make clean" process?
BearOso wrote:
Version 39 is posted. This fixes two extremely unlikely NULL dereferences that could have caused your problem (a new error message will indicate it).
Rebuilding with version 39, the sound now seems to work perfectly, although it prints this at startup:
Code:
Reading config file /etc/snes9x/snes9x.conf
Starting sound
Error getting device info from host api.
--> (ALSA : default)...Success
Thanks!
Of course, that just means I can start it up and find more bugs.

Since I've got an nVidia card, I have no hardware-accellerated OpenGL. However, for some reason I seem to have XVideo support (at least, Totem plays video full-screen with negligible CPU load) so I thought I'd try it with SNES9x. Bad idea:
Code:
The program 'snes9x-gtk' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
(Details: serial 3401 error_code 8 request_code 140 minor_code 13)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Specifically, this happens when I open the Preferences window, change "Hardware Accelleration" to "XVideo - Use hardware video blitter", then click OK.
When I follow the instructions (and install a bazillion debugging-information packages) I get this backtrace (abbreviated for legibility):
Code:
#0 gdk_x_error (display=0x108c7a18, error=0xffc31288)
at /build/buildd/gtk+2.0-2.12.11/gdk/x11/gdkmain-x11.c:614
#1 0x0eede1e0 in ?? () from /usr/lib/libSDL-1.2.so.0
#2 0x0efa17d4 in _XError (dpy=0x108c7a18, rep=0x10e48f20)
at ../../src/XlibInt.c:2912
#3 0x0efaa780 in process_responses (dpy=0x108c7a18, wait_for_first_event=0,
current_error=0xffc31358, current_request=10489) at ../../src/xcb_io.c:138
#4 0x0efaab44 in _XReply (dpy=0x108c7a18, rep=0xffc31398, extra=0, discard=1)
at ../../src/xcb_io.c:370
#5 0x0ef9be7c in XSync (dpy=0x108c7a18, discard=0) at ../../src/Sync.c:48
#6 0x0ef9c0a8 in _XSyncFunction (dpy=<value optimized out>)
at ../../src/Synchro.c:37
#7 0x0ee735f8 in XvSetPortAttribute (dpy=0x108c7a18, port=66, attribute=80,
value=1) at ../../src/Xv.c:726
#8 0x1027c1d0 in S9xXVDisplayDriver::init (this=0x10e4bdc8)
at gtk/gtk_display_driver_xv.cpp:497
#9 0x1020f864 in S9xInitDriver () at gtk/gtk_display.cpp:1528
#10 0x1020febc in S9xReinitDisplay () at gtk/gtk_display.cpp:1602
#11 0x10211b34 in Snes9xPreferences::get_settings_from_dialog (this=0x10c28900)
at gtk/gtk_preferences.cpp:731
#12 0x10212898 in Snes9xPreferences::show (this=0x10c28900)
at gtk/gtk_preferences.cpp:880
#13 0x10213364 in snes9x_preferences_open (widget=<value optimized out>,
data=0x10905300) at gtk/gtk_preferences.cpp:196
(all the stack-frames beyond this point are in the bowels of gobject, gtk, or glib).
Any ideas?