GTK/X11 Port (aka Linux/UNIX GUI)

This is for people involved in the developement of Snes9x, or SNES emulators in general.
BUG REPORTS BELONG IN TECH SUPPORT/BUG TRACKING!
Enji
Snes9x White Belt
Posts: 5
Joined: Sun Jan 06, 2008 2:15 pm

Post by Enji »

OpenGL works! Thank you very much! Ummm the pixel shaders cause crashes though. Here's my backtrace for those:

#0 0x01b40f10 in ?? ()
#1 0x00192cf7 in gdk_gl_get_proc_address ()
from /usr/lib/libgdkglext-x11-1.0.so.0
#2 0x082ca270 in S9xOpenGLDisplayDriver::opengl_defaults (this=0x8a16008)
at gtk/gtk_display_driver_opengl.cpp:520
#3 0x082ca560 in S9xOpenGLDisplayDriver::init (this=0x8a16008)
at gtk/gtk_display_driver_opengl.cpp:709
#4 0x0825255a in S9xInitDriver () at gtk/gtk_display.cpp:813
#5 0x08254650 in Snes9xPreferences::get_settings_from_dialog (this=0x886d900)
at gtk/gtk_preferences.cpp:912
#6 0x082549f0 in Snes9xPreferences::show (this=0x886d900)
at gtk/gtk_preferences.cpp:1006
#7 0x08254d6b in snes9x_preferences_open (widget=0x85e5708, data=0x8572a48)
at gtk/gtk_preferences.cpp:244
#8 0x057f9409 in g_cclosure_marshal_VOID__VOID ()
from /lib/libgobject-2.0.so.0
#9 0x057ebf83 in g_closure_invoke () from /lib/libgobject-2.0.so.0
#10 0x057fc48d in ?? () from /lib/libgobject-2.0.so.0
#11 0x057fd997 in g_signal_emit_valist () from /lib/libgobject-2.0.so.0
#12 0x057fdb59 in g_signal_emit () from /lib/libgobject-2.0.so.0
#13 0x0721dcd9 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x070ab74a in gtk_menu_shell_activate_item ()
from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#15 0x070aa229 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x085da500 in ?? ()
#17 0x085e5708 in ?? ()
#18 0x00000001 in ?? ()
#19 0x05808891 in g_type_check_instance_cast () from /lib/libgobject-2.0.so.0
#20 0x0709d6b8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#21 0x085da500 in ?? ()
#22 0x08567288 in ?? ()
#23 0xbfe8ac48 in ?? ()
#24 0x05822674 in ?? () from /lib/libgobject-2.0.so.0
#25 0xbfe8aee0 in ?? ()
#26 0x08575e30 in ?? ()
#27 0xbfe8ac48 in ?? ()
#28 0x057e92f1 in g_value_get_boxed () from /lib/libgobject-2.0.so.0
#29 0x07092030 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#30 0x085da500 in ?? ()
#31 0x08567288 in ?? ()
#32 0x0856a3c8 in ?? ()
#33 0x05822674 in ?? () from /lib/libgobject-2.0.so.0
#34 0x0709d530 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#35 0x08575e30 in ?? ()
#36 0x085da500 in ?? ()
#37 0x0856a3c8 in ?? ()
---Type <return> to continue, or q <return> to quit---
#38 0xbfe8aecc in ?? ()
#39 0x08576928 in ?? ()
#40 0xbfe8acb8 in ?? ()
#41 0x00000001 in ?? ()
#42 0x05822674 in ?? () from /lib/libgobject-2.0.so.0
#43 0xbfe8aecc in ?? ()
#44 0xbfe8acb8 in ?? ()
#45 0x057ea779 in ?? () from /lib/libgobject-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
User avatar
BearOso
Official GTK/Linux Porter/Dev
Posts: 460
Joined: Tue Oct 02, 2007 12:50 am

Post by BearOso »

I've put up a new version, 11. Hopefully the new stuff is stabilized after a buggy series of version 10 snapshots.
Enji
Snes9x White Belt
Posts: 5
Joined: Sun Jan 06, 2008 2:15 pm

