summaryrefslogtreecommitdiff
path: root/audio/xmms-nsf/files/patch-src_nes_audiosys.c
blob: c8213d1c75751cc36bb64ac15b051fb426087a6a (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	2001-01-07 04:17:57 UTC
+++ src/nes/audiosys.c
@@ -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 @@ void NESAudioRender(Int16 *bufp, Uint bu
 			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)