void Channel2::setNr2(unsigned data) { if (envelopeUnit_.nr2Change(data)) disableMaster_(); else staticOutputTest_(cycleCounter_); setEvent(); }
unsigned Channel1::SweepUnit::calcFreq() { unsigned freq = shadow_ >> (nr0_ & 0x07); if (nr0_ & 0x08) { freq = shadow_ - freq; negging_ = true; } else freq = shadow_ + freq; if (freq & 2048) disableMaster_(); return freq; }
void Channel1::SweepUnit::nr0Change(unsigned newNr0) { if (negging_ && !(newNr0 & 0x08)) disableMaster_(); nr0_ = newNr0; }