summaryrefslogtreecommitdiff
path: root/apps/plugins/rockboy/sound.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/rockboy/sound.c')
-rw-r--r--apps/plugins/rockboy/sound.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/plugins/rockboy/sound.c b/apps/plugins/rockboy/sound.c
index accfda2540..58cbe542f9 100644
--- a/apps/plugins/rockboy/sound.c
+++ b/apps/plugins/rockboy/sound.c
@@ -158,9 +158,10 @@ void sound_reset(void)
158 sound_off(); 158 sound_off();
159} 159}
160 160
161
162void sound_mix(void) 161void sound_mix(void)
163{ 162{
163
164 if (!sound) return;
164 int s, l, r, f, n; 165 int s, l, r, f, n;
165 166
166 if (!RATE || cpu.snd < RATE) return; 167 if (!RATE || cpu.snd < RATE) return;
@@ -275,10 +276,10 @@ void sound_mix(void)
275 pcm_submit(); 276 pcm_submit();
276 if (pcm.stereo) 277 if (pcm.stereo)
277 { 278 {
278 pcm.buf[pcm.pos++] = (signed short)(l * 256); 279 pcm.buf[pcm.pos++] = l+128;
279 pcm.buf[pcm.pos++] = (signed short)(r * 256); 280 pcm.buf[pcm.pos++] = r+128;
280 } 281 }
281 else pcm.buf[pcm.pos++] = (signed short)((r+l) * 128); 282 else pcm.buf[pcm.pos++] = ((l+r)>>1)+128;
282 } 283 }
283 } 284 }
284 R_NR52 = (R_NR52&0xf0) | S1.on | (S2.on<<1) | (S3.on<<2) | (S4.on<<3); 285 R_NR52 = (R_NR52&0xf0) | S1.on | (S2.on<<1) | (S3.on<<2) | (S4.on<<3);
@@ -288,6 +289,7 @@ void sound_mix(void)
288 289
289byte sound_read(byte r) 290byte sound_read(byte r)
290{ 291{
292 if(!sound) return 0;
291 sound_mix(); 293 sound_mix();
292 /* printf("read %02X: %02X\n", r, REG(r)); */ 294 /* printf("read %02X: %02X\n", r, REG(r)); */
293 return REG(r); 295 return REG(r);
@@ -344,6 +346,7 @@ void s4_init(void)
344 346
345void sound_write(byte r, byte b) 347void sound_write(byte r, byte b)
346{ 348{
349 if(!sound) return;
347#if 0 350#if 0
348 static void *timer; 351 static void *timer;
349 if (!timer) timer = sys_timer(); 352 if (!timer) timer = sys_timer();