mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-02-24 07:02:27 +01:00
byuu says: Changelog: - fc/apu: $4003,$4007 writes initialize duty counter to 0 instead of 7 - fc/apu: corrected duty table entries for use with decrementing duty counter - processor/spc700: emulated the behavior of cycle 3 of (x)+ instructions to not read I/O registers - specifically, this prevents reads from $fd-ff from resetting the timers, as observed on real hardware - sfc/controller: added ControllerPort class to match Mega Drive design - sfc/expansion: added ExpansionPort class to match Mega Drive design - sfc/system: removed Peripherals class - sfc/system: changed `colorburst()` to `cpuFrequency()`; added `apuFrequency()` - sfc: replaced calls to `system.region == System::Region::*` with `Region::*()` - sfc/expansion: remove thread from scheduler when device is destroyed - sfc/smp: `{read,write}Port` now use a separate 4x8-bit buffer instead of underlying APU RAM [hex\_usr]
51 lines
1.1 KiB
C++
51 lines
1.1 KiB
C++
auto SMP::serialize(serializer& s) -> void {
|
|
SPC700::serialize(s);
|
|
Thread::serialize(s);
|
|
|
|
s.array(apuram);
|
|
|
|
s.integer(io.clockCounter);
|
|
s.integer(io.dspCounter);
|
|
s.integer(io.timerStep);
|
|
|
|
s.integer(io.clockSpeed);
|
|
s.integer(io.timerSpeed);
|
|
s.integer(io.timersEnable);
|
|
s.integer(io.ramDisable);
|
|
s.integer(io.ramWritable);
|
|
s.integer(io.timersDisable);
|
|
|
|
s.integer(io.iplromEnable);
|
|
|
|
s.integer(io.dspAddr);
|
|
|
|
s.array(io.port);
|
|
|
|
s.integer(io.ram00f8);
|
|
s.integer(io.ram00f9);
|
|
|
|
s.integer(timer0.stage0);
|
|
s.integer(timer0.stage1);
|
|
s.integer(timer0.stage2);
|
|
s.integer(timer0.stage3);
|
|
s.integer(timer0.line);
|
|
s.integer(timer0.enable);
|
|
s.integer(timer0.target);
|
|
|
|
s.integer(timer1.stage0);
|
|
s.integer(timer1.stage1);
|
|
s.integer(timer1.stage2);
|
|
s.integer(timer1.stage3);
|
|
s.integer(timer1.line);
|
|
s.integer(timer1.enable);
|
|
s.integer(timer1.target);
|
|
|
|
s.integer(timer2.stage0);
|
|
s.integer(timer2.stage1);
|
|
s.integer(timer2.stage2);
|
|
s.integer(timer2.stage3);
|
|
s.integer(timer2.line);
|
|
s.integer(timer2.enable);
|
|
s.integer(timer2.target);
|
|
}
|