Amiga: better emulation, part 6

This commit is contained in:
tildearrow 2023-03-11 01:42:13 -05:00
parent 8fc6a71882
commit 1a80fb262d
2 changed files with 2 additions and 14 deletions

View File

@ -338,7 +338,6 @@ void DivPlatformAmiga::tick(bool sysTick) {
if (chan[i].wave!=chan[i].std.wave.val || chan[i].ws.activeChanged()) { if (chan[i].wave!=chan[i].std.wave.val || chan[i].ws.activeChanged()) {
chan[i].wave=chan[i].std.wave.val; chan[i].wave=chan[i].std.wave.val;
chan[i].ws.changeWave1(chan[i].wave); chan[i].ws.changeWave1(chan[i].wave);
if (!chan[i].keyOff) chan[i].keyOn=true;
} }
} }
if (chan[i].useWave && chan[i].active) { if (chan[i].useWave && chan[i].active) {
@ -585,7 +584,8 @@ void DivPlatformAmiga::forceIns() {
chan[i].insChanged=true; chan[i].insChanged=true;
chan[i].freqChanged=true; chan[i].freqChanged=true;
chan[i].audPos=131072; chan[i].audPos=131072;
chan[i].audDat=0; chan[i].keyOn=false;
chan[i].keyOff=false;
chan[i].sample=-1; chan[i].sample=-1;
} }
} }

View File

@ -26,33 +26,21 @@
class DivPlatformAmiga: public DivDispatch { class DivPlatformAmiga: public DivDispatch {
struct Channel: public SharedChannel<signed char> { struct Channel: public SharedChannel<signed char> {
unsigned int audLoc;
unsigned short audLen; unsigned short audLen;
unsigned int audPos; unsigned int audPos;
unsigned int dmaLoc;
unsigned short dmaLen;
int audSub; int audSub;
signed char audDat;
signed char audDat2;
unsigned char volPos; unsigned char volPos;
int sample, wave; int sample, wave;
int busClock;
bool useWave, setPos, useV, useP, dmaOn, audDatClock, writeVol; bool useWave, setPos, useV, useP, dmaOn, audDatClock, writeVol;
DivWaveSynth ws; DivWaveSynth ws;
Channel(): Channel():
SharedChannel<signed char>(64), SharedChannel<signed char>(64),
audLoc(0),
audLen(0), audLen(0),
audPos(0), audPos(0),
dmaLoc(0),
dmaLen(0),
audSub(0), audSub(0),
audDat(0),
audDat2(0),
volPos(0), volPos(0),
sample(-1), sample(-1),
wave(-1), wave(-1),
busClock(0),
useWave(false), useWave(false),
setPos(false), setPos(false),
useV(false), useV(false),