diff --git a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs index 04ca9427fe..0537bd234d 100644 --- a/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs +++ b/BizHawk.Emulation.Cores/Computers/Commodore64/MOS/Vic.Parse.cs @@ -2,6 +2,31 @@ { public sealed partial class Vic { + // source: https://www.linusakesson.net/programming/vic-timing/victiming.pdf + private static readonly byte[] SpriteCrunchTable = { + 0x01, 0x05, 0x02, + 0x07, 0x05, 0x05, + 0x05, 0x07, 0x09, + 0x0D, 0x0A, 0x0F, + 0x0D, 0x15, 0x15, + 0x17, 0x11, 0x15, + 0x12, 0x17, 0x15, + 0x15, 0x15, 0x17, + 0x19, 0x1D, 0x1A, + 0x1F, 0x1D, 0x15, + 0x15, 0x17, 0x21, + 0x25, 0x22, 0x27, + 0x25, 0x25, 0x25, + 0x27, 0x29, 0x2D, + 0x2A, 0x2F, 0x2D, + 0x35, 0x35, 0x37, + 0x31, 0x35, 0x32, + 0x37, 0x35, 0x35, + 0x35, 0x37, 0x39, + 0x3D, 0x3A, 0x3F, + 0x3D, 0x15, 0x15 + }; + private const int BaResetCounter = 3; private const int PipelineUpdateVc = 0x00000001; // vc/rc rule 2 private const int PipelineSpriteCrunch = 0x00000002;