Fixed per scanline interrupts. No artifacts in MMCOI
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using Core.Interfaces;
|
||||
using Core.Io;
|
||||
|
||||
@@ -97,6 +98,32 @@ namespace Core.Cpu
|
||||
TotalTStates = 0;
|
||||
}
|
||||
|
||||
public void SaveState(BinaryWriter bw)
|
||||
{
|
||||
bw.Write(TotalTStates);
|
||||
bw.Write(InterruptMode);
|
||||
bw.Write(IFF1);
|
||||
bw.Write(IFF2);
|
||||
bw.Write(InterruptRequested);
|
||||
bw.Write(AF.Word); bw.Write(BC.Word); bw.Write(DE.Word); bw.Write(HL.Word);
|
||||
bw.Write(AF_Prime.Word); bw.Write(BC_Prime.Word); bw.Write(DE_Prime.Word); bw.Write(HL_Prime.Word);
|
||||
bw.Write(IX.Word); bw.Write(IY.Word);
|
||||
bw.Write(PC); bw.Write(SP); bw.Write(I); bw.Write(R);
|
||||
}
|
||||
|
||||
public void LoadState(BinaryReader br)
|
||||
{
|
||||
TotalTStates = br.ReadInt64();
|
||||
InterruptMode = br.ReadInt32();
|
||||
IFF1 = br.ReadBoolean();
|
||||
IFF2 = br.ReadBoolean();
|
||||
InterruptRequested = br.ReadBoolean();
|
||||
AF.Word = br.ReadUInt16(); BC.Word = br.ReadUInt16(); DE.Word = br.ReadUInt16(); HL.Word = br.ReadUInt16();
|
||||
AF_Prime.Word = br.ReadUInt16(); BC_Prime.Word = br.ReadUInt16(); DE_Prime.Word = br.ReadUInt16(); HL_Prime.Word = br.ReadUInt16();
|
||||
IX.Word = br.ReadUInt16(); IY.Word = br.ReadUInt16();
|
||||
PC = br.ReadUInt16(); SP = br.ReadUInt16(); I = br.ReadByte(); R = br.ReadByte();
|
||||
}
|
||||
|
||||
private void ApplyWaitStates(ushort address)
|
||||
{
|
||||
// If a system (like a ULA) is attached and listening, ask it for the delay
|
||||
|
||||
Reference in New Issue
Block a user