Fixed XG mode.

CQTexperiment
Christopher Snowhill 2017-05-18 17:51:33 -07:00
parent 473990139d
commit 9bc3b55cb7
1 changed files with 15 additions and 6 deletions

View File

@ -147,7 +147,7 @@ void SCPlayer::reset(uint32_t port)
switch (mode)
{
case sc_gm:
sampler[port].TG_LongMidiIn( syx_reset_gm, 0 );
/*sampler[port].TG_LongMidiIn( syx_reset_gm, 0 );*/
break;
case sc_gm2:
@ -159,13 +159,12 @@ void SCPlayer::reset(uint32_t port)
case sc_sc88pro:
case sc_sc8850:
case sc_default:
sampler[port].TG_LongMidiIn( syx_reset_gs, 0 );
sampler[port].TG_LongMidiIn( syx_reset_gs, 0 ); junk(port, 1024);
reset_sc(port);
break;
case sc_xg:
sampler[port].TG_LongMidiIn( syx_reset_xg, 0 );
sampler[port].TG_ShortMidiIn( 0x7F00B9, 0 ); // fix drum channel
break;
}
@ -177,12 +176,22 @@ void SCPlayer::reset(uint32_t port)
{
sampler[port].TG_ShortMidiIn(0x78B0 + i, 0);
sampler[port].TG_ShortMidiIn(0x79B0 + i, 0);
sampler[port].TG_ShortMidiIn(0x20B0 + i, 0);
sampler[port].TG_ShortMidiIn(0x00B0 + i, 0);
sampler[port].TG_ShortMidiIn(0xC0 + i, 0);
if (mode != sc_xg || i != 9)
{
sampler[port].TG_ShortMidiIn(0x20B0 + i, 0);
sampler[port].TG_ShortMidiIn(0x00B0 + i, 0);
sampler[port].TG_ShortMidiIn(0xC0 + i, 0);
}
}
}
if (mode == sc_xg)
{
sampler[port].TG_ShortMidiIn(0x20B9, 0);
sampler[port].TG_ShortMidiIn(0x7F00B9, 0);
sampler[port].TG_ShortMidiIn(0xC9, 0);
}
junk(port, uSampleRate * 2 / 3);
}
}