Beispiel #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);
}
Beispiel #2
0
static void extendchannel(REG8 enable)
{
	g_opna[0].s.extend = enable;
	if (enable)
	{
		opngen_setcfg(&g_opna[0].opngen, 6, OPN_STEREO | 0x007);
	}
	else
	{
		opngen_setcfg(&g_opna[0].opngen, 3, OPN_MONORAL | 0x007);
		rhythm_setreg(&g_opna[0].rhythm, 0x10, 0xff);
	}
}
Beispiel #3
0
static void extendchannel(REG8 enable) {

    opn.extend = enable;
    if (enable) {
        opn.channels = 9;
        opngen_setcfg(9, OPN_STEREO | 0x038);
    }
    else {
        opn.channels = 6;
        opngen_setcfg(6, OPN_MONORAL | 0x038);
        rhythm_setreg(&rhythm, 0x10, 0xff);
    }
}
Beispiel #4
0
static void extendchannelx2(REG8 enable) {

	g_opn3.extend = enable;
	if (enable) {
		g_opn3.channels = 6;
		opngen_setcfg(&g_opngen, 30, OPN_STEREO | 0x07000000);
	}
	else {
		g_opn3.channels = 3;
		opngen_setcfg(&g_opngen, 27, OPN_MONORAL | 0x07000000);
		rhythm_setreg(&g_rhythm2, 0x10, 0xff);
	}
}
Beispiel #5
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);
}
Beispiel #6
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;
}
Beispiel #7
0
void board26k_reset(const NP2CFG *pConfig) {

	opngen_setcfg(&g_opngen, 3, 0);
	fmtimer_reset(pConfig->snd26opt & 0xc0);
	soundrom_loadex(pConfig->snd26opt & 7, OEMTEXT("26"));
	g_opn.base = (pConfig->snd26opt & 0x10)?0x000:0x100;
}
Beispiel #8
0
void board26k_reset(void) {

	opngen_setcfg(3, 0);
	fmtimer_reset(np2cfg.snd26opt & 0xc0);
	soundrom_loadex(np2cfg.snd26opt & 7, OEMTEXT("26"));
	opn.base = (np2cfg.snd26opt & 0x10)?0x000:0x100;
}
Beispiel #9
0
void boardx2_reset(void) {

    fmtimer_reset(0xc0);
    opn.channels = 6;
    opngen_setcfg(6, OPN_STEREO | 0x1c0);
    soundrom_load(0xcc000, OEMTEXT("86"));
    fmboard_extreg(extendchannel);
}
Beispiel #10
0
void board118_reset(void) {

	fmtimer_reset(0xc0);
	opngen_setcfg(3, OPN_STEREO | 0x038);
	cs4231io_reset();
	soundrom_load(0xcc000, OEMTEXT("118"));
	fmboard_extreg(extendchannel);
}
Beispiel #11
0
void boardspb_reset(void) {

	fmtimer_reset(np2cfg.spbopt & 0xc0);
	opn.channels = 6;
	opngen_setcfg(6, OPN_STEREO | 0x03f);
	soundrom_loadex(np2cfg.spbopt & 7, OEMTEXT("SPB"));
	opn.base = ((np2cfg.spbopt & 0x10)?0x000:0x100);
}
Beispiel #12
0
void boardspr_reset(void) {

	fmtimer_reset(np2cfg.spbopt & 0xc0);
	opn.reg[0x2ff] = 0;
	opn.channels = 12;
	opngen_setcfg(12, OPN_STEREO | 0x03f);
	soundrom_loadex(np2cfg.spbopt & 7, OEMTEXT("SPB"));
	opn.base = (np2cfg.spbopt & 0x10)?0x000:0x100;
}
Beispiel #13
0
void board118_reset(const NP2CFG *pConfig) {

	fmtimer_reset(0xc0);
	opngen_setcfg(&g_opngen, 3, OPN_STEREO | 0x038);
	cs4231io_reset();
	soundrom_load(0xcc000, OEMTEXT("118"));
	fmboard_extreg(extendchannel);

	(void)pConfig;
}
Beispiel #14
0
void boardpx1_reset(const NP2CFG *pConfig) {

	fmtimer_reset(pConfig->spbopt & 0xc0);
	g_opn.reg[0x2ff] = 0;
	g_opn.channels = 12;
	g_opn2.reg[0x2ff] = 0;
	g_opn2.channels = 12;
	opngen_setcfg(&g_opngen, 24, OPN_STEREO | 0x00ffffff);
	soundrom_loadex(pConfig->spbopt & 7, OEMTEXT("SPB"));
	g_opn.base = (pConfig->spbopt & 0x10)?0x000:0x100;
}
Beispiel #15
0
void board86_reset(const NP2CFG *pConfig) {

	fmtimer_reset((pConfig->snd86opt & 0x10) |
					((pConfig->snd86opt & 0x4) << 5) |
					((pConfig->snd86opt & 0x8) << 3));
	opngen_setcfg(3, OPN_STEREO | 0x038);
	if (pConfig->snd86opt & 2) {
		soundrom_load(0xcc000, OEMTEXT("86"));
	}
	opn.base = (pConfig->snd86opt & 0x01)?0x000:0x100;
	fmboard_extreg(extendchannel);
}
Beispiel #16
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;
}
Beispiel #17
0
void boardpx2_reset(const NP2CFG *pConfig) {

	fmtimer_reset(pConfig->spbopt & 0xc0);
	g_opn.reg[0x2ff] = 0;
	g_opn.channels = 12;
	g_opn2.reg[0x2ff] = 0;
	g_opn2.channels = 12;
	g_opn3.channels = 3;
	opngen_setcfg(&g_opngen, 27, OPN_STEREO | 0x38ffffff);
	soundrom_loadex(pConfig->spbopt & 7, OEMTEXT("SPB"));
	g_opn.base = (pConfig->spbopt & 0x10)?0x000:0x100;
	fmboard_extreg(extendchannelx2);
}
Beispiel #18
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);
}