Fix playfield signal during hblank.

This commit is contained in:
Christian Speckner 2018-02-08 20:53:42 +01:00
parent b30fa0df98
commit b8af22cd67
3 changed files with 9 additions and 1 deletions

View File

@ -204,6 +204,12 @@ void Playfield::tick(uInt32 x)
collision = currentPixel ? myCollisionMaskEnabled : myCollisionMaskDisabled; collision = currentPixel ? myCollisionMaskEnabled : myCollisionMaskDisabled;
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Playfield::nextLine()
{
collision = myCollisionMaskDisabled;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Playfield::applyColors() void Playfield::applyColors()
{ {

View File

@ -59,6 +59,8 @@ class Playfield : public Serializable
void tick(uInt32 x); void tick(uInt32 x);
void nextLine();
bool isOn() const { return (collision & 0x8000); } bool isOn() const { return (collision & 0x8000); }
uInt8 getColor() const; uInt8 getColor() const;

View File

@ -1271,7 +1271,6 @@ void TIA::nextLine()
cloneLastLine(); cloneLastLine();
} }
myPlayfield.tick(0);
myHctr = 0; myHctr = 0;
if (!myMovementInProgress && myLinesSinceChange < 2) myLinesSinceChange++; if (!myMovementInProgress && myLinesSinceChange < 2) myLinesSinceChange++;
@ -1285,6 +1284,7 @@ void TIA::nextLine()
myPlayer0.nextLine(); myPlayer0.nextLine();
myPlayer1.nextLine(); myPlayer1.nextLine();
myBall.nextLine(); myBall.nextLine();
myPlayfield.nextLine();
if (myFrameManager->isRendering() && myFrameManager->getY() == 0) flushLineCache(); if (myFrameManager->isRendering() && myFrameManager->getY() == 0) flushLineCache();