Monday, July 23, 2012

Gravis Stinger Driver for Windows XP, Vista, 7

7 comments

Older things tend to get discarded and left unused. I found a gravis stinger gamepad on drawer which were belong to my little brother. It was a present from my father. Now it hasn't been used for many years. Things is, there is no proper driver for windows xp and 7.



Back on old days, gravis stinger costs as much as today's gamepad or joystick and perhaps more expensive. Today's there are plenty of game controller to choose from and cheaper. The old hardware was left unused.
I tried to make the driver myself. So I prepared everything, finding old serial header and plug the stinger. Windows detect the device, but there is no driver. Since this gamepad is using serial interface, it would be easy to make a user mode application that interact directly with the device without making a driver first. So, the first thing I should do is dumping the data sent from the device to my computer.

Hot plugging the serial interface

1. Dumping

This should be easy, the first thing is to do is get the device to communicate with the windows. The first thing to do is to plug the device with compatible windows. The driver was made for windows 9x, so I choose to setup windows ME into a virtual machine. While installing WinME, Windows Installer asked me for a serial key. Oh no! I can't remember them. Fortunately I still remember the key but only after 3 trial.

Wrong product key
WinME Gravis Stinger driver detect

Then, I installed the driver that I took directly from stinger website archive and finally I installed Eltima Serial Port Monitor and begin dumping by pressing all the gamepad button and moving around the thumbstick.


Dumping with Eltima Serial Port Monitor


2. Program a test driver

After finished the dumping, the data needs to be understand. After gaining understanding about the data, then, I started a new VB.Net project to program a simple driver based on the dumped data. It was successful.


A test driver, the checkbox represent the pressed button on gravis, while the radio button represent the thumbstick location.




3. Making the driver

Well, this is a hard part. Instead of making the kernel driver from scratch, I remember a project called PPJoy. It was unfortunate that this driver was abandoned by the author. So I search again and found vJoy. It's in active development state, in fact the author did respond to me after replying to the forum just about some hours after posting there.


So, I chose vJoy and make a feeder that will feed the vJoy driver with input from the stinger. The vJoy will send back the input to the game.


Gravis Stinger Windows XP,Vista,7,8 Driver


4. Download

Well, here the download link. I didn't bundle the vJoy with it as the driver is still unstable and causes BSOD while trying to standby. To install, follow this instruction carefully:
  1. Download vJoy (Upon developing the feeder, I uses v2.0.1 - BSOD on standby)
  2. Configure as follow (X, Y axis. 10 buttons using vJoyConf inside vJoy2.0.1Apps package)
  3. Restart your computer. (or disable and re-enable the driver)
  4. Download the Gravis Stinger Driver Feeder and start it. (I will repack the driver later with proper configuration)
  5. Choose the correct com port(where do you attach gravis stinger - default COM1) and press Start button.
  6. Calibrate by clicking Joy Panel > Properties > Settings

Here a screenshot me playing the super mario with Gravis Stinger on Windows 7.
Gravis Stinger Driver Feeder On Windows 7 Demo

7 comments :

  1. Wow! I kept my Stinger, slowly gathering dust for the past decade or so, in the vain hope that one day, someone would do the impossible and create a modern driver for it. And now you have! Thank you!!!

    ReplyDelete
  2. will it work on usb ?

    ReplyDelete
  3. USB to RS232 adapter work with this? I cannot seem to get it to work

    ReplyDelete
    Replies
    1. USB to RS232 should work fine, although some 'fake' adapter might work badly.

      Delete
  4. This comment has been removed by the author.

    ReplyDelete
  5. does your serial to usb adapter have to have an FTDI chip, i just got a cheap-o off eBay.

    also, does it work with the newer version of vJoy?

    ReplyDelete