diff --git a/Core/Console.cpp b/Core/Console.cpp index c0b4d033..f9bc2965 100644 --- a/Core/Console.cpp +++ b/Core/Console.cpp @@ -1141,6 +1141,11 @@ void Console::StartRecordingHdPack(string saveFolder, ScaleFilterType filterType _ppu.reset(new HdBuilderPpu(shared_from_this(), _hdPackBuilder.get(), chrRamBankSize)); _memoryManager->RegisterIODevice(_ppu.get()); + shared_ptr debugger = _debugger; + if(debugger) { + debugger->SetPpu(_ppu); + } + LoadState(saveState); Resume(); } @@ -1158,6 +1163,11 @@ void Console::StopRecordingHdPack() _memoryManager->RegisterIODevice(_ppu.get()); _hdPackBuilder.reset(); + shared_ptr debugger = _debugger; + if(debugger) { + debugger->SetPpu(_ppu); + } + LoadState(saveState); Resume(); } diff --git a/Core/Debugger.cpp b/Core/Debugger.cpp index e9a95bb1..3574a3f5 100644 --- a/Core/Debugger.cpp +++ b/Core/Debugger.cpp @@ -38,7 +38,6 @@ Debugger::Debugger(shared_ptr console, shared_ptr cpu, shared_ptr< _romName = console->GetRomInfo().RomName; _console = console; _cpu = cpu; - _ppu = ppu; _apu = apu; _memoryManager = memoryManager; _mapper = mapper; @@ -47,7 +46,9 @@ Debugger::Debugger(shared_ptr console, shared_ptr cpu, shared_ptr< _assembler.reset(new Assembler(_labelManager)); _disassembler.reset(new Disassembler(memoryManager.get(), mapper.get(), this)); _codeDataLogger.reset(new CodeDataLogger(this, mapper->GetMemorySize(DebugMemoryType::PrgRom), mapper->GetMemorySize(DebugMemoryType::ChrRom))); - _memoryDumper.reset(new MemoryDumper(_ppu, _memoryManager, _mapper, _codeDataLogger, this, _disassembler)); + + SetPpu(ppu); + _memoryAccessCounter.reset(new MemoryAccessCounter(this)); _profiler.reset(new Profiler(this)); _traceLogger.reset(new TraceLogger(this, memoryManager, _labelManager)); @@ -131,6 +132,12 @@ Debugger::~Debugger() _console->Resume(); } +void Debugger::SetPpu(shared_ptr ppu) +{ + _ppu = ppu; + _memoryDumper.reset(new MemoryDumper(_ppu, _memoryManager, _mapper, _codeDataLogger, this, _disassembler)); +} + Console* Debugger::GetConsole() { return _console.get(); diff --git a/Core/Debugger.h b/Core/Debugger.h index 8318b4d2..1dc568da 100644 --- a/Core/Debugger.h +++ b/Core/Debugger.h @@ -147,6 +147,7 @@ public: Debugger(shared_ptr console, shared_ptr cpu, shared_ptr ppu, shared_ptr apu, shared_ptr memoryManager, shared_ptr mapper); ~Debugger(); + void SetPpu(shared_ptr ppu); Console* GetConsole(); void SetFlags(uint32_t flags);