mirror of https://github.com/stella-emu/stella.git
Gobble movement pulse on clock 0.
This commit is contained in:
parent
7faa9c71b9
commit
7be8c8f327
|
@ -167,7 +167,7 @@ class Ball : public Serializable
|
||||||
/**
|
/**
|
||||||
Process a single movement tick. Inline for performance (implementation below).
|
Process a single movement tick. Inline for performance (implementation below).
|
||||||
*/
|
*/
|
||||||
FORCE_INLINE void movementTick(uInt32 clock, bool hblank);
|
FORCE_INLINE void movementTick(uInt32 clock, uInt32 hclock, bool hblank);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Tick one color clock. Inline for performance (implementation below).
|
Tick one color clock. Inline for performance (implementation below).
|
||||||
|
@ -341,7 +341,7 @@ class Ball : public Serializable
|
||||||
// ############################################################################
|
// ############################################################################
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Ball::movementTick(uInt32 clock, bool hblank)
|
void Ball::movementTick(uInt32 clock, uInt32 hclock, bool hblank)
|
||||||
{
|
{
|
||||||
myLastMovementTick = myCounter;
|
myLastMovementTick = myCounter;
|
||||||
|
|
||||||
|
@ -350,7 +350,7 @@ void Ball::movementTick(uInt32 clock, bool hblank)
|
||||||
// Stop movement once the number of clocks according to HMBL is reached
|
// Stop movement once the number of clocks according to HMBL is reached
|
||||||
if (clock == myHmmClocks)
|
if (clock == myHmmClocks)
|
||||||
isMoving = false;
|
isMoving = false;
|
||||||
else
|
else if (hclock != 0)
|
||||||
{
|
{
|
||||||
// Process the tick if we are in hblank. Otherwise, the tick is either masked
|
// Process the tick if we are in hblank. Otherwise, the tick is either masked
|
||||||
// by an ordinary tick or merges two consecutive ticks into a single tick (inverted
|
// by an ordinary tick or merges two consecutive ticks into a single tick (inverted
|
||||||
|
|
|
@ -149,7 +149,7 @@ void Missile::movementTick(uInt8 clock, uInt8 hclock, bool hblank)
|
||||||
// Stop movement once the number of clocks according to HMMx is reached
|
// Stop movement once the number of clocks according to HMMx is reached
|
||||||
if(clock == myHmmClocks)
|
if(clock == myHmmClocks)
|
||||||
isMoving = false;
|
isMoving = false;
|
||||||
else
|
else if (hclock != 0)
|
||||||
{
|
{
|
||||||
// Process the tick if we are in hblank. Otherwise, the tick is either masked
|
// Process the tick if we are in hblank. Otherwise, the tick is either masked
|
||||||
// by an ordinary tick or merges two consecutive ticks into a single tick (inverted
|
// by an ordinary tick or merges two consecutive ticks into a single tick (inverted
|
||||||
|
|
|
@ -88,7 +88,7 @@ class Player : public Serializable
|
||||||
bool save(Serializer& out) const override;
|
bool save(Serializer& out) const override;
|
||||||
bool load(Serializer& in) override;
|
bool load(Serializer& in) override;
|
||||||
|
|
||||||
FORCE_INLINE void movementTick(uInt32 clock, bool hblank);
|
FORCE_INLINE void movementTick(uInt32 clock, uInt32 hclock, bool hblank);
|
||||||
|
|
||||||
FORCE_INLINE void tick();
|
FORCE_INLINE void tick();
|
||||||
|
|
||||||
|
@ -158,14 +158,14 @@ class Player : public Serializable
|
||||||
// ############################################################################
|
// ############################################################################
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Player::movementTick(uInt32 clock, bool hblank)
|
void Player::movementTick(uInt32 clock, uInt32 hclock, bool hblank)
|
||||||
{
|
{
|
||||||
if(isMoving)
|
if(isMoving)
|
||||||
{
|
{
|
||||||
// Stop movement once the number of clocks according to HMPx is reached
|
// Stop movement once the number of clocks according to HMPx is reached
|
||||||
if (clock == myHmmClocks)
|
if (clock == myHmmClocks)
|
||||||
isMoving = false;
|
isMoving = false;
|
||||||
else
|
else if (hclock != 0)
|
||||||
{
|
{
|
||||||
// Process the tick if we are in hblank. Otherwise, the tick is either masked
|
// Process the tick if we are in hblank. Otherwise, the tick is either masked
|
||||||
// by an ordinary tick or merges two consecutive ticks into a single tick (inverted
|
// by an ordinary tick or merges two consecutive ticks into a single tick (inverted
|
||||||
|
|
|
@ -1558,9 +1558,9 @@ FORCE_INLINE void TIA::tickMovement()
|
||||||
|
|
||||||
myMissile0.movementTick(movementCounter, myHctr, hblank);
|
myMissile0.movementTick(movementCounter, myHctr, hblank);
|
||||||
myMissile1.movementTick(movementCounter, myHctr, hblank);
|
myMissile1.movementTick(movementCounter, myHctr, hblank);
|
||||||
myPlayer0.movementTick(movementCounter, hblank);
|
myPlayer0.movementTick(movementCounter, myHctr, hblank);
|
||||||
myPlayer1.movementTick(movementCounter, hblank);
|
myPlayer1.movementTick(movementCounter, myHctr, hblank);
|
||||||
myBall.movementTick(movementCounter, hblank);
|
myBall.movementTick(movementCounter, myHctr, hblank);
|
||||||
|
|
||||||
myMovementInProgress =
|
myMovementInProgress =
|
||||||
myMissile0.isMoving ||
|
myMissile0.isMoving ||
|
||||||
|
|
Loading…
Reference in New Issue