diff --git a/src/engine/platform/c140.cpp b/src/engine/platform/c140.cpp index 110e73d8..ce730999 100644 --- a/src/engine/platform/c140.cpp +++ b/src/engine/platform/c140.cpp @@ -451,7 +451,10 @@ void DivPlatformC140::renderSamples(int sysID) { } else { if (s->depth==DIV_SAMPLE_DEPTH_MULAW) { for (unsigned int i=0; idataMuLaw[i])<<8); + unsigned char x=s->dataMuLaw[i]^0xff; + if (x&0x80) x^=15; + unsigned char c140Mu=(x&0x80)|((x&15)<<3)|((x&0x70)>>4); + sampleMem[i+(memPos/sizeof(short))]=((c140Mu)<<8); } } else { memcpy(sampleMem+(memPos/sizeof(short)),s->data16,length);