By Brian Provinciano <bri_da_man@hotmail.com>
Version 1.03 December 21st, 1998
The SCI cusrsor consists of the colours black, white and transparent.The cursors, which are 16 x 16 pixels (128 in all), are not drawn as ordinarypictures. Each byte represents 8 pixels (half of a row) and each byte representsa pattern. The cursor contains 70 bytes, the first six bytes the header,and the 64 bytes left represent the patterns.
*Useful note - In binary, a 0 represents transparent, and a 1 representscolor.
There are 70 bytes in total. The first 6 bytes are the header, and theother 64 are the actual picture.
Byte 1: 0x88 - always seems to be this. Can't be changed.
Byte 2: 0x00 - always seems to be this. Can't be changed. If changed,the
cursor will look very odd. See example:
|
|
Bytes 3-6: 0x00 in SCI0 games, but not always in SCI1 games.If
they are not 00 and are changed to 00, it makes no difference.
Bytes 7-38: This is where you enter in info on how the picture isdrawn.
These bytes draw in the patterns with the colours black and transparent.A
complete picture can be drawn leaving the rest of the bytes (39-70) blankif
you are just using the colours black and transparent in your cursor.
Bytes 39-70: This is where you can draw more over top of what youhave
already drawn. These bytes draw in the the patterns with the coloursblack
and white. As an example, the regular mouse cursor in an SCI gamehas the
black part of the cursor drawn in the bytes 7-38 and then the whiteinside
it is drawn in bytes 39-70. Look at picture below.
|
|
Variable Byte |
Pattern |
0x0 |
|
0x1 |
|
0x2 |
|
0x3 |
|
0x4 |
|
0x5 |
|
0x6 |
|
0x7 |
|
0x8 |
|
0x9 |
|
0xA |
|
0xB |
|
0xC |
|
0xD |
|
0xE |
|
0xF |
|
Note - This does not contain a picture of every pattern,because that in not necessary.
*Examples use variable F
0xF4 = ![]() |
0x4F = ![]() |
Normally: 0xFC = ![]() Using two variables: |
Normally: 0xF4 = ![]() 0xF5 = ![]() Using two variables: |
If you are using a hex editor such as Ultra Edit or Hex Workshop, know that the pixels begin to be drawn at the top right hand corner of the cursor and goes towards the left, then on the next row starts at the left and heads right etc. See the example:
e.g.
etc...
End of structure