menu of super mario bros.

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
menu of super mario bros.
by on (#233533)
Attachment:
2019-02-03-035632_1395x643_scrot.png
2019-02-03-035632_1395x643_scrot.png [ 50.4 KiB | Viewed 5868 times ]


This result me very rare...
As it construct the menu of mario?

The tileset is veri simple
Re: menu of super mario bros.
by on (#233542)
The "Super Mario Bros." block/logo at the title screen is made up of all sorts of tiles in the $1000-1FFF PPU RAM (upper pattern table) region. Here are some:

Tile $44 (upper left corner/dot)
Tile $48 (empty/blank space)
Tile $49 (upper right corner/dot)
Tile $5F (bottom left corner/dot)
Tile $78 (shadowing under text)
Tile $7A (bottom right corner/dot)
Tile $95 (shadowing under text)
Tiles $97-98 (shadowing under text)
Tiles $D0-E1 (make up the text "SUPER MARIO BROS", and some of the shadowing)
Tile $E7 (period after "BROS")

The "garbage" or "static" you see which make up tiles $EC to $FE (PPU RAM $1EC0 to $1FEF) during the title screen are actually data, not graphics -- they ran out of PRG ROM space and had to stick some data in CHR. The game actually reads this out of PPU RAM and uses it:

Attachment:
Capture.PNG
Capture.PNG [ 37.52 KiB | Viewed 5850 times ]

You can see all of this with an emulator like Mesen, which gives very good/detailed nametable and CHR/pattern table tools.

If you're asking what the data itself does (its format, etc.), this would requiring reverse-engineering it. It does have involvement in creation of the title screen, but fiddling around with bytes/bits just corrupts it in a way that isn't immediately obvious, so the data may be compressed or formatted in a certain way. There is a comprehensive disassembly of SMB which you can dig through. The screenshot above correlates with this part of the code. Sadly, the individual who did the disassembly left the hard-coded RAM $0300 address there rather than referring to the high and low bytes of VRAM_Buffer1_Offset.

There's also this document/source code that goes over some of it. You're wanting what's called TitleScreenDataOffset and VRAM_Buffer1_Offset in there. You'll need to examine the actual 6502 code to understand what the format of the data is that's read from PPU RAM and written to $0300-0363 or so.
Re: menu of super mario bros.
by on (#233635)
That crazy, use sprites of 8x8 and the resize to 16x16.
I think that this was not possible in old cartridges ...
Re: menu of super mario bros.
by on (#235005)
one of the best and my favorite game of childhood SMB. some time i used to play these days as well in my cellphone while i am free. As this topic is about the menu of SMB so i would suggest the creators that guys now make some changes into the menu and make it more 3d like stuff as most popular games now a days does.

admin edit: appears to be a fake account
Re: menu of super mario bros.
by on (#235009)
I think SMB needs a little more than 3D menus in order to look like a game from nowadays...! :mrgreen: