diff --git a/src/emucore/CartCDF.cxx b/src/emucore/CartCDF.cxx index 43c7290ac..ae06bdc05 100644 --- a/src/emucore/CartCDF.cxx +++ b/src/emucore/CartCDF.cxx @@ -277,7 +277,8 @@ uInt8 CartridgeCDF::peek(uInt16 address) if DIGITAL_AUDIO_ON { // retrieve packed sample (max size is 2K, or 4K of unpacked data) - uInt32 sampleaddress = getSample() + (myMusicCounters[0] >> 13); + + uInt32 sampleaddress = getSample() + (myMusicCounters[0] >> (isCDFJplus() ? 13 : 21)); // get sample value from ROM or RAM if (sampleaddress < 0x00080000) @@ -288,7 +289,7 @@ uInt8 CartridgeCDF::peek(uInt16 address) peekvalue = 0; // make sure current volume value is in the lower nybble - if ((myMusicCounters[0] & (1<<12)) == 0) + if ((myMusicCounters[0] & (1<<(isCDFJplus() ? 12 : 20))) == 0) peekvalue >>= 4; peekvalue &= 0x0f; }