diff options
author | Mike Frysinger <vapier@gentoo.org> | 2003-11-10 05:05:25 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2003-11-10 05:05:25 +0000 |
commit | 4ca8453fb6db53c80bf006043ed7823f93aae779 (patch) | |
tree | 13966d31238c90cfc274fc975a7002711619c7a7 /games-emulation/fceultra/files | |
parent | ver bump (diff) | |
download | gentoo-2-4ca8453fb6db53c80bf006043ed7823f93aae779.tar.gz gentoo-2-4ca8453fb6db53c80bf006043ed7823f93aae779.tar.bz2 gentoo-2-4ca8453fb6db53c80bf006043ed7823f93aae779.zip |
ver bump
Diffstat (limited to 'games-emulation/fceultra/files')
-rw-r--r-- | games-emulation/fceultra/files/0.97.4-joystick.patch | 99 | ||||
-rw-r--r-- | games-emulation/fceultra/files/0.97.4-stereo.patch | 86 | ||||
-rw-r--r-- | games-emulation/fceultra/files/digest-fceultra-0.97.4 | 1 |
3 files changed, 186 insertions, 0 deletions
diff --git a/games-emulation/fceultra/files/0.97.4-joystick.patch b/games-emulation/fceultra/files/0.97.4-joystick.patch new file mode 100644 index 000000000000..40bb7457a1b0 --- /dev/null +++ b/games-emulation/fceultra/files/0.97.4-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/games-emulation/fceultra/files/0.97.4-stereo.patch b/games-emulation/fceultra/files/0.97.4-stereo.patch new file mode 100644 index 000000000000..ec0e783f16e1 --- /dev/null +++ b/games-emulation/fceultra/files/0.97.4-stereo.patch @@ -0,0 +1,86 @@ +--- drivers/common/unixdsp.c.orig 2003-11-09 22:33:13.000000000 -0500 ++++ drivers/common/unixdsp.c 2003-11-09 23:40:46.496436000 -0500 +@@ -37,7 +37,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) +@@ -92,9 +92,17 @@ + + if(ioctl(dspfd,SNDCTL_DSP_SETFRAGMENT,&x)==-1) + FCEUI_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; + FCEUI_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; ++ } + FCEUI_printf("\n Setting playback rate of %d hz...",*rate); + if(ioctl(dspfd,SNDCTL_DSP_SPEED,rate)==-1) goto __disperror; + FCEUI_printf("Set to %d hz\n",*rate); +@@ -110,9 +118,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) +@@ -130,13 +139,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/games-emulation/fceultra/files/digest-fceultra-0.97.4 b/games-emulation/fceultra/files/digest-fceultra-0.97.4 new file mode 100644 index 000000000000..ea739c0fd0c2 --- /dev/null +++ b/games-emulation/fceultra/files/digest-fceultra-0.97.4 @@ -0,0 +1 @@ +MD5 b1247e24196798f623481ffd5a1e865b fceu-0.97.4.src.tar.gz 559070 |