I initially bought an Xbox 360 controller to use with emulators. I found out that not only does it perform the task of mimicking an SNES controller admirably, but with a free program you can use it in place of a traditional mouse. While this might not seem practical, it is handy when you don't have a suitable surface to use a regular mouse on. For example, when the computer you need to operate is hooked up to the TV in your living room running a bunch of emulators. Using a mouse on a couch is harder than you'd think. Also, you can actually navigate Windows more easily by assigning common keyboard shortcuts (such as Alt + F4) to buttons. It's also just a quick, easy project to waste 15 minutes doing.

If this sounds good to you, jump to the next page to find out what you'll need.

Step 1: What You Need (Hardware)

Surprisingly enough, to use an Xbox 360 controller as a mouse on a computer you need both an Xbox 360 controller and computer. More specifically:

A computer running Windows XP or Vista. Unfortunately, the drivers Microsoft provides are not for earlier versions of Windows. The computer will need one open USB port.

An Xbox 360 wired controller. This costs $40 retail, but you should be able to find it for around $20 online. If you don't already have a wireless controller or you only have one (and want another controller for multiplayer games on your Xbox 360) then the wired controller is the better choice.


An Xbox 360 wireless controller AND an Xbox 360 wireless gaming receiver. The wireless controller retails at $60, but again online you should be able to find it for half price. The wireless receiver costs $20 pretty much wherever you buy it. This option is the way to go if you already have a wireless controller or two as it only costs $20.

Now that you have all the hardware, we move onto the software.

Step 2: What You Need (Software)

The necessary drivers can be downloaded from Microsoft's website. This will allow you to use the controller for compatible games, but that's about it. That's not good enough for us. We want more, damn it!

JoyToKeyJoyToKey is the next and last bit of software we'll need. Scroll down to very end of the page to start the download.

Now that we have everything we need, let's set everything up.

Step 3: Installation

Run the application you downloaded from Microsoft. Read the agreement, click "I accept this agreement", click "Next", let the program install, and click "Finish". After you've installed this, plug your controller (or wireless receiver) in and press the Guide button to make sure everything is copacetic.

JoyToKey doesn't need to be installed. Just extract the files from the .zip into whichever directory you want.

Now that everything is installed, it's time to get to the good part.

Step 4: JoyToKey Basics

Make sure your controller is connected and open JoyToKey. The left hand side displays your configurations. You can multiple configurations to use for certain tasks (one for mouse movement, one for gaming, etc.). On the right hand side you'll see a long list that consists of "Button", "Keyboard", "Auto". This is where you define what the buttons (thumbsticks and directional pads count too) do. However, by default this list doesn't show every component of the Xbox 360 controller.

Click the tab on the very right labeled "Others". Here you can change the number of joysticks for this configuration. Adding more joysticks to configure allows the same customization of a separate configuration, but the you can only switch to different joystick configurations (Joystick 1, Joystick 2, etc.) temporarily (while a button is held down) where you can toggle between configurations (press once to switch, press again to switch back). To view the full range of buttons of the Xbox 360 controller click "Use Axes other than X and Y." and "Use POV switches".

Now, push the "Joysticks" tab to switch back to the list. You'll notice a lot more buttons are available for us to configure. Here's a rundown of what each button on the controller is listed as in the list.

Left Thumbstick Left = AxisX(<0)
Left Thumbstick Right = AxisX(>0)
Left Thumbstick Up = AxisY(<0)
Left Thumbstick Down = AxisY(>0)

Right Shoulder = Axis3(<0)
Left Shoulder = Axis3(>0)

Right Thumbstick Left = Axis4(<0)
Right Thumbstick Right = Axis4(>0)
Right Thumbstick Up = Axis5(<0)
Right Thumbstick Down = Axis5(>0)

Directional Pad Up = POV1:UP
Directional Pad Right = POV1:RIGHT
Directional Pad Down = POV1:DOWN
Directional Pad Left = POV1:LEFT

A = Button 1
B = Button 2
X = Button 3
Y = Button 4

Left Bumper = Button 5
Right Bumper = Button 6

Back = Button 7
Start = Button 8

Left Thumbstick = Button 9
Right Thumbstick = Button 10

(For clarification, the last two are achieved by pushing the left or right thumbstick in. They're called L3 and R3 on Playstation controllers, but I don't know if they have a name from Microsoft.)

There are plenty of other options, but what exactly they do I don't know. Using the guide above maps every button (except the Guide button) that I could find so I'm not worried.

The last step will give examples of configurations and provide the files that I use.

Step 5: Configuration and Implementation

From here you can configure the buttons manually, download the configurations I use, or do a little of both. To assign a value to a button you simply double click it in that list. You'll be presented with a bunch of options. "Disable" does just what it says. "Keyboard" allows you to assign a certain keystroke (or a combination of up to three keystrokes) to that button. "Mouse" allows you to move the mouse pointer, scroll wheel, and use the mouse buttons. "Command" does nothing at the moment. "Special" lets you speed up or slow down the movement of the pointer, temporarily use another joystick configuration, or switch to a different configuration.

