absolute C64 duty macros!
exclusive to .fur format
This commit is contained in:
parent
3fdcd3a4fc
commit
9f6bb570c9
3 changed files with 24 additions and 8 deletions
|
|
@ -7,9 +7,9 @@ class DivMacroInt {
|
|||
DivInstrument* ins;
|
||||
int volPos, arpPos, dutyPos, wavePos;
|
||||
public:
|
||||
unsigned char vol;
|
||||
signed char arp;
|
||||
unsigned char duty, wave;
|
||||
int vol;
|
||||
int arp;
|
||||
int duty, wave;
|
||||
bool hasVol, hasArp, hasDuty, hasWave;
|
||||
bool hadVol, hadArp, hadDuty, hadWave;
|
||||
bool finishedVol, finishedArp, finishedDuty, finishedWave;
|
||||
|
|
|
|||
|
|
@ -51,7 +51,12 @@ void DivPlatformC64::tick() {
|
|||
}
|
||||
}
|
||||
if (chan[i].std.hadDuty) {
|
||||
chan[i].duty-=((signed char)chan[i].std.duty-12)*4;
|
||||
DivInstrument* ins=parent->getIns(chan[i].ins);
|
||||
if (ins->c64.dutyIsAbs) {
|
||||
chan[i].duty=chan[i].std.duty;
|
||||
} else {
|
||||
chan[i].duty-=((signed char)chan[i].std.duty-12)*4;
|
||||
}
|
||||
rWrite(i*7+2,chan[i].duty&0xff);
|
||||
rWrite(i*7+3,chan[i].duty>>8);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue