本文整理汇总了C#中Clock.Stall方法的典型用法代码示例。如果您正苦于以下问题:C# Clock.Stall方法的具体用法?C# Clock.Stall怎么用?C# Clock.Stall使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Clock
的用法示例。
在下文中一共展示了Clock.Stall方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SpriteReadOp
private void SpriteReadOp(Clock.Clock clock, byte firstSprite, byte cycle)
{
byte sprite = (byte)(firstSprite + (cycle >> 1));
if ((cycle & 1) == 0)
_vic.SpritePointers[sprite] = (ushort)(_vic.Memory.Read(_vic.GetVideoMemoryAddress((ushort)(0x3f8 | sprite))) << 6);
if (_vic.SpriteDMA[sprite])
{
if ((cycle & 1) == 0)
clock.Stall(2, 1);
for (byte reads = (byte)((cycle & 1) + 1); reads > 0; reads--)
{
_vic.SDataBuffer[sprite].Enqueue(_vic.Memory.Read((ushort)(_vic.GetRawMemoryAddress((ushort)(_vic.SpritePointers[sprite] + _vic.MC[sprite])))));
_vic.MC[sprite]++;
}
}
}
示例2: RefreshReadOp14
private void RefreshReadOp14(Clock.Clock clock)
{
if (_vic.BadLine)
{
clock.Stall(40, 1);
_vic.WriteVideoMatrix(_vic.Memory.Read(_vic.GetVideoMemoryAddress(_vic.VC)), _vic.ColorRam.ReadDirect(_vic.VC));
}
for (byte i = 0; i < 8; i++)
{
if (_vic.YExpandFlip[i] || !_vic.GetSpriteExpY(i))
{
_vic.MCBase[i] += 3;
if (_vic.MCBase[i] > 63)
{
_vic.SDataBuffer[i].Clear();
_vic.SpriteDMA[i] = false;
_vic.SpriteDisplay[i] = false;
}
}
}
}