Difference between revisions of "Keymapper"
Kevinlives (talk | contribs) |
Kevinlives (talk | contribs) |
||
Line 234: | Line 234: | ||
<i>p# = 3. controller C</i><br /> | <i>p# = 3. controller C</i><br /> | ||
<br /> | <br /> | ||
− | <div style="height: | + | <div style="height:20em; overflow:auto; background:AliceBlue;"> |
<u>JoyIDs_Preferred_Controllers = ps3|x360|logitech</u><br /> | <u>JoyIDs_Preferred_Controllers = ps3|x360|logitech</u><br /> | ||
(# of Controllers) : ps3 = 1, x360 = 1, logitech = 1<br /> | (# of Controllers) : ps3 = 1, x360 = 1, logitech = 1<br /> | ||
Line 293: | Line 293: | ||
4. logitech<br /> | 4. logitech<br /> | ||
</div> | </div> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <span id="desc"><span style="color: orange;font-size: 160%;">'''<u>Custom Names</u>'''</span><br /> | ||
+ | <br /> | ||
+ | Custom Names are useful for grouping your controllers or giving them a shorter name. The limitation to this feature is that you can have only one custom joystick name assigned to a default windows joystick name. Also if you use both the default name and custom name in naming your profiles or for your Preferred Controllers list the default name will always be used since it is inherently more specific. Some examples of it being used are to reduce long controller names to something simple like "Controller (Xbox 360 Wireless Receiver for Windows)" to just "x360." or for grouping your controllers like "Controller (Xbox 360 Wireless Receiver for Windows)" to "xbox 360 controller" and "Controller (Afterglow Gamepad for Xbox 360)" to "xbox 360 controller." You will need to enable this feature first by setting the" Custom_Joy_Names_Enabled = true" and defining your custom joystick names list in the "Custom_Joy_Names" key.<br /> | ||
+ | <br /> | ||
+ | <i>Custom_Joy_Names_Enabled = true</i><br /> | ||
+ | <i>Custom_Joy_Names = <span style="color: blue;">Controller (Xbox 360 Wireless Receiver for Windows)</span>|<span style="color: green;">xbox 360 controller</span>\<span style="color: blue;">Controller (Afterglow Gamepad for Xbox 360)</span>|<span style="color: green;">xbox 360 controller</span>\<span style="color: blue;">Default Windows Name</span>|<span style="color: green;">Custom Name</span></i><br /> | ||
+ | <br /> | ||
+ | <br /> |
Revision as of 16:16, 8 April 2015
ONLY Xpadder (2012 versions) and JoyToKey (v5+) and Autohotkey scripts are supported options for keymapper functionality. Will not work with JoyToKey v3 or below.
Even though Keymapper supports 16 controllers, this only for Direct Input and not XInput since XInput is limited to 4 controllers. (Xinput is typically used in software that natively supports the 360 controller.)
Contents
3 Preferred Controller |
Keymappers
Xpadder
Xpadder costs $10 and can be downloaded from xpadder.com. This is the recommended keymapper of choice. To set it up, run it once you have downloaded it. Make note of where you have installed it to since you will need to know that when you use it with HyperLaunch. Once you have installed it, you will need to make a layout for your controller.
Images to replace the pink background can be found at xpadder.com/gcdb. An image of your controller will be useful for making your profiles. To grab an image from the xpadder database right click on the image you want and choose copy image. You can then use the paste button in xpadder. Now you will need to add your analog sticks, dpad, buttons and triggers using the on screen instructions Once you've finished adding all the controls for your controller you will need to save your layout. I suggest saving it as the same name as your controller (the default name).
You will now need to create a profile. Profiles are what HyperLaunch uses to tell xpadder how to map your controller. You can start by making a profile by clicking on the text page button first and then choosing New.
The next step is to map your buttons to a keyboard key. This is simple and easy to do. You will need to click on one of the white boxes that represent your buttons on your controller. This will open a virtual keyboard. Choose your key. When you are finished mapping your buttons you can now save your profile. To use with HyperLaunch you will need to name it and place it in the correct folder path as described in the profiles section below.
AutoHotKey
AutoHotKey is the only free keymapper that is supported by HyperLaunch. The downside to using ahk as your keymapper is that HyperLaunch only has basic support for it and it does not support Front End or HyperLaunch Menu profiles or any other kind of in game remapping done by HyperPause. There is no download required to use it, but if you wish to test your key maps without starting HyperLaunch you can download autohotkey from autohotkey.com. To create an ahk profile, you will first need to create an ahk file. You can do this by creating a new Text Document and renaming the file extension from .txt to .ahk. Now open your new ahk file with your favorite text editor and start adding your remaps. You can find more info about how to remap via ahk here. A list of support ahk keys can be found here. Information on how to remap keys and buttons can be found here and more information on how to remap joysticks and controllers can be found here. Save the ahk file with the remaps as one of the profile names specified in the profile section below. As an example, let's say you want to remap a to b and c to d using ahk for the rom "Mario" for Mame. You would create a "Mario.ahk" in "Keymapper Profiles\Mame\" and in it you would find the following remaps:
Code:
a::b c::d
JoyToKey
JoyToKey is shareware and a license for a fully functioning version will cost $7, but a functioning trial version with few limitations can be downloaded for free. JoyToKey enables you to control many softwares (e.g. web games, browsers, office applications or even Windows itself) by using your favorite windows joystick. Whenever you press joystick buttons and sticks, JoyToKey will emulate keyboard strokes or mouse inputs based on joystick input so that the target application works as if you used a real keyboard or mouse. You can create multiple configuration files to switch across different key/mouse assignments. It also supports the automatic association with target applications so that the config file will switch automatically when the target application changes. You can download the latest version of JoyToKey from their website www-en.jtksoft.net. JoyToKey is different from the other keymappers in the sense that the others require you to have a profile per player, but JoyToKey only requires you to have one cfg profile for all the players. In other words the multiplayer tag won't work on your profiles since the tags are inherent in joytokey's profiles. The way to differentiate between player 1 and player 2 is inside the joytokey menu and at the top you will see the tabs Joystick 1 and Joystick 2. Joystick 1 = Player 1 and Joystick 2 = Player 2. JoyToKey supports up to 16 of these tabs. Be sure to change your settings so that you Start JoyToKey in a minimized mode and Hide icon from taskbar when minimized. A how to guide for basic usage and advance usage of joytokey is provided on their website www-en.jtksoft.net.
Profiles
Profile Types
Game Specific
The Game Specific profile also known as the rom profile is the first profile HyperLaunch looks for when loading your keymapper profiles. A game specific profile is useful if you need different controls per game. Below are examples of how to make a game specific profile for the different keymappers for the game "Super Mario Bros. + Duck Hunt (USA)" for the system "Nintendo Entertainment System".
Xpadder
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\%romName%\p1.xpadderprofile
- HyperLaunch\Profiles\%keymapper%\%systemName%\%romName%\%controllerName%\p1.xpadderprofile
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\%romName%\%romName%.cfg
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\%romName%.ahk
Emulator
The Emulator profile is the same name you give to your emulator when setting it up through HyperLaunch HQ. This is the same name you gave when you were asked to give a name and a path to your emulator. This profile is the second in the list of what HyperLaunch looks for when loading profiles for your game. This profile is useful if you use two different types of emulators for the same system and would like a profile according to those emulators inside that system (ex. Nestopia and Jnes). If you want a emulator specific profile for the emulator "Nestopia" and your system name is "Nintendo Entertainment System" it would be:
Xpadder
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\%emulator%\p1.xpadderprofile
- HyperLaunch\Profiles\%keymapper%\%systemName%\%emulator%\%controllerName%\p1.xpadderprofile
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\%emulator%\%emulator%.cfg
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\%emulator%.ahk
System
The System profile is named after your system and is the third in the list of the profile types that HyperLaunch looks for when starting your game. The profile will only be loaded if you are using that system. If you want to make a system specific profile for "Nintendo Entertainment System" it would be:
Xpadder
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\_Default\p1.xpadderprofile
- HyperLaunch\Profiles\%keymapper%\%systemName%\_Default\%controllerName%\p1.xpadderprofile
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%\%systemName%.cfg
- Code:
- HyperLaunch\Profiles\%keymapper%\%systemName%.ahk
Default
The Default profile is the fourth on the list of profiles HyperLaunch looks for when starting your game. This is the only profile that is used for all systems when loading. Please note that it is not used when exiting your game or loading a HyperLaunch menu, but it will always be used if a game, emulator or system profile could not be found when starting your game. Below is how to name and where to put a default profile for the different keymappers.
Xpadder
- Code:
- HyperLaunch\Profiles\%keymapper%\_Default\p1.xpadderprofile
- HyperLaunch\Profiles\%keymapper%\_Default\%controllerName%\p1.xpadderprofile
- Code:
- HyperLaunch\Profiles\%keymapper%\_Default\_Default.cfg
- Code:
- HyperLaunch\Profiles\%keymapper%\_Default.ahk
Front End
The Front End profile is only used when you exit your game and return to your front end. The name for your Front End Profile is set by the key "Keymapper_FrontEnd_Profile_Name." If you want to use this profile you will need to create it like you would a system profile. If you have HyperLaunch v3.0.1.1 or later you will need to set the value for the key Keymapper_FrontEnd_Profile to match your keymapper of choice; valid options are xpadder, joytokey, ahk, and false (default value that turns front end profile loading off). The default front end name is HyperSpin and this name will be used in the below examples. After HyperLaunch v3.0.1.0 this profile is now supported for AHK, but you must set Keymapper_AHK_Enabled to equal external.
Xpadder
- Code:
- HyperLaunch\Profiles\%keymapper%\%FrontEndName%\p1.xpadderprofile
- HyperLaunch\Profiles\%keymapper%\%FrontEndName%\%controllerName%\p1.xpadderprofile
- Code:
- HyperLaunch\Profiles\%keymapper%\%FrontEndName%\%FrontEndName%.cfg
- Code:
- HyperLaunch\Profiles\%keymapper%\%FrontEndName%.ahk
*Keymapper_AHK_Enabled = external
HyperLaunch Menu
The HyperLaunch profile is used for the HyperLaunch menus that use the navigation keys. Features that currently support this profile are MultiGame and HyperPause. This profile is useful if you want to use joysticks for these features since HyperLaunch does not recognize pov hats or axis controls on a joystick for navigation through the menus. You can disable and enable this profile with the "Keymapper_HyperLaunch_Profile_Enabled" key by setting it to true or false. If it is true, HyperLaunch will load your menu profiles when entering a menu and restore your game profiles when exiting a menu. If it is false, HyperLaunch will not change your keymappings and they will stay the same as they were before you open a HyperLaunch menu. So if you want to use this profile you will need to create a profile like you would for a system, except this system is always named HyperLaunch. After HyperLaunch v3.0.1.0 this profile is now supported for AHK, but you must set Keymapper_AHK_Enabled to equal external.
Xpadder
- Code:
- HyperLaunch\Profiles\%keymapper%\HyperLaunch\p1.xpadderprofile
- HyperLaunch\Profiles\%keymapper%\HyperLaunch\%controllerName%\p1.xpadderprofile
- Code:
- HyperLaunch\Profiles\%keymapper%\HyperLaunch\HyperLaunch.cfg
- Code:
- HyperLaunch\Profiles\%keymapper%\HyperLaunch.ahk
*Keymapper_AHK_Enabled = external
Blank
The blank profile is supposed to be an empty profile. It has no remappings in it at all. This is meant as a place filler for controllers that have no remaps made. Example, if you have two different types of controllers connected, and the controller you don't want to use occupies the 2nd player number (id 2) in HyperPause, but in Xpadder it might occupy the first tab. The controller that is first player (id 1) in HyperPause might occupy the second tab in xpadder. Due to the way xpadder handles the profiles passed to it in the command line, this blank profile is needed as a filler for the unwanted controllers that show up in the tabs before the preferred controller. Xpadder loads profiles through the command line in the order of the tabs displayed, not the order used by HyperPause (Direct Input order), or the order the controllers were connected in.
There should only be one blank profile for Xpadder. This profile is always loaded last if no other profile is found, anytime HyperLaunch is loading your profiles that you use for playing your games, returning you to your front end, or opening a HyperLaunch menu. To make one, you need to name it "blank" and place it in the same directory as the default profile. This profile is only supported and required by xpadder.
Xpadder
- Code:
- HyperLaunch\Profiles\%keymapper%\_Default\blank.xpadderprofile
Preferred Conrollers
This is a list defining which controllers you would like to use. This list tells HyperLaunch to always order your connected controllers in the same order as defined by this list. Custom names are allowed in this list. If you have more than one instance of a name on the list, the order of the first name found in the list is used. If you have more than one controller with the same default or custom name, the order in which they were connected will be used. This is useful if you want want a certain type of controller to have priority over another when playing a certain game or system. This list can be specified globally in the Global HyperLaunch.ini file, on a system level in the SystemName\HyperLaunch.ini file and on a per game basis in the SystemName\Games JoyIDs.ini file. The global and system keys are named "JoyIDs_Preferred_Controllers" and are under the section "Keymapper." The "JoyIDs_Preferred_Controllers" key in "Games JoyIDs.ini" is under a section named after your game. Here are some examples of how this list works. In the example I will be using controllers with three different names: x360, ps3 and logitech. Custom Names are enabled and "Custom_Joy_Names = x360|favorites/logitech|favorites."
JoyIDs_Preferred_Controllers = controller A|controller B|controller C
(# of Controllers) : controller A = 1, controller B = 1, controller C = 1
p# = 1. controller A
p# = 2. controller B
p# = 3. controller C
JoyIDs_Preferred_Controllers = ps3|x360|logitech
(# of Controllers) : ps3 = 1, x360 = 1, logitech = 1
1. ps3
2. x360
3. logitech
JoyIDs_Preferred_Controllers = ps3|x360|logitech
(# of Controllers) : ps3 = 2, x360 = 1, logitech = 1
1. ps3
2. ps3
3. x360
4. logitech
JoyIDs_Preferred_Controllers = ps3|x360|logitech
(# of Controllers) : ps3 = 1, x360 = 2, logitech = 1
1. ps3
2. x360
3. x360
4. logitech
JoyIDs_Preferred_Controllers = logitech|ps3|x360
(# of Controllers) : ps3 = 1, x360 = 2, logitech = 1
1. logitech
2. ps3
3. x360
4. x360
JoyIDs_Preferred_Controllers = ps3|favorites
(# of Controllers) : ps3 = 1, x360 = 1, logitech = 1
1. ps3
2. x360 or lgitech (depends on order found in before (what order were they turned on))
3. x360 or logitech (depends on order found in before (what order were they turned on))
JoyIDs_Preferred_Controllers = favorites|ps3
(# of Controllers) : ps3 = 1, x360 = 1, logitech = 1
1. x360 or logitech (depends on order found in before (what order were they turned on))
2. x360 or logitech (depends on order found in before (what order were they turned on))
3. ps3
JoyIDs_Preferred_Controllers = favorites|ps3|x360
(# of Controllers) : ps3 = 1, x360 = 1, logitech = 1
1. logitech
2. ps3
3. x360
JoyIDs_Preferred_Controllers = x360|favorites|ps3
(# of Controllers) : ps3 = 1, x360 = 1, logitech = 1
1. x360
2. logitech
3. ps3
JoyIDs_Preferred_Controllers = x360|ps3|x360
(# of Controllers) : ps3 = 1, x360 = 2, logitech = 1
1. x360
2. x360
3. ps3
4. logitech
Custom Names
Custom Names are useful for grouping your controllers or giving them a shorter name. The limitation to this feature is that you can have only one custom joystick name assigned to a default windows joystick name. Also if you use both the default name and custom name in naming your profiles or for your Preferred Controllers list the default name will always be used since it is inherently more specific. Some examples of it being used are to reduce long controller names to something simple like "Controller (Xbox 360 Wireless Receiver for Windows)" to just "x360." or for grouping your controllers like "Controller (Xbox 360 Wireless Receiver for Windows)" to "xbox 360 controller" and "Controller (Afterglow Gamepad for Xbox 360)" to "xbox 360 controller." You will need to enable this feature first by setting the" Custom_Joy_Names_Enabled = true" and defining your custom joystick names list in the "Custom_Joy_Names" key.
Custom_Joy_Names_Enabled = true
Custom_Joy_Names = Controller (Xbox 360 Wireless Receiver for Windows)|xbox 360 controller\Controller (Afterglow Gamepad for Xbox 360)|xbox 360 controller\Default Windows Name|Custom Name