Post by Enji »

Nice release man! No more issues I've come across; works like a charm now
User avatar
BearOso
Official GTK/Linux Porter/Dev
Posts: 460
Joined: Tue Oct 02, 2007 12:50 am

Post by BearOso »

Newer revision is posted. This adds a slightly confusing way of setting individual thresholds for joystick axes. I might have a better way of doing this in a future release.
User avatar
BearOso
Official GTK/Linux Porter/Dev
Posts: 460
Joined: Tue Oct 02, 2007 12:50 am

Post by BearOso »

New version with just a fix for a bug no one would likely have noticed. :-)
Aisyk
Snes9x White Belt
Posts: 2
Joined: Sun Jan 20, 2008 1:17 pm
Location: Lyon, France

save states ?

Post by Aisyk »

Hi, thanks for this great frontend, very good work !

Although, save states or saves in game (like on real snes) seems not functioning, is it feature planned for the future, or a miss ?
Deathlike2
Snes9x Brown Belt
Posts: 1158
Joined: Mon Jan 10, 2005 6:34 am

Post by Deathlike2 »

Saves and savestates should work, unless you are preventing them from being created on your end.
User avatar
BearOso
Official GTK/Linux Porter/Dev
Posts: 460
Joined: Tue Oct 02, 2007 12:50 am

Re: save states ?

Post by BearOso »

Aisyk wrote:Hi, thanks for this great frontend, very good work !

Although, save states or saves in game (like on real snes) seems not functioning, is it feature planned for the future, or a miss ?
The main issues where the in-game saves won't save properly are if the application crashes or the destination is read-only. You might want to check where you're trying to save them using the "Files" tab in the Preferences window. If it tries to save to a write-protected location or a CD, for instance, it will quietly fail.

As for the save states, unlike the regular unix port there are no default keyboard shortcuts set up for them. You might need to set them in the preferences dialog. If you're using the menus and are still experiencing problems, try using the "To File" and "From File" options to save to a location you know you're able to.
Aisyk
Snes9x White Belt
Posts: 2
Joined: Sun Jan 20, 2008 1:17 pm
Location: Lyon, France

Post by Aisyk »

thanks !

Problem was effectively a "rights problem", the location ".snes9x" was "rooted" ;)

Resolved now.
LiquidAcid
Snes9x White Belt
Posts: 3
Joined: Wed Jan 23, 2008 5:53 pm

Post by LiquidAcid »

Hi there,

I have some problems with this port, specifically with audio output. I've installed a recent portaudio-19 version (pre 20071207 from gentoo portage) and build snes9x-gtk. No build errors during the process (configure --with-gtk --with-opengl) but the application does not start.

I only get four times this output:
*** PULSEAUDIO: Unable to connect: Connection refused

(nothing after that, I have to kill the app via PID)

So it seems lilke portaudio selects pulseaudio as the primary host-API it uses. I've got pulseaudio installed on the machine, but I rarely use it. Especially not when doing something locally (I only use it so remote clients can connect, so the server isn't up 99% of the time anyway).

I searched in the portaudio wiki but I can't seem to find a method to switch the host-API that's selected on startup. No configfile is created in the home directory and the wiki doesn't even mention one. Only the snes9x.xml file in .snes9x is created, but it doesn't contain any config option that relates to portaudio. Disabling sound does not seem to work at all, portaudio still tries to initialize the device.

Could be please take a look what I could be doing wrong? Maybe using some wrong PA version, etc. ??

Thanks,
liquid
LiquidAcid
Snes9x White Belt
Posts: 3
Joined: Wed Jan 23, 2008 5:53 pm

Post by LiquidAcid »

Problem solved. It seems that PA doesn't want to use the dmix ALSA device and tries to acquiere the hw:X,Y device. This didn't work because mozilla was open and was hogging the audio device. Closing any application using the dmix device freed the hw-device and PA works now.

