GTK/X11 Port (aka Linux/UNIX GUI)
-
- Snes9x White Belt
- Posts: 3
- Joined: Wed Nov 12, 2008 1:41 pm
Sorry. I forgot to add my configuration:
$ uname -a
Linux tinaco 2.6.27-8-generic #1 SMP Thu Nov 6 17:38:14 UTC 2008 x86_64 GNU/Linux
$gcc --version
gcc (Ubuntu 4.3.2-1ubuntu11) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ uname -a
Linux tinaco 2.6.27-8-generic #1 SMP Thu Nov 6 17:38:14 UTC 2008 x86_64 GNU/Linux
$gcc --version
gcc (Ubuntu 4.3.2-1ubuntu11) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Re: GTK/X11 Port (aka Linux/UNIX GUI)
Thanks for the report. I must not have gotten all the XV configurability transferred over. I suspect if you try again from a clean build after installing libxv-dev you shouldn't have to add the -lXv flag, but you did indirectly hit a bug. This should be fixed in the next revision.strangeryf wrote:Hi BearOso,
I downloaded the Nov. 11 2008 build, and successfully built it in my Kubuntu 8.10 amd64 PC. Thanks a lot for your great work!! It's much more convenient than snes9express.
I followed the instruction "./configure --with-opengl" and "make". In addition to the dependencies you listed, I had to install "intltool" and "libxv-dev". At the end of building, I have to manually add -lXv to get the snes9x-gtk binary. Guess this may only apply to Kubuntu 8.10. The configure file is too difficult for me to decode, but I did find the lines to check libxv, so I am wondering why the automake failed to add -lxv in the final linking.
*edit* Said fix is posted.
-
- Snes9x White Belt
- Posts: 7
- Joined: Thu Oct 16, 2008 1:05 am
Hey when I try and compile the new 58 release on Fedora 9 for x86 I get an error as follows:
The same thing appears when I try and compile without opengl or without assembler but instead of osnes9x it says snes9x.
Code: Select all
[Juan@localhost snes9x-1.51-src]$ ./configure --with-gtk --with-opengl --with-netplay --prefix=/usr
......(compiling with a lot of warnings).......
make: *** No rule to make target `unix/unix.o', needed by `osnes9x'. Stop.
You need to cd to the gtk directory and run the configure script that's located inside that directory instead. That should be the only change you'll need to compile with the new build scripts.uncholowapo wrote:Hey when I try and compile the new 58 release on Fedora 9 for x86 I get an error as follows:The same thing appears when I try and compile without opengl or without assembler but instead of osnes9x it says snes9x.Code: Select all
[Juan@localhost snes9x-1.51-src]$ ./configure --with-gtk --with-opengl --with-netplay --prefix=/usr ......(compiling with a lot of warnings)....... make: *** No rule to make target `unix/unix.o', needed by `osnes9x'. Stop.
-
- Snes9x White Belt
- Posts: 3
- Joined: Wed Nov 12, 2008 1:41 pm
Re: GTK/X11 Port (aka Linux/UNIX GUI)
As you predicted, I configured with "./configure --with-gtk --with-opengl --with-netplay", cleaned the old objects, and rebuilt version 57. It compiles well.BearOso wrote:Thanks for the report. I must not have gotten all the XV configurability transferred over. I suspect if you try again from a clean build after installing libxv-dev you shouldn't have to add the -lXv flag, but you did indirectly hit a bug. This should be fixed in the next revision.strangeryf wrote:Hi BearOso,
I downloaded the Nov. 11 2008 build, and successfully built it in my Kubuntu 8.10 amd64 PC. Thanks a lot for your great work!! It's much more convenient than snes9express.
I followed the instruction "./configure --with-opengl" and "make". In addition to the dependencies you listed, I had to install "intltool" and "libxv-dev". At the end of building, I have to manually add -lXv to get the snes9x-gtk binary. Guess this may only apply to Kubuntu 8.10. The configure file is too difficult for me to decode, but I did find the lines to check libxv, so I am wondering why the automake failed to add -lxv in the final linking.
*edit* Said fix is posted.
I tried version 58. There is no problem found

-
- Snes9x White Belt
- Posts: 7
- Joined: Thu Oct 16, 2008 1:05 am
Cool thanks for the tip. Had to remodify my spec file a little bit to get used to the new locationYou need to cd to the gtk directory and run the configure script that's located inside that directory instead. That should be the only change you'll need to compile with the new build scripts.


