YM2608: VGM reset after enabling 6-channel mode

This commit is contained in:
tildearrow 2025-04-28 17:30:05 -05:00
parent bbfa4c7fca
commit 606ce2a01e

View file

@ -1795,9 +1795,6 @@ void DivPlatformYM2608::poke(std::vector<DivRegWrite>& wlist) {
void DivPlatformYM2608::reset() {
writes.clear();
memset(regPool,0,512);
if (dumpWrites) {
addWrite(0xffffffff,0);
}
OPN2_Reset(&fm_nuked);
OPN2_SetChipType(&fm_nuked,ym3438_mode_opn);
fm->reset();
@ -1883,6 +1880,13 @@ void DivPlatformYM2608::reset() {
extMode=false;
// enable 6 channel mode
immWrite(0x29,0x80);
if (dumpWrites) {
addWrite(0xffffffff,0);
}
// LFO
immWrite(0x22,lfoValue);
@ -1894,9 +1898,6 @@ void DivPlatformYM2608::reset() {
immWrite(0x10d,0xff);
immWrite(0x10c,0xff);
// enable 6 channel mode
immWrite(0x29,0x80);
// set prescaler
immWrite(0x2d,0xff);
immWrite(prescale,0xff);