diff --git a/src/core/bus.cpp b/src/core/bus.cpp index ca6a6a0ee..4bb8948f2 100644 --- a/src/core/bus.cpp +++ b/src/core/bus.cpp @@ -106,6 +106,7 @@ static std::tuple<TickCount, TickCount, TickCount> CalculateMemoryTiming(MEMDELA static void RecalculateMemoryTimings(); static bool AllocateMemory(); +static void ReleaseMemory(); static void SetCodePageFastmemProtection(u32 page_index, bool writable); @@ -149,11 +150,7 @@ void Shutdown() CPU::g_state.fastmem_base = nullptr; m_fastmem_mode = CPUFastmemMode::Disabled; - if (g_ram) - { - m_memory_arena.ReleaseViewPtr(g_ram, RAM_SIZE); - g_ram = nullptr; - } + ReleaseMemory(); } void Reset() @@ -276,9 +273,21 @@ bool AllocateMemory() return false; } + Log_InfoPrintf("RAM is %u bytes at %p", RAM_SIZE, g_ram); return true; } +void ReleaseMemory() +{ + if (g_ram) + { + m_memory_arena.ReleaseViewPtr(g_ram, RAM_SIZE); + g_ram = nullptr; + } + + m_memory_arena.Destroy(); +} + static ALWAYS_INLINE u32 FastmemAddressToLUTPageIndex(u32 address) { return address >> 12;