|
|
| version 1.7, 2003/12/04 13:54:29 | 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; |
| Line 123 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; |
| Line 151 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, BYTE pan) { | void psggen_setpan(PSGGEN psg, UINT ch, REG8 pan) { |
| if ((psg) && (ch < 3)) { | if ((psg) && (ch < 3)) { |
| psg->tone[ch].pan = pan; | psg->tone[ch].pan = pan; |