menu of super mario bros.

A place for your artistic side. Discuss techniques and tools for pixel art on the NES, GBC, or similar platforms.

Moderator: Moderators

Post Reply
User avatar
bazza
Posts: 94
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

menu of super mario bros.

Post by bazza »

2019-02-03-035632_1395x643_scrot.png
This result me very rare...
As it construct the menu of mario?

The tileset is veri simple
User avatar
koitsu
Posts: 4201
Joined: Sun Sep 19, 2004 9:28 pm
Location: A world gone mad

Re: menu of super mario bros.

Post by koitsu »

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:
Capture.PNG
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.
User avatar
bazza
Posts: 94
Joined: Fri Nov 24, 2017 1:36 pm
Location: Argentina
Contact:

Re: menu of super mario bros.

Post by bazza »

That crazy, use sprites of 8x8 and the resize to 16x16.
I think that this was not possible in old cartridges ...
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: menu of super mario bros.

Post by tokumaru »

I think SMB needs a little more than 3D menus in order to look like a game from nowadays...! :mrgreen:
Post Reply