From 52a4c09855ee45c6349af422d36cba3d9415e16a Mon Sep 17 00:00:00 2001 From: Lior Halphon Date: Sat, 25 Jun 2022 20:08:14 +0300 Subject: [PATCH] More accurate PPU/OAM-DMA conflicts, artifacts in "It Came from Planet Zilog" should match hardware now --- Core/display.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/display.c b/Core/display.c index 3e50d4c..3ae5039 100644 --- a/Core/display.c +++ b/Core/display.c @@ -473,7 +473,9 @@ static inline uint8_t oam_read(GB_gameboy_t *gb, uint8_t addr) if (gb->hdma_in_progress) { return GB_read_oam(gb, (gb->hdma_current_src & ~1) | (addr & 1)); } - return gb->oam[((gb->dma_current_dest - 1 + (gb->halted || gb->stopped)) & ~1) | (addr & 1)]; + if (gb->dma_current_dest != 0xA0) { + return gb->oam[(gb->dma_current_dest & ~1) | (addr & 1)]; + } } return gb->oam[addr]; }