[Image]

                             SNES Screen Format

[Image]


                SNES GRAPHICS INFO FILE V1.0
                ----------------------------
                     By DAX on 28/2/93

This is a short text file on how the data for the gfx on the SNES are
set up..
Everything is based around an 8x8 pixel 'Tile' and thinking in terms of
tiles makes the whole thing a lot easier.

4 Colour mode - 2 Bitplanes
---------------------------
If you split the screen into 8x8 pixel tiles, the order of the graphics data
is tile 0,1,2,3,4 etc.(with tile 0 being the first, and 1 being the one on
the right of it.)

Then for each tile, the data is stored as shown below.
        00 01 02 03 04 05 06 07
        10 11 12 13 14 15 16 17    Each number representing one pixel in
        20 21 22 23 24 25 26 27    the 8x8 tile.
        30 31 32 33 34 35 36 37
        40 41 42 43 44 45 46 47
        50 51 52 53 54 55 56 57
        60 61 62 63 64 65 66 67
        70 71 72 73 74 75 76 77

The data is stored in the SNES binary in the following format.
        Bitplane 0 ..   Line 00-07 (One Byte)
                        Line 10-17
                        Line 20-27
                        Line 30-37
                        Line 40-47
                        Line 50-57
                        Line 60-67
                        Line 70-77
then    Bitplane 1 ..   Line 00-07
                        Line 10-17
                        Line 20-27
                        Line 30-37
                        Line 40-47
                        Line 50-57
                        Line 60-67
                        Line 70-77
then comes the data for the next tile (the one on the right).etc.

16 Colour - 4 Bitplanes
-----------------------
The data for this mode is stored in the same format, with one main change.
The data is stored in the format
        Bitplane 0 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 1 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 2 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 3 ..   Line 00-07
                               |
                        Line 70-77

then the data for the next tile.

256 Colour - 8 Bitplanes
------------------------
This is simply an expansion of the 4 and 16 colour modes.
        Bitplane 0 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 1 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 2 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 3 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 4 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 5 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 6 ..   Line 00-07
                               |
                        Line 70-77

        Bitplane 7 ..   Line 00-07
                               |
                        Line 70-77

then the data for the next tile.

256 Colours - Mode 7 format
---------------------------
This has some very major differences to the other graphics data formats

there are two mode7 modes, normal and EXTBG, the data is stored in the
same way in both, apart from in EXTBG the Bitplane 7 value will be a
priority bit for the pixel, which cuts the colours down to 128.

Each byte of 'graphics data' is actually the colour value for that pixel
on the screen, so if the value is 64, then the colour of that pixel will
be the contents of colour register 64.

The data is stored in VRAM differently to the other modes, with the tile
numbers, and the graphics data 'interleaved', starting at $0000 in VRAM,
with alternate bytes containing one byte of tile, one byte of gfx - this
is shown below.

        Word of VRAM.        HI                         LO
        Bit  15  14  13  12  11  10  09  08  07  06  05  04  03  02  01  00
content     |------------------------------||------------------------------|
               Graphics data(CHAR DATA)             Tile number(NAME)

Because of the storing of 16 bit data in reverse format (LO-HI) this means
that if you set the VRAM addr to $0.the first byte written should be the
tile name for that position on screen and the second byte should be the first
byte of the Mode7 graphics data.if the VRAM addr is set to $1 the first byte
written will be the tile name for that position on scr, and the second byte
should be the second byte of the mode7 graphics data.
  ETC

In mode7 you can only have a maximum of 256 tiles, because of the fact that
the mode7 data only takes up the first half of VRAM(32k) you can only have 16k
of graphics data which is 256 tiles of 8x8 with 256 colours.
This is quite a limitation, but can be used quite effectively.

The tile numbers are stored in a format according to a 128x128 tile screen
so tile 128($80) would be the tile below 0($0) on the screen, and so on.
so VRAM addr $0 is the top left tile, and $1 is the one on the right of it
$80 is the one on the left side, one row down.

the graphics data is stored based on an 8x8 tile again.
but slightly different.
Each byte(pixel) is stored so...
                        Bit number    Contents
                                0          Bitplane 0 pixel value
                                1          Bitplane 1 pixel value
                                2          Bitplane 2 pixel value
                                3          Bitplane 3 pixel value
                                4          Bitplane 4 pixel value
                                5          Bitplane 5 pixel value
                                6          Bitplane 6 pixel value
                                7          Bitplane 7 pixel value /
                                           (EXTBG mode - Priority value)

The data is then stored in the sequence
                00,01,02,03,04,05,06,07
                10,11,12,13,14,15,16,16  (Look at diagram at start of file
                    |      |      |       for explanation)
                70,71,72,73,74,75,76,77

with one byte for each position(pixel), according to the 8x8 tile format,
with one tile after another.

---------------------------------------------------------------------------
I hope this text file helps those of you having trouble converting graphics
for use on the SNES, I have been asked a few times recently for this info
so I decided to type up this short text file on it.
Hopefully it should explain it!



                                  [Image]

                         © 1996 Damaged Cybernetics



                                  [Image]
