I was wondering if I was interpreting the Y axis rotation and preset ID of macro objects correctly. To check that, I have compared my output with the TT64 one (assuming the last one was correct). However, the rotation parameter does not match.

The object I was analyzing is the bubble shooting cannon. It's object placement list entry is the following:

Code:

`E0 91 05 6C 0B 66 F6 B1 00 00`

VL-Tone notes said that of the first two bytes (E0 91) the first 7 bits represent the rotation around the Y axis, and the last 9 bits represent the preset ID. So that's how I interpreted those two values:

Code:

`E 0 9 1`

1110|0000|1001|0001

YYYY YYYP PPPP PPPP

YRotation = 1110000b = 112

PresetID = 010010001b = 145 = 0x91

However, TT64 gives these values:

Code:

`YRotation = 315`

PresetID = 0x91 = 145

Only the preset ID is correct, but not the rotation angle. I wondered a bit about that since the angle span is 0 - 359 degrees, so there should be 360 different possible combinations to have a 1 degree precision. However, 7 bits make possible only 2^7 = 128 combinations. The conclusion is that I think the 7 bit value is multiplied by some greater than 1 multiplier, to make the angle span between 0 - 359 degrees, even if with less precision.

I did the ratio between the two values and i got the following value:

Code:

`TT64value / 7bitValue = 315 / 112 = 2.8125`

Am I correct? Is 2.8125 the right multiplier to be applied?

Edit: It would also make sense, since 360 / 128 = 2.8125