fixp_sin16
force = (effect->u.constant.level * fixp_sin16((effect->direction * 360) >> 16)) >> 15;
force = (effect->u.periodic.magnitude * fixp_sin16((effect->direction * 360) >> 16)) >> 15;
force = (effect->u.ramp.start_level * fixp_sin16((effect->direction * 360) >> 16)) >> 15;
force = (effect->u.ramp.end_level * fixp_sin16((effect->direction * 360) >> 16)) >> 15;
x = fixp_mult(fixp_sin16(i), level) * gain / 0xffff;
huesin = fixp_sin16(val) * 0x80 / 0x7fff;