Are you looking for latest information about purchasing? Click here
Hello to all visitors both newcomers and long time forum members. The time has come for a comprehensive guide to all things XIM related so that we can eliminate the unnecessary threads in the forums that continually ask the same questions. While there is an FAQ available, some members seem to have more trouble than others interpreting and understanding everything that goes into the XIM including how it functions. This purpose of this guide is to eliminate the majority of the common questions as well as aid in the initial set-up and configuration of your XIM device, which in itself can be a daunting task to someone new.
This guide is going to be broken up into the following sections: Introduction & History, XIM 1, XIM 2, Installation & Setup, FAQ, XIM & PS3, The Notion of Cheating
Introduction & History
http://obsiv.spaces.live.com/
The XIM project began as a small personal project for OBsIV who, like many other people, were massively disappointed in the performance of the XFPS (http://www.xcm.cc/xcm_xfps_360.htm). To this author's knowledge, this was the first device that enabled mouse and keyboard input on the Xbox 360. Unfortunately, however, the performance of the device was very underwhelming. The people behind this device, XCM, started selling new, "updated" versions of the device with little to no visible improvement in performance. Put simply, the XFPS was not and is not capable of providing customers with the gameplay that they expected from mouse and keyboard input. Something had to be done.
OBsIV recognized that while the native mouse and keyboard support in the XFPS lacked severely, that the inclusion of the PS2 to Xbox 360 converter in the XFPS performed quite well for all intensive purposes and it was this that made the XIM project possible. Initially this project was geared towards making a Wiimote work with the Xbox 360 as evidenced in his blog post from August 2007: http://obsiv.spaces.live.com/blog/cns!948789BF56FAF394!177.entry
The best part about XIM--that any input device connected to your PC could be used as a controller for the Xbox 360. An improved method of mouse and keyboard input was born!
XIM 1
From OBsIV's blog:
Why a project like this?
XIM is, by far, the most ambitious side project I have ever worked on. It took most of my spare time over many months to complete and there were a lot of failures along the way. People may wonder why I'd spend so much time on a project like this. I have no agenda behind it. The answer is simple: I enjoy it. I like working on hardware, software, and firmware. Given that I also like gaming, I felt this sort of project was a natural fit with my interests.
No matter what, I wasn't interested in creating vaporware. The end result had to work. I wanted something that I could play on daily that performed well.
Where to start?
The initial hurdle was to figure out where to start. We've seen devices come and go that let you use alternate input devices on the Xbox. Of course, there was the SmartJoy FRAG (SJF) for the Xbox, and now the XFPS 360 for the Xbox 360. Both these devices enable gaming using a mouse and keyboard with various levels of success. I own both of these devices and I can tell you that the SJF worked well on the Xbox (all my time with the device was spent on Halo 2). It was far from perfect, but, it was workable. As for the XFPS, that's a different story. It's performance is horrific (not to mention its hefty price tag). A lot of "SJF people" like me bought this device only to be very disappointed.
One redeeming trait of the XFPS is that it can also accept Playstation 2 controllers. It turns out that it does the translation to Xbox 360 very well. The XFPS also has another important feature: it circumvents the Xbox 360s security which prohibits 3rd parties from creating alternate input devices. Because of this, I decided to take my XFPS (which, at this point was collecting dust) and use it in my project.
His next hurdle was figuring out a way to translate signals from the PC into something that the PS2 module on the XFPS could use and relay to the Xbox 360. Fortunately for him, documentation of the PS2 controller protocol was fairly well documented and he was able to find the information he needed (http://www.gamesx.com/controldata/psxcont/psxcont.htm). Here's a bit more of the technical breakdown from his blog:
It turns out that the PS2 protocol is very similar to the standard Serial Peripheral Interface (SPI) (4-wire Master/Slave) that many microcontrollers support in hardware. It's not exact though. The PS2 protocol includes an controller-side acknowledgement (ACK) signal and it delivers bits in reverse relative to SPI. There was another issue too: the XFPS itself is emulating a PS2 console so, there may be slight differences in how it implements the protocol. Despite all these differences, I decided to go down the SPI route, and, I was glad it did.
OBsIV found Silicon Labs' Toolstick which offered a fairly cheap performance to dollar ratio and was sufficiently powerful enough to handle the tasks he was going to throw at it. In short, what the toolstick or XIM1 did, was establish an interface between the PC and PS2 port on the XFPS. On one end was the USB cable and on the other end he soldered the wires from a PS2 extension cord. The result was a cheap microprocessor and SPI inteface capable of receiving PC input and relaying these signals along the SPI interface to the PS2 port of the XFPS.
The PC's Role:
OBsIV has a great explanation for why the inclusion of the PC was so integral in making XIM 1 as functional as it is:The requirement of a PC could be considered pretty "heavy-weight". Even though an underpowered PC is good enough, we are still talking about gaming on a console after all. But, the PC in the overall XIM-equation is a vital piece of the puzzle for a few reasons:
1) The ability to interface with just about any input device
As I mentioned before, the system can interface with any input device that the PC supports. Given that the Wiimote is a standard Bluetooth HID (Human Interface Device), existing OS interfaces could be used access the device.
2) The ability to model complex input translation "profiles"
Input translation is how input from the Wiimote is ultimately converted to input to the Xbox 360. The more I worked on this project, the more I realized that a "one-size-fits-all" solution just isn't enough.
Games for the Xbox 360 are simply not designed for anything other than a dual-analog game pad configuration and it differs per-game. First Person Shooter games are especially difficult due to extensive "aim assist" features (in the form of look acceleration and auto-aim) to make aiming with your thumb possible. These assist features make simplistic translations result in a mediocre play experience (i.e. "jumpy reticule") when using a Wiimote or mouse.
Every combination of game and input device truly requires a different (potentially complex) translation method (i.e. "profile") for best experience. My first profile is Halo 2 played with the Wiimote.
3) Shareable input translation profiles
It wasn't easy building a good translation profile between the Wiimote and Halo 2 on the Xbox 360. Since I'm using a PC, I could share the profile with someone else by publishing it online.
As luck would have it his personal project exploded through the forums at the time and OBsIV released instructions on how to build one's own XIM as well as the necessary software in his blog post on September 28, 2007:
http://obsiv.spaces.live.com/blog/cns!948789BF56FAF394!282.entry
I highly recommend reading this for anyone who is interested in the project and how it works.
NEW INFORMATION ABOUT XIM1
There are now better, cheaper alternatives to the XFPS for use with XIM1. For more information search the forums and google for 'xconverter 360' and 'blazepro'.
XIM 2
As with just about any product, there are always room for improvements. XIM 1 was a prime example of how much better mouse and keyboard support could be over its predecessor the XFPS. However, in chosing to keep the XFPS as part of the equation, XIM 1 was inherently constrained by the XFPS's limitations. The XFPS equation included a small noticeable amount of input lag. NOTE: This input lag is remedied with a better adapter (blazepro or xconverter). The goal with XIM 2 was to eliminate the XFPS from the equation. This meant going straight into the controller hardware itself to avoid having to crack the console's security with input peripherals.
Unlike the XIM 1 project, there exists very little documentation as to the work behind the scenes in the creation of the XIM 2 chip. We do know that derektm, OBsIV, and OMGsus worked to determine which points in the controller were responsible for their corresponding button inputs as well as implementing DACs (Digital-to-Analog Converters) into the chip design so as to maintain full functionality of the analog sticks and their trigger counterparts. OBsIV also dramatically improved the software performance of XIM 2 with better translation logic.
This simple diagram breaks down the connection between your PC, XIM 2 and the Xbox 360:

