diff --git a/src/core/memory_card.cpp b/src/core/memory_card.cpp index 86939eec6..bafb20352 100644 --- a/src/core/memory_card.cpp +++ b/src/core/memory_card.cpp @@ -26,6 +26,7 @@ void MemoryCard::Reset() { ResetTransferState(); SaveIfChanged(true); + m_FLAG.no_write_yet = true; } bool MemoryCard::DoState(StateWrapper& sw) @@ -34,6 +35,7 @@ bool MemoryCard::DoState(StateWrapper& sw) SaveIfChanged(true); sw.Do(&m_state); + sw.Do(&m_FLAG.bits); sw.Do(&m_address); sw.Do(&m_sector_offset); sw.Do(&m_checksum); diff --git a/src/core/memory_card.h b/src/core/memory_card.h index 3057a663b..8c826e5cd 100644 --- a/src/core/memory_card.h +++ b/src/core/memory_card.h @@ -49,8 +49,6 @@ private: BitField write_error; }; - FLAG m_FLAG = {}; - enum class State : u8 { Idle, @@ -91,6 +89,7 @@ private: std::unique_ptr m_save_event; State m_state = State::Idle; + FLAG m_FLAG = {}; u16 m_address = 0; u8 m_sector_offset = 0; u8 m_checksum = 0; diff --git a/src/core/save_state_version.h b/src/core/save_state_version.h index 3b04d5f5f..c14d0aaa2 100644 --- a/src/core/save_state_version.h +++ b/src/core/save_state_version.h @@ -2,7 +2,7 @@ #include "types.h" static constexpr u32 SAVE_STATE_MAGIC = 0x43435544; -static constexpr u32 SAVE_STATE_VERSION = 25; +static constexpr u32 SAVE_STATE_VERSION = 26; #pragma pack(push, 4) struct SAVE_STATE_HEADER