How to Use an Xbox 360 Controller On Your Windows PC

By Jason Fitzpatrick on July 3rd, 2012

2012-07-03_132716

The keyboard and mouse might be a good fit for many native computer games, but it feels downright weird to play emulated games that way. Whether you want to play Super Mario with a proper gamepad or try out a new PC title like Diablo III in comfort, we’ve got you covered.

Today we’re taking a look at how you can take a Microsoft Xbox 360 controller and configure it to work with everything from your favorite emulators to old and new PC games. Whether you want the authentic feel of a controller in your hand when you play old school games or you’re looking for a gentle-on-the-wrists way to play modern games, it’s easy to set up.

What You’ll Need

For this tutorial you’ll need the following things:

  • A wired Xbox controller (Official or well-constructed unofficial controller like the Mad Katz model is OK).
  • A copy of ShowOff (for diagnostic purposes).
  • A copy of Xpadder ($10, necessary for more advanced configuration techniques).
  • An emulator or video game to configure the controller for.

While it’s possible to use a wireless controller for this tutorial, doing so adds an extra layer of complexity and troubleshooting to the project (many people report widespread issues with using the wireless 360 controller for PC-based gameplay) and as such we’ve opted to stick with the wired model. If you have success using the wireless models, be sure to drop a note in the comments and share your tips and tricks.

Also, we strongly recommend reading through the entire tutorial and checking out the specific applications and games you want to use your Xbox controller with before purchasing anything on the What You’ll Need list as some setups require les configuration than others (effectively reducing the cost for the project to $0 outside the cost of the actual controller).

Installing and Testing the Xbox 360 Controller

2012-07-03_140342

Installing the Xbox 360 controller should be a pretty painless affair. Plug your controller into an unoccupied USB port on your Windows machine. Windows should automatically detect and install the drivers for the device and in under 10 seconds the computer will be accepting input from the controller.

If, during the following diagnostic tests, it becomes clear that the installation did not go as planned, you can visit the support page for the 360 controller here and download the appropriate drivers for your version of Windows.

To test out the controller, we have a two prong approach. The first thing you want to do is go to the Start Menu and type joy.cpl in the run box. This will pull up the Game Controllers control panel like so:

2012-07-03_140612

As you can see we’re using the cheaper MadCatz 360 controller for this project. Clicking on advanced simply allows you to switch between controllers, which in our case isn’t relevant. Clicking Properties  pulls up the controller properties for the 360 controller.

  2012-07-03_140952

Select the Test tab. Try out each button on the controller. If everything is working properly, something should happen when you press each button or move each control stick/directional pad. If you fail to get any input at all, go back to the beginning of this section and download the drivers. If you get input but it’s erratic (e.g. you push up on one of the joy sticks and the axis display goes down and left) you need to click on the Settings Tab and click the configuration button. The configuration wizard will walk you through identifying and correctly calibrating each button and joystick.

2012-07-03_142704

Once you’ve confirmed all the buttons are working and configured properly, it’s quite helpful to run the small AutoHotkey executable ShowOff we listed in the What You Need section. This tiny app will put a small white overlay window on your screen that simply reports every button press, whether it’s from a keyboard, mouse, gamepad, or other input device (as seen in the screenshot above). You don’t need to keep the application on for the controller to work properly with your games, but during the setup process it can be very useful to see what the specific button code for each button is while you’re configuring your emulators and games.

Configuring Emulators and Games That Allow Custom Button Selections

If you’re using a gaming emulator or stand alone game that allows you to customize game inputs to whatever buttons you desire, configuration is just a matter of opening up the appropriate section in the game menus and carefully mapping each button. To demonstrate how simple this is, we’re going to use the excellent game emulator BSNES.

Not only does BSNES emulate over 8 consoles including the NES, Super NES, and Game Boy, but it does an amazing job at it while providing highly customizable play—including custom controller configurations. You can follow along with any application that allows you to select custom inputs.

To configure BSNES we simply download it, extract the folder, and run the BSNES executable. Once launched, navigate to Settings –> Configuration, and click on Input in the sidebar. There you can select which game system BSNES supports that you wish to configure. We’re going to configure the Super NES controller. Let’s demonstrate by remapping the four main buttons on the SNES controller from the keyboard to the Xbox 360 controller’s four main buttons.

 2012-07-03_144653

You can see that, by default, all the mappings in BSNES are keyboard based (thus the KB0 variable and the corresponding key). All you need to do in order to remap the button shortcuts from the ZXAS keyboard configuration they are in to the buttons on the controller is to double-click each entry with the mouse and then press the button on the Xbox controller like so:

2012-07-03_145207

Simply repeat the process for all the buttons you wish to map to the Xbox controller. Once you’re done mapping, it’s time to take the controller for a test drive:

2012-07-03_150941

It’s A Link to the Past just like we remember it: control pad in hand instead of fingers sprawled and cramping on the keyboard. Success!

