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);