New version of snes9x out, 1.5 also includes "Add support for saner directory structures under Unix " which may be useful.
this is also supposed to work natively under amd64, finally bringing a good snes emulator to amd64.
attaching a nice, working ebuild would speed this along...
wonder if anyone tested this shit before "releasing" ... fails to build in a few places due to structure changes
Created attachment 93715 [details] snes9x-1.50.ebuild ebuild (depends on snes9x-1.50-{porting,build,config}.patch)
Created attachment 93716 [details, diff] files/snes9x-1.50-porting.patch
Created attachment 93717 [details, diff] files/snes9x-1.50-build.patch
Created attachment 93718 [details, diff] files/snes9x-1.50-config.patch
Sorry in advance for the long message (and doubly sorry if 4 attachments and the comment resulted in 5 emails to everyone). I have an ebuild, and I think it should definitely be attached to this bug for gentooers who want snes9x-1.5, but putting 1.5 in portage might be premature. Basically only the X11 target works in this version. svga, opengl, and ggi are confirmed broken (http://snes9x.com/phpbb2/viewtopic.php?t=2890) and I can tell that glide is too. Most will build but not work quite right when 1.51 comes out. Of these, we supported the opengl target (but no others). I'm still contributing an ebuild --- for my purposes 1.50 is still a huge improvement! --- which survived some playtesting on my laptop. (~x86, USE="joystick opengl zlib -debug -dga"; I also tested a build without the asm cores in lieu of trying on non-x86 architectures.) Patches which are still relevant have been updated. The build errors are fixed by new sed commands in the ebuild: one fixes an obvious screwup in offsets.cpp; the other *partially* fixes the opengl version: it builds and runs (quickly), but has obvious graphics glitches. In case anyone else spotted a "snes9x-1.5-linkage.patch" on the openSUSE mailing list (http://lists.opensuse.org/archive/opensuse-commit/2006-Jul/0322.html), it's irrelevant. (The only occurrence of dspemu2.c is a #include into a .cpp file... WTF) So for now the ebuild has a warning about osnes9x and is tagged as ~x86. It's supposed to run on at least ppc and amd64, but I can't test those.
Created attachment 93719 [details, diff] snes9x-1.50-porting.patch
Created attachment 93720 [details, diff] snes9x-1.50-build.patch
sorry, should have posted my patches earlier
Working on PPC for me but I get the same error with osnes9x as I got with version 1.43. X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 23 Current serial number in output stream: 24 Debian tackled that problem at http://lists.debian.org/debian-user/2002/07/msg03370.html but when I tried to apply their patch to 1.43, it still didn't work. But then I am trying to run it on pretty old hardware, an ATI Rage IIc using the mach64 driver.
Sorry wrong link. http://www.usenetlinux.com/archive/topic.php/t-477051.html From that page, it looks as though they didn't resolve it but their changelog seems to suggest that they did.
The opengl version doesn't work at all for me so that's why I haven't added this yet.
Thanks for the update. "It doesn't work" is a fair reason. =) Only time I'd expect the GL stuff to fail outright is if you can't supply a visual with 16 bpp, doublebuffering, and either truecolor or directcolor. (Reporter from the other thread could, and anyone who can run 1.43 with GL can too.) Can't reproduce any error myself, only minor (temporary) graphics glitches. Maybe 1.51 will add upstream GL support some time soon. It sounded likely 2 months ago... *shrug*
*** Bug 158248 has been marked as a duplicate of this bug. ***
Created attachment 104167 [details, diff] Duplicate, oops! This allows OpenGL to build. It's a patch I made essentially based on, what my friend told me, Arch Linux uses (Didn't look at it). I get the Badwindow thing with OpenGL though, so someone else might want to try. Thanks.
Created attachment 104168 [details, diff] snes9x-1.50-opengl.patch This allows OpenGL to build. It's a patch I made essentially based on, what my friend told me, Arch Linux uses (Didn't look at it). I get the Badwindow thing with OpenGL though, so someone else might want to try. Thanks.
If you unwind the way everything's defined, you'll see that the ebuild I posted has a sed line with the same effect. (Well, unless the extra pair of parentheses from the patch stops a compiler warning during build.) Regardless of which solution you like, the patch and the ebuild as posted won't work together. Your ability to reproduce the badwindow bug, if anything, sounds like a reason you're in a unique position to help fix it! =)
kyle@beast ~ $ osnes9x Super\ Ghouls\ \'N\ Ghosts\ \(E\).zip Controller Port 1: Pad 1 Controller Port 2: <none> Rate: 22050, Buffer size: 1024, 16-bit: yes, Stereo: no, Encoded: no Using ROM Super Ghouls and Ghosts (E).smc in Super Ghouls 'N Ghosts (E).zip Found ROM file header (and ignored it). "SUPER GHOULS'N GHOSTS" [checksum ok] LoROM, 8Mbits, Type: ROM only, Mode: 20, TV: PAL, S-RAM: 0KB, ROMId: Company: 01 CRC32: A00BC05E X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 22 Current serial number in output stream: 24 I really don't have the time to work on it myself; if you want information from me, then feel free to ask.
Created attachment 117159 [details] snes9x-1.50-r1.ebuild slight alteration for building under ppc64 I've tested this on the PS3 (64bit) seems to work okay (not sure about 32bit ppc) Looking at the Makefile, offset isn't always built for every arch
snes9x-1.5.1 out now.
I have an ebuild "ready" modulo testing. If others don't mind (i.e. aren't already at that point themselves) I'd like to claim this. Ebuild should be ready by this afternoon, except maybe with a temporary SRC_URI. Thanks. =)
This is undoubtedly a higher-quality release than 1.5 was. The current ebuild worked with "+dga +debug +joystick +netplay +zlib", "-dga -debug +joystick -netplay +zlib" (my default settings), and with all flags turned off plus a "without-assembler" stuck into the configure flags. The netplay USE flag is new. I'm unable to test it now and would appreciate some help seeing whether it works. (Shouldn't be too much of a chore =) The opengl build is now giving me the same problem mentioned in comment #12. Now that I can reproduce I'll try to figure out what the hell is going on. Thanks to anyone who tests or helps out. If opengl can be fixed and the SRC_URI can be finalized this bump might happen.
Created attachment 117771 [details] snes9x-1.51.ebuild
Created attachment 117773 [details, diff] snes9x-1.51-build.patch
Created attachment 117774 [details, diff] snes9x-1.51-config.patch
Created attachment 117775 [details, diff] snes9x-1.51-porting.patch Probably not needed since 1.50, actually...
Just a couple of things I've spotted for the ppc64 arch on the PS3 1. for 1.50 distcc needs to be disabled, for 1.51 not a problem 2. when I tried 1.51 on the PS3 the sound was fairly crappy 1.50 is okay no problems 1.51 has problems with the sound output it mentions in the changes file "- Unix: Sound now defaults to 32KHz, Stereo, Interpolation so Snes9x finally sounds like a real SNES by default. (Nach)" I suspect this could be the problem but I've not found a way to override it in the configuration that actually makes a difference it could be something just unique to the PS3 I'm not sure (it could have an issue with sound being output at odd frequencies)
Opengl build w/1.51 doesn't work for me either, giving the same error message as the others who commented here. #29: -r 6 or -r 7 on the command-line should work for you.
Oh, sorry for not mentioning this earlier. I sent patches upstream to fix opengl. http://www.snes9x.com/phpbb2/viewtopic.php?t=3450 The first patch posted by me ("brickroad") is for opengl. The second one should help if you experience crashes in the x11 (not opengl) build while resizing the game window. The end result has been working very well for me, as a matter of fact.
Thanks, but your patches aren't applying for me. Perhaps because the forum code is putting a space after each line? In any case, would you mind attaching them here? I also rewrote the ebuild; once I'm able to test with your patches I'll post it here.
Created attachment 125055 [details] snes9x-1.51.ebuild [1/3] New 1.51 ebuild incorporating patches from that forum thread. Kai, please feel free to obsolete this if your rewrite is better. (I'm dropping -porting.patch ; I didn't realize it was just meant for x86-64.)
Created attachment 125056 [details, diff] snes9x-1.51-opengl.patch
Created attachment 125058 [details, diff] snes9x-1.51-x11.patch
I got it successfully working on amd64-no-multilib. So "amd64? ( app-emulation/emul-linux-x86-xlibs )" can be removed from DEPEND and package itself can also be removed from amd64 multilib mask.
What did you have to do to get it to work on amd64 no-multilib?
(In reply to comment #37) > What did you have to do to get it to work on amd64 no-multilib? I added "games-emulation/snes9x" to package unmask, removed the "app-emulation/emul-linux-x86-xlibs" dep and just emerged snes9x (1.51) I also played Final Fantasy III a bit ;) ---- plaes@sol ~ $ emerge --info Portage 2.1.3.9 (default-linux/amd64/2007.0/no-multilib, gcc-4.2.0, glibc-2.6.1-r0, 2.6.22-gentoo-r6 x86_64) ================================================================= System uname: 2.6.22-gentoo-r6 x86_64 Intel(R) Core(TM)2 CPU 6320 @ 1.86GHz Timestamp of tree: Sat, 22 Sep 2007 09:00:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r5, 2.5.1-r2 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.10-r4 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18 sys-devel/gcc-config: 1.4.0-r2 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.22-r2 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -ggdb -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=nocona -ggdb -O2 -pipe" DISTDIR="/home/tmp/distfiles" FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms splitdebug strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="et_EE.UTF-8" LDFLAGS="-Wl,--as-needed" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/home/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/gnome-experimental /usr/portage/local/layman/sunrise /usr/portage/local/layman/java-overlay /home/plaes/code/gentoo/local /home/plaes/code/gentoo/mozilla /home/plaes/code/gentoo/gnome /home/plaes/code/gentoo/jabber" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa amd64 amr apache2 avahi berkdb bitmap-fonts blas bluetooth bogofilter boo branding bzip2 cairo cdr cli cracklib crypt cups curl daap dbus dga djvu dri dvd dvdnav dvdr dvdread eds enblend encode exif ffmpeg flac fortran galago gcj gd gdbm gif gimp ginac glitz gnome gstreamer gtk hal hdri iconv ipv6 isdnlog java jpeg kdrive keyring lapack lcms libnotify mad midi mmx mmxext mp2 mp3 mpeg msn mudflap music ncurses network-cron nls nptl nptlonly nsplugin ogg openexr opengl openmp pam pcre pdf perl plotutils png postscript pppd python quicktime readline reflection ruby sasl sdl session sift smp speex spl sse sse2 ssl startup-notification svg tcpd theora tiff tracker truetype truetype-fonts type1-fonts unicode vorbis xcb xinerama xml xorg xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="i810" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Just wanted to say that I have tested the latest 1.51 ebuild in this bug and it works very well on x86. Portage 2.1.3.19 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.22-rbl-r9 i686) ================================================================= System uname: 2.6.22-rbl-r9 i686 Intel(R) Pentium(R) M processor 1.60GHz Timestamp of tree: Fri, 30 Nov 2007 02:00:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p17 dev-java/java-config: 1.3.7, 2.0.33-r1 dev-lang/python: 2.4.4-r6 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.9-r2 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.22-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-Os -mtune=pentium-m -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-Os -mtune=pentium-m -fomit-frame-pointer -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache collision-protect distcc distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://morpheus.sathome/gentoo/ http://mirror.switch.ch/mirror/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://distfiles.gentoo.org/ http://distro.ibiblio.org/pub/linux/distributions/gentoo/" LANG="en_US.utf8" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/local/portage" SYNC="rsync://morpheus.sathome/gentoo-portage" USE="X a52 aac acl acpi akode alsa arts audiofile avahi bash-completion berkdb bitmap-fonts bluetooth bzip2 cairo caps cdb cddb cdparanoia cli cracklib crypt cups curl dbus dga divx4linux dri dv dvd dvdread dvi encode expat fam ffmpeg firefox flac ftp gd gdbm gif gimp gmp gpg gpm gstreamer gtk gtk2 guile hal iconv id3 idn ieee1394 imagemagick imap imlib isdnlog java jbig jikes joystick jpeg jpeg2k junit jython kde kdehiddenvisibility lame latex lcms logrotate lzo mad maildir mbox midi mikmod mmap mmx mmx2 mng motif mp3 mp4 mpeg mplayer mudflap ncurses nfs nls nntp nptl nptlonly nsplugin ogg openexr opengl openmp openssl oss pam pcmcia pcre pda pdf perl plotutils png pppd pthreads python qt qt3 qt4 quicktime readline real reflection rle rtc samba sasl scanner sdl session slang snmp speex spell spl sqlite sqlite3 sse sse2 ssl subversion svg tcl tcltk tcpd tetex theora threads tiff tk truetype truetype-fonts type1-fonts unicode usb utempter v4l v4l2 vim-syntax vorbis wifi win32codecs wmf wxwindows x264 x86 xattr xcomposite xine xml xorg xosd xprint xscreensaver xv xvid zeroconf zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="fbdev fglrx radeon vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
ok, it's in there. Thanks for the patches.