What about emulators and games where you can’t easily configure the inputs like you can with BSNES? To that end you’ll need to employ a third-party application; we show you how in the next section.

Configuring Emulators and Games With Limited Customization Options

Configuring an emulator or game when it readily accepts gamepad buttons presses as legitimate input (as we demonstrated BSNES does in the previous section of the guide) makes it easy to setup the controller as you can customize each button to your heart’s content. What if the game doesn’t accept custom inputs or, if it does, they’re limited to actual keystrokes and mouse clicks?

If you’re in that situation, you’re not out of luck. Thanks to the dedication of Jonathan Firth, the one-man coding operation behind popular Xbox configuration tool Xpadder, it’s possible to map the Xbox controller’s inputs to whatever keyboard and mouse inputs the game requires you to use. Not only does Xpadder work wonderfully with the Xbox controller, but it’s customizable to work with any gamepad or input device recognized by Windows. There’s a thriving community of gamers making unique profiles for Xpadder for every gaming device under the sun. Let’s take a look at installing and configuring Xpadder.

Xpadder is a portable application, once you purchase the app and download the executable, you just need to pick a folder for it and run through a very basic initial configuration. We parked the app in our Dropbox/Portable Apps/ folder. On first launch you’ll see some information about the app, click through until you reach:

2012-07-03_152350

Here you can opt to have the profiles and other information saved either in your My Documents folder or the location of the program. We like to keep our portable apps tidy so we opted to keep all the data with the Program location.

 2012-07-03_152431

Next, you can opt to associate the unique profiles of XPadder with the application. We opted to associate the file to save ourselves a little time in the future.

2012-07-03_152545

When you’re done setting up the very minimal installation configuration, you’re kicked into the main app interface. Right now it looks pretty bare as the app comes with no default controller configuration. Fortunately setting one up is easy and once you’ve mapped out your controller you can use the template to create profiles for all your games.

First you’ll need a base image of the controller to make mapping out the controls easier. You could make your own from scratch, but that’s a lot of effort when the work has already been done for you. It’s time to hit up the Xpadder controller database and pick out the configuration module for our controller. We really liked the clean exploded-buttons style image in the Xbox 360/Official Xbox 360/ category by Oke Doke and opted to use that as the base of our build.

To use the image simply right click and copy it in your browser, then click on the small controller icon in on the upper right side of the Xpadder interface to access the menu. From there, click on Settings to create your controller profile. From within the settings menu, click the Paste button to paste your controller image.

2012-07-03_154445

Once you’ve pasted the image in, you can begin clicking on the entries in the navigation sidebar like Sticks, DPads, and Buttons. Each entry will guide you through pressing the buttons on your controller. Each time you assign a button, you can drag it to the appropriate place on the visual map we just pasted into the interface (see the screenshot above to see what the layout looks like after all the buttons have been dragged into place). Click OK to return to the main interface.

Let’s take a moment to save out blank default configuration before we started editing it. Click on the controller icon again to pull up the menu and select Save As. We saved it with an appropriately clear title for future reference:

2012-07-03_154816

At this point we have a blank slate to assign each button on our gamepad a specific value. Let’s return for a moment to BSNES and pretend that the application absolutely did not allow us to configure buttons other than the default ones.

Using Xpadder we can easily circumvent any game with fixed-buttons by assigning those buttons as we see fit. The default in BSNES for the four primary controller buttons is the assignment of keyboard keys ZXAS for Super NES buttons BAYX. Assuming we couldn’t reconfigure those buttons, we can easily assign the keyboard values to the buttons by clicking on the specific button we want to assign in Xpadder. Doing so pulls up a virtual keyboard like so:

2012-07-03_155524

Using the virtual keyboard we can assign the ZXAS keyboard keys to the BAYX buttons on the Xbox controller like so: 2012-07-03_155750

Continue the process of assigning buttons until you’ve mapped all the necessary buttons for your game. Once you’re done, click on the floppy disk icon on the right hand side of the interface next to Untitled Profile to save your game profile. You can make as many profiles as you wish for your various games and emulators.

Here’s an example of Xpadder being used to control a melee character in the popular game Diablo III with a 360 controller (you can download the controller profile here):

While customizing your controller profiles gives you fine-tooth control over the results (thus you could keep your keyboard and mouse settings for a game completely intact while creating a controller profile over top those key bindings), you will save yourself a lot of time by visiting the Xpadder forums and grabbing one of the hundreds of game profiles other gamers have already crafted for you.


Whether by mapping the button inputs within the game or using Xpadder to help you map the buttons to any number of keyboard configurations, it’s possible to play virtually every game on your computer using a comfortable Xbox 360 controller.

Jason Fitzpatrick is a warranty-voiding DIYer who spends his days cracking opening cases and wrestling with code so you don't have to. If it can be modded, optimized, repurposed, or torn apart for fun he's interested (and probably already at the workbench taking it apart). You can follow him on if you'd like.

  • Published 07/3/12
More Articles You Might Like

Enter Your Email Here to Get Access for Free:

Go check your email!