197 lines
8.1 KiB
Plaintext
197 lines
8.1 KiB
Plaintext
[T[H
|
||
[T[H ############################################################################
|
||
[T[H # #
|
||
[T[H # Support for Megadrive - Famicom - PC-Engine - Handhelds #
|
||
[T[H # More than just Amiga.. #
|
||
[T[H # #
|
||
[T[H # 16.8k HST/V32bis -- ASL -- Locked at 57.6k -- 2 Nodes -- 68030 40MHz #
|
||
[T[H # #
|
||
[T[H # THIS FILE PASSED THROUGH TREASURE ISLAND BBS: +44 (0)992 451 191 #
|
||
[T[H # #
|
||
[T[H ############################################################################
|
||
[11;1H[0m[A
|
||
|
||
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!
|
||
|
||
If you have any further questions contact :-
|
||
Dax or Corsair
|
||
|
||
On the following BBS's
|
||
|
||
The Graveyard +44 (0)91 516 0560
|
||
Treasure Island +44 (0)992 451191 (Coders Conf)
|
||
The Fun House +44 (0)81 443 3174 (Coders Conf)
|
||
|
||
Quick hellos to everyone who I know as I cannot be bothered to type
|
||
out a list.
|
||
|