|
|
| version 1.1, 2003/10/16 17:58:05 | version 1.7, 2003/12/04 13:54:29 |
|---|---|
| Line 45 void psggen_initialize(UINT rate) { | Line 45 void psggen_initialize(UINT rate) { |
| if (psggencfg.puchidec == 0) { | if (psggencfg.puchidec == 0) { |
| psggencfg.puchidec = 1; | psggencfg.puchidec = 1; |
| } | } |
| psggencfg.base = (5000 * (1 << (32 - PSGFREQPADBIT - PSGADDEDBIT))) | if (rate) { |
| psggencfg.base = (5000 * (1 << (32 - PSGFREQPADBIT - PSGADDEDBIT))) | |
| / (rate / 25); | / (rate / 25); |
| } | |
| } | } |
| void psggen_setvol(UINT vol) { | void psggen_setvol(UINT vol) { |
| Line 78 void psggen_setreg(PSGGEN psg, BYTE reg, | Line 80 void psggen_setreg(PSGGEN psg, BYTE reg, |
| 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 111 void psggen_setreg(PSGGEN psg, BYTE reg, | Line 113 void psggen_setreg(PSGGEN psg, BYTE reg, |
| case 7: | case 7: |
| keydisp_psgmix(psg); | keydisp_psgmix(psg); |
| psg->mixer = ~value; | psg->mixer = ~value; |
| psg->puchicount = psggencfg.puchidec; | |
| // TRACEOUT(("psg %x 7 %d", (long)psg, value)); | |
| break; | break; |
| case 8: | case 8: |
| Line 125 void psggen_setreg(PSGGEN psg, BYTE reg, | Line 129 void psggen_setreg(PSGGEN psg, BYTE reg, |
| psg->tone[ch].pvol = ((BYTE *)&psg->reg) + reg; | psg->tone[ch].pvol = ((BYTE *)&psg->reg) + reg; |
| } | } |
| psg->tone[ch].puchi = psggencfg.puchidec; | psg->tone[ch].puchi = psggencfg.puchidec; |
| psg->puchicount = psggencfg.puchidec; | |
| // TRACEOUT(("psg %x %x %d", (long)psg, reg, value)); | |
| break; | break; |
| case 11: | case 11: |
| Line 150 BYTE psggen_getreg(PSGGEN psg, BYTE reg) | Line 156 BYTE psggen_getreg(PSGGEN psg, BYTE reg) |
| return(((BYTE *)&psg->reg)[reg & 15]); | return(((BYTE *)&psg->reg)[reg & 15]); |
| } | } |
| void psggen_setpan(PSGGEN psg, UINT ch, BYTE pan) { | |
| if ((psg) && (ch < 3)) { | |
| psg->tone[ch].pan = pan; | |
| } | |
| } | |