bsnes/higan/sfc/smp/serialization.cpp
Tim Allen ff3750de4f Update to v103r04 release.
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]
2017-06-30 14:17:23 +10:00

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);
}