--- np2/sound/psggen.h 2003/10/16 17:58:04 1.1 +++ np2/sound/psggen.h 2005/05/13 05:47:25 1.10 @@ -14,9 +14,10 @@ enum { typedef struct { SINT32 freq; SINT32 count; - BYTE *pvol; + SINT32 *pvol; // !! UINT16 puchi; - UINT16 padding; + UINT8 pan; + UINT8 padding; } PSGTONE; typedef struct { @@ -26,16 +27,14 @@ typedef struct { } PSGNOISE; typedef struct { - BYTE tune[3][2]; // 0 - BYTE noise; // 6 - BYTE mixer; // 7 - BYTE vol0; // 8 - BYTE vol1; // 9 - BYTE vol2; // a - BYTE envtime[2]; // b - BYTE env; // d - BYTE io1; - BYTE io2; + UINT8 tune[3][2]; // 0 + UINT8 noise; // 6 + UINT8 mixer; // 7 + UINT8 vol[3]; // 8 + UINT8 envtime[2]; // b + UINT8 env; // d + UINT8 io1; + UINT8 io2; } PSGREG; typedef struct { @@ -44,10 +43,12 @@ typedef struct { PSGREG reg; UINT16 envcnt; UINT16 envmax; - BYTE envmode; - BYTE envvol; - char envvolcnt; - BYTE mixer; + UINT8 mixer; + UINT8 envmode; + UINT8 envvol; + SINT8 envvolcnt; + SINT32 evol; // !! + UINT puchicount; } _PSGGEN, *PSGGEN; typedef struct { @@ -67,8 +68,10 @@ void psggen_initialize(UINT rate); void psggen_setvol(UINT vol); void psggen_reset(PSGGEN psg); -void psggen_setreg(PSGGEN psg, BYTE reg, BYTE val); -BYTE psggen_getreg(PSGGEN psg, BYTE reg); +void psggen_restore(PSGGEN psg); +void psggen_setreg(PSGGEN psg, UINT reg, REG8 val); +REG8 psggen_getreg(PSGGEN psg, UINT reg); +void psggen_setpan(PSGGEN psg, UINT ch, REG8 pan); void SOUNDCALL psggen_getpcm(PSGGEN psg, SINT32 *pcm, UINT count);