Keymapper

From RocketLauncher Wiki
Revision as of 17:06, 8 April 2015 by Kevinlives (talk | contribs)
Jump to navigation Jump to search


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


1 Keymappers

1.1 Xpadder
1.2 AutoHotKey
1.3 JoyToKey

2 Profiles

2.1 Profile Types
2.1.1 Game Specific
2.1.2 Emulator
2.1.3 System
2.1.4 Default
2.1.5 Front End
2.1.6 HyperLaunch Menu
2.1.7 Blank

3 Preferred Controller
4 Custom Names
5 Keymapper Ini Settings
6 Tips & Tricks


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.

Make a controller layout2.JPG

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).

Make a controller layout3.JPG

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.

Xpadder profile creation.JPG

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

Keymapper profile xpadder game.jpg


JoyToKey

Code:
  • HyperLaunch\Profiles\%keymapper%\%systemName%\%romName%\%romName%.cfg

Keymapper profile joytokey game.jpg


AutoHotKey

Code:
  • HyperLaunch\Profiles\%keymapper%\%systemName%\%romName%.ahk

Keymapper profile ahk game.jpg.1379464423293.jpg

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

Keymapper profile xpadder emulator.jpg


JoyToKey

Code:
  • HyperLaunch\Profiles\%keymapper%\%systemName%\%emulator%\%emulator%.cfg

Keymapper profile joytokey emulator.jpg


AutoHotKey

Code:
  • HyperLaunch\Profiles\%keymapper%\%systemName%\%emulator%.ahk

Keymapper profile ahk emulator.jpg.1379464468598.jpg


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

Keymapper profile xpadder system.jpg


JoyToKey

Code:
  • HyperLaunch\Profiles\%keymapper%\%systemName%\%systemName%.cfg

Keymapper profile joytokey system.jpg


AutoHotKey

Code:
  • HyperLaunch\Profiles\%keymapper%\%systemName%.ahk

Keymapper profile ahk system.jpg.1379464502733.jpg


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

Keymapper profile xpadder default.jpg


JoyToKey

Code:
  • HyperLaunch\Profiles\%keymapper%\_Default\_Default.cfg

Keymapper profile joytokey default.jpg


AutoHotKey

Code:
  • HyperLaunch\Profiles\%keymapper%\_Default.ahk

Keymapper profile ahk default.jpg


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

Keymapper profile xpadder front end.jpg


JoyToKey

Code:
  • HyperLaunch\Profiles\%keymapper%\%FrontEndName%\%FrontEndName%.cfg

Keymapper profile joytokey front end.jpg


AutoHotKey*

Code:
  • HyperLaunch\Profiles\%keymapper%\%FrontEndName%.ahk

*Keymapper_AHK_Enabled = external
Keymapper profile ahk front end.jpg


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

Keymapper profile xpadder hyperlaunch.jpg


JoyToKey

Code:
  • HyperLaunch\Profiles\%keymapper%\HyperLaunch\HyperLaunch.cfg

Keymapper profile joytokey hyperlaunch.jpg


AutoHotKey*

Code:
  • HyperLaunch\Profiles\%keymapper%\HyperLaunch.ahk

*Keymapper_AHK_Enabled = external
Keymapper profile ahk front hyperlaunch.jpg.1379464584168.jpg


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

Keymapper profile xpadder blank.jpg


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


Keymapper Ini Settings

Settings\HyperLaunch.ini

[Settings]

Key Default Value Description
Profiles_Path .\Profiles The path to where all your profiles for your different programs like keymappers or VJoy are stored. You will need to create a folder with the same name as your program and place your profiles in accordance with the HyperLaunch format in that program folder. So if your keymapper is Xpadder and you used the default profile path, the path to your profiles would then be %Profiles_Path%\Xpadder or if the profiles are for VJoy your profiles would then be in %Profiles_Path%\VJoy


[Keymapper]

Key Default Value Description
Xpadder_Path ..\Utilities\Xpadder\xpadder.exe Path to your Xpadder.exe (2012 or newer). This path is only necessary if you use Xpadder as your keymapper. You can buy Xpadder at www.xpadder.com.
JoyToKey_Path ..\Utilities\JoyToKey\JoyToKey.exe Path to your JoyToKey.exe (v4 or newer). This path is only necessary if you use JoyToKey as your keymapper. You can buy JoyToKey at www-en.jtksoft.net.
Keymapper_FrontEnd_Profile_Name HyperSpin Prefix of your Front End profile. It is used for the profile that is loaded when you exit your game.
Keymapper_FrontEnd_Profile false The keymapper you want to use when returning back to your Front End. Keeping this separate allows you to use any keymapper you want within your Front End, and are not tied to the one you use for your application. Choices are:
  • xpadder: Loads a xpadder profile if found.
  • joytokey: Loads a joytokey profile if found.
  • ahk: Loads an autohotkey profile if found.
  • false: Do not load a Front End profile. This will close or unload any keymappers when exiting your application and returning to the Front End.
Keymapper_HyperLaunch_Profile_Enabled false If true it will enable the HyperLaunch menu profile for the HyperLaunch windows (ex. HyperPause, Multigame, any future additions). This would let you use the HyperLaunch's navigation keys for your joystick.
Custom_Joy_Names_Enabled false If true, enables custom joystick names and groupings for your controllers
Custom_Joy_Names A list of custom names being associated with a default control panel joystick name. A custom name can be used more than once. A default joystick name can only have one custom name assigned to it.



Settings\Global HyperLaunch.ini & Settings\%SystemName%\HyperLaunch.ini

[Keymapper]

Key Default Value Description
Keymapper_Enabled false Enables/Disables Keymapper support.
Keymapper The 3rd-party keymapper you want to use. Default is blank, but choices are xpadder or joytokey.
Keymapper_AHK_Method false The HyperLaunch Keymapper method, which uses autohotkey remaps. Choices are internal and external.
  • Useful when you want to remap keyboard keys to something else.
  • internal: Older, but faster method which binds your keymap to the bottom of the module thread. This runs your remap profile as part of the module, internal with HyperLaunch itself. This is faster, but limited that you cannot have any autohotkey remapped keys when HyperLaunch is not running, like in your Front End.
  • external: Uses the new AHKLauncher.exe in the module extensions folder to launch your ahk keymapper profile. This method uses a separate process to remap your keys and allows for ahk remaps to be changed out while the module is running. If you want to use different ahk profiles for within HyperPause/MultiGame than what your game uses, or even a Front End profile after HyperLaunch exits, use this method. This method is slightly slower only because it has to launch another executable, if noticeable at all, but has more use because of the FE profile support.
JoyIDs_Enabled false Enables/Disables JoyIDs support
JoyIDs_Preferred_Controllers A list defining which controllers you would like to use. This 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.



Settings\%SystemName%\Games Joyids.ini

[%RomName%]

Key Default Value Description
JoyIDs_Preferred_Controllers A per game list defining which controllers you would like to use. This list will only be used for the game you specify inthe section header. If you have set a preferred controller list for a game in the past, but want to use the global or system list just delete the ini key or set it to ERROR.What this list does is that it 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.


Tips & Tricks

1. My controllers have the same default controller name can I can change this?
Yes, you can if they have a different VID_****&PID_*****. You can change it in the registry in case you don't like the generic name of your controller or if you have two different controllers with the same name. Change it under HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_****&PID_****\OEMName and then change it under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_****&PID_****\OEMName.