Debugger: Fixed PPU-related issues when using the debugger & the HD pack recorder at the same time
This commit is contained in:
parent
d305abe8fe
commit
f69b891d53
3 changed files with 20 additions and 2 deletions
|
@ -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 = _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 = _debugger;
|
||||
if(debugger) {
|
||||
debugger->SetPpu(_ppu);
|
||||
}
|
||||
|
||||
LoadState(saveState);
|
||||
Resume();
|
||||
}
|
||||
|
|
|
@ -38,7 +38,6 @@ Debugger::Debugger(shared_ptr<Console> console, shared_ptr<CPU> 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> console, shared_ptr<CPU> 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 = ppu;
|
||||
_memoryDumper.reset(new MemoryDumper(_ppu, _memoryManager, _mapper, _codeDataLogger, this, _disassembler));
|
||||
}
|
||||
|
||||
Console* Debugger::GetConsole()
|
||||
{
|
||||
return _console.get();
|
||||
|
|
|
@ -147,6 +147,7 @@ public:
|
|||
Debugger(shared_ptr<Console> console, shared_ptr<CPU> cpu, shared_ptr<PPU> ppu, shared_ptr<APU> apu, shared_ptr<MemoryManager> memoryManager, shared_ptr<BaseMapper> mapper);
|
||||
~Debugger();
|
||||
|
||||
void SetPpu(shared_ptr<PPU> ppu);
|
||||
Console* GetConsole();
|
||||
|
||||
void SetFlags(uint32_t flags);
|
||||
|
|
Loading…
Add table
Reference in a new issue