This commit is contained in:
tildearrow 2022-03-26 21:43:15 -05:00
parent 00876a461a
commit 5c11150b87
2 changed files with 9 additions and 0 deletions

View file

@ -289,6 +289,7 @@ int DivPlatformGB::dispatch(DivCommand c) {
chan[c.chan].ins=c.value; chan[c.chan].ins=c.value;
if (c.chan!=2) { if (c.chan!=2) {
chan[c.chan].vol=parent->getIns(chan[c.chan].ins)->gb.envVol; chan[c.chan].vol=parent->getIns(chan[c.chan].ins)->gb.envVol;
// TODO: also change envelope values
} }
} }
break; break;

View file

@ -905,8 +905,16 @@ void DivEngine::processRow(int i, bool afterDelay) {
break; break;
case 0x07: // tremolo case 0x07: // tremolo
// TODO // TODO
// this effect is really weird. i thought it would alter the tremolo depth but turns out it's completely different
// this is how it works:
// - 07xy enables tremolo
// - when enabled, a "low" boundary is calculated based on the current volume
// - then a volume slide down starts to the low boundary, and then when this is reached a volume slide up begins
// - this process repeats until 0700 or 0Axy are found
// - note that a volume value does not stop tremolo - instead it glitches this whole thing up
break; break;
case 0x0a: // volume ramp case 0x0a: // volume ramp
// TODO: non-0x-or-x0 value should be treated as 00
if (effectVal!=0) { if (effectVal!=0) {
if ((effectVal&15)!=0) { if ((effectVal&15)!=0) {
chan[i].volSpeed=-(effectVal&15)*64; chan[i].volSpeed=-(effectVal&15)*64;