From Sonic Retro
|SCHG: Sonic Jam|
(In alphabetical order; if you are a contributor and have worked on a specific part of the guide, feel free to note that.)
Pieces of the guide not big enough for their own page should be left here.
3D Vectors consist of 3 longwords. The upper word of each long can be seen as the integer value of the component; $0001 is 1 unit. The lower word is fractional, out of 65536; $8000 becomes 0.5 units (32768 / 65536 = 0.5). In essence, it's like there's a decimal point after the first word.
This is a bit different for negative values. Like all negative numbers, you're counting downwards, so to convert to decimal, you add 1 to the upper word unless the lower word is $0000, and you subtract 65536 by the lower word, and divide by that. For example, $FFFF0000 is -1.0, but $FFFFC000 is -0.25 (65536 - 49152 = 16384; 16384 / 65536 = 0.25).
An Euler Rotation consists of 3 words. Each word rotates around one axis: X, Y, and Z in order (though the three don't always point how you'd expect). $0000 is 0 degrees of rotation, $8000 is 180 degrees of rotation.
I've yet to confirm if all Euler Rotations have the same handedness.