Picture of the XIM 2 Revision B chip installed in a controller:This is a picture of the original XIM 2 prototype chip, also called Revision A:XIMFlex or XFlex
Many users come to the forum having heard about XIM 2 or read about XIM 2 and then see posts relating to XFlex. From a functionality standpoint these two things are IDENTICAL. However the PCB work is not the same. XFlex is a new solution to expedite and simplify the installation process so that more units can be built in less time. To the consumer there will be no difference as to whether you have an original XIM 2 chip or an XFlex installed in your controller. It's simply a logistical decision made on behalf of the XIM development team to implement this updated design. If anything, those of you who have a XIM 2 Revision B chip installed in your controller have a more exclusive and rare chip since only a few hundred were produced and sold. The majority of XIM 2s available on the market will contain the XFlex revision of the XIM 2 chip.
Xflex installed:
For those interested, the original installation guide for the XIM 2 chip can be found here:
http://xim360.com/xim2/XIM2InstallGuide.pdfInstallation & Setup
At the time of this writing XIM 2s will no longer be offered as DIY kit, therefore an installation guide for the chip is no longer necessary or relevant. I did include a link to the old guide for those of you who may feel a bit nostalgic or curious as to the prior installation process.
We do, however, still need to install the XIM software and drivers. This essential package can be found here:
http://xim360.com/downloads/XIM360install-r091108b.exe
Note: Some people are experiencing issues with XIM2 because they are connecting their USB cables through a hub. DO NOT USE A HUB DURING INSTALLATION. Connect both cables directly to your computer's USB ports (these are ports wired straight to your motherboard).
Installation is fairly straight forward. To make things easier I recommend plugging in the gray Xbox 360 controller cable into an available USB port. Windows will automatically locate and install the driver software. Once that's finished and the controller driver is successfully installed run the installation program and follow the instructions. When the time is appropriate, the installer will prompt you to connect BOTH cables to your PC (Xbox 360 and the XIM 2's USB cable) so plug them in and let it go to work. This is necessary in order to calibrate your chip and controller in order for the translation logic to function correctly. Failure to perform this step will have a significant effect on in-game performance with your XIM 2.
After software installation is complete you will need to create a configuration file for the game you want to play. A section of the forums is dedicated to helping people create configuration files that suit their playing styles:
http://xim360.com/community/index.php?board=28.0
nickstudy also created a great thread that explains the various elements of a configuration that are integral to good performance:
http://xim360.com/community/index.php?topic=1069.0
This tool, XIMTweak may also come in handy when creating your configuration (download on 3rd page):
http://xim360.com/community/index.php?topic=1445.0
Here's a brief rundown from OBsIV's blog about the various elements of a configuration file:DeadZone: All games have a threshold where stick movement isn’t registered until it reaches a certain point. This value makes it so that the smallest mouse change will result in on-screen movement. (More on this later.)
DeadZone Type: The shape of the dead zone (Circular or Square). (More on this later.)
YXRatio: The ratio between Y and X movement for games that don’t have independent adjustable X/Y sensitivity. For example, 2.0 means Y movement should be twice as much as the equivalent X movement.
TranslationExponent: When converting mouse movement to stick, this value allows you to do more than just a simple linear conversion. An exponential translation helps alleviate some of the acceleration that is there for controllers.
SensitivityPrimary: Movement sensitivity multiplier. This combined with the YXRatio provides any combination of X/Y sensitivity.
SensitivitySecondary: A second sensitivity value (typically higher than the primary). When activated, can be used for less-sensitive, non-aiming actions (such as driving vehicles).
SensitivityToggle: The button to use to activate the secondary sensitivity.
Smoothness: Smooths out sudden movement by moving to the next translation position over time. The more smoothness results in a less jerky, but “heavier” moving reticule.
OBsIV also explains the significance of the dead zone for those of you not familiar with it:
Dead zone is something that most gamers don't realize exists, but, is a very important part gaming when using a controller. A dead zone is the area of stick positioning that doesn't register as actual movement within the game. Without it, the reticule would constantly drift as thumbsticks generally never settle to a rest position (and where they do stop is typically different every time). Resting your thumb on the stick also constantly moves it slightly off center.
Where dead zone is necessary for thumbsticks, it is terrible for mice. Mice don't have the same rest-position problems as thumbsticks and the slightest movement is tracked by a mouse. At a minimum, a constant value needs to be added to any mouse movement that occurs to compensate for the dead zone. Otherwise, small movements wouldn't register and your movement will constantly "stall" if you aren't moving the mouse fast enough. Mouse and keyboard adapter devices like the SmartJoy FRAG (SJF) have this dead zone setting, whereas, the XFPS's mouse and keyboard feature does not. The XIM MK profile, of course, has this dead zone setting as well. But, it goes beyond this with allowing you to customize the shape of the dead zone too.
That pretty much covers XIM 2. One cable goes from the chip to your PC, the other from the controller to your Xbox 360. You can play on any screen that hooks up to your Xbox 360 no matter what size or resolution. The necessary components to make it work are the XIM 2 Chip installed within an Xbox 360 wired controller, an Xbox 360, a PC with the XIM software installed, some sort of monitor or TV, and your favorite PC gaming peripherals.
Why Wired?
One final note to the XIM 2 design...Many have asked as to why the chip must be installed in a WIRED controller as opposed to a WIRELESS controller. There are several reasons behind this decision and maybe more that I'm not aware of. The first is the concern with proper voltage and amperage being provided to the chip. As of now, the chip draws it's power from the Xbox 360 Controller's supply from the USB line. Whether the wireless controller could provide the steady and appropriate amount of power is something I cannot answer. In addition, wired controllers are cheaper to purchase and the PCB layout is different enough from the wireless design that the XFlex PCB would not work if installed into a wireless controller. Plus, would it really be that advantageous to have a wireless controller? You'd still have to plug it into your PC in order to facilitate communication between the XIM 2 chip and your computer.