I use two configurations (one for navigating Windows ("Windows.cfg") and one for playing games). You can download my Windows configuration at the bottom of the page here. It's made so the left thumbstick moves the pointer, A left clicks, B right clicks, X speeds up the pointer, left bumper is ALT, right bumper is TAB (I use these two together to switch between windows quickly), left trigger is ALT + SPACE + N (which minimizes a window), right trigger is ALT + F4 (which closes a window), right thumbstick scrolls up and down, and a few other buttons do things as well. The gaming configuration just mirrors the settings in SNES9X.

If you plan on using the controller as your primary input device it's important that you have JoyToKey run at startup. It has an option under "File", but I haven't had good luck with that. Instead I created a shortcut in the "Startup" folder. Then right clicked and chose "Properties". From there I changed "Run:" to "Minimized". This way not only will JoyToKey start every time Windows starts, but it'll start out of the way. (Note: I don't think a "Startup" folder is present on all computers, but you can still make JoyToKey run at startup by using msconfig. Do a search on how to use msconfig if you're not familiar with it.)

To use my configuration simply download it and put it in the root directory that JoyToKey is in. I recommend you download it, and then modify it to better suite your needs. Well, we've made it to the end. Thanks for reading, and let me know what you think.
<p>The JoyToKey link gives me a malware warning from Chrome.</p>
<p>It gives me ALSO a malware warning</p>
<p>That link looks suspicious<br>official download link at joytokey.net</p>
<p>I did this and it worked, when I restarted my computer and started joytokey up again, it didn't work?</p>
<p>will it work with play and charge</p>
Is there any way to ignore miniscule inputs?<br>My cursor keeps drifting slowly after I stop moving the thumbstick.
<p>That's a glitch with the controller. Try recalibrating it. That might help.</p>
<p>That is not a glitch with the controller, nor does it need to be re-calibrated. After regular use, a joystick will inevitably not always reset to its original position. This is why there is an automatic threshold when connected to an Xbox. This threshold can be modified in JoyToKey's settings. Beside Joystick 1, click on Options. On the bottom half of the page there will be a setting called &quot;Threshold for input.&quot; You can appropriately change the threshold for Stick 1 and Stick 2. Its default settings are 2. Suggested settings are anywhere from 10-20, depending on the condition of the joystick.</p>
Set the 'Input Threshold' in the 'Other' tab to 3%<br>Problem solved!
Okay, I have an Xbox 360 Wireless Remote with a Charge and Play cord. Will it still work?<br />
<p>The computer detects all USB ports plugged in. It should work.</p>
<p>The Charge and Play Kit only works as exactly what the title suggests: to charge. No data can be passed through the cord. If you want to use a wireless Xbox 360 controller with your PC, you need to purchase a wireless adapter. Next time do a quick Google search before spreading misleading information.</p>
&nbsp;no, it wont. i tried.<br /> <br /> the wireless controllers arent wired to work over USB with a play and charge kit.<br />
you can buy a $20 adaptor <br>though
<p>The JoyToKey link is a failed link. Use joytokey.net, instead, because the site linked here contains malware. joytokey.net seems to be the legit site.</p>
is it possible to use the xbox 360 keyboard with joytokey?<br>that way i can configure the controller to move the mouse and use the keyboard thingy to chat and do other stuff?<br><br>thx.
<p>There's no way to use xbox 360 keyboard with JoyToKey. Sorry. You can move the mouse with it though.</p>
I had a 360 but it tore up, one of my favorite games was oblivion, so i got oblivion on my computer and set up the controls to mirror that of the xbox's version, but one problem... the hotkey button is the d-pad, now it took me awhile to figure out how to set it up to show the d-pad, but it is only for up down left and right, how do i make it apply for the diagonal directions for the d-pad?
<p>There is an 8-way POV/Dpad option in the Joystick options.</p>
which button is the middle big silver X button? <br>thankyou
<p>I don't think the Xbox controller X button is compatible with JoytoKey. I've checked.</p>
That would be the Xbox Guide button. I guess you're new here.
<p>Guys i have a problem with the configuration of my right stick of my controller. </p><p>Right Thumbstick Left = Axis4(&lt;0) Mouse horizontal -100<br>Right Thumbstick Right = Axis4(&gt;0) Mouse horizontal 100</p><p>Right Thumbstick Up = Axis5(&lt;0) Mouse vertical 100</p><p>Right Thumbstick Down = Axis5(&gt;0) Mouse vertical -100</p><p>I cannot look around with my right stick on my controller... I use &quot;Thrustmaster dual analog 4&quot; can anyone please help me out?</p>
<p>What do you mean by look around?</p><p>If you're trying to move the mouse on it, you should go to mouse then move the horizontal or vertical mouse option up, down, left or right.</p>
<p>How am i suppose bind the mouse to the controller? </p>
<p>Double click on the button you want to use the mouse for on your controller, go to &quot;mouse&quot; and move the mouse cursor option (either one) to go left, right, up or down. Example: If you want the right POV key to move the cursor right, you'd go there, move the horizontal line right. If you want the POV key to move the cursor up, you'd do the same, but move the vertical line up.</p><p>Be warned, I dunno why, but the mouse scrolling feature is reversed. Up on the scroll option is to go down.</p>
<p>controller isn't working, it works on desktop, but when switched to league it doesn't respond, does joytokey even work with latest pach?</p>
<p>Michael.diamond.58</p><p>It works for me on the fullscreen steam games I play. Does whatever you're trying to go on remove other processes and windows so that it runs faster? If it does, disable it if you can.</p>
<p>Check out Xbox2Mouse</p><p>https://github.com/adamjimenez/Xbox2Mouse</p>
<p>Thanks man! My laptop's mousepad went bonkers, so I gave it my wired mouse from my PC. My PC is now controlled by my controller. Yay!</p>
<p>Thank you! I made it in 5 min (+5min for small correction in cfg). Good Job</p>
<p>Is there a way to assin the print screen</p>
<p>Hi and first of all thank you for your post. It works quite well on my Dell Venue Pro 8 tablet, except for 2 issues: </p><p>1. the mouse cursor is invisible on the desktop. I am able to select stuff and launch programs but I don't see any mouse cursor. I assume this is due to the PC being a tablet</p><p>2. in Morrowind the cursor appears (no cursor is visible when gamepad is not connected) but refuses to move. I know the gamepad is working, because I can use it to skip the intro. I tried launching both Joytokey and Morrowind as Administrator as suggested below, but it didn't help</p><p>Do you have any idea what I could do?</p>
<p>really good article and nice find :) but yes, xpadder I think is a bit easier to use and can also turn a controller into a mouse.</p>
I was having a problem where the controlled would work on my desktop, but in some games, and on any menus that needed administration permission, it wouldn't react at all.<br>However, I finally figured it out.<br>Close the program, go to the program, right click on the program then click run as administrator. Problem solved.<br>Again, this is to fix the controller being non-responsive when your computer pops up a message saying &quot;Your permission is needed to continue&quot; or in games where it won't react at all.
<p>Thanks Danelson! That was so helpful! the controller being non responsive was the main issue for me here!</p>
<p>Try Xbpad from http://sourceforge.net/projects/xbpad/?source=directory. Its app developed by me, it has good looking and simple to use gui and many built in features.</p>
<p>HI MAN, how to download your configuration?</p>
<p>I couldn't find it either... Change your language to english and it'll be at the bottom of the page</p>
<p>Hey, this is a great article, but left me with one question could you post a configuration guide?</p>
<p>I signed up an account just so I could comment and say &quot;Thank you&quot; xD - this was perfect, and was exactly what I was looking for.<br><br>Thanks for sharing your configuration file as well - that saved me time and kept me from having to do the &quot;boring&quot; part (haha).</p>
<p>Also, just in case other people have this problem, here is what I did to use his configuration file (as my browser was not giving an option to download the file).<br></p><p>To use his configuration file (what I did):<br>1. Open JoyToKey<br>2. Click the &quot;Create&quot; button in the bottom left hand corner --&gt; give it a name<br>3. Close the program<br>4. Go to the root location where the &quot;JoyToKey&quot; .exe is stored <br>5. Look for the profile you just created<br>6. Right click the profile, and select &quot;Open With --&gt; Notepad&quot;<br>7. Copy/paste (replace) his configuration text over the profile you created<br>8. Save and close the notepad document<br>9 Run JoyToKey --&gt; Select the Profile, and you're good! <br></p>
How do I download his windows.cfg file? every time I click on it, it opens the file over the internet? As in, no option to download. <br>
<p>To use his configuration file (what I did):<br>1. Open JoyToKey<br>2. Click the &quot;Create&quot; button in the bottom left hand corner --&gt; give it a name<br>3. Close the program<br>4. Go to the root location where the &quot;JoyToKey&quot; .exe is stored <br>5. Look for the profile you just created<br>6. Right click the profile, and select &quot;Open With --&gt; Notepad&quot;<br>7. Copy/paste (replace) his configuration text over the profile you created<br>8. Save and close the notepad document<br>9 Run JoyToKey --&gt; Select the Profile, and you're good!<br></p>
CTRL+S <br>Your life has been saved!
I am using a configuration for minecraft and pretty soon I will have a configuration for &quot;onscreen keyboard&quot; use. Just wanted to say what a fantastic job with this. I find it unique to use a 360 controller as a mouse or even a whole key board if you wish. Thanks for these easy to follow instructions. :3 I feel like a master at this now!
Does anybody have a great idea what you could use for Guide button, R-stick, both the L&amp;R stick-click and the Y button? I was thinking Right Stick can be directional movement, so using the on-screen keyboard and many icons makes it faster to move instead the pointer. Y button for Esc key. Guide button to serve as the Windows key. Left stick as shift key, like it is on the Xbox 360 on-screen Keyboard. And right stick is the on-screen keyboard enable/disable, so then when you want to do any keyboard command or start typing, just press it.
there is a software that enables you to assign keys on the controller to keys on the keyboard and mouse. Just google xpadder its free and makes this a whole lot easier

About This Instructable




More by David Stoner:Use an Xbox 360 Controller as a Mouse 
Add instructable to: