bugfix for SIMPLE_WRITE_SOUND
authornotaz <notasas@gmail.com>
Tue, 29 Jan 2008 23:29:30 +0000 (23:29 +0000)
committernotaz <notasas@gmail.com>
Tue, 29 Jan 2008 23:29:30 +0000 (23:29 +0000)
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@342 be3aeb3a-fb24-0410-a615-afba39da0efa

Pico/Pico.c
platform/win32/GenaDrive/DSound.cpp
platform/win32/GenaDrive/Loop.cpp

index 71add13..bf8b707 100644 (file)
@@ -256,6 +256,7 @@ static int CheckIdle(void)
 static __inline void getSamples(int y)\r
 {\r
 #if SIMPLE_WRITE_SOUND\r
+  if (y != 224) return;\r
   PsndRender(0, PsndLen);\r
   if (PicoWriteSound) PicoWriteSound(PsndLen);\r
   PsndClear();\r
index 05e7f02..3a38a8d 100644 (file)
@@ -89,10 +89,9 @@ static int WriteSeg()
   // Lock the segment at 'LoopWrite' and copy the next segment in\r
   LoopBuffer->Lock(LoopWrite<<((PicoOpt&8) ? 2 : 1),PsndLen<<((PicoOpt&8) ? 2 : 1), &mema,&sizea, &memb,&sizeb, 0);\r
   \r
-  //dprintf2("lock %p, cpy %x\n", mema, sizea);\r
-\r
   if (mema) memcpy(mema,DSoundNext,sizea);\r
 //  if (memb) memcpy(memb,DSoundNext+sizea,sizeb);\r
+  if (sizeb != 0) dprintf2("sizeb is not 0! (%i)\n", sizeb);\r
 \r
   LoopBuffer->Unlock(mema,sizea, memb,0);\r
 \r
@@ -109,8 +108,6 @@ int DSoundUpdate()
   LoopBuffer->GetCurrentPosition(&play,NULL);\r
   pos=play>>((PicoOpt&8) ? 2 : 1);\r
 \r
-  //dprintf2("loop %i pos %i\n", LoopWrite, pos);\r
-\r
   // 'LoopWrite' is the next seg in the loop that we want to write\r
   // First check that the sound 'play' pointer has moved out of it:\r
   if (pos>=LoopWrite && pos<LoopWrite+PsndLen) return 1; // No, it hasn't\r
index b4b3eec..b19539a 100644 (file)
@@ -13,7 +13,7 @@ int LoopInit()
   // bits LSb->MSb:\r
   // enable_ym2612&dac, enable_sn76496, enable_z80, stereo_sound;\r
   // alt_renderer, 6button_gamepad, accurate_timing, accurate_sprites\r
-  PicoOpt=0xbcc7;\r
+  PicoOpt=0xbccf;\r
   PsndRate=44100;\r
 \r
   // Init Direct3D:\r