Sorry to re-open this thread, but now I've figured it out.
In Super Mario All-Stars, this was how it got fixed:
Code:
CheckLives:
INC NumberofLives ;increment the lives counter by one
LDA NumberofLives ;then reload it to see if player has 128 lives
CMP #$80
BCC WereGood ;if not past 128 lives yet, we're good
LDA #$7F
STA NumberofLives ;otherwise, set A=128 lives
WereGood:
RTL ;end of routine
Another way to do this:
Code:
CheckLives:
INC NumberofLives ;increment the lives counter by one
LDA NumberofLives ;then reload it to see if we have more than 128 lives
BPL WereGood ;if not past 128 lives yet, we're good
DEC NumberofLives ;otherwise decrement counter by one to prevent overflow
WereGood:
RTL ;end of routine
~Ben (ColecoFan1981)