ABCDEFGHIJKLMNOPQRSTUVWXYZAA
1
File FormatLengthExample DataValue
2
header flag (should always be ZSPR)4 bytes5A 53 50 52ZSPR
3
file format version1 byte011
4
checksum (2 bytes + complement 2 bytes (same nonsense as snes rom, sum up all the bytes, etc. should total FFFF))4 bytesF1BB 0E44F1BB+0E44 = FFFF
5
pixel data offset (offset to the pixel data in the file)4 bytes50 00 00 000x50
6
pixel data length (length of pixel data in file)2 bytes00 700x7000
7
palette data offset (offset to the palette data in the file)4 bytes50 70 00 000x7050
8
palette data length (length of the palette data in file)2 bytes7C 000x7C
9
sprite type (should be 1 for player sprites)2 bytes01 001
10
reserved6 bytes00 00 00 00 00 00-
11
display text (unicode, null terminated [2 bytes])varies4C 00 75 00 6E 00 6B 00 00 00Lank
12
author (unicode, null terminated [2 bytes])varies
48 00 65 00 6C 00 6C 00 6F 00 20 00 53 00 6F 00 73 00 75 00 6B 00 65 00 00 00
Hello Sosuke
13
author rom display (ascii, null terminated)varies48 6F 77 20 61 72 65 20 79 6F 75 3F 00Did this work?
14
sprite data (raw 4bpp planar snes format)28672 (0x7000) bytes-
15
palette data (green mail (BGR 5:5:5))30 bytes-
16
palette data (blue mail (BGR 5:5:5))30 bytes-
17
palette data (red mail (BGR 5:5:5))30 bytes-
18
palette data (bunny (BGR 5:5:5))30 bytes-
19
palette data (gloves (BGR 5:5:5))4 bytes-
20
21
22
*****
23
File is Little Endian format
24
*****
25
*Palette data length is the total palette length (0x7C bytes for a proper player sprite palette with gloves)
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100