From 606ce2a01eca267418e4aa50459208a1d6380c30 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 28 Apr 2025 17:30:05 -0500 Subject: [PATCH] YM2608: VGM reset after enabling 6-channel mode --- src/engine/platform/ym2608.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/engine/platform/ym2608.cpp b/src/engine/platform/ym2608.cpp index d87bcf688..02e6a427e 100644 --- a/src/engine/platform/ym2608.cpp +++ b/src/engine/platform/ym2608.cpp @@ -1795,9 +1795,6 @@ void DivPlatformYM2608::poke(std::vector& 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);