diff --git a/src/engine/platform/msm6258.cpp b/src/engine/platform/msm6258.cpp index 826d221b2..9bcb79668 100644 --- a/src/engine/platform/msm6258.cpp +++ b/src/engine/platform/msm6258.cpp @@ -46,6 +46,16 @@ void DivPlatformMSM6258::acquire(short* bufL, short* bufR, size_t start, size_t case 0: msm->ctrl_w(w.val); break; + case 2: + msmPan=w.val; + break; + case 8: + msmClock=w.val; + break; + case 12: + msmDivider=4-(w.val&3); + if (msmDivider<2) msmDivider=2; + break; } writes.pop(); } diff --git a/src/engine/platform/msm6258.h b/src/engine/platform/msm6258.h index ea0482f37..7ef226816 100644 --- a/src/engine/platform/msm6258.h +++ b/src/engine/platform/msm6258.h @@ -87,9 +87,9 @@ class DivPlatformMSM6258: public DivDispatch { unsigned char* adpcmMem; size_t adpcmMemLen; - unsigned char sampleBank; + unsigned char sampleBank, msmPan, msmDivider; - int delay, updateOsc, sample, samplePos; + int delay, updateOsc, sample, samplePos, msmClock; bool extMode;