Applications starts and works like expected.
User avatar
BearOso
Official GTK/Linux Porter/Dev
Posts: 460
Joined: Tue Oct 02, 2007 12:50 am

Post by BearOso »

Another version with a small fix is posted. Don't need to bother downloading if you weren't using individual joystick axis thresholds.
toaste
Snes9x White Belt
Posts: 1
Joined: Fri Feb 01, 2008 1:26 am

Post by toaste »

Excellent work here. This UI is leaps and bounds ahead of preexisting launchers/frontends. The only possible enhancement I can think of at the moment would be separating the preference for a custom game data directory to be more fine grained. For instance, configuring separate directories for SRAM, save states, and screenshots might be desired.

Thanks for an excellent UI patch!
User avatar
stevejesus
Snes9x White Belt
Posts: 24
Joined: Fri Feb 08, 2008 2:56 pm
Location: Indianapolis IN

Post by stevejesus »

Well, this looks really well. I want to try this. zsnes has fairly POOR audio performance on my new lappy which is a dual-core athlon 64. I never had such bad performance on my old Athlon XP... Anyhow... I am having trouble building this. It needs SDL for joystick support (which is necessary). I certainly so have it installed, with all other dependencies, but it doesn't seem to be able to find it when I run ./configure...

I am running Ubuntu Gutsy 64-bit. Any ideas?
User avatar
stevejesus
Snes9x White Belt
Posts: 24
Joined: Fri Feb 08, 2008 2:56 pm
Location: Indianapolis IN

Post by stevejesus »

Everything else proceeding that went just fine.

Code: Select all

checking for SDL_Init in -lSDL... no
Cannot find SDL. SDL is required for joystick support.

That is what I got.
User avatar
stevejesus
Snes9x White Belt
Posts: 24
Joined: Fri Feb 08, 2008 2:56 pm
Location: Indianapolis IN

Post by stevejesus »

Alright, looks like I only neglected to install the sdl dev libraries.

Now, I am ready to make, but it tell me that there is no make file...

There is however...
User avatar
BearOso
Official GTK/Linux Porter/Dev
Posts: 460
Joined: Tue Oct 02, 2007 12:50 am

Post by BearOso »

You should be able to build it without joystick support. Just specify --without-joystick to configure. Apparently, the original snes9x configure scripts enable joystick support by default. :roll:

Since you got past that particular hurdle, can you post more information or output from your current problem? The fact that make can't find the Makefile sounds most like a system-specific error. Have you tried to point at it with

Code: Select all

make -f Makefile
You should also check that the file "Makefile" actually has something in it.
jetfire4
Snes9x White Belt
Posts: 6
Joined: Sat Jan 05, 2008 2:20 am

problem with configuration on latest version

Post by jetfire4 »

I was able to configure and make version 11. But now I'm trying version 14 and my "export PKG_CONFIG=/usr/local/lib/pkgconfig" trick that worked before to get it done for me doesn't work anymore. I have Fedora 7 installed with all the software develpment packages installed from where you check that option on first install of Fedora. When the configuration checks for it after I enter the export command, it now complains that pkgconfig is a directory, which is what I had to set it to in order to get it to work before per another tech forum's advice. I have all the dependencies and got it to work before. Any ideas? Or am I going to have to stick with the older version 11.
jetfire4
Snes9x White Belt
Posts: 6
Joined: Sat Jan 05, 2008 2:20 am

another thing

Post by jetfire4 »

I forgot to include in my last message what this problem was all about in the first place. When I try to ./configure, it says "gtk+-2.0, gthread, gobject, libglade, and libxml" are missing when it checks for gtk. Blah, blah blah, I know I have them all installed by the book. And that was when I found the "export PKG_CONFIG=/usr/local/lib/pkgconfig" command that got it to work that doesn't anymore on this version.
jetfire4
Snes9x White Belt
Posts: 6
Joined: Sat Jan 05, 2008 2:20 am

continued

Post by jetfire4 »

It might also be because of an automatic update on my end too that changed it so that export command doesn't work.
Post Reply