aboutsummaryrefslogtreecommitdiff
path: root/sound/mods/paula.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sound/mods/paula.cpp')
-rw-r--r--sound/mods/paula.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/sound/mods/paula.cpp b/sound/mods/paula.cpp
index 40b5a904e6..9f2eb4290a 100644
--- a/sound/mods/paula.cpp
+++ b/sound/mods/paula.cpp
@@ -147,6 +147,7 @@ int Paula::readBufferIntern(int16 *buffer, const int numSamples) {
_voice[voice].data = data = _voice[voice].dataRepeat;
_voice[voice].length = _voice[voice].lengthRepeat;
sLen = intToFrac(_voice[voice].length);
+ // TODO: the value in offset shouldnt be dropped but scaled to new rate
if (_voice[voice].period != _voice[voice].periodRepeat) {
_voice[voice].period = _voice[voice].periodRepeat;
@@ -162,6 +163,7 @@ int Paula::readBufferIntern(int16 *buffer, const int numSamples) {
// Repeat as long as necessary.
while (neededSamples > 0) {
+ // TODO offset -= sLen, but only if same rate otherwise need to scale first
offset &= FRAC_LO_MASK;
dmaCount++;
@@ -172,12 +174,6 @@ int Paula::readBufferIntern(int16 *buffer, const int numSamples) {
}
}
- // TODO correctly handle setting registers after last 2 bytes red from channel
- if (offset > sLen) {
- offset &= FRAC_LO_MASK;
- dmaCount++;
- }
-
// Write back the cached data
_voice[voice].offset = offset;
_voice[voice].dmaCount = dmaCount;