DOSBox-X
|
00001 00002 #if !defined(DISABLE_SOUND) 00003 00004 #include "soundrom.h" 00005 #include "tms3631.h" 00006 #include "fmtimer.h" 00007 #include "opngen.h" 00008 #include "psggen.h" 00009 #include "rhythm.h" 00010 #include "adpcm.h" 00011 #include "pcm86.h" 00012 //#include "cs4231.h" 00013 00014 00015 typedef struct { 00016 UINT addr; 00017 UINT addr2; 00018 UINT8 data; 00019 UINT8 data2; 00020 UINT16 base; 00021 UINT8 adpcmmask; 00022 UINT8 channels; 00023 UINT8 extend; 00024 UINT8 _padding; 00025 UINT8 reg[0x400]; 00026 } OPN_T; 00027 00028 typedef struct { 00029 UINT16 port; 00030 UINT8 psg3reg; 00031 UINT8 rhythm; 00032 } AMD98; 00033 00034 typedef struct { 00035 UINT8 porta; 00036 UINT8 portb; 00037 UINT8 portc; 00038 UINT8 mask; 00039 UINT8 key[8]; 00040 int sync; 00041 int ch; 00042 } MUSICGEN; 00043 00044 00045 #ifdef __cplusplus 00046 extern "C" { 00047 #endif 00048 00049 extern UINT32 usesound; 00050 extern OPN_T opn; 00051 extern AMD98 amd98; 00052 extern MUSICGEN musicgen; 00053 00054 extern _TMS3631 tms3631; 00055 extern _FMTIMER fmtimer; 00056 extern _OPNGEN opngen; 00057 extern OPNCH opnch[OPNCH_MAX]; 00058 extern _PSGGEN __psg[3]; 00059 extern _RHYTHM rhythm; 00060 extern _ADPCM adpcm; 00061 extern _PCM86 pcm86; 00062 //extern _CS4231 cs4231; 00063 00064 #define psg1 __psg[0] 00065 #define psg2 __psg[1] 00066 #define psg3 __psg[2] 00067 00068 #if defined(SUPPORT_PX) 00069 extern OPN_T opn2; 00070 extern OPN_T opn3; 00071 extern _RHYTHM rhythm2; 00072 extern _RHYTHM rhythm3; 00073 extern _ADPCM adpcm2; 00074 extern _ADPCM adpcm3; 00075 #endif // defined(SUPPORT_PX) 00076 00077 REG8 fmboard_getjoy(PSGGEN psg); 00078 00079 void fmboard_extreg(void (*ext)(REG8 enable)); 00080 void fmboard_extenable(REG8 enable); 00081 00082 void fmboard_reset(const NP2CFG *pConfig, UINT32 type); 00083 void fmboard_bind(void); 00084 00085 void fmboard_fmrestore(REG8 chbase, UINT bank); 00086 void fmboard_rhyrestore(RHYTHM rhy, UINT bank); 00087 00088 #if defined(SUPPORT_PX) 00089 void fmboard_fmrestore2(OPN_T* pOpn, REG8 chbase, UINT bank); 00090 void fmboard_rhyrestore2(OPN_T* pOpn, RHYTHM rhy, UINT bank); 00091 #endif // defined(SUPPORT_PX) 00092 00093 #ifdef __cplusplus 00094 } 00095 #endif 00096 00097 #else 00098 00099 #define fmboard_reset(t) 00100 #define fmboard_bind() 00101 00102 #endif 00103