all repos — mgba @ 4d755762298b6b41ef916c3d58495ab52166bb45

mGBA Game Boy Advance Emulator

GB Video: Setting LYC=LY during mode 2 should trigger an IRQ
Jeffrey Pfau jeffrey@endrift.com
Tue, 20 Sep 2016 10:44:49 -0700
commit

4d755762298b6b41ef916c3d58495ab52166bb45

parent

b4e0ab93feba9ee8763db8f41810cfe61e735c23

2 files changed, 10 insertions(+), 1 deletions(-)

jump to
M CHANGESCHANGES

@@ -1,6 +1,7 @@

0.5.1: (Future) Bugfixes: - GB MBC: Fix MBC7 when size is incorrectly specified + - GB Video: Setting LYC=LY during mode 2 should trigger an IRQ Misc: - All: Only update version info if needed
M src/gb/io.csrc/gb/io.c

@@ -341,7 +341,6 @@ case REG_JOYP:

case REG_SB: case REG_TIMA: case REG_TMA: - case REG_LYC: // Handled transparently by the registers break; case REG_TAC:

@@ -356,6 +355,15 @@ // TODO: handle GBC differences

GBVideoProcessDots(&gb->video); value = gb->video.renderer->writeVideoRegister(gb->video.renderer, address, value); GBVideoWriteLCDC(&gb->video, value); + break; + case REG_LYC: + if (gb->video.mode == 2) { + gb->video.stat = GBRegisterSTATSetLYC(gb->video.stat, value == gb->video.ly); + if (GBRegisterSTATIsLYCIRQ(gb->video.stat) && value == gb->video.ly) { + gb->memory.io[REG_IF] |= (1 << GB_IRQ_LCDSTAT); + GBUpdateIRQs(gb->video.p); + } + } break; case REG_DMA: GBMemoryDMA(gb, value << 8);