Download GlovePIE
here.
Here is a script I whipped up a while ago. This allows you to use your Xbox 360 controller as a mouse via GlovePIE:
//Made by yasamoka
//VARIABLES: Modify this block only
//Adjust the second values in DeadZone so that the mouse cursor does not move around on its own.
//This is because the joysticks are almost never perfectly centered, so they almost never report a perfect zero.
var.XAxis = DeadZone(XInput.Joy1X,0.06)
var.YAxis = DeadZone(XInput.Joy1Y,0.06)
//buttons
var.AccelButton = XInput.LeftTrigger
var.DecelButton = XInput.RightTrigger
mouse.LeftButton= XInput.LeftShoulder
mouse.RightButton = XInput.RightShoulder
mouse.MiddleButton = XInput.RightThumb or XInput.Y
mouse.WheelUp = InRange(XInput.Joy2Y,1,1) or XInput.Up
mouse.WheelDown = InRange(XInput.Joy2Y,-1,-1) or XInput.Down
mouse.WheelLeft = InRange(XInput.Joy2X,-1,-1) or XInput.Left
mouse.WheelRight = InRange(XInput.Joy2X,1,1) or XInput.Right
//Looping frequency. Increase for higher sensitivity, precision, and decreased input latency.
//The native USB polling rate is 125Hz.
PIE.FrameRate = 1000
//To ensure precision:
//1) Flick the joystick to the end as fast as possible to the right for the tiniest movement.
//2) If you do that fast enough, you should eventually arrive at a value of 1 in the debugging textbox above.
//NOTE: this is a very difficult process.
//NOTE2: My mouse has a polling rate of 1000Hz. This makes my USB ports work at 1000Hz.
// I have been able to break 250Hz and reach 2 at 1000Hz.
//acceleration coefficient (scalar multipliers);
//Modify normAccel once you top out at the controller's precision (above)
//Decrease the norm lower than 1 if you want a high polling rate but lower sensitivity.
//Modify min and max relative to normAccel.
var.minAccel = 0.5
var.normAccel = 1
var.maxAccel = 3
//This code below is for functioning
//Precision monitoring:
if(var.XAxis = 1) {
var.xcnt = var.xcnt + 1
var.prev = true
elseif(var.prev = true) {
var.xdisplay = var.xcnt
var.xcnt = 0
var.prev = false
}
debug = var.AccelButton
//Acceleration
if(var.AccelButton > 0 && var.DecelButton = 0) {
var.acc = var.normAccel + (var.maxAccel - var.normAccel)*var.AccelButton
elseif(var.AccelButton = 0 && var.DecelButton > 0) {
var.acc = var.normAccel + (var.minAccel - var.normAccel)*var.DecelButton
else {
var.acc = var.normAccel
}
//Cursor movement
var.CursorPosX = var.CursorPosX + var.XAxis*var.acc
var.CursorPosY = var.CursorPosY - var.YAxis*var.acc
mouse.CursorPosX = var.CursorPosX
mouse.CursorPosY = var.CursorPosY
Copy-paste this into GlovePIE and modify the values of the variables you would like to adjust. Make sure to give the comments a good read so that you adjust it to your liking.