--- np2/cbus/board118.c 2003/12/08 00:55:30 1.2 +++ np2/cbus/board118.c 2005/05/12 17:24:05 1.6 @@ -60,7 +60,6 @@ static void IOOUTCALL ymf_o18e(UINT port S98_put(EXTEND2608, opn.extreg, dat); opn.reg[opn.extreg + 0x100] = dat; if (opn.extreg >= 0x30) { - sound_sync(); opngen_setreg(3, opn.extreg, dat); } else { @@ -81,14 +80,21 @@ static REG8 IOINPCALL ymf_i188(UINT port static REG8 IOINPCALL ymf_i18a(UINT port) { + (void)port; if (opn.opnreg == 0x0e) { return(fmboard_getjoy(&psg1)); } else if (opn.opnreg < 0x10) { return(psggen_getreg(&psg1, opn.opnreg)); } - (void)port; +#if 1 + else if (opn.opnreg == 0xff) { + return(1); + } + return(opn.opnreg); +#else return(opn.reg[opn.opnreg]); +#endif } static REG8 IOINPCALL ymf_i18c(UINT port) { @@ -151,15 +157,19 @@ void board118_reset(void) { fmtimer_reset(0xc0); opngen_setcfg(3, OPN_STEREO | 0x038); cs4231io_reset(); - soundrom_load(0xcc000, "118"); + soundrom_load(0xcc000, OEMTEXT("118")); fmboard_extreg(extendchannel); } void board118_bind(void) { + fmboard_fmrestore(0, 0); + fmboard_fmrestore(3, 1); + psggen_restore(&psg1); + fmboard_rhyrestore(&rhythm, 0); sound_streamregist(&opngen, (SOUNDCB)opngen_getpcm); sound_streamregist(&psg1, (SOUNDCB)psggen_getpcm); - sound_streamregist(&rhythm, (SOUNDCB)rhythm_getpcm); + rhythm_bind(&rhythm); cs4231io_bind(); cbuscore_attachsndex(0x188, ymf_o, ymf_i); iocore_attachout(0xa460, ymf_oa460);