There's many things you can try for that.Ikki wrote:Hi BearOso,
I've just installed your awesome port on my Ubuntu Hardy machine (.deb source - version 58, I couldn't build it from patch). Everything works fine except the analog controls / joypad. I can't use the direction buttons or gamepad's joystick at all.
Any clues?
First, make sure you don't use jscalibrator or Ubuntu's joystick calibrator. These will mess up the kernel calibration for the joystick. If you have a .joystick file in your home directory, delete it and reboot your system.
Second, you can run the calibrator built into Snes9x. You can find it at Preferences->SNES Joypads->Joystick Options. This will measure the maximum values of the directional axes, so if they're lower than usual, it can accommodate.
Third, lower the joystick threshold in Preferences->SNES Joypads->Joystick Options and hit apply. This will make Snes9x more sensitive to directional axis motion.
If none of these fix your problem, and the joystick works fine in other apps, post your gamepad model and your ~/.snes9x/snes9x.xml file after you've run a calibration, and I'll see what I can do.
-
- Snes9x White Belt
- Posts: 7
- Joined: Thu Oct 16, 2008 1:05 am
Updated my rpm for Fedora 10. Here it is.
Finally got it working! You were right, jscalibrator messed up everything. Now things are working just nice.BearOso wrote:There's many things you can try for that.Ikki wrote:Hi BearOso,
I've just installed your awesome port on my Ubuntu Hardy machine (.deb source - version 58, I couldn't build it from patch). Everything works fine except the analog controls / joypad. I can't use the direction buttons or gamepad's joystick at all.
Any clues?
First, make sure you don't use jscalibrator or Ubuntu's joystick calibrator. These will mess up the kernel calibration for the joystick. If you have a .joystick file in your home directory, delete it and reboot your system.
Second, you can run the calibrator built into Snes9x. You can find it at Preferences->SNES Joypads->Joystick Options. This will measure the maximum values of the directional axes, so if they're lower than usual, it can accommodate.
Third, lower the joystick threshold in Preferences->SNES Joypads->Joystick Options and hit apply. This will make Snes9x more sensitive to directional axis motion.
If none of these fix your problem, and the joystick works fine in other apps, post your gamepad model and your ~/.snes9x/snes9x.xml file after you've run a calibration, and I'll see what I can do.
You should advise people not to use it on your OP. Just a suggestion.
Thanks!
Is snes9x-gtk set up to take joystick input from /dev/js0? I know a lot of distros use /dev/input/js0 nowadays, and I don't see any preferences to specify joystick device.
Anyway, I haven't used jscalibrator to my knowledge (no .joystick). My gamepad responds fine, however (I get output for all the buttons when running jstest --event /dev/js0), and is set up correctly. I'm using a Gravis gamepad pro USB.
I don't get any response from the gamepad when I try to set buttons for it through the GUI. Here's my conf:
Anyway, I haven't used jscalibrator to my knowledge (no .joystick). My gamepad responds fine, however (I get output for all the buttons when running jstest --event /dev/js0), and is set up correctly. I'm using a Gravis gamepad pro USB.
I don't get any response from the gamepad when I try to set buttons for it through the GUI. Here's my conf:
Code: Select all
<snes9x>
-
<preferences>
<option name="full_screen_on_open" value="0"/>
<option name="change_display_resolution" value="0"/>
<option name="video_mode" value="0"/>
<option name="scale_to_fit" value="1"/>
<option name="maintain_aspect_ratio" value="0"/>
<option name="scale_method" value="0"/>
<option name="overscan" value="0"/>
<option name="force_hires" value="0"/>
<option name="force_inverted_byte_order" value="0"/>
<option name="data_location" value="0"/>
<option name="multithreading" value="0"/>
<option name="last_directory" value="/home/fnor/ROMs/SNES"/>
<option name="custom_sram_directory" value=""/>
<option name="window_width" value="512"/>
<option name="window_height" value="494"/>
<option name="preferences_width" value="507"/>
<option name="preferences_height" value="480"/>
<option name="pause_emulation_on_switch" value="0"/>
<option name="num_threads" value="2"/>
<option name="default_esc_behavior" value="1"/>
<option name="prevent_screensaver" value="0"/>
<option name="fullscreen" value="0"/>
<option name="ui_visible" value="1"/>
<option name="statusbar_visible" value="1"/>
<option name="ntsc_format" value="1"/>
<option name="ntsc_hue" value="0.000000"/>
<option name="ntsc_saturation" value="0.000000"/>
<option name="ntsc_contrast" value="0.000000"/>
<option name="ntsc_brightness" value="0.000000"/>
<option name="ntsc_sharpness" value="0.000000"/>
<option name="ntsc_warping" value="0.000000"/>
<option name="ntsc_scanline_intensity" value="1"/>
<option name="hw_accel" value="1"/>
<option name="bilinear_filter" value="0"/>
<option name="sync_to_vblank" value="1"/>
<option name="use_pbos" value="1"/>
<option name="pbo_format" value="0"/>
<option name="npot_textures" value="0"/>
<option name="netplay_is_server" value="1"/>
<option name="netplay_sync_reset" value="0"/>
<option name="netplay_send_rom" value="1"/>
<option name="netplay_default_port" value="6096"/>
<option name="netplay_max_frame_loss" value="60"/>
<option name="netplay_last_port" value="6096"/>
<option name="netplay_last_rom" value="/home/fnor/ROMs/SNES/Street Fighter 2 Turbo.smc"/>
<option name="netplay_last_host" value="99.246.206.2"/>
<option name="mute_sound" value="0"/>
<option name="sound_buffer_size" value="32"/>
<option name="transparency" value="1"/>
<option name="show_frame_rate" value="0"/>
<option name="frameskip" value="200"/>
<option name="save_sram_after_secs" value="0"/>
<option name="16bit_sound" value="1"/>
<option name="stereo" value="1"/>
<option name="reverse_stereo" value="0"/>
<option name="gaussian_interpolation" value="1"/>
<option name="envelope_reading" value="0"/>
<option name="sound_echo" value="1"/>
<option name="master_volume" value="0"/>
<option name="playback_rate" value="5"/>
<option name="sound_decoder" value="0"/>
<option name="speedhacks" value="0"/>
<option name="hdma" value="1"/>
<option name="block_invalid_vram_access" value="1"/>
<option name="upanddown" value="0"/>
</preferences>
-
<controls>
-
<joypad number="0">
<binding name="Up" binding="268500818"/>
<binding name="Down" binding="268500820"/>
<binding name="Left" binding="268500817"/>
<binding name="Right" binding="268500819"/>
<binding name="Start" binding="268500749"/>
<binding name="Select" binding="268435548"/>
<binding name="A" binding="268435576"/>
<binding name="B" binding="268435578"/>
<binding name="X" binding="268435571"/>
<binding name="Y" binding="268435553"/>
<binding name="L" binding="268435569"/>
<binding name="R" binding="268435575"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
-
<joypad number="1">
<binding name="Up" binding="0"/>
<binding name="Down" binding="0"/>
<binding name="Left" binding="0"/>
<binding name="Right" binding="0"/>
<binding name="Start" binding="0"/>
<binding name="Select" binding="0"/>
<binding name="A" binding="0"/>
<binding name="B" binding="0"/>
<binding name="X" binding="0"/>
<binding name="Y" binding="0"/>
<binding name="L" binding="0"/>
<binding name="R" binding="0"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
-
<joypad number="2">
<binding name="Up" binding="0"/>
<binding name="Down" binding="0"/>
<binding name="Left" binding="0"/>
<binding name="Right" binding="0"/>
<binding name="Start" binding="0"/>
<binding name="Select" binding="0"/>
<binding name="A" binding="0"/>
<binding name="B" binding="0"/>
<binding name="X" binding="0"/>
<binding name="Y" binding="0"/>
<binding name="L" binding="0"/>
<binding name="R" binding="0"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
-
<joypad number="3">
<binding name="Up" binding="0"/>
<binding name="Down" binding="0"/>
<binding name="Left" binding="0"/>
<binding name="Right" binding="0"/>
<binding name="Start" binding="0"/>
<binding name="Select" binding="0"/>
<binding name="A" binding="0"/>
<binding name="B" binding="0"/>
<binding name="X" binding="0"/>
<binding name="Y" binding="0"/>
<binding name="L" binding="0"/>
<binding name="R" binding="0"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
-
<joypad number="4">
<binding name="Up" binding="0"/>
<binding name="Down" binding="0"/>
<binding name="Left" binding="0"/>
<binding name="Right" binding="0"/>
<binding name="Start" binding="0"/>
<binding name="Select" binding="0"/>
<binding name="A" binding="0"/>
<binding name="B" binding="0"/>
<binding name="X" binding="0"/>
<binding name="Y" binding="0"/>
<binding name="L" binding="0"/>
<binding name="R" binding="0"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
-
<joypad number="5">
<binding name="Up" binding="0"/>
<binding name="Down" binding="0"/>
<binding name="Left" binding="0"/>
<binding name="Right" binding="0"/>
<binding name="Start" binding="0"/>
<binding name="Select" binding="0"/>
<binding name="A" binding="0"/>
<binding name="B" binding="0"/>
<binding name="X" binding="0"/>
<binding name="Y" binding="0"/>
<binding name="L" binding="0"/>
<binding name="R" binding="0"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
-
<joypad number="6">
<binding name="Up" binding="0"/>
<binding name="Down" binding="0"/>
<binding name="Left" binding="0"/>
<binding name="Right" binding="0"/>
<binding name="Start" binding="0"/>
<binding name="Select" binding="0"/>
<binding name="A" binding="0"/>
<binding name="B" binding="0"/>
<binding name="X" binding="0"/>
<binding name="Y" binding="0"/>
<binding name="L" binding="0"/>
<binding name="R" binding="0"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
-
<joypad number="7">
<binding name="Up" binding="0"/>
<binding name="Down" binding="0"/>
<binding name="Left" binding="0"/>
<binding name="Right" binding="0"/>
<binding name="Start" binding="0"/>
<binding name="Select" binding="0"/>
<binding name="A" binding="0"/>
<binding name="B" binding="0"/>
<binding name="X" binding="0"/>
<binding name="Y" binding="0"/>
<binding name="L" binding="0"/>
<binding name="R" binding="0"/>
<binding name="Turbo A" binding="0"/>
<binding name="Turbo B" binding="0"/>
<binding name="Turbo X" binding="0"/>
<binding name="Turbo Y" binding="0"/>
<binding name="Turbo L" binding="0"/>
<binding name="Turbo R" binding="0"/>
<binding name="Sticky A" binding="0"/>
<binding name="Sticky B" binding="0"/>
<binding name="Sticky X" binding="0"/>
<binding name="Sticky Y" binding="0"/>
<binding name="Sticky L" binding="0"/>
<binding name="Sticky R" binding="0"/>
</joypad>
<binding name="GTK_open_rom" binding="0"/>
<binding name="EmuTurbo" binding="0"/>
<binding name="ToggleEmuTurbo" binding="0"/>
<binding name="GTK_pause" binding="268435568"/>
<binding name="DecFrameRate" binding="0"/>
<binding name="IncFrameRate" binding="0"/>
<binding name="DecFrameTime" binding="0"/>
<binding name="IncFrameTime" binding="0"/>
<binding name="Reset" binding="0"/>
<binding name="SoftReset" binding="0"/>
<binding name="GTK_quit" binding="0"/>
<binding name="ToggleBG0" binding="0"/>
<binding name="ToggleBG1" binding="0"/>
<binding name="ToggleBG2" binding="0"/>
<binding name="ToggleBG3" binding="0"/>
<binding name="ToggleSprites" binding="0"/>
<binding name="BGLayeringHack" binding="0"/>
<binding name="Screenshot" binding="0"/>
<binding name="GTK_fullscreen" binding="0"/>
<binding name="QuickSave000" binding="0"/>
<binding name="QuickSave001" binding="0"/>
<binding name="QuickSave002" binding="0"/>
<binding name="QuickSave003" binding="0"/>
<binding name="QuickSave004" binding="0"/>
<binding name="QuickSave005" binding="0"/>
<binding name="QuickSave006" binding="0"/>
<binding name="QuickSave007" binding="0"/>
<binding name="QuickSave008" binding="0"/>
<binding name="QuickLoad000" binding="0"/>
<binding name="QuickLoad001" binding="0"/>
<binding name="QuickLoad002" binding="0"/>
<binding name="QuickLoad003" binding="0"/>
<binding name="QuickLoad004" binding="0"/>
<binding name="QuickLoad005" binding="0"/>
<binding name="QuickLoad006" binding="0"/>
<binding name="QuickLoad007" binding="0"/>
<binding name="QuickLoad008" binding="0"/>
<binding name="SoundChannel0" binding="0"/>
<binding name="SoundChannel1" binding="0"/>
<binding name="SoundChannel2" binding="0"/>
<binding name="SoundChannel3" binding="0"/>
<binding name="SoundChannel4" binding="0"/>
<binding name="SoundChannel5" binding="0"/>
<binding name="SoundChannel6" binding="0"/>
<binding name="SoundChannel7" binding="0"/>
<binding name="SoundChannelsOn" binding="0"/>
<binding name="InterpolateSound" binding="0"/>
<binding name="GTK_save_spc" binding="0"/>
<binding name="BeginRecordingMovie" binding="0"/>
<binding name="EndRecordingMovie" binding="0"/>
<binding name="LoadMovie" binding="0"/>
<binding name="GTK_seek_to_frame" binding="0"/>
</controls>
</snes9x>
The Gamepad Pro USB is one of the controllers I tested on, so it should work. Both /dev/js* and /dev/input/js* are checked, so that's not the problem.Fnor wrote:Is snes9x-gtk set up to take joystick input from /dev/js0? I know a lot of distros use /dev/input/js0 nowadays, and I don't see any preferences to specify joystick device.
Anyway, I haven't used jscalibrator to my knowledge (no .joystick). My gamepad responds fine, however (I get output for all the buttons when running jstest --event /dev/js0), and is set up correctly. I'm using a Gravis gamepad pro USB.
I don't get any response from the gamepad when I try to set buttons for it through the GUI. Here's my conf:
Are you sure your Snes9x build is compiled with joystick support? See Preferences->Version Info, and look for "Joystick" in the "Features enabled" tag. If you built it yourself, you need to make sure you have SDL and it's development libraries available when building joystick support.
Thanks, BearOso. I recompiled and it worked. You might want to check the default configure, though. ./configure --help says that joystick is configured by default, so when I did my first compile I left out --with-joystick because I thought it was enabled by default.
But it works now! Thanks so much. Would clip my previous post, but there doesn't seem to be an edit function. C'est la vie.
But it works now! Thanks so much. Would clip my previous post, but there doesn't seem to be an edit function. C'est la vie.
I've checked, and the default is indeed with joystick support. But the message when it is automatically disabled because it can't find dependencies is subtle and easily might have scrolled past you during configure. I'll try to make it more noticeable for future releases.Fnor wrote:Thanks, BearOso. I recompiled and it worked. You might want to check the default configure, though. ./configure --help says that joystick is configured by default, so when I did my first compile I left out --with-joystick because I thought it was enabled by default.
But it works now! Thanks so much. Would clip my previous post, but there doesn't seem to be an edit function. C'est la vie.
Revision 59
A new version is posted. It will notify at the end of configure if any of the default or selected optional features couldn't be enabled. It also contains functions to swap and reset whole controller button sets in preferences.
There's also a new scanlines filter that doesn't darken the image. I may or may not apply this feature to the NTSC scanline code, because it's slightly more CPU intensive, and the NTSC filter already has manual gamma controls that can alleviate the darkening effect.
There's also a new scanlines filter that doesn't darken the image. I may or may not apply this feature to the NTSC scanline code, because it's slightly more CPU intensive, and the NTSC filter already has manual gamma controls that can alleviate the darkening effect.
Thanks again for all your great work. One observation and one question:
Obeservation: the binary will not function as a server unless "send ROM image to client" is checked. Connections will simply be refused without this option, instead of requesting the remote client to locate a file with the same header (the windows behavior). I suspect something might be mixed up in the frontend code that silently screws up to make the server unreachable.
Question: Your frontend changes the input menu from the windows layout. In particular, you have two controller ports with options for input devices, like the multitap. Earlier, I started as a server, started the ROM, tried every combination of joypad/multitaps between the two console ports (resetting the system after each change). No matter what I did, the third remote client had no control. FFVI, which had multitap support, only showed 2 controllers rather than the 4 it should have recognized if the multitap was recognized.
So my questions is, how do we get multitaps to work, and if they do work, is it only local, or can they work over the network/
Thanks again. Going to try working on an OS X build of this excellent program tomorrow (to allow OS X users to run compatable netcode).
Obeservation: the binary will not function as a server unless "send ROM image to client" is checked. Connections will simply be refused without this option, instead of requesting the remote client to locate a file with the same header (the windows behavior). I suspect something might be mixed up in the frontend code that silently screws up to make the server unreachable.
Question: Your frontend changes the input menu from the windows layout. In particular, you have two controller ports with options for input devices, like the multitap. Earlier, I started as a server, started the ROM, tried every combination of joypad/multitaps between the two console ports (resetting the system after each change). No matter what I did, the third remote client had no control. FFVI, which had multitap support, only showed 2 controllers rather than the 4 it should have recognized if the multitap was recognized.
So my questions is, how do we get multitaps to work, and if they do work, is it only local, or can they work over the network/
Thanks again. Going to try working on an OS X build of this excellent program tomorrow (to allow OS X users to run compatable netcode).
The ROM's header isn't properly included in the netplay header. If you check, the Windows version asks you to load a ROM afterward, no matter the case, because the checksum never matches. I haven't investigated yet to figure out why, but it's in the core's netplay code. If you're not using "Send ROM image to client", just make sure you've got the right rom in the netplay dialog box.Fnor wrote:Thanks again for all your great work. One observation and one question:
Obeservation: the binary will not function as a server unless "send ROM image to client" is checked. Connections will simply be refused without this option, instead of requesting the remote client to locate a file with the same header (the windows behavior). I suspect something might be mixed up in the frontend code that silently screws up to make the server unreachable.
I know that's probably screwed up on my part. The only feasible multitap configuration on a real snes was a real controller in port 1 (0), multitap in port 2 (1 2 3 4), and my code sets the multitap for port 2 incorrectly (4 5 6 7). I'll try to fix this later today.Question: Your frontend changes the input menu from the windows layout. In particular, you have two controller ports with options for input devices, like the multitap. Earlier, I started as a server, started the ROM, tried every combination of joypad/multitaps between the two console ports (resetting the system after each change). No matter what I did, the third remote client had no control. FFVI, which had multitap support, only showed 2 controllers rather than the 4 it should have recognized if the multitap was recognized.
So my questions is, how do we get multitaps to work, and if they do work, is it only local, or can they work over the network/
*edit* I've posted a new revision. Try using controller in port 1 and multitap in port 2.
*edit again* And it seems I've also broken something with NetPlay hosting without "Send ROM image to client" enabled in recent releases. So I see what you mean now. Without this box, the server seems to be neglecting to enter NetPlay mode at all, let alone accepting client connections. I'll try to get this fixed, too.
*edit yet again* Ok. I know what's going wrong. In revision 57, I started using a new build system without a patch, and this left out my fix to the core's netplay to prevent the never-succeeding checksum from killing the connection. Revision 61 should fix this.
-
- Snes9x Brown Belt
- Posts: 1158
- Joined: Mon Jan 10, 2005 6:34 am
FFVI does not have multitap support. It can do 2-players (but it is a weak attempt at best).Fnor wrote:Question: Your frontend changes the input menu from the windows layout. In particular, you have two controller ports with options for input devices, like the multitap. Earlier, I started as a server, started the ROM, tried every combination of joypad/multitaps between the two console ports (resetting the system after each change). No matter what I did, the third remote client had no control. FFVI, which had multitap support, only showed 2 controllers rather than the 4 it should have recognized if the multitap was recognized.
-
- Snes9x White Belt
- Posts: 7
- Joined: Thu Oct 16, 2008 1:05 am
Hey I am having a problem compiling the latest release ()1.51.61) on PPC. I know it's an arch issue because it compiles cleanly on my laptop. Anyways I disable opengl and don't use the assembler because it is on linux on my PS3 and it doesn't have access to the GPU. Here is the error message when I compile:
And I use this for the configure process:
Code: Select all
/usr/include/X11/extensions/Xrandr.h:88: error: 'Connection' does not name a type
/usr/include/X11/extensions/Xrandr.h:251: error: 'Connection' does not name a type
/usr/include/X11/extensions/Xrandr.h:88: error: 'Connection' does not name a type
/usr/include/X11/extensions/Xrandr.h:251: error: 'Connection' does not name a type
make[1]: *** [snes9x_gtk-gtk_binding.o] Error 1
make[1]: *** Waiting for unfinished jobs....
src/gtk_cheat.cpp:197: warning: unused parameter 'button'
src/gtk_cheat.cpp:203: warning: unused parameter 'button'
src/gtk_cheat.cpp:211: warning: unused parameter 'cell_renderer'
make[1]: *** [snes9x_gtk-gtk_cheat.o] Error 1
dxmv -f .deps/snes9x_gtk-filter_hq2x.Tpo .deps/snes9x_gtk-filter_hq2x.Po
make[1]: Leaving directory `/home/Juan/rpmbuild/BUILD/snes9x-1.51-src/gtk'
make: *** [all-recursive] Error 1
Code: Select all
./configure --with-netplay --with-gtk --without-opengl --without-assembler