Conflicts don't happen in the first 6 T-cycles

This commit is contained in:
Lior Halphon 2022-01-22 16:56:32 +02:00
parent 8676a7c7bc
commit 196aaaa7ed

View File

@ -252,7 +252,7 @@ void GB_trigger_oam_bug_read(GB_gameboy_t *gb, uint16_t address)
static bool is_addr_in_dma_use(GB_gameboy_t *gb, uint16_t addr) static bool is_addr_in_dma_use(GB_gameboy_t *gb, uint16_t addr)
{ {
if (!GB_is_dma_active(gb) || addr >= 0xfe00) return false; if (!GB_is_dma_active(gb) || addr >= 0xfe00) return false;
if (gb->dma_current_dest == 0xFF) return false; // Warm up if (gb->dma_current_dest == 0xFF || gb->dma_current_dest == 0x0) return false; // Warm up
if (addr >= 0xfe00) return false; if (addr >= 0xfe00) return false;
if (gb->dma_current_src == addr) return false; // Shortcut for DMA access flow if (gb->dma_current_src == addr) return false; // Shortcut for DMA access flow
if (gb->dma_current_src > 0xe000 && (gb->dma_current_src & ~0x2000) == addr) return false; if (gb->dma_current_src > 0xe000 && (gb->dma_current_src & ~0x2000) == addr) return false;