Introducing Alt Controller...
Hi everyone!
Introducing Alt Controller... a free program I've developed for mapping computer inputs, such as pointer movements and button presses, to actions, such as key presses.
The video below shows how you can play a racing game that only supports keyboard input just by moving the mouse pointer around the screen.
Bill and I gave it a
quick test with the eye gaze system, and it worked with that too
:)
Here's how it works... I used Alt Controller to define some
invisible rectangles for steering left and right, and for
accelerating and braking:

Then I mapped the mouse pointer movements inside those rectangles
to key presses, so that you can control the car using the pointer
instead of the keys:
Finally, I saved the settings to a "profile" file that I can load
whenever I want to play the game!
If you'd like to find out more about Alt Controller, you
can
read the user guide here (Word format). If you'd like to
try Alt Controller, you can download it here:
Alt Controller v0.62.zip.
As this program is quite new, I'd be delighted to receive any feedback and answer any questions! Here's the video, hope you enjoy it :)
http://www.youtube.com/watch?v=zUpIXizxOw4


93 Comments
Thanks again for this!
@Shazmataz Cool, I'd definitely like to hear how u get on!
Would be good to keep a list of games it works with (or doesn't!)...
I just have a couple questions, 1. Can I toggle off the cursor dwelling so I have to hold down the mouse button while Im in the region squares to move? and 2. Does the program only work on games with cursors? because I tried playing GTA3 but it wasnt working.
@Riley: Could you make a screenshot of your sreen regions or just post your co-ordinates? I haven't found the best regions yet so I'd like to see what regions the other users chose.
Left Turn-
left: 2.00
top: 11.91
width: 40.00
Height: 83.00
Right Turn-
left: 58.00
top: 11.91
width: 40.00
height: 83.00
Accelerate-
left: 2.75
top: 12.91
width: 94.75
height: 47.00
Brake/Reverse-
left: 3.00
top: 60.91
width: 94.25
height: 33.67
Thanks for your great work !
Im' french, and I apologize for my english. I Have the v0.4 of alt controller.
I don't understand the parameters "X from" "events x" in "pointer to hold key" action. And i can't open the profile example made for the v0.3.
The "pointer to repeat key" are still more confused for me.
I can't reproduce what you did in the demo. can you explain me for the v0.4.
Thanks you in advance
Guillaume
Maybe someone willing to share a profile?
Thanks
What do you mean by that? Couldn't see any change.
Would it be possible to make the screen regions visible? At the beginning it would be easier to get used to the screen regions if you could see them.
And the options don't get lost anymore when saving with v0.41 :)
Please read the manual ;)
Anyway I have another issue now as despite setting up the actions in the windows they do not work in the game. More head scratching needed......
EDIT: i loaded up dragon age 2 and remaped movement to wasd keys and set up alt controler to do wasd also (move mouse to top part of screen= 'w' key)and it worked, then i switched movement back to arrow keys and alt controler to arrow keys too (move mouse to top part of screen= up arrow key) and it did nothing. every other key works except arrow keys its seems. i find that odd, any ideas
@AK also noticed that there are a few different versions of TrackMania. If the name of your TrackMania ".exe" file is not "TmForever", the profile will need a slight change. If you let me know the exe name, I can modify the profile for you - it probably lives in the folder C:Program FilesTmNationsForever (ignore the one with Launch in the name). Alternatively, you can try to follow the video I posted a few days ago - whichever is easiest 4 U. This seems to be happening quite a lot, so soon I will include a menu option to do this automatically.
Unfortunately, screen keyboards generally seem to send the keystrokes directly to the game, so Alt Controller can't pick them up. I think maybe I put a note in the Getting started guide about this. It does work with Dragon voice software commands though (i.e. you can say "press A"), so maybe that's an option 4 U? One idea I have in mind for the next major version of Alt Controller is to include a simple screen keyboard that doesn't have this problem.
Your point about cursor keys is curious. DirectX games number a few keys slightly differently to other applications (really, I'm not joking!). Before I realised this, almost no games would receive Alt Controller's arrow key presses. I'm wondering if this is an exception to the rule. I'm currently investigating a similar "key not being released" problem for @Alex, and I'll be releasing a software update later this week (hopefully Weds) with a new diagnostic window to display and record what Alt Controller is and isn't doing. Hopefully this will solve the problem.
Thanks for your patience while I investigate these things...and top skills for getting it to work with wasd keys :}
S. S.
@Riley Great stuff, you're welcome! Controllers are soooo, like, yesterday... :P
Regarding your question about wanting the mouse pointer to be displayed, I think it would be possible either to force this programmatically, or provided that the pointer position can be captured, draw a fake pointer on top. I have no idea whether anyone has tried this already - perhaps @Graeme might know better about overlaying stuff on top of game windows?
If you want to overlay things, you need to make sure your program window stays on top of the game window and then apply a transparency effect to your program window. Probably doesn't help much but that's how it's done using MMF2. The transparency thing seems to be something of a secret with MMF2 since the program developers said that making the application background completely transparent wasn't possible . . .
1. Create a small screen region somewhere and create a "Pointer to Hold Key" action for it (without Auto release option). Then when you mouse-over that region, the key will be held. You could create another region with a Pointer to Release Key action.
2. Map mouse button presses (or releases) to Hold Key / Release key actions.
3. Map an XBox 360 button or trigger to Hold Key / Release key actions.
- A "Log information" window for showing what A C is doing. Might help with creating profiles or investigating problems.
- Some improvements to the key press management, which may have fixed the "sticking keys" issue.
- A new TrackMania profile for the WASD key configuration - try this if the left-right-up-down one doesn't work for you.
Feedback welcome as always. Best wishes, Still Shakey
One thing before I do it: do you want the F6 key to be held down indefinitely if your mouse is in the middle of the screen, or do you want it to be pressed only once when your mouse "enters" the middle of the screen, then pressed again when it "re-enters" (this would mean you'd need to move the mouse in an out of the little area)?
I think you might need to wait for your Potion-profile, Mr Blaze; at least from me. :P
@Alex Thanks for offering to help! If A C isn't working properly 4 U, I'm happy to have a go at creating this profile for drblazed.
I'll try to fix the the screen regions problem tomorrow. As regards the key sticking down, would you mind trying TrackMania with v0.42? The thing to do would be:
- open the "Log information" window under the Help menu
- select the Detailed" option and then click Start.
- A C will start logging information about key presses etc.
- Play TrackMania for a short time until the key sticking problem happens.
- Click Stop in the Log information window
- Click Save to save the information to a text file.
- Send me the file somehow (perhaps via bill?)
There you go :)
Here's the new version: Alt Controller v0.43.zip. Better luck this time... It would be cool if it works so that you can have a go at creating the profile for drblazed :-D
@Blaze: I'll do your one either today or tomorrow :)
@Drblazed: Here's the profile I made. I've made the box in the middle of the screen quite small, so apologies if it's not the size you wanted. You can easily change it by going into Edit/Screen Regions and just dragging the box to where ever you want.
- You turn it on by pressing Z. You turn it off by pressing X.
- It will hold down the F6 key whenever your mouse is in the middle of the screen. It will release when your mouse is moved outside the region.
http://www.sendspace.com/file/9t69nv
But you can't accelerate/break with mouse movements so I tried AC for that purpose.
Problem is it won't recognize keystrokes sent by AC.
Any idea how to work around?
@Drblazed: I think the app and page should be set to your game in that case… but, you need to do that yourself. I can't do it since I'm not playing the game :P
I'm not entirely sure how to do that since it's in a browser. Sorry :( You'll need to ask Mr Shakey.
Hi @HeadbanGER, sounds like this would be a nice game to get working. I think you've done the right thing. I'll try the game myself at the weekend.
Some things you could try are:
- Use the Help - Log information window in A C (see instructions I posted 4 Alex a few days ago). This will help to confirm that Alt Controller is doing the mode changes, key presses and key releases.
- See if you can find out whether the game uses DirectX or OpenGL for its graphics.
- Try different keys. The following keys are slightly different with DirectX games so it's sometimes worth trying different ones: arrow keys, home, end, page up, page down, insert, delete, app, right ctrl, right alt.
In other news, Alt Controller works nicely with Dirt 3... profile coming soon... :)
I have included Alex's profile for Conquer in the Profiles folder, and I added some profile notes and a screenshot to it.
Let me know if you have any further issues... Cheerio, Shakey
The game doesn't seem to like frequent key presses - you have to hold down "Up", or press "Q" to get it to shift into gear b4 you can accelerate. I found it very confusing actually. Even my mouse clicks didn't seem to work in the menu screens half the time - I could barely exit the game!
But in case you want to try the profile, here it is: Race 07 LRUD F11 Driving F12 Default.alt.xml. Cheerio, S. S.
It'd be another improvement if AC could read the mouse position and draw its own cursor. (Drawing the screen regions would be a highly appreciated feature as well).
Had a look. No idea why you need to constantly move the mouse in and out. It should be held down as long as it's in the little region in the middle.
http://www.sendspace.com/file/4me3uy
Should sort it out. I think. :P
But don't worry, we can do things a different way - I've updated the Latest Profiles.zip - please can you try the Conquer profile in there? I'm pretty sure it will work now... :)
Incidentally, this zip file also includes some new profiles for the rally game Dirt3, and a "Universal" driving profile which is set up so that it should work with lots of different driving games... maybe! :D
@HeadbanGER Feature requests noted! I'll hopefully have some time to do some new features in late July / August. I'm thinking some but not all of: mouse click actions, move mouse pointer actions, relative mouse movement inputs, basic onscreen keyboard that A C can use as input, drawing cursor, drawing screen regions, more intuitive action editing. Maybe relative mouse movement inputs could be a solution for games which don't show the cursor??
Ciao 4 now, Shakey
It includes these new features:
- actions to click / double-click / hold down / release mouse buttons
- an action for typing a text string, including special characters (e.g. accented letters or symbols)
- ability to do stuff when the pointer "dwells" (i.e. hovers) within a small region
- ability to customise the size of the pointer dwell box and the dwell time (via Tools - Options menu item)
...and one or two other things.
Hope the new features are useful! Best wishes, Still Shakey
Don't wanna bug you but are you still planning to implement drawing cursor and/or drawing screen regions?
Alt Controller v0.51.zip
Ciao! Still Shakey
I'll write a review soon, but just quickly, the main new features are:
- Ability to draw screen regions on top of game windows
- Ability to design custom windows with mappable buttons, "stay on top" and translucency
- Three new profiles to demonstrate custom windows
- A very sexy Help - About box...
Full details in the User guide (PDF) and the readme file. Looking forward to experimenting with some games...
Cheers, Still Shakey
Default: Keyboard - G Pressed | Select mode 'Driving'
Driving: Mouse Button - Left Pressed | Select page 'Mouse Down'
Mouse Button - Right Pressed | Hold down Key 'C'
Mouse Button - Right Released | Release Key 'C'
Keyboard - G Pressed | Select mode 'Default'
---Page 'Mouse Down' --- | ---Page 'Mouse Down'---
Pointer - Updated | Region 'Left' -> repeat 'Left'
| Region 'Right' -> repeat 'Right'
| Region 'Accelerate' -> repeat 'X'
| Region 'Brake' -> repeat 'S'
Mouse Button - Left Released | Select page 'Default'
Mouse Button - Right Released | Release key 'C'
Mouse Button - Right Pressed | Hold down key 'C'
Alternatively, you can include "Release key" actions for the specific keys that are being held before you change mode. A final option is to move the mouse out of the boxes when you release the left button.
Don't worry about the series / parallel stuff. Leave everything as Series, though it doesn't make a difference in this case.
I guess I could have developed it so it automatically releases the keys when actions are de-activated, but I didn't - was kind of thinking sometimes it's useful to keep keys held when you change mode, so...
If none of these things work, let me know and I can make a change to Alt Controller.
I like the sound of double potioning, the possibilities are endless! I've added a new profile to do this in the Latest Profiles.zip - it's called 'Conquer Online - F6 and F7 - Z Active X Default'. As before, use Z/X to turn the controls on/off, then it'll press F6 and F7 when the mouse is in the middle of the screen.
If you want to try yourself, the way I did this was:
- go to Edit -> Choose actions
- select Mode=Active, select Mouse input - Pointer, Reason=Updated
- add a "Pointer to Repeat Key" action like before, except for F7
- select "Perform in Parallel" so that both happen at the same time
- click OK and save the profile
Happy potioning! Still Shakey
First, make sure you have the latest version of Alt Controller (Version 0.61). You can tell which version you have by going to "Help - About Alt Controller"
Second, use the Help - Log information window like this:
- Load the profile "Conquer Online - F6 and F7 - Z Active X Default"
- In Alt Controller, open the "Help - Log information" window
- Select "Detailed" then click "Start"
- Switch to your game window and try to cast the potions using the mouse
- Switch back to the Log Information window and check whether you see messages for both F6 and F7 in the list
- Click Stop or just close the Log Information window when you're finished.
Let me know if you're still having problems :-}
I've created another profile that you might like to try, for doing potions with F6 and F7 at the same time. It has a little window called "Potions" with 3 buttons (Start F6, Start F7, Stop) which you can hover over to do your potions. You open it from the "Window" menu in Alt Controller.
I had to fix a little bug in the program to get this to work, so you need to download Alt Controller v0.62 if you want to try it. Sorry about that! The new profile is imaginatively called "Conquer Online - Potions window", in the Profiles folder as usual.
Regarding Graeme's point, a good suggestion, Alt Controller does let you specify delays using the "Wait" action, but combining that with mouse movements in a region of the screen is alas beyond its capabilities and not an easy change.
Cheers, S. S.
Click here to sign up now.