Code: Select all
void PowerOn (void)
{
#ifndef NSFPLAYER
ZeroMemory(Regs, 0x18);
#endif /* !NSFPLAYER */
Frame::PowerOn();
Square0::PowerOn();
Square1::PowerOn();
Triangle::PowerOn();
Noise::PowerOn();
DPCM::PowerOn();
Race::PowerOn();
Cycles = 1;
CPU::WantIRQ &= ~(IRQ_FRAME | IRQ_DPCM);
InternalClock = 0;
}
void Reset (void)
{
#ifndef NSFPLAYER
ZeroMemory(Regs, 0x18);
#endif /* !NSFPLAYER */
Frame::Reset();
Square0::Reset();
Square1::Reset();
Triangle::Reset();
Noise::Reset();
DPCM::Reset();
Race::Reset();
Cycles = 1;
CPU::WantIRQ &= ~(IRQ_FRAME | IRQ_DPCM);
InternalClock = 0;
}
In any case, should emulators fully reset the APU on reset?