From 586b72e081de4f0796c735d839e87ffb7acda8b5 Mon Sep 17 00:00:00 2001 From: Souryo Date: Sun, 5 Jul 2015 20:30:39 -0400 Subject: [PATCH] Hard reset now resets NES ram --- Core/Console.cpp | 2 ++ Core/MemoryManager.cpp | 7 +++++++ Core/MemoryManager.h | 2 ++ 3 files changed, 11 insertions(+) diff --git a/Core/Console.cpp b/Core/Console.cpp index 6af58014..f90ac539 100644 --- a/Core/Console.cpp +++ b/Core/Console.cpp @@ -98,6 +98,8 @@ void Console::ResetComponents(bool softReset) _ppu->Reset(); _apu->Reset(); _cpu->Reset(softReset); + _memoryManager->Reset(softReset); + if(softReset) { MessageManager::SendNotification(ConsoleNotificationType::GameReset); } else { diff --git a/Core/MemoryManager.cpp b/Core/MemoryManager.cpp index 90ef50d3..9428162f 100644 --- a/Core/MemoryManager.cpp +++ b/Core/MemoryManager.cpp @@ -41,6 +41,13 @@ MemoryManager::~MemoryManager() delete[] _vramWriteHandlers; } +void MemoryManager::Reset(bool softReset) +{ + if(!softReset) { + memset(_internalRAM, 0, InternalRAMSize); + } +} + uint8_t MemoryManager::ReadRegister(uint16_t addr) { if(_ramReadHandlers[addr]) { diff --git a/Core/MemoryManager.h b/Core/MemoryManager.h index 7290c95b..bf757c27 100644 --- a/Core/MemoryManager.h +++ b/Core/MemoryManager.h @@ -41,6 +41,8 @@ class MemoryManager: public Snapshotable MemoryManager(shared_ptr mapper); ~MemoryManager(); + void Reset(bool softReset); + void InitializeMemoryHandlers(IMemoryHandler** memoryHandlers, IMemoryHandler* handler, vector *addresses); void RegisterIODevice(IMemoryHandler *handler);