Here I will add my two cents worth to the complaints about problems with rotating objects and pivots etc.
All I need to do is rotate an object in the X & Z axes so it looks like its rolling as it moves in the x & z directions. I have fiddled about trying to find a workaround without success, the problem occurs (in slightly different ways) whatever rotation commands I use (roll/pitch or rotate).
I wrote the bit of code below to illustrate, the really odd thing here is that both cubes should act the same, but the rotation 'bug' seems to manifest itself in different ways for different commands.
If anyone can make these cubes rotate correctly (IE always in/out of the screen with up/down, always clockwise/anticlockwise) I would be very greatful.
make object cube 1,100
make object cube 2,100
position object 1, -150,0,0
position object 2, 150,0,0
autocam off
point camera 0,0,0
x=0 : z=0 : pivot = 1
`SET OBJECT ROTATION ZYX 1
repeat
zz=0:xx=0
if rightkey() then inc z : zz = 1
if leftkey() then dec z : zz = -1
if upkey() then inc x : xx = 1
if downkey() then dec x : xx = -1
x=wrapvalue(x) : z=wrapvalue(z)
i$ = Inkey$()
if i$ = "p" and lastkey$ "p" then pivot = 1 - pivot
lastkey$ = i$
rem Rotate Object 1
if pivot = 1
xrotate object 1,xx
fix object pivot 1
zrotate object 1,zz
fix object pivot 1
else
xrotate object 1,x
zrotate object 1,z
endif
rem pitch/roll Object 2
pitch object up 2,xx
roll object right 2,zz
if pivot = 1 then fix object pivot 2 : text 0,20,"Pivot On"
until escapekey()
Incidentally, this also shows another (associated?) bug, on my PC cube 1 rotates faster than cube 2, this occurs in the fix object pivot command, try adding a few more to make it go even faster!

)