DOSBox-X
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
src/hardware/snd_pc98/sound/fmboard.h
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