diff --git a/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp b/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp index 59d8af8f7..cd6fe8e89 100644 --- a/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp +++ b/extern/vgsound_emu-modified/vgsound_emu/src/k053260/k053260.cpp @@ -226,7 +226,7 @@ void k053260_core::voice_t::write(u8 address, u8 data) m_start = (m_start & ~0x00ff00) | (u32(data) << 8); break; case 6: // start address bit 16-20 - m_start = (m_start & ~0x1f0000) | (u32(bitfield(data, 16, 5)) << 16); + m_start = (m_start & ~0x1f0000) | (u32(bitfield(data, 0, 5)) << 16); break; case 7: // volume m_volume = bitfield(data, 0, 7); diff --git a/src/engine/platform/k053260.cpp b/src/engine/platform/k053260.cpp index 7ba1cc2ca..5791d2426 100644 --- a/src/engine/platform/k053260.cpp +++ b/src/engine/platform/k053260.cpp @@ -145,15 +145,15 @@ void DivPlatformK053260::tick(bool sysTick) { off=8363.0/s->centerRate; } } - DivSample* s=parent->getSample(chan[i].sample); + DivSample* s=parent->getSample(sample); chan[i].freq=0x1000-(int)(off*parent->calcFreq(chan[i].baseFreq,chan[i].pitch,chan[i].fixedArp?chan[i].baseNoteOverride:chan[i].arpOff,chan[i].fixedArp,true,0,chan[i].pitch2,chipClock,CHIP_DIVIDER)); if (chan[i].freq>4095) chan[i].freq=4095; if (chan[i].freq<0) chan[i].freq=0; if (chan[i].keyOn) { unsigned int start=0; unsigned int length=0; - if (chan[i].sample>=0 && chan[i].samplesong.sampleLen) { - start=sampleOffK053260[chan[i].sample]; + if (sample>=0 && samplesong.sampleLen) { + start=sampleOffK053260[sample]; length=s->length8; if (chan[i].reverse) { start+=length; @@ -163,8 +163,7 @@ void DivPlatformK053260::tick(bool sysTick) { if (chan[i].audPos>0) { if (chan[i].reverse) { start=start-MIN(chan[i].audPos,s->length8); - } - else { + } else { start=start+MIN(chan[i].audPos,s->length8); } length=MAX(1,length-chan[i].audPos);