mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-06-09 12:51:01 +00:00
Running dma inside the CPU's debugger
This commit is contained in:
@@ -79,6 +79,10 @@ namespace ComSquare::Debugger
|
|||||||
try {
|
try {
|
||||||
unsigned cycles = 0;
|
unsigned cycles = 0;
|
||||||
|
|
||||||
|
for (auto &channel : this->_dmaChannels)
|
||||||
|
if (channel.enabled)
|
||||||
|
cycles += channel.run(INT_MAX);
|
||||||
|
|
||||||
if (this->_isPaused)
|
if (this->_isPaused)
|
||||||
return 0xFF;
|
return 0xFF;
|
||||||
if (this->_isStepping) {
|
if (this->_isStepping) {
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ Test(DMA, RomToVRAM)
|
|||||||
uint16_t value = snes.ppu->vram->_data[0x2000 * 2 + i * 2] | (snes.ppu->vram->_data[0x2000 * 2 + i * 2 + 1] << 8);
|
uint16_t value = snes.ppu->vram->_data[0x2000 * 2 + i * 2] | (snes.ppu->vram->_data[0x2000 * 2 + i * 2 + 1] << 8);
|
||||||
cr_assert_eq(value, i, "The memory at %x should be %x but it was %x", 0x2000 + i, i, snes.ppu->vram->_data[i]);
|
cr_assert_eq(value, i, "The memory at %x should be %x but it was %x", 0x2000 + i, i, snes.ppu->vram->_data[i]);
|
||||||
}
|
}
|
||||||
|
cr_assert_eq(snes.cpu->_dmaChannels[0].enabled, false, "The DMA channel should be disabled.");
|
||||||
}
|
}
|
||||||
|
|
||||||
Test(DMA, VramWrite)
|
Test(DMA, VramWrite)
|
||||||
|
|||||||
Reference in New Issue
Block a user