summaryrefslogtreecommitdiff
path: root/audio/xmms-nsf/files/patch-src__nes__audiosys.c
blob: 17b39688c63683ecad8b8e9a02d339c58a688f12 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
--- ./src/nes/audiosys.c.orig	Sun Jan  7 05:17:57 2001
+++ ./src/nes/audiosys.c	Wed Jan 10 20:10:34 2007
@@ -8,8 +8,11 @@
 
 static NES_AUDIO_HANDLER *nah = 0;
 static NES_VOLUME_HANDLER *nvh = 0;
-void NESAudioRender(Int16 *bufp, Uint buflen)
+Uint32 NESAudioRender(Int16 *bufp, Uint buflen)
 {
+	Int16 x;
+	Uint32 count = 0;
+	
 	while (buflen--)
 	{
 		NES_AUDIO_HANDLER *ph;
@@ -31,9 +34,17 @@
 			else
 				output = accum;
 			output >>= 8;
-			*bufp++ = ((Int32)output) - 0x8000;
+			x = ((Int32)output) - 0x8000;
+			if (abs(x) < 96)
+				count++;
+			else
+				count = 0;
+
+			*bufp++ = x;
 		}
 	}
+
+	return count;
 }
 
 void NESVolume(Uint volume)