From 01d1bb47b693d3e3921cb6c770adc84677dec800 Mon Sep 17 00:00:00 2001 From: SaxxonPike Date: Tue, 23 Jul 2019 06:54:28 -0500 Subject: [PATCH] C64: Sprite DMA clears out existing bits --- BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs index d514c320a8..20a5c23db7 100644 --- a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs +++ b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs @@ -226,6 +226,7 @@ if (spr.Dma) { _parseAddr = spr.Mc | (spr.Pointer << 6); + spr.Sr &= ~(0xFF << ((0x30 - (_parseFetch & 0x30)) >> 1)); spr.Sr |= ReadMemory(_parseAddr) << ((0x30 - (_parseFetch & 0x30)) >> 1); spr.Mc = (spr.Mc + 1) & 0x3F; spr.Loaded |= 0x800000;