Script: Give a starting radius(X accel), starting angle(Y accel x 90), and starting rotation speed(Y speed), attach it to FFC #1 as a center point, assume the FFCs are 16x16 pixels. Result: Rotation around a central (even moving) point. In my case, I combned it with the moving platform script I made to make two FFCs that rotating around a moving platform.
Code:
SETV a1,1
SETR d2,xd2 ; d2 is the radius
SETV xd2,0
SETR d3,yd2 ; d3 is the current angle
SETV yd2,0
MULTV d3,90
SETR d4,yd ; d4 is the speed of rotation
SETV yd,0
DoRotation LOAD1 d0,x ; d0 is center x based on FFC 1
LOAD1 d1,y ; d1 is center y based on FFC 1
LOAD1 d7,xd
ADDR d0,d7 ; Since FFC scripts are executed BEFORE the movement variables are applied, apply the movement variables yourself to the center point to ensure perfect rotation
LOAD1 d7,yd
ADDR d1,d7 ; And do the same with the X position
ADDV d0,8 ; Add 8 to the center X/Y point since FFC X/Y is top-left jutified
ADDV d1,8
COSR d7,d3 ; Calculate final X position FFC
MULTR d7,d2
ADDR d7,d0
SETR x,d7
SUBV x,8 ; Subtranct 8 to ensure rotation occurs at center of FFC, not at origin point
SINR d7,d3 ; Calculate final Y position of FFC
MULTR d7,d2
ADDR d7,d1
SETR y,d7
SUBV y,8 ; Do the same for Y as above
ADDR d3,d4 ; Add the rotation speed to the angle
COMPAREV d3,360 ; This whole section rolls around the angle value if it's >=360 or <0
GOTOLESS DoRotation2
SUBV d3,360
DoRotation2 COMPAREV d3,0
GOTOMORE DoRotation3
ADDV d3,360
DoRotation3 WAITFRAME
GOTO DoRotation ; Repeat he whole thing
QUIT