| version 1.3, 2003/10/18 09:02:38 | version 1.8, 2004/01/25 05:41:29 | 
| Line 1 | Line 1 | 
 | #include        "compiler.h" | #include        "compiler.h" | 
 | #include        "joymng.h" | #include        "joymng.h" | 
 | #include        "soundmng.h" | #include        "soundmng.h" | 
| #include        "i286.h" | // #include     "cpucore.h" | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 | #include        "iocore.h" | #include        "iocore.h" | 
 | #include        "cbuscore.h" | #include        "cbuscore.h" | 
| Line 20 | Line 20 | 
 | #include        "keydisp.h" | #include        "keydisp.h" | 
 |  |  | 
 |  |  | 
| int                     usesound = 0; | UINT32          usesound; | 
|  | OPN_T           opn; | 
|  | AMD98           amd98; | 
|  | MUSICGEN        musicgen; | 
 |  |  | 
 | _TMS3631        tms3631; | _TMS3631        tms3631; | 
 | _FMTIMER        fmtimer; | _FMTIMER        fmtimer; | 
| Line 35 | Line 38 | 
 | _CS4231         cs4231; | _CS4231         cs4231; | 
 |  |  | 
 |  |  | 
| OPN_T           opn; | static void     (*extfn)(REG8 enable); | 
| AMD98           amd98; |  | 
| MUSICGEN        musicgen; |  | 
|  |  | 
|  |  | 
| static void             (*extfn)(BYTE enable); |  | 
 |  |  | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| static  BYTE    rapids = 0; | static  REG8    rapids = 0; | 
 |  |  | 
| BYTE fmboard_getjoy(PSGGEN psg) { | REG8 fmboard_getjoy(PSGGEN psg) { | 
 |  |  | 
| BYTE    ret; | REG8    ret; | 
 |  |  | 
 | rapids ^= 0xf0;                                                                                 // ver0.28 | rapids ^= 0xf0;                                                                                 // ver0.28 | 
 | ret = 0xff; | ret = 0xff; | 
 | if (!(psg->reg.io2 & 0x40)) { | if (!(psg->reg.io2 & 0x40)) { | 
 | ret &= (joymng_getstat() | (rapids & 0x30)); | ret &= (joymng_getstat() | (rapids & 0x30)); | 
 | if (np2cfg.KEY_MODE == 1) { | if (np2cfg.KEY_MODE == 1) { | 
| ret &= keystat_getjoy(); | ret &= keyext_getjoy(); | 
 | } | } | 
 | } | } | 
 | else { | else { | 
 | if (np2cfg.KEY_MODE == 2) { | if (np2cfg.KEY_MODE == 2) { | 
| ret &= keystat_getjoy(); | ret &= keyext_getjoy(); | 
 | } | } | 
 | } | } | 
 | if (np2cfg.BTN_RAPID) { | if (np2cfg.BTN_RAPID) { | 
| Line 86  BYTE fmboard_getjoy(PSGGEN psg) { | Line 84  BYTE fmboard_getjoy(PSGGEN psg) { | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| void fmboard_extreg(void (*ext)(BYTE enable)) { | void fmboard_extreg(void (*ext)(REG8 enable)) { | 
 |  |  | 
 | extfn = ext; | extfn = ext; | 
 | } | } | 
 |  |  | 
| void fmboard_extenable(BYTE enable) { | void fmboard_extenable(REG8 enable) { | 
 |  |  | 
 | if (extfn) { | if (extfn) { | 
 | (*extfn)(enable); | (*extfn)(enable); | 
| Line 102  void fmboard_extenable(BYTE enable) { | Line 100  void fmboard_extenable(BYTE enable) { | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| void fmboard_reset(BYTE num) { | void fmboard_reset(UINT32 type) { | 
 |  |  | 
 | BYTE    cross; | BYTE    cross; | 
 |  |  | 
 | soundrom_reset(); | soundrom_reset(); | 
 | beep_reset();                                                                                           // ver0.27a | beep_reset();                                                                                           // ver0.27a | 
 | cross = np2cfg.snd_x;                                                                           // ver0.30 | cross = np2cfg.snd_x;                                                                           // ver0.30 | 
 | usesound = num; |  | 
 |  |  | 
 | extfn = NULL; | extfn = NULL; | 
 | ZeroMemory(&opn, sizeof(opn)); | ZeroMemory(&opn, sizeof(opn)); | 
 | ZeroMemory(&musicgen, sizeof(musicgen)); |  | 
 | ZeroMemory(&amd98, sizeof(amd98)); |  | 
 |  |  | 
 | opn.channels = 3; | opn.channels = 3; | 
 | opn.adpcmmask = (BYTE)~(0x1c); | opn.adpcmmask = (BYTE)~(0x1c); | 
 | opn.reg[0xff] = 0x01; | opn.reg[0xff] = 0x01; | 
 |  |  | 
 |  | ZeroMemory(&musicgen, sizeof(musicgen)); | 
 |  | ZeroMemory(&amd98, sizeof(amd98)); | 
 |  |  | 
 | tms3631_reset(&tms3631); | tms3631_reset(&tms3631); | 
 | opngen_reset(); | opngen_reset(); | 
 | psggen_reset(&psg1); | psggen_reset(&psg1); | 
| Line 130  void fmboard_reset(BYTE num) { | Line 127  void fmboard_reset(BYTE num) { | 
 | pcm86_reset(); | pcm86_reset(); | 
 | cs4231_reset(); | cs4231_reset(); | 
 |  |  | 
| switch(num) { | switch(type) { | 
 | case 0x01: | case 0x01: | 
 | board14_reset(); | board14_reset(); | 
 | break; | break; | 
| Line 170  void fmboard_reset(BYTE num) { | Line 167  void fmboard_reset(BYTE num) { | 
 | break; | break; | 
 |  |  | 
 | default: | default: | 
| usesound = 0; | type = 0; | 
 | break; | break; | 
 | } | } | 
 |  | usesound = type; | 
 | soundmng_setreverse(cross); | soundmng_setreverse(cross); | 
| keydisp_setfmboard(num); | keydisp_setfmboard(type); | 
 | opngen_setVR(np2cfg.spb_vrc, np2cfg.spb_vrl); | opngen_setVR(np2cfg.spb_vrc, np2cfg.spb_vrl); | 
 | } | } | 
 |  |  | 
| Line 194  void fmboard_bind(void) { | Line 192  void fmboard_bind(void) { | 
 | break; | break; | 
 |  |  | 
 | case 0x06: | case 0x06: | 
| board86c_bind(); | boardx2_bind(); | 
 | break; | break; | 
 |  |  | 
 | case 0x08: | case 0x08: |