diff --git a/core/hw/naomi/gdcartridge.cpp b/core/hw/naomi/gdcartridge.cpp index c57f6ae96..74ca9b91f 100644 --- a/core/hw/naomi/gdcartridge.cpp +++ b/core/hw/naomi/gdcartridge.cpp @@ -456,7 +456,11 @@ void GDCartridge::read_gdrom(Disc *gdrom, u32 sector, u8* dst) void GDCartridge::device_start() { - dimm_data = NULL; + if (dimm_data != NULL) + { + free(dimm_data); + dimm_data = NULL; + } dimm_data_size = 0; char name[128]; diff --git a/core/hw/naomi/gdcartridge.h b/core/hw/naomi/gdcartridge.h index 7408c4883..121239581 100644 --- a/core/hw/naomi/gdcartridge.h +++ b/core/hw/naomi/gdcartridge.h @@ -21,6 +21,13 @@ public: GDCartridge(u32 size) : NaomiCartridge(size) { gdrom_name = NULL; + dimm_data = NULL; + dimm_data_size = 0; + dimm_cur_address = 0; + } + ~GDCartridge() + { + free(dimm_data); } virtual void Init() override {