diff options
author | Mike Frysinger <vapier@gentoo.org> | 2003-07-19 00:04:36 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2003-07-19 00:04:36 +0000 |
commit | af3769976341ce386f4d9b84e6c6a23a03995a6a (patch) | |
tree | feb9d84fdfec14d879bcd6e2210b69ec868f5345 /app-emulation | |
parent | added lisa as maintainer (diff) | |
download | gentoo-2-af3769976341ce386f4d9b84e6c6a23a03995a6a.tar.gz gentoo-2-af3769976341ce386f4d9b84e6c6a23a03995a6a.tar.bz2 gentoo-2-af3769976341ce386f4d9b84e6c6a23a03995a6a.zip |
mask freaky 096 + add stable patches to it
Diffstat (limited to 'app-emulation')
-rw-r--r-- | app-emulation/fceultra/Manifest | 6 | ||||
-rw-r--r-- | app-emulation/fceultra/fceultra-093.ebuild | 55 | ||||
-rw-r--r-- | app-emulation/fceultra/fceultra-096.ebuild | 20 | ||||
-rw-r--r-- | app-emulation/fceultra/files/096-joystick.patch | 99 | ||||
-rw-r--r-- | app-emulation/fceultra/files/096-stereo.patch | 88 | ||||
-rw-r--r-- | app-emulation/fceultra/files/digest-fceultra-093 | 1 |
6 files changed, 259 insertions, 10 deletions
diff --git a/app-emulation/fceultra/Manifest b/app-emulation/fceultra/Manifest index b92b97b49d67..5ad49b6e9777 100644 --- a/app-emulation/fceultra/Manifest +++ b/app-emulation/fceultra/Manifest @@ -1,3 +1,7 @@ +MD5 637fe6dcdb2eddde6cc6d155954d6254 files/096-joystick.patch 2858 +MD5 e1bc6ab1d4668f48ff263c74a32d6894 files/096-stereo.patch 2228 MD5 ec518d4868d947b4ce4ff1919933204a files/digest-fceultra-096 62 +MD5 c3258fd9a3fa0ee6c568f626c992d4eb files/digest-fceultra-093 62 +MD5 b4120bf8ea99134b9bd1fe9c3515c1be fceultra-093.ebuild 1329 MD5 50d30cab923e7af39ab31b06c00f326e ChangeLog 2079 -MD5 c335e6df42c021745a661d99e2bf7283 fceultra-096.ebuild 1396 +MD5 bceb5cbe8b0bbe90268731b15827f76c fceultra-096.ebuild 1410 diff --git a/app-emulation/fceultra/fceultra-093.ebuild b/app-emulation/fceultra/fceultra-093.ebuild new file mode 100644 index 000000000000..edd94d51f3ab --- /dev/null +++ b/app-emulation/fceultra/fceultra-093.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/fceultra/fceultra-093.ebuild,v 1.3 2003/07/19 00:04:09 vapier Exp $ + +inherit games gcc + +DESCRIPTION="A portable NES/Famicom emulator" +HOMEPAGE="http://fceultra.sourceforge.net/" +SRC_URI="http://fceultra.sourceforge.net/files/fceu${PV}src.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* x86" +IUSE="sdl svga" + +# Because of code generation bugs, FCEUltra now depends on a version +# of gcc greater than or equal to GCC 3.2.2. +DEPEND="|| ( + svga? ( media-libs/svgalib ) + sdl? ( media-libs/libsdl ) + media-libs/libsdl + ) + >=sys-devel/gcc-3.2.2 + sys-libs/zlib" + +S=${WORKDIR}/fceu + +src_unpack() { + unpack ${A} + + cd ${S} + sed -i \ + -e "s:\${TFLAGS}:\${TFLAGS} ${CFLAGS}:" \ + Makefile.base +} + +src_compile() { + if [ `use sdl` ] || [ -z "`use sdl``use svga`" ] ; then + make -f Makefile.unixsdl || die "sdl make failed" + mv fceu fceu-sdl + make -f Makefile.unixsdl clean + fi + if [ `use svga` ] ; then + make -f Makefile.linuxvga || die "svga make failed" + mv fceu fceu-svga + fi +} + +src_install() { + use sdl && dogamesbin fceu-sdl + use svga && dogamesbin fceu-svga + use sdl || use svga || dogamesbin fceu-sdl + dodoc Documentation/{*,rel/readme-linux.txt} + prepgamesdirs +} diff --git a/app-emulation/fceultra/fceultra-096.ebuild b/app-emulation/fceultra/fceultra-096.ebuild index 2b86b138dad6..e22bd5fc9227 100644 --- a/app-emulation/fceultra/fceultra-096.ebuild +++ b/app-emulation/fceultra/fceultra-096.ebuild @@ -1,17 +1,16 @@ # Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/fceultra/fceultra-096.ebuild,v 1.2 2003/06/28 06:05:21 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-emulation/fceultra/fceultra-096.ebuild,v 1.3 2003/07/19 00:03:40 vapier Exp $ inherit games gcc -MY_PN=fceu DESCRIPTION="A portable NES/Famicom emulator" -SRC_URI="http://fceultra.sourceforge.net/files/${MY_PN}${PV}src.tar.gz" HOMEPAGE="http://fceultra.sourceforge.net/" +SRC_URI="http://fceultra.sourceforge.net/files/fceu${PV}src.tar.gz" -SLOT="0" -KEYWORDS="x86 -ppc" LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~x86" IUSE="sdl svga" # Because of code generation bugs, FCEUltra now depends on a version @@ -24,14 +23,17 @@ DEPEND="|| ( >=sys-devel/gcc-3.2.2 sys-libs/zlib" -S=${WORKDIR}/${MY_PN} +S=${WORKDIR}/fceu src_unpack() { unpack ${A} - cp ${S}/Makefile.base{,.orig} - sed -e "s:\${TFLAGS}:\${TFLAGS} ${CFLAGS}:" \ - ${S}/Makefile.base.orig > ${S}/Makefile.base + cd ${S} + epatch ${FILESDIR}/${PV}-stereo.patch + epatch ${FILESDIR}/${PV}-joystick.patch + sed -i \ + -e "s:\${TFLAGS}:\${TFLAGS} ${CFLAGS}:" \ + Makefile.base } src_compile() { diff --git a/app-emulation/fceultra/files/096-joystick.patch b/app-emulation/fceultra/files/096-joystick.patch new file mode 100644 index 000000000000..40bb7457a1b0 --- /dev/null +++ b/app-emulation/fceultra/files/096-joystick.patch @@ -0,0 +1,99 @@ +--- drivers/cli/sdl-joystick.c.orig 2003-06-21 22:49:24.000000000 -0500 ++++ drivers/cli/sdl-joystick.c 2003-07-10 19:10:38.000000000 -0500 +@@ -143,20 +143,12 @@ + /* Configure a joystick axis. */ + void AConfig (int n, int a) + { +- Sint16 lastaxe[64]; +- int numaxes; +- int axis; ++ SDL_Event event; + + WNoInput(); + + joyAMap[n][a] = a; + +- numaxes=SDL_JoystickNumAxes(jo[n]); +- if(numaxes>64) numaxes=64; +- +- for(axis=0;axis<numaxes;axis++) /* Pre-load. */ +- lastaxe[axis]=SDL_JoystickGetAxis(jo[n], axis); +- + while (1) + { + uint8 t; +@@ -167,31 +159,26 @@ + } + else + break; +- +- SDL_JoystickUpdate(); +- +- for (axis=0;axis<numaxes;axis++) { +- if (abs((Sint32)SDL_JoystickGetAxis(jo[n],axis)-lastaxe[axis]) > 8192) { +- joyAMap[n][a] = axis; +- /* 4096 should be good enough to account for any jitter. */ +- while (abs((Sint32)SDL_JoystickGetAxis(jo[n],axis)-lastaxe[axis]) > 4096) { +- SDL_JoystickUpdate(); +- SDL_Delay(50); +- } +- goto endaconfig; +- } +- } +- SDL_Delay(100); +- } +- +- endaconfig: +- WNoInput(); ++ ++ SDL_JoystickUpdate(); ++ if (SDL_PollEvent(&event) && (event.type == SDL_JOYAXISMOTION)) ++ { ++ // Make sure the joystick was moved by some significant amount ++ if ((event.jaxis.value < -3000) || (event.jaxis.value > 3000)) ++ { ++ joyAMap[n][a] = event.jaxis.axis; ++ WNoInput(); ++ return; ++ } ++ } ++ } + return; + } + + /* Configure a joystick button. */ + void BConfig (int n, int b) + { ++ SDL_Event event; + WNoInput(); + joyBMap[n][b] = 0; + while (1) +@@ -206,23 +193,15 @@ + break; + + SDL_JoystickUpdate(); ++ ++ if (SDL_PollEvent(&event) && event.type == SDL_JOYBUTTONDOWN) + { +- int buttons; +- for (buttons = SDL_JoystickNumButtons(jo[n])-1;buttons >= 0;buttons--) { +- if (SDL_JoystickGetButton(jo[n],buttons)) { +- joyBMap[n][b] = buttons+1; +- while (SDL_JoystickGetButton(jo[n], buttons)) { +- SDL_JoystickUpdate(); +- SDL_Delay(50); +- } +- goto endbconfig; +- } +- } ++ joyBMap[n][b] = event.jbutton.button+1; ++ WNoInput(); ++ return; + } +- SDL_Delay(100); + } + +- endbconfig: + WNoInput(); + return; + } diff --git a/app-emulation/fceultra/files/096-stereo.patch b/app-emulation/fceultra/files/096-stereo.patch new file mode 100644 index 000000000000..9778997fb2ef --- /dev/null +++ b/app-emulation/fceultra/files/096-stereo.patch @@ -0,0 +1,88 @@ +--- drivers/common/unixdsp.c 2003-06-20 12:37:26.000000000 -0500 ++++ drivers/common/unixdsp.c 2003-07-06 21:58:21.000000000 -0500 +@@ -36,6 +36,7 @@ + + static int format; + static int dspfd; ++static int fakestereo; + + // fsize is in samples, not bytes(gets translated before ioctl()) + int InitUNIXDSPSound(int *rate, int bits, int fsize, int nfrags, int dev) +@@ -89,9 +90,20 @@ + + if(ioctl(dspfd,SNDCTL_DSP_SETFRAGMENT,&x)==-1) + printf("ERROR (continuing anyway)\n"); +- x=0; ++ ++ // Set mono sound. ++ // Some sound cards can only do stereo, so simulate stereo for these cards. ++ x=1; ++ fakestereo=0; + printf("\n Setting mono sound..."); +- if(ioctl(dspfd,SNDCTL_DSP_STEREO,&x)==-1) goto __disperror; ++ if(ioctl(dspfd,SNDCTL_DSP_CHANNELS,&x)==-1) goto __disperror; ++ if(x == 2) ++ { ++ printf("\n Couldn't set mono, faking stereo...\n"); ++ fakestereo = 1; ++ } ++ else goto __disperror; ++ + printf("\n Setting playback rate of %d hz...",*rate); + if(ioctl(dspfd,SNDCTL_DSP_SPEED,rate)==-1) goto __disperror; + printf("Set to %d hz\n",*rate); +@@ -107,9 +119,10 @@ + } + + static int16 MBuffer[2048]; ++static int16 fakebuffer[4098]; + void WriteUNIXDSPSound(int32 *Buffer, int Count, int noblocking) + { +- int P,c; ++ int P,c,i; + int32 *src=Buffer; + + if(format) +@@ -127,13 +140,35 @@ + c=Count<<1; + } + +-// noblocking=!noblocking; // speed testing +- if(noblocking) ++ // If a device can only support stereo, fake stereo by duplicating each item in the buffer. ++ if(fakestereo) ++ { ++ for (i=0; i <= c; i++ ) ++ { ++ fakebuffer[2*i] = MBuffer[i]; ++ fakebuffer[2*i+1] = MBuffer[i]; ++ } ++ c = c * 2; ++ // noblocking=!noblocking; // speed testing ++ if(noblocking) ++ { ++ struct audio_buf_info ai; ++ if(!ioctl(dspfd,SNDCTL_DSP_GETOSPACE,&ai)) ++ if(ai.bytes<c) ++ return; ++ } ++ write(dspfd,(uint8 *)fakebuffer,c); ++ } ++ else + { +- struct audio_buf_info ai; +- if(!ioctl(dspfd,SNDCTL_DSP_GETOSPACE,&ai)) +- if(ai.bytes<c) +- return; ++ // noblocking=!noblocking; // speed testing ++ if(noblocking) ++ { ++ struct audio_buf_info ai; ++ if(!ioctl(dspfd,SNDCTL_DSP_GETOSPACE,&ai)) ++ if(ai.bytes<c) ++ return; ++ } ++ write(dspfd,(uint8 *)MBuffer,c); + } +- write(dspfd,(uint8 *)MBuffer,c); + } diff --git a/app-emulation/fceultra/files/digest-fceultra-093 b/app-emulation/fceultra/files/digest-fceultra-093 new file mode 100644 index 000000000000..5f20e5cb2ae7 --- /dev/null +++ b/app-emulation/fceultra/files/digest-fceultra-093 @@ -0,0 +1 @@ +MD5 c2fea068f1db62ec51f6fc77f1c5da82 fceu093src.tar.gz 450883 |