EarthBound/Logo Screen Graphics Data: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(→‎Logos: Finish address and length info)
(→‎Tile Character Data: Better document tile character data length and practical/theoretical maximums)
 
(6 intermediate revisions by the same user not shown)
Line 14: Line 14:
! Address !! End Address !! Subentry !! Compressed length !! Decompressed length
! Address !! End Address !! Subentry !! Compressed length !! Decompressed length
|-
|-
| <tt>0x2150c1</tt> || <tt>0x215129</tt> || Tilemap Data || 105 bytes (<tt>0x69</tt>) || 1280 bytes (<tt>0x0500</tt>)
| <tt>0x2150c1</tt> || <tt>0x215129</tt> || Tilemap Data || 105 bytes (<tt>0x69</tt>) || 2048 bytes (<tt>0x0800</tt>)
|-
|-
| <tt>0x21512a</tt> || <tt>0x21532f</tt> || Tile Character Data || 518 bytes (<tt>0x0206</tt>) || 2048 bytes (<tt>0x0800</tt>)
| <tt>0x21512a</tt> || <tt>0x21532f</tt> || Tile Character Data || 518 bytes (<tt>0x0206</tt>) || 1280 bytes (<tt>0x0500</tt>)
|-
|-
| <tt>0x215330</tt> || <tt>0x215373</tt> || Palettes || 68 bytes (<tt>0x44</tt>) || 512 bytes (<tt>0x0200</tt>)
| <tt>0x215330</tt> || <tt>0x215373</tt> || Palettes || 68 bytes (<tt>0x44</tt>) || 512 bytes (<tt>0x0200</tt>)
Line 26: Line 26:
! Address !! End Address !! Subentry !! Compressed length !! Decompressed length
! Address !! End Address !! Subentry !! Compressed length !! Decompressed length
|-
|-
| <tt>0x215374</tt> || <tt>0x2153e7</tt> || Tilemap Data || 116 bytes (<tt>0x74</tt>) || 1280 bytes (<tt>0x0500</tt>)
| <tt>0x215374</tt> || <tt>0x2153e7</tt> || Tilemap Data || 116 bytes (<tt>0x74</tt>) || 2048 bytes (<tt>0x0800</tt>)
|-
|-
| <tt>0x2153e8</tt> || <tt>0x2155b7</tt> || Tile Character Data || 464 bytes (<tt>0x01d0</tt>) || 2048 bytes (<tt>0x0800</tt>)
| <tt>0x2153e8</tt> || <tt>0x2155b7</tt> || Tile Character Data || 464 bytes (<tt>0x01d0</tt>) || 1280 bytes (<tt>0x0500</tt>)
|-
|-
| <tt>0x2155b8</tt> || <tt>0x215654</tt> || Palettes || 157 bytes (<tt>0x9d</tt>) || 512 bytes (<tt>0x0200</tt>)
| <tt>0x2155b8</tt> || <tt>0x215654</tt> || Palettes || 157 bytes (<tt>0x9d</tt>) || 512 bytes (<tt>0x0200</tt>)
Line 38: Line 38:
! Address !! End Address !! Subentry !! Compressed length !! Decompressed length
! Address !! End Address !! Subentry !! Compressed length !! Decompressed length
|-
|-
| <tt>0x215655</tt> || <tt>0x21569d</tt> || Tilemap Data || 73 bytes (<tt>0x49</tt>) || 1280 bytes (<tt>0x0500</tt>)
| <tt>0x215655</tt> || <tt>0x21569d</tt> || Tilemap Data || 73 bytes (<tt>0x49</tt>) || 2048 bytes (<tt>0x0800</tt>)
|-
|-
| <tt>0x21569e</tt> || <tt>0x21578e</tt> || Tile Character Data || 241 bytes (<tt>0xf1</tt>) || 2048 bytes (<tt>0x0800</tt>)
| <tt>0x21569e</tt> || <tt>0x21578e</tt> || Tile Character Data || 241 bytes (<tt>0xf1</tt>) || 1280 bytes (<tt>0x0500</tt>)
|-
|-
| <tt>0x21578f</tt> || <tt>0x2157d2</tt> || Palettes || 68 bytes (<tt>0x44</tt>) || 512 bytes (<tt>0x0200</tt>)
| <tt>0x21578f</tt> || <tt>0x2157d2</tt> || Palettes || 68 bytes (<tt>0x44</tt>) || 512 bytes (<tt>0x0200</tt>)
Line 46: Line 46:


==Format==
==Format==
For each logo, the ROM contains 3 individually compressed subentries for that logo's tilemap data, tile character data, and palettes. See [[EarthBound/ASM/Decompression_Routine#CompressionFormat|Compression Format]].


===Decompressed Format===
===Decompressed Format===
====Tilemap Data====
====Tilemap Data====
Once decompressed, the logo's tilemap data contains a single 32x32 tile [https://snes.nesdev.org/wiki/Tilemaps SNES tilemap], designating a static image covering the entire screen. 2-byte tile entries are arranged in rows, with 32 entries for the left-to-right tiles at the top of the screen, followed by the next row, etc.
For each 2-byte tile entry:
<code>VH0PPPCCCCCCCCCC</code>
* <tt>V</tt> (bit <tt>0x8000</tt>): '''V'''ertical flip. If set, tile will be flipped vertically from how it is stored in tile character data. ''Not set for any logo tilemaps in EarthBound.''
* <tt>H</tt> (bit <tt>0x4000</tt>): '''H'''orizontal flip. If set, tile will be flipped horizontally from how it is stored in tile character data.
* <tt>0</tt> (bit <tt>0x2000</tt>): Would be the BG Priority Bit, which affects whether the tile is displayed in front of or behind other background layers or sprites. Meaningless and always unset for EB logo screens where only a single background layer is used and no sprites.
* <tt>PPP</tt> (bits <tt>0x1C00</tt>): '''P'''alette selection. Selects which 4-color palette from the logo's palettes is used when coloring the selected tile character. ''Always between 0 and 2 (inclusive) for any logo tilemaps in EarthBound.''
* <tt>CCCCCCCCCC</tt> (bits <tt>0x03FF</tt>): Tile '''c'''haracter selection. Character index into tile character data. ''Always between 0 and 40 (inclusive) for any logo tilemaps in EarthBound because no logo uses more than 41 characters.''
====Tile Character Data====
====Tile Character Data====
Once decompressed, the logo's tile character data contains 2-bits-per-pixel 8x8 [https://snes.nesdev.org/wiki/Tiles SNES graphics tiles]. The assembly will load up to 2048 tiles (32768 bytes) to VRAM, but only the first 1024 (16384 bytes) would be referenceable by the tilemap, making 1024 the functional tile character limit. Additionally, as a non-animated 32x32-tile screen, there are exactly 1024 displayed tiles.
In an unmodified EarthBound ROM, the data for each of the 3 logos decompresses to exactly 80 tiles, of which at most 41 are ever referenced and used by the tilemap data. Additionally, like with [[EarthBound/Map_Data/Compressed_Tileset_Character_Data#DecompressedFormat|map tileset character data]], the first tile (index <tt>000</tt>) is always completely transparent for all 3 logos.
====Palettes====
====Palettes====
Once decompressed, the logo's palettes subentry contains a complete set of 256 2-byte [[Super_Nintendo:Color|colors]] (512 bytes) to replace the entire contents of [https://snes.nesdev.org/wiki/Palettes SNES CGRAM]. Because the only graphics used by a logo screen is [https://snes.nesdev.org/wiki/Backgrounds#Mode_1 Mode 1] background tiles on layer 3 (BG3), the only portion of CGRAM that will ever be usable is the first 32 colors (64 bytes), representing 8 4-color palettes, and as with all SNES palettes, the first color in each is ignored and treated as transparent, giving 24 usable colors.  Additionally, no logo screen ever makes use of more than the first 3 palettes in an unmodified EarthBound ROM.


{{stub}}
[[Category:EarthBound|Logo Screen Graphics Data]]

Latest revision as of 16:01, 3 June 2024

Logo Screen Graphics Data
Game EarthBound
Start Address 0x2150C1
End Address 0x2157D2
Total Length 1810 bytes (0x0712)
Back to the ROM map

Compressed raw graphics data for the 3 game intro company logo screens.

Logos

Address End Address Subentry Compressed length Decompressed length
0x2150c1 0x215129 Tilemap Data 105 bytes (0x69) 2048 bytes (0x0800)
0x21512a 0x21532f Tile Character Data 518 bytes (0x0206) 1280 bytes (0x0500)
0x215330 0x215373 Palettes 68 bytes (0x44) 512 bytes (0x0200)

Address End Address Subentry Compressed length Decompressed length
0x215374 0x2153e7 Tilemap Data 116 bytes (0x74) 2048 bytes (0x0800)
0x2153e8 0x2155b7 Tile Character Data 464 bytes (0x01d0) 1280 bytes (0x0500)
0x2155b8 0x215654 Palettes 157 bytes (0x9d) 512 bytes (0x0200)

Address End Address Subentry Compressed length Decompressed length
0x215655 0x21569d Tilemap Data 73 bytes (0x49) 2048 bytes (0x0800)
0x21569e 0x21578e Tile Character Data 241 bytes (0xf1) 1280 bytes (0x0500)
0x21578f 0x2157d2 Palettes 68 bytes (0x44) 512 bytes (0x0200)

Format

For each logo, the ROM contains 3 individually compressed subentries for that logo's tilemap data, tile character data, and palettes. See Compression Format.

Decompressed Format

Tilemap Data

Once decompressed, the logo's tilemap data contains a single 32x32 tile SNES tilemap, designating a static image covering the entire screen. 2-byte tile entries are arranged in rows, with 32 entries for the left-to-right tiles at the top of the screen, followed by the next row, etc.

For each 2-byte tile entry:

VH0PPPCCCCCCCCCC

  • V (bit 0x8000): Vertical flip. If set, tile will be flipped vertically from how it is stored in tile character data. Not set for any logo tilemaps in EarthBound.
  • H (bit 0x4000): Horizontal flip. If set, tile will be flipped horizontally from how it is stored in tile character data.
  • 0 (bit 0x2000): Would be the BG Priority Bit, which affects whether the tile is displayed in front of or behind other background layers or sprites. Meaningless and always unset for EB logo screens where only a single background layer is used and no sprites.
  • PPP (bits 0x1C00): Palette selection. Selects which 4-color palette from the logo's palettes is used when coloring the selected tile character. Always between 0 and 2 (inclusive) for any logo tilemaps in EarthBound.
  • CCCCCCCCCC (bits 0x03FF): Tile character selection. Character index into tile character data. Always between 0 and 40 (inclusive) for any logo tilemaps in EarthBound because no logo uses more than 41 characters.

Tile Character Data

Once decompressed, the logo's tile character data contains 2-bits-per-pixel 8x8 SNES graphics tiles. The assembly will load up to 2048 tiles (32768 bytes) to VRAM, but only the first 1024 (16384 bytes) would be referenceable by the tilemap, making 1024 the functional tile character limit. Additionally, as a non-animated 32x32-tile screen, there are exactly 1024 displayed tiles.

In an unmodified EarthBound ROM, the data for each of the 3 logos decompresses to exactly 80 tiles, of which at most 41 are ever referenced and used by the tilemap data. Additionally, like with map tileset character data, the first tile (index 000) is always completely transparent for all 3 logos.

Palettes

Once decompressed, the logo's palettes subentry contains a complete set of 256 2-byte colors (512 bytes) to replace the entire contents of SNES CGRAM. Because the only graphics used by a logo screen is Mode 1 background tiles on layer 3 (BG3), the only portion of CGRAM that will ever be usable is the first 32 colors (64 bytes), representing 8 4-color palettes, and as with all SNES palettes, the first color in each is ignored and treated as transparent, giving 24 usable colors. Additionally, no logo screen ever makes use of more than the first 3 palettes in an unmodified EarthBound ROM.