diff --git a/src/core/memory_card.h b/src/core/memory_card.h index f1257f6bf..539df38b7 100644 --- a/src/core/memory_card.h +++ b/src/core/memory_card.h @@ -21,6 +21,7 @@ public: static std::unique_ptr Open(std::string_view filename); const MemoryCardImage::DataArray& GetData() const { return m_data; } + MemoryCardImage::DataArray& GetData() { return m_data; } const std::string& GetFilename() const { return m_filename; } void SetFilename(std::string filename) { m_filename = std::move(filename); } diff --git a/src/core/settings.cpp b/src/core/settings.cpp index c06568237..5edbf8ebe 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -910,13 +910,14 @@ const char* Settings::GetControllerTypeDisplayName(ControllerType type) return s_controller_display_names[static_cast(type)]; } -static std::array s_memory_card_type_names = { - {"None", "Shared", "PerGame", "PerGameTitle", "PerGameFileTitle"}}; -static std::array s_memory_card_type_display_names = { +static std::array s_memory_card_type_names = { + {"None", "Shared", "PerGame", "PerGameTitle", "PerGameFileTitle", "NonPersistent"}}; +static std::array s_memory_card_type_display_names = { {TRANSLATABLE("MemoryCardType", "No Memory Card"), TRANSLATABLE("MemoryCardType", "Shared Between All Games"), TRANSLATABLE("MemoryCardType", "Separate Card Per Game (Game Code)"), TRANSLATABLE("MemoryCardType", "Separate Card Per Game (Game Title)"), - TRANSLATABLE("MemoryCardType", "Separate Card Per Game (File Title)")}}; + TRANSLATABLE("MemoryCardType", "Separate Card Per Game (File Title)"), + TRANSLATABLE("MemoryCardType", "Non-Persistent Card (Do Not Save)")}}; std::optional Settings::ParseMemoryCardTypeName(const char* str) { diff --git a/src/core/system.cpp b/src/core/system.cpp index 00404f2db..852d89542 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -1871,6 +1871,12 @@ void UpdateMemoryCards() card = MemoryCard::Open(g_settings.memory_card_paths[i]); } break; + + case MemoryCardType::NonPersistent: + { + card = MemoryCard::Create(); + } + break; } if (card) diff --git a/src/core/types.h b/src/core/types.h index 9b5ca022b..ac74b44d8 100644 --- a/src/core/types.h +++ b/src/core/types.h @@ -135,6 +135,7 @@ enum class MemoryCardType PerGame, PerGameTitle, PerGameFileTitle, + NonPersistent, Count };