I grew up playing Gauntlet on old-school arcade machines. They came out with other console versions later, but using the joystick and buttons was always my favourite. When Diablo 3 was announced as coming out, the idea to make an arcade cabinet and controls for it just made sense.
I got the controls components about a month before the game was released and tried them out with a game called Torchlight. The controls for that game didn’t work at all with the setup I had. This was discouraging, but I just waited until Diablo 3 was finally released so I could test it on that.
The cabinet was built out of plywood because it’s cheap. I had the decals printed up and when they were put on, they took the shape of the wood grain so it looked as though they were painted on. I didn’t design any of the images on this. I got the flames from cgtextures.com and the other two were from Blizzard. They own the rights to these, not me.
The joystick and buttons are from sparkfun.com, which is a great website for those who like electronic tinkering/building. They are wired into an arduino, and from there, to a desktop computer within the cabinet. I wrote an intermediate program in VB.NET to interface the controls with the game. There is NO modification to any game files as everything works outside the game. Most of the buttons are dual-purpose. Clicking on a button might equate to a left-click in game, or skill number 1 if clicked in conjunction with another button. The joystick is the same. Moving the joystick moves the mouse around the screen so you can target individual monsters/objects. Holding the button on the top of the joystick moves the character around without changing the position you were targeting. This allows you to “run and gun” as you’re always aiming in the same direction, but can run in a different direction.
Of course a next step (some may say backwards) is getting the controls working for MAME. Shouldn’t be too hard, timing is the only holdup.







Excellent build. I think if I were doing the same, my only modification to the control layout is that I would have put a trackball where the right thumb button is. If you could then map both the stick and the trackball to both operate the mouse, it would make navigating menus a bit easier. That, and maybe a slide-out keyboard tray.
I’d love to see how you wired up the controls. Where did you source the arcade parts from?
The arcade parts came from sparkfun.com. A great website that has anything and everything for those who like evectronics projects. I highly recommend it!
I was definitely thinking about the slide-out tray for a keyboard, just haven’t gotten around to it. Maybe once I get that roller ball in there
hello, how did you manage to keep the pointer/cursor stationary while able to move the character in a given direction? there is no way to map movments to inputs from within the game.
“point and click to the location you wish to move to” is the the only method, so i would assume you are very briefly moving the cursor to the respective direction near the character and clicking, then returning the mouse to the position before the click.
if the mouseclick (intended for movement) was on top of an enemy, you would not move, but instead engage the enemy.
please fill me in on the details, as ive been longing to set up some type of “WASD” key movement for this game.
You got it right. Let’s say you wanted to move left. The current mouse position is recorded, the mouse is moved a few pixels left of your character, mouse is clicked to move, then the mouse is returned to its previous location. It happens so fast that you don’t even notice the mouse moving. If you look under the character when it moves, you can see a lot of very rapid clicks (yellow circles).
If there is a character immediately left of you, you will attack them. That makes it super easy to play melee, but can be a pain if you are ranged. In that case, you can actually move the mouse somewhere and click with the buttons like normal with a mouse
Maybe you already knew this, but there is also an alternate movement option in D3 that does not require mouse clicks: you can bind a separate key to “Move” that, when hold, make your character follow the mouse pointer. I use it quite a lot when I want to reach an Health Globe or move out of danger in a very crowded situations, without accidentally attacking a target.
I guess that with your KB emulation software it would be very easy to emulate an “always down” state when needed…
Nice job, BTW
hope you can update more and better stories.http://www.divulgaemail.com
awesome post thanks!http://www.maladiretasegmentada.com.br
i just found this blog and have high hopes for it to continue. keep up the great work, its hard to find good ones. i have added to my favourites. thank you.http://www.boliche.com.br/email.htm