Diff for /np2/sound/psggeng.c between versions 1.2 and 1.6

version 1.2, 2003/10/19 16:54:51 version 1.6, 2003/11/14 05:26:53
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
   #include        "parts.h"
 #include        "sound.h"  #include        "sound.h"
 #include        "psggen.h"  #include        "psggen.h"
   
Line 19  void SOUNDCALL psggen_getpcm(PSGGEN psg, Line 20  void SOUNDCALL psggen_getpcm(PSGGEN psg,
         UINT    i;          UINT    i;
         UINT    noise;          UINT    noise;
   
         while(count--) {          if ((psg->mixer & 0x3f) == 0) {
                   count = min(count, psg->puchicount);
                   psg->puchicount -= count;
           }
           if (count == 0) {
                   return;
           }
           do {
                 noisevol = 0;                  noisevol = 0;
                 if (psg->envcnt) {                  if (psg->envcnt) {
                         psg->envcnt--;                          psg->envcnt--;
Line 51  void SOUNDCALL psggen_getpcm(PSGGEN psg, Line 59  void SOUNDCALL psggen_getpcm(PSGGEN psg,
                                 countbak = psg->noise.count;                                  countbak = psg->noise.count;
                                 psg->noise.count -= psg->noise.freq;                                  psg->noise.count -= psg->noise.freq;
                                 if (psg->noise.count > countbak) {                                  if (psg->noise.count > countbak) {
                                         psg->noise.base = rand() & (1 << (1 << PSGADDEDBIT));  //                                      psg->noise.base = GETRAND() & (1 << (1 << PSGADDEDBIT));
                                           psg->noise.base = rand_get() & (1 << (1 << PSGADDEDBIT));
                                 }                                  }
                                 noisetbl += psg->noise.base;                                  noisetbl += psg->noise.base;
                                 noisetbl >>= 1;                                  noisetbl >>= 1;
Line 59  void SOUNDCALL psggen_getpcm(PSGGEN psg, Line 68  void SOUNDCALL psggen_getpcm(PSGGEN psg,
                 }                  }
                 tone = psg->tone;                  tone = psg->tone;
                 toneterm = tone + 3;                  toneterm = tone + 3;
                 samp = 0;  
                 do {                  do {
                         psgvol = (*(tone->pvol)) & 15;                          psgvol = (*(tone->pvol)) & 15;
                         if (psgvol) {                          if (psgvol) {
                                   samp = 0;
                                 vol = psggencfg.volume[psgvol];                                  vol = psggencfg.volume[psgvol];
                                 switch(mixer & 9) {                                  switch(mixer & 9) {
                                         case 0:                                                 // no mix                                          case 0:                                                 // no mix
Line 101  void SOUNDCALL psggen_getpcm(PSGGEN psg, Line 110  void SOUNDCALL psggen_getpcm(PSGGEN psg,
                                                 }                                                  }
                                                 break;                                                  break;
                                 }                                  }
                                   if (!(tone->pan & 1)) {
                                           pcm[0] += samp;
                                   }
                                   if (!(tone->pan & 2)) {
                                           pcm[1] += samp;
                                   }
                         }                          }
                         mixer >>= 1;                          mixer >>= 1;
                 } while(++tone < toneterm);                  } while(++tone < toneterm);
                 pcm[0] += samp;  
                 pcm[1] += samp;  
                 pcm += 2;                  pcm += 2;
         }          } while(--count);
 }  }
   

Removed from v.1.2  
changed lines
  Added in v.1.6


RetroPC.NET-CVS <cvs@retropc.net>