Exemple #1
0
/**
 * Reset
 * @param[in] pConfig A pointer to a configure structure
 */
void boardpx2_reset(const NP2CFG *pConfig)
{
	UINT nIrq1;
	UINT nIrq2;

	nIrq1 = (pConfig->spbopt & 0xc0) | 0x10;
	nIrq2 = (nIrq1 == 0xd0) ? 0x90 : 0xd0;

	opna_reset(&g_opna[0], OPNA_MODE_2608 | OPNA_HAS_TIMER | OPNA_HAS_ADPCM | OPNA_S98);
	opna_timer(&g_opna[0], nIrq1, NEVENT_FMTIMERA, NEVENT_FMTIMERB);
	opna_reset(&g_opna[1], OPNA_MODE_2608 | OPNA_HAS_TIMER | OPNA_HAS_ADPCM);
	opna_timer(&g_opna[1], nIrq2, NEVENT_FMTIMER2A, NEVENT_FMTIMER2B);
	opna_reset(&g_opna[2], OPNA_MODE_3438);
	opna_reset(&g_opna[3], OPNA_MODE_3438);
	opna_reset(&g_opna[4], OPNA_MODE_2608 | OPNA_HAS_ADPCM);

	opngen_setcfg(&g_opna[0].opngen, 6, OPN_STEREO | 0x3f);
	opngen_setcfg(&g_opna[1].opngen, 6, OPN_STEREO | 0x3f);
	opngen_setcfg(&g_opna[2].opngen, 6, OPN_STEREO | 0x3f);
	opngen_setcfg(&g_opna[3].opngen, 6, OPN_STEREO | 0x3f);
	opngen_setcfg(&g_opna[4].opngen, 3, OPN_STEREO | 0x38);
	soundrom_loadex(pConfig->spbopt & 7, OEMTEXT("SPB"));
	g_opna[0].s.base = (pConfig->spbopt & 0x10) ? 0x000 : 0x100;
	fmboard_extreg(extendchannelx2);
	pcm86io_setopt(0x00);
}
Exemple #2
0
/**
 * Reset
 * @param[in] pConfig A pointer to a configure structure
 * @param[in] adpcm Enable ADPCM
 */
void boardx2_reset(const NP2CFG *pConfig)
{
	opna_reset(&g_opna[0], OPNA_MODE_2608 | OPNA_HAS_TIMER | OPNA_S98);
	opna_reset(&g_opna[1], OPNA_MODE_2203);

	fmtimer_reset(0xc0);
	opngen_setcfg(&g_opna[0].opngen, 3, OPN_STEREO | 0x038);
	opngen_setcfg(&g_opna[1].opngen, 3, 0);
	if (pConfig->snd86opt & 2)
	{
		soundrom_load(0xcc000, OEMTEXT("86"));
	}
	fmboard_extreg(extendchannel);
}
Exemple #3
0
/**
 * Reset
 * @param[in] pConfig A pointer to a configure structure
 */
void boardpx1_reset(const NP2CFG *pConfig)
{
	opna_reset(&g_opna[0], OPNA_MODE_2608 | OPNA_HAS_TIMER | OPNA_HAS_ADPCM | OPNA_S98);
	opna_reset(&g_opna[1], OPNA_MODE_2608 | OPNA_HAS_TIMER | OPNA_HAS_ADPCM | OPNA_S98);
	opna_reset(&g_opna[2], OPNA_MODE_3438);
	opna_reset(&g_opna[3], OPNA_MODE_3438);

	fmtimer_reset(pConfig->spbopt & 0xc0);
	opngen_setcfg(&g_opna[0].opngen, 6, OPN_STEREO | 0x3f);
	opngen_setcfg(&g_opna[1].opngen, 6, OPN_STEREO | 0x3f);
	opngen_setcfg(&g_opna[2].opngen, 6, OPN_STEREO | 0x3f);
	opngen_setcfg(&g_opna[3].opngen, 6, OPN_STEREO | 0x3f);
	soundrom_loadex(pConfig->spbopt & 7, OEMTEXT("SPB"));
	g_opna[0].s.base = (pConfig->spbopt & 0x10) ? 0x000 : 0x100;
}
Exemple #4
0
/**
 * Reset
 * @param[in] pConfig A pointer to a configure structure
 */
void board118_reset(const NP2CFG *pConfig)
{
	opna_reset(&g_opna[0], OPNA_MODE_2608 | OPNA_HAS_TIMER | OPNA_S98);

	fmtimer_reset(0xc0);
	opngen_setcfg(&g_opna[0].opngen, 3, OPN_STEREO | 0x038);
	cs4231io_reset();
	soundrom_load(0xcc000, OEMTEXT("118"));
	fmboard_extreg(extendchannel);

	(void)pConfig;
}
Exemple #5
0
/**
 * Reset
 * @param[in] pConfig A pointer to a configure structure
 * @param[in] adpcm Enable ADPCM
 */
void board86_reset(const NP2CFG *pConfig, BOOL adpcm)
{
	REG8 cCaps;

	cCaps = OPNA_MODE_2608 | OPNA_HAS_TIMER | OPNA_S98;
	if (adpcm)
	{
		cCaps |= OPNA_HAS_ADPCM;
	}
	opna_reset(&g_opna[0], cCaps);

	fmtimer_reset((pConfig->snd86opt & 0x10) |
					((pConfig->snd86opt & 0x4) << 5) |
					((pConfig->snd86opt & 0x8) << 3));
	opngen_setcfg(&g_opna[0].opngen, 3, OPN_STEREO | 0x38);
	if (pConfig->snd86opt & 2)
	{
		soundrom_load(0xcc000, OEMTEXT("86"));
	}
	g_opna[0].s.base = (pConfig->snd86opt & 0x01) ? 0x000 : 0x100;
	fmboard_extreg(extendchannel);
}