--- np2/cbus/board86.c 2003/12/08 00:55:30 1.2 +++ np2/cbus/board86.c 2005/05/12 17:24:05 1.6 @@ -85,14 +85,21 @@ static REG8 IOINPCALL opna_i188(UINT por static REG8 IOINPCALL opna_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 opna_i18c(UINT port) { @@ -144,7 +151,7 @@ void board86_reset(void) { ((np2cfg.snd86opt & 0x8) << 3)); opngen_setcfg(3, OPN_STEREO | 0x038); if (np2cfg.snd86opt & 2) { - soundrom_load(0xcc000, "86"); + soundrom_load(0xcc000, OEMTEXT("86")); } opn.base = (np2cfg.snd86opt & 0x01)?0x000:0x100; fmboard_extreg(extendchannel); @@ -152,9 +159,13 @@ void board86_reset(void) { void board86_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); pcm86io_bind(); cbuscore_attachsndex(0x188 + opn.base, opna_o, opna_i); } @@ -171,7 +182,6 @@ static void IOOUTCALL opnac_o18e(UINT po } else { if (opn.extreg < 0x12) { - sound_sync(); adpcm_setreg(&adpcm, opn.extreg, dat); } } @@ -209,9 +219,13 @@ static const IOINP opnac_i[4] = { void board86c_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); sound_streamregist(&adpcm, (SOUNDCB)adpcm_getpcm); pcm86io_bind(); cbuscore_attachsndex(0x188 + opn.base, opnac_o, opnac_i);