public override void SyncState(Serializer ser) { ser.BeginSection("Disk"); if (_disk != null) { _disk.SyncState(ser); } ser.EndSection(); ser.Sync("BitHistory", ref _bitHistory); ser.Sync("BitsRemainingInLatchedByte", ref _bitsRemainingInLatchedByte); ser.Sync("Sync", ref _sync); ser.Sync("ByteReady", ref _byteReady); ser.Sync("DriveCpuClockNumerator", ref _driveCpuClockNum); ser.Sync("TrackNumber", ref _trackNumber); ser.Sync("MotorEnabled", ref _motorEnabled); ser.Sync("LedEnabled", ref _ledEnabled); ser.Sync("MotorStep", ref _motorStep); ser.BeginSection("Disk6502"); _cpu.SyncState(ser); ser.EndSection(); ser.Sync("RAM", ref _ram, useNull: false); ser.BeginSection("VIA0"); Via0.SyncState(ser); ser.EndSection(); ser.BeginSection("VIA1"); Via1.SyncState(ser); ser.EndSection(); ser.Sync("SystemCpuClockNumerator", ref _cpuClockNum); ser.Sync("SystemDriveCpuRatioDifference", ref _ratioDifference); ser.Sync("DriveLightOffTime", ref _driveLightOffTime); // feos: drop 400KB of ROM data from savestates //ser.Sync("TrackImageData", ref _trackImageData, useNull: false); ser.Sync("DiskDensityCounter", ref _diskDensityCounter); ser.Sync("DiskSupplementaryCounter", ref _diskSupplementaryCounter); ser.Sync("DiskFluxReversalDetected", ref _diskFluxReversalDetected); ser.Sync("DiskBitsRemainingInDataEntry", ref _diskBitsLeft); ser.Sync("DiskDataEntryIndex", ref _diskByteOffset); ser.Sync("DiskDataEntry", ref _diskBits); ser.Sync("DiskCurrentCycle", ref _diskCycle); ser.Sync("DiskDensityConfig", ref _diskDensity); ser.Sync("PreviousCA1", ref _previousCa1); ser.Sync("CountsBeforeRandomTransition", ref _countsBeforeRandomTransition); ser.Sync("CurrentRNG", ref _rngCurrent); ser.Sync("Clocks", ref _clocks); ser.Sync("CpuClocks", ref _cpuClocks); ser.Sync("OverflowFlagDelayShiftRegister", ref _overflowFlagDelaySr); ser.Sync("DiskWriteBitsRemaining", ref _diskWriteBitsRemaining); ser.Sync("DiskWriteEnabled", ref _diskWriteEnabled); ser.Sync("DiskWriteLatch", ref _diskWriteLatch); ser.Sync("DiskOutputBits", ref _diskOutputBits); ser.Sync("DiskWriteProtected", ref _diskWriteProtected); }