From 01b7ffe0d6ca233dd3cb7ea7e0d69371a51ebca1 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Fri, 23 Dec 2016 17:11:19 -0800 Subject: [PATCH] GB Video: Hblank IRQs should mask LYC=LY IRQs (fixes #466) --- CHANGES | 1 + src/gb/video.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index dd284443c..bcb3495f2 100644 --- a/CHANGES +++ b/CHANGES @@ -31,6 +31,7 @@ Bugfixes: - GB Video: Initialize LCDC in renderer - GBA I/O: Mask off WAITCNT bits that cannot be written - GB Memory: Fix HDMA5 value after DMA completes + - GB Video: Hblank IRQs should mask LYC=LY IRQs Misc: - PSP2: Improved controller rumble - GB, GBA: Prevent loading null ROMs diff --git a/src/gb/video.c b/src/gb/video.c index 21c887086..f9423c209 100644 --- a/src/gb/video.c +++ b/src/gb/video.c @@ -131,7 +131,7 @@ int32_t GBVideoProcessEvents(struct GBVideo* video, int32_t cycles) { struct mCoreThread* thread = mCoreThreadGet(); mCoreThreadFrameEnded(thread); } - if (GBRegisterSTATIsLYCIRQ(video->stat) && lyc == video->ly) { + if (!GBRegisterSTATIsHblankIRQ(video->stat) && GBRegisterSTATIsLYCIRQ(video->stat) && lyc == video->ly) { video->p->memory.io[REG_IF] |= (1 << GB_IRQ_LCDSTAT); } GBUpdateIRQs(video->p);