mirror of https://github.com/stella-emu/stella.git
Effectively fix the mystery positioning bug.
This commit is contained in:
parent
12fe183890
commit
839ba71f20
|
@ -69,9 +69,9 @@ void Ball::hmbl(uInt8 value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Ball::resbl(bool hblank)
|
void Ball::resbl(bool hblank, bool extendedHblank)
|
||||||
{
|
{
|
||||||
myCounter = hblank ? 159 : 157;
|
myCounter = hblank ? (extendedHblank ? 158 : 159) : 157;
|
||||||
|
|
||||||
myIsRendering = true;
|
myIsRendering = true;
|
||||||
myRenderCounter = Count::renderCounterOffset;
|
myRenderCounter = Count::renderCounterOffset;
|
||||||
|
|
|
@ -39,7 +39,7 @@ class Ball : public Serializable
|
||||||
void hmbl(uInt8 value);
|
void hmbl(uInt8 value);
|
||||||
uInt8 hmbl() const { return myHmmClocks; }
|
uInt8 hmbl() const { return myHmmClocks; }
|
||||||
|
|
||||||
void resbl(bool hblank);
|
void resbl(bool hblank, bool extendedHblank);
|
||||||
|
|
||||||
void ctrlpf(uInt8 value);
|
void ctrlpf(uInt8 value);
|
||||||
|
|
||||||
|
|
|
@ -69,9 +69,9 @@ void Missile::hmm(uInt8 value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Missile::resm(bool hblank)
|
void Missile::resm(bool hblank, bool extendedHblank)
|
||||||
{
|
{
|
||||||
myCounter = hblank ? 159 : 157;
|
myCounter = hblank ? (extendedHblank ? 158 : 159) : 157;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -39,7 +39,7 @@ class Missile : public Serializable
|
||||||
void hmm(uInt8 value);
|
void hmm(uInt8 value);
|
||||||
uInt32 hmm() const { return myHmmClocks; }
|
uInt32 hmm() const { return myHmmClocks; }
|
||||||
|
|
||||||
void resm(bool hblank);
|
void resm(bool hblank, bool extendHblank);
|
||||||
|
|
||||||
void resmp(uInt8 value, const Player& player);
|
void resmp(uInt8 value, const Player& player);
|
||||||
bool resmp() const { return bool(myResmp); }
|
bool resmp() const { return bool(myResmp); }
|
||||||
|
|
|
@ -91,9 +91,9 @@ void Player::nusiz(uInt8 value)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void Player::resp(bool hblank)
|
void Player::resp(bool hblank, bool extendedHblank)
|
||||||
{
|
{
|
||||||
myCounter = hblank ? 159 : 157;
|
myCounter = hblank ? (extendedHblank ? 158 : 159) : 157;
|
||||||
|
|
||||||
if (myIsRendering && myRenderCounter < -1)
|
if (myIsRendering && myRenderCounter < -1)
|
||||||
myRenderCounter = Count::renderCounterOffset;
|
myRenderCounter = Count::renderCounterOffset;
|
||||||
|
|
|
@ -40,7 +40,7 @@ class Player : public Serializable
|
||||||
|
|
||||||
void nusiz(uInt8 value);
|
void nusiz(uInt8 value);
|
||||||
|
|
||||||
void resp(bool hblank);
|
void resp(bool hblank, bool extendedHblank);
|
||||||
|
|
||||||
void refp(uInt8 value);
|
void refp(uInt8 value);
|
||||||
bool refp() const { return myIsReflected; }
|
bool refp() const { return myIsReflected; }
|
||||||
|
|
|
@ -442,12 +442,12 @@ bool TIA::poke(uInt16 address, uInt8 value)
|
||||||
|
|
||||||
case RESM0:
|
case RESM0:
|
||||||
myLinesSinceChange = 0;
|
myLinesSinceChange = 0;
|
||||||
myMissile0.resm(myHstate == HState::blank);
|
myMissile0.resm(myHstate == HState::blank, myExtendedHblank);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RESM1:
|
case RESM1:
|
||||||
myLinesSinceChange = 0;
|
myLinesSinceChange = 0;
|
||||||
myMissile1.resm(myHstate == HState::blank);
|
myMissile1.resm(myHstate == HState::blank, myExtendedHblank);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RESMP0:
|
case RESMP0:
|
||||||
|
@ -512,12 +512,12 @@ bool TIA::poke(uInt16 address, uInt8 value)
|
||||||
|
|
||||||
case RESP0:
|
case RESP0:
|
||||||
myLinesSinceChange = 0;
|
myLinesSinceChange = 0;
|
||||||
myPlayer0.resp(myHstate == HState::blank);
|
myPlayer0.resp(myHstate == HState::blank, myExtendedHblank);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RESP1:
|
case RESP1:
|
||||||
myLinesSinceChange = 0;
|
myLinesSinceChange = 0;
|
||||||
myPlayer1.resp(myHstate == HState::blank);
|
myPlayer1.resp(myHstate == HState::blank, myExtendedHblank);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REFP0:
|
case REFP0:
|
||||||
|
@ -553,7 +553,7 @@ bool TIA::poke(uInt16 address, uInt8 value)
|
||||||
|
|
||||||
case RESBL:
|
case RESBL:
|
||||||
myLinesSinceChange = 0;
|
myLinesSinceChange = 0;
|
||||||
myBall.resbl(myHstate == HState::blank);
|
myBall.resbl(myHstate == HState::blank, myExtendedHblank);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VDELBL:
|
case VDELBL:
|
||||||
|
|
Loading…
Reference in New Issue