Merge branch 'sample_macro' of github.com:tildearrow/furnace into sample_macro

This commit is contained in:
tildearrow 2022-09-23 19:35:00 -05:00
commit e82374fcde
2 changed files with 35 additions and 32 deletions

View File

@ -91,28 +91,30 @@ void DivPlatformMSM6258::acquire(short* bufL, short* bufR, size_t start, size_t
void DivPlatformMSM6258::tick(bool sysTick) { void DivPlatformMSM6258::tick(bool sysTick) {
for (int i=0; i<1; i++) { for (int i=0; i<1; i++) {
chan[i].std.next(); if (!parent->song.disableSampleMacro) {
if (chan[i].std.duty.had) { chan[i].std.next();
if (rateSel!=(chan[i].std.duty.val&3)) { if (chan[i].std.duty.had) {
rateSel=chan[i].std.duty.val&3; if (rateSel!=(chan[i].std.duty.val&3)) {
rWrite(12,rateSel); rateSel=chan[i].std.duty.val&3;
rWrite(12,rateSel);
}
} }
} if (chan[i].std.panL.had) {
if (chan[i].std.panL.had) { if (chan[i].pan!=(chan[i].std.panL.val&3)) {
if (chan[i].pan!=(chan[i].std.panL.val&3)) { chan[i].pan=chan[i].std.panL.val&3;
chan[i].pan=chan[i].std.panL.val&3; rWrite(2,chan[i].pan);
rWrite(2,chan[i].pan); }
} }
} if (chan[i].std.ex1.had) {
if (chan[i].std.ex1.had) { if (clockSel!=(chan[i].std.ex1.val&1)) {
if (clockSel!=(chan[i].std.ex1.val&1)) { clockSel=chan[i].std.ex1.val&1;
clockSel=chan[i].std.ex1.val&1; rWrite(8,clockSel);
rWrite(8,clockSel); }
} }
} if (chan[i].std.phaseReset.had) {
if (chan[i].std.phaseReset.had) { if (chan[i].std.phaseReset.val && chan[i].active) {
if (chan[i].std.phaseReset.val && chan[i].active) { chan[i].keyOn=true;
chan[i].keyOn=true; }
} }
} }
if (chan[i].keyOn || chan[i].keyOff) { if (chan[i].keyOn || chan[i].keyOff) {

View File

@ -88,21 +88,22 @@ void DivPlatformMSM6295::acquire(short* bufL, short* bufR, size_t start, size_t
} }
void DivPlatformMSM6295::tick(bool sysTick) { void DivPlatformMSM6295::tick(bool sysTick) {
if (parent->song.disableSampleMacro) return;
for (int i=0; i<4; i++) { for (int i=0; i<4; i++) {
chan[i].std.next(); if (!parent->song.disableSampleMacro) {
if (chan[i].std.vol.had) { chan[i].std.next();
chan[i].outVol=VOL_SCALE_LOG(chan[i].std.vol.val,chan[i].vol,8); if (chan[i].std.vol.had) {
} chan[i].outVol=VOL_SCALE_LOG(chan[i].std.vol.val,chan[i].vol,8);
if (chan[i].std.duty.had) {
if (rateSel!=(chan[i].std.duty.val&1)) {
rateSel=chan[i].std.duty.val&1;
rWrite(12,!rateSel);
} }
} if (chan[i].std.duty.had) {
if (chan[i].std.phaseReset.had) { if (rateSel!=(chan[i].std.duty.val&1)) {
if (chan[i].std.phaseReset.val && chan[i].active) { rateSel=chan[i].std.duty.val&1;
chan[i].keyOn=true; rWrite(12,!rateSel);
}
}
if (chan[i].std.phaseReset.had) {
if (chan[i].std.phaseReset.val && chan[i].active) {
chan[i].keyOn=true;
}
} }
} }
if (chan[i].keyOn || chan[i].keyOff) { if (chan[i].keyOn || chan[i].keyOff) {