runs code in 1M wram, cell arrange, decode (untested)
[picodrive.git] / Pico / sound / sound.c
index a9f2f68..cc36a44 100644 (file)
@@ -227,6 +227,7 @@ void sound_clear(void)
 \r
 int sound_render(int offset, int length)\r
 {\r
+  int  buf32_updated = 0;\r
   int *buf32 = PsndBuffer+offset;\r
   int stereo = (PicoOpt & 8) >> 3;\r
   // emulating CD && PCM option enabled && PCM chip on && have enabled channels\r
@@ -247,12 +248,18 @@ int sound_render(int offset, int length)
     SN76496Update(PsndOut+offset, length, stereo);\r
 \r
   // Add in the stereo FM buffer\r
-  if (PicoOpt & 1)\r
-    YM2612UpdateOne(buf32, length, stereo, 1);\r
+  if (PicoOpt & 1) {\r
+    buf32_updated = YM2612UpdateOne(buf32, length, stereo, 1);\r
+  } else\r
+    memset32(buf32, 0, length<<stereo);\r
+\r
+//printf("active_chs: %02x\n", buf32_updated);\r
 \r
   // CD: PCM sound\r
-  if (do_pcm)\r
+  if (do_pcm) {\r
     pcm_update(buf32, length, stereo);\r
+    //buf32_updated = 1;\r
+  }\r
 \r
   // CD: CDDA audio\r
   if ((PicoMCD & 1) && (PicoOpt & 0x800))\r