Diff for /np2/sound/psggenc.c between versions 1.4 and 1.10

version 1.4, 2003/10/22 14:13:25 version 1.10, 2004/02/03 08:24:40
Line 67  void psggen_reset(PSGGEN psg) { Line 67  void psggen_reset(PSGGEN psg) {
   
         ZeroMemory(psg, sizeof(_PSGGEN));          ZeroMemory(psg, sizeof(_PSGGEN));
         for (i=0; i<3; i++) {          for (i=0; i<3; i++) {
                 psg->tone[i].pvol = &psg->envvol;                  psg->tone[i].pvol = psggencfg.volume + 0;
         }          }
         for (i=0; i<sizeof(psggen_deftbl); i++) {          for (i=0; i<sizeof(psggen_deftbl); i++) {
                 psggen_setreg(psg, (BYTE)i, psggen_deftbl[i]);                  psggen_setreg(psg, (REG8)i, psggen_deftbl[i]);
         }          }
 }  }
   
 void psggen_setreg(PSGGEN psg, BYTE reg, BYTE value) {  void psggen_restore(PSGGEN psg) {
   
           REG8    i;
   
           for (i=0; i<0x0e; i++) {
                   psggen_setreg(psg, i, ((BYTE *)&psg->reg)[i]);
           }
   }
   
   void psggen_setreg(PSGGEN psg, REG8 reg, REG8 value) {
   
         UINT    freq;          UINT    freq;
         UINT    ch;          UINT    ch;
   
         reg &= 15;          reg &= 15;
         ((BYTE *)&psg->reg)[reg] = value;  
         if (reg < 14) {          if (reg < 14) {
                 sound_sync();                  sound_sync();
         }          }
           ((BYTE *)&psg->reg)[reg] = value;
         switch(reg) {          switch(reg) {
                 case 0:                  case 0:
                 case 1:                  case 1:
Line 114  void psggen_setreg(PSGGEN psg, BYTE reg, Line 123  void psggen_setreg(PSGGEN psg, BYTE reg,
                         keydisp_psgmix(psg);                          keydisp_psgmix(psg);
                         psg->mixer = ~value;                          psg->mixer = ~value;
                         psg->puchicount = psggencfg.puchidec;                          psg->puchicount = psggencfg.puchidec;
   //                      TRACEOUT(("psg %x 7 %d", (long)psg, value));
                         break;                          break;
   
                 case 8:                  case 8:
Line 122  void psggen_setreg(PSGGEN psg, BYTE reg, Line 132  void psggen_setreg(PSGGEN psg, BYTE reg,
                         ch = reg - 8;                          ch = reg - 8;
                         keydisp_psgvol(psg, (BYTE)ch);                          keydisp_psgvol(psg, (BYTE)ch);
                         if (value & 0x10) {                          if (value & 0x10) {
                                 psg->tone[ch].pvol = &psg->envvol;                                  psg->tone[ch].pvol = &psg->evol;
                         }                          }
                         else {                          else {
                                 psg->tone[ch].pvol = ((BYTE *)&psg->reg) + reg;                                  psg->tone[ch].pvol = psggencfg.volume + (value & 15);
                         }                          }
                         psg->tone[ch].puchi = psggencfg.puchidec;                          psg->tone[ch].puchi = psggencfg.puchidec;
                         psg->puchicount = psggencfg.puchidec;                          psg->puchicount = psggencfg.puchidec;
 //                      TRACEOUT(("%d", value));  //                      TRACEOUT(("psg %x %x %d", (long)psg, reg, value));
                         break;                          break;
   
                 case 11:                  case 11:
Line 150  void psggen_setreg(PSGGEN psg, BYTE reg, Line 160  void psggen_setreg(PSGGEN psg, BYTE reg,
         }          }
 }  }
   
 BYTE psggen_getreg(PSGGEN psg, BYTE reg) {  REG8 psggen_getreg(PSGGEN psg, REG8 reg) {
   
         return(((BYTE *)&psg->reg)[reg & 15]);          return(((BYTE *)&psg->reg)[reg & 15]);
 }  }
   
   void psggen_setpan(PSGGEN psg, UINT ch, REG8 pan) {
   
           if ((psg) && (ch < 3)) {
                   psg->tone[ch].pan = pan;
           }
   }
   

Removed from v.1.4  
changed lines
  Added in v.1.10


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