43

I am implementing a replica of the classic Super Mario Bros. in the Unity game engine. The problem is, I do not have a Nintendo Entertainment System.

I somehow found out that getting 100 coins will get you an extra 1UP (life), but what about the score?

There are 6 available decimal spots for the score:

Score

So what happens if the score exceeds 999999?

Too much score

1

2 Answers 2

53

Nothing special happens when going past 999,999 other than it just displays 7 digits instead. 1000100 score Source

0
112

I quickly checked in an emulator since I didn't know either.

SMB1 stores the score in BCD encoding, using 6 bytes, one for each digit - excluding the units, since score granularity does not go below multiples of 50.

If you have a score of 123,450, the bytes will be 00 01 02 03 04 05.

The first 00 byte is reserved for properly handling millions. If you ever get scores between 1,000,000 and 9,999,950, there will simply be another digit displayed in front of the always visible 0's:

(The 6 bytes ahead of the marked ones are the TOP score, and the 6 following the Player 2 score.)

Technically, the maximum score possible is 9,999,990, 40 points above the maximum legal score which, as said, must be a multiple of 50.

If you exceed even this limit, the game will properly wrap over to 0, and the score is rendered as with a fresh game, with the millions-digit gone.

This is slightly spoiled by the TOP- 000000 highscore display at the start screen, leaving a space for the millions.

1
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat. Commented Oct 20, 2020 at 17:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.