ZXHawk: Do ULA processing every cycle
This commit is contained in:
parent
2af6965ef5
commit
76318fbc7a
|
@ -143,6 +143,9 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
/// <param name="currentCycle"></param>
|
||||
public virtual void CycleClock(long totalCycles)
|
||||
{
|
||||
// render the screen
|
||||
RenderScreen((int)_machine.CurrentFrameCycle);
|
||||
|
||||
// has more than one cycle past since this last ran
|
||||
// (this can be true if contention has taken place)
|
||||
var ticksToProcess = totalCycles - LastULATick;
|
||||
|
|
|
@ -134,7 +134,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
|
||||
// RAM 0x4000 (RAM5 - Bank5 or shadow bank RAM7)
|
||||
case 1:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
|
||||
|
@ -163,7 +163,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
RAM4[addr % 0x4000] = value;
|
||||
break;
|
||||
case 5:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
case 6:
|
||||
|
|
|
@ -150,7 +150,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
// Border - LSB 3 bits hold the border colour
|
||||
if (ULADevice.BorderColor != (value & BORDER_BIT))
|
||||
{
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
ULADevice.BorderColor = value & BORDER_BIT;
|
||||
}
|
||||
|
||||
|
|
|
@ -236,11 +236,11 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
case 3:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM7[addr % 0x4000] = value;
|
||||
break;
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
RAM3[addr % 0x4000] = value;
|
||||
break;
|
||||
case 1:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM7[addr % 0x4000] = value;
|
||||
break;
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
|
||||
// RAM 0x4000 (RAM5 - Bank5 only)
|
||||
case 1:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
|
||||
|
@ -331,14 +331,14 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
RAM4[addr % 0x4000] = value;
|
||||
break;
|
||||
case 5:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
case 6:
|
||||
RAM6[addr % 0x4000] = value;
|
||||
break;
|
||||
case 7:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM7[addr % 0x4000] = value;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
// Border - LSB 3 bits hold the border colour
|
||||
if (ULADevice.BorderColor != (value & BORDER_BIT))
|
||||
{
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
ULADevice.BorderColor = value & BORDER_BIT;
|
||||
}
|
||||
|
||||
|
|
|
@ -236,11 +236,11 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
case 3:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM7[addr % 0x4000] = value;
|
||||
break;
|
||||
}
|
||||
|
@ -267,7 +267,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
RAM3[addr % 0x4000] = value;
|
||||
break;
|
||||
case 1:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM7[addr % 0x4000] = value;
|
||||
break;
|
||||
}
|
||||
|
@ -302,7 +302,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
|
||||
// RAM 0x4000 (RAM5 - Bank5 only)
|
||||
case 1:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
|
||||
|
@ -331,14 +331,14 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
RAM4[addr % 0x4000] = value;
|
||||
break;
|
||||
case 5:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM5[addr % 0x4000] = value;
|
||||
break;
|
||||
case 6:
|
||||
RAM6[addr % 0x4000] = value;
|
||||
break;
|
||||
case 7:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM7[addr % 0x4000] = value;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -154,7 +154,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
// Border - LSB 3 bits hold the border colour
|
||||
if (ULADevice.BorderColor != (value & BORDER_BIT))
|
||||
{
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
ULADevice.BorderColor = value & BORDER_BIT;
|
||||
}
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
// cannot write to ROM
|
||||
break;
|
||||
case 1:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM0[index] = value;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
// cannot write to ROM
|
||||
break;
|
||||
case 1:
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
RAM0[index] = value;
|
||||
break;
|
||||
case 2:
|
||||
|
|
|
@ -86,7 +86,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
|||
// Border - LSB 3 bits hold the border colour
|
||||
if (ULADevice.BorderColor != (value & BORDER_BIT))
|
||||
{
|
||||
ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
//ULADevice.RenderScreen((int)CurrentFrameCycle);
|
||||
ULADevice.BorderColor = value & BORDER_BIT;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue