Arqade Asked by SunnyMoon on March 28, 2021
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:
So what happens if the score exceeds 999999?
Nothing special happens when going past 999,999 other than it just displays 7 digits instead. Source
Correct answer by Blem on March 28, 2021
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.
Answered by Ray on March 28, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP