38

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

2
  • 6
    NES emulators are widely available to try with. – chrylis -cautiouslyoptimistic- Oct 20 '20 at 2:43
  • 1
    By the way, if you repeatedly jump/bounce on the same shell without touching anything else, the point value will continue to go up. At a certain point, you will start getting 1UP for each bounce. But if you get too many extra lives (I believe 99 is max), you will start getting weird characters in the number of lives field and one death will end the game – Kevin Oct 22 '20 at 15:11
50

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

4
  • 7
    I might have a follow-up question... – André Stannek Oct 22 '20 at 15:41
  • @AndréStannek and that is..? – quetzalcoatl Oct 22 '20 at 18:17
  • 1
    @quetzalcoatl It was just supposed to be a joke because to me, the next obvious question is what happens when you exceed the 7 digits. Fortunately Ray also answered it in his answer :-) – André Stannek Oct 23 '20 at 7:48
  • @AndréStannek: ooh I see. Thanks, I totally was out of ideas re what you could mean and I thought it might be like "1000100pts by jumping.. how long did it take?" etc.. soo...yeah.. my mind went on a totally different route ;) – quetzalcoatl Oct 23 '20 at 8:08
109

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:

enter image description here

(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.

enter image description here

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.

enter image description here

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

enter image description here

enter image description here

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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