--- np2/sound/fmboard.c 2004/02/04 03:42:02 1.10 +++ np2/sound/fmboard.c 2004/02/18 03:24:48 1.12 @@ -1,7 +1,6 @@ #include "compiler.h" #include "joymng.h" #include "soundmng.h" -// #include "cpucore.h" #include "pccore.h" #include "iocore.h" #include "cbuscore.h" @@ -18,6 +17,7 @@ #include "fmboard.h" #include "beep.h" #include "keydisp.h" +#include "keystat.h" UINT32 usesound; @@ -54,12 +54,12 @@ REG8 fmboard_getjoy(PSGGEN psg) { if (!(psg->reg.io2 & 0x40)) { ret &= (joymng_getstat() | (rapids & 0x30)); if (np2cfg.KEY_MODE == 1) { - ret &= keyext_getjoy(); + ret &= keystat_getjoy(); } } else { if (np2cfg.KEY_MODE == 2) { - ret &= keyext_getjoy(); + ret &= keystat_getjoy(); } } if (np2cfg.BTN_RAPID) { @@ -100,6 +100,14 @@ void fmboard_extenable(REG8 enable) { // ---- +static void setfmregs(BYTE *reg) { + + FillMemory(reg + 0x30, 0x60, 0xff); + FillMemory(reg + 0x90, 0x20, 0x00); + FillMemory(reg + 0xb0, 0x04, 0x00); + FillMemory(reg + 0xb4, 0x04, 0xc0); +} + void fmboard_reset(UINT32 type) { BYTE cross; @@ -110,10 +118,13 @@ void fmboard_reset(UINT32 type) { extfn = NULL; ZeroMemory(&opn, sizeof(opn)); + setfmregs(opn.reg + 0x000); + setfmregs(opn.reg + 0x100); + setfmregs(opn.reg + 0x200); + setfmregs(opn.reg + 0x300); + opn.reg[0xff] = 0x01; opn.channels = 3; opn.adpcmmask = (UINT8)~(0x1c); - FillMemory(opn.reg, 0x400, 0xff); - opn.reg[0xff] = 0x01; ZeroMemory(&musicgen, sizeof(musicgen)); ZeroMemory(&amd98, sizeof(amd98));