--- np2/sound/fmboard.h 2003/12/08 00:55:33 1.3 +++ np2/sound/fmboard.h 2007/07/20 14:39:11 1.9 @@ -1,4 +1,6 @@ +#if !defined(DISABLE_SOUND) + #include "soundrom.h" #include "tms3631.h" #include "fmtimer.h" @@ -11,30 +13,30 @@ typedef struct { - BYTE reg[0x400]; - BYTE opnreg; - BYTE extreg; - BYTE opn2reg; - BYTE ext2reg; - BYTE adpcmmask; - BYTE channels; - BYTE extend; - BYTE padding; + UINT addr; + UINT addr2; + UINT8 data; + UINT8 data2; UINT16 base; + UINT8 adpcmmask; + UINT8 channels; + UINT8 extend; + UINT8 _padding; + UINT8 reg[0x400]; } OPN_T; typedef struct { UINT16 port; - BYTE psg3reg; - BYTE rhythm; + UINT8 psg3reg; + UINT8 rhythm; } AMD98; typedef struct { - BYTE porta; - BYTE portb; - BYTE portc; - BYTE mask; - BYTE key[8]; + UINT8 porta; + UINT8 portb; + UINT8 portc; + UINT8 mask; + UINT8 key[8]; int sync; int ch; } MUSICGEN; @@ -44,33 +46,58 @@ typedef struct { extern "C" { #endif +extern UINT32 usesound; +extern OPN_T opn; +extern AMD98 amd98; +extern MUSICGEN musicgen; + extern _TMS3631 tms3631; extern _FMTIMER fmtimer; extern _OPNGEN opngen; extern OPNCH opnch[OPNCH_MAX]; -extern _PSGGEN psg1; -extern _PSGGEN psg2; -extern _PSGGEN psg3; +extern _PSGGEN __psg[3]; extern _RHYTHM rhythm; extern _ADPCM adpcm; extern _PCM86 pcm86; extern _CS4231 cs4231; -extern int usesound; -extern OPN_T opn; -extern AMD98 amd98; -extern MUSICGEN musicgen; +#define psg1 __psg[0] +#define psg2 __psg[1] +#define psg3 __psg[2] + +#if defined(SUPPORT_PX) +extern OPN_T opn2; +extern OPN_T opn3; +extern _RHYTHM rhythm2; +extern _RHYTHM rhythm3; +extern _ADPCM adpcm2; +extern _ADPCM adpcm3; +#endif // defined(SUPPORT_PX) - -BYTE fmboard_getjoy(PSGGEN psg); +REG8 fmboard_getjoy(PSGGEN psg); void fmboard_extreg(void (*ext)(REG8 enable)); void fmboard_extenable(REG8 enable); -void fmboard_reset(BYTE num); +void fmboard_reset(UINT32 type); void fmboard_bind(void); +void fmboard_fmrestore(REG8 chbase, UINT bank); +void fmboard_rhyrestore(RHYTHM rhy, UINT bank); + +#if defined(SUPPORT_PX) +void fmboard_fmrestore2(OPN_T* pOpn, REG8 chbase, UINT bank); +void fmboard_rhyrestore2(OPN_T* pOpn, RHYTHM rhy, UINT bank); +#endif // defined(SUPPORT_PX) + #ifdef __cplusplus } #endif +#else + +#define fmboard_reset(t) +#define fmboard_bind() + +#endif +