We’re going to go out on a limb here and say that the controller for Steel Battalion on the original Xbox is the most impressive video game peripheral ever made. Designed to make players feel like they were really in the cockpit of a “Vertical Tank”, the controller features dual control sticks, three pedals, a gear selector, and dozens of buttons, switches, and knobs. Unfortunately, outside of playing Steel Battalion and its sequel, there’s not a whole lot you can do with the monstrous control deck.
But now, nearly 20 years after the game released, [Oscar Sebio Cajaraville] has not only developed an open source driver that will allow you to use the infamous mech controller on a modern Windows machine, but he’s part of the team developing a new game that can actually be played with it. Though gamers who are imagining piloting a futuristic combat robot in glorious 4K might be somewhat disappointed to find that this time around, the Steel Battalion controller is being used to operate a piece of construction equipment.
In his blog post, [Oscar] focuses on what it took to develop a modern Windows driver for a decades old controller. It helps that the original Xbox used what was essentially just a rewiring of USB 1.0 for its controllers, so connecting it up didn’t require any special hardware. Unfortunately, while the controller used USB to communicate with the console, it was not USB-HID compliant.
As it turns out, Microsoft actually provides an open source example driver that’s specifically designed to adapt non-HID USB devices into a proper game controller the system will recognize. This gave [Oscar] a perfect starting point, but he still needed to explore the controller’s endpoints and decode the data it was sending over the wire. This involved creating a HID Report Descriptor for the controller, a neat trick to file away mentally if you’ve ever got to talk to an oddball USB device.
In the end, [Oscar] created a driver that allows players to use the Steel Battalion controller in his game, BH Trials. Unfortunately there’s something of a catch, as drivers need to be signed by a trusted certification authority before Windows 10 will install them. As he can’t quite justify the expense of this step, he’s written a second post that details what’s required to turn driver signing off so you can get the device working.
Earlier this year we saw an incredible simulator built around the Steel Battalion controller, were an external “coach” could watch you play and give you tips on surviving the virtual battlefield. But even that project still used the original game; hopefully an open source driver that will get this peripheral working on Microsoft’s latest OS will help spur the development of even more impressive hacks.
Those HID descriptors are really cool. If you have a decent usb stack on a device it’s super easy to set it up as a usb device without too much code or faff.
It is really perfect. How many players ready to play this.
Coming soon to a Caterpillar dealer near you!
The Bulldozer Simulator!
B^)
The preferred method for working with driver test code is to create your own self signed certificate installed on your system and then sign the driver package with that. Much safer than completely disabling driver signing checks entirely. And a code signing certificate can be had for around $100, so it shouldn’t be too difficult to pool resources from interested parties to properly sign the driver.
That said, very cool work. If I had one of those laying around, this driver would probably make it a pretty awesome controller for the Mechwarrior games as well.
Hey Rhys79,
I’m the developer of the driver. I’ve tried what you are suggesting, but I think is not working with the latest versions of Windows anymore. On my tests, the self certification only removed the warning during the installation process but it won’t load the driver until the system starts in test signing mode.
What I can gather from the documentation is that, since the version 1607, Microsoft requires drivers to be certicificated by the Hardware Dev Center. And a EV Code Signing certificate is needed, that costs around $400/year. I’m not sure what the certification process involves.
It is something that can be considered if there is people interested.
Hello Oscar,
Many thanks for sharing this great project!
Well if we could get the word out and do a go fund me I would be down to put 100 bucks towards it. But I would need instructions on how to make it all work. Im not skilled in anyway in how this all works but would be willing to help fund it.
$100 is 1/6th of my wage as a senior embedded system developer in Poland. It might be easy for you but people in Eastern Europe really can’t afford to waste money on something you can get for free with some tinkering.
I was about to comment the same. See https://docs.microsoft.com/en-us/windows-hardware/drivers/install/how-to-test-sign-a-driver-package for official documentation on how to do so, and http://woshub.com/how-to-sign-an-unsigned-driver-for-windows-7-x64/ for a more step-by-step set of instructions.
I’m affraid that doesn’t work anymore with the latest versions of Window 10 :(
Im using mine on xlink kai and would love to have more things to do with this controller. Let me know what I can do to help. Perhaps a go fund me could be started then hit the forums on this controller for support also on xlink. There was 2 people just last night playing steel battalion. So therenis still interest in it. I personally just bought mine last week for 50 bucks lol and would love to see more done with this amazing controller
Since you decoded the data packet, does that mean you could adapt a homemade controller to work with Steel Battalion? How would someone do that? You mentioned that the controller is USB. Is it really as simple as sending that data packet from say, an Arduino Micro?
A little late, but I didn’t start working on it for a while. Since your reply I have made an adapter for the Steel Battalion Controller. Not quite as simple using an Arduino Micro as you need an arduino that can act as USB Host and USB device. I made use of a Teensy 3.6 to emulate an xbox controller.
Here is my page also on hackaday.
https://hackaday.io/project/182810-steel-battalion-controller-teensy-adapter