Main > Software Forum
New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
Wade007:
Thank you so much for your help drventure!!
I took your advice and tweaked a few things with my ctrl file. I'm much much closer. I seem to have regained control of the keyboard functions relative to my xarcade tankstick once again. Joystick MAME games work like before.
I triple checked the ID of my lightguns and fixed the ID for lightgun1. It was off by one digit and therefore wasn't getting picked up via the alias. All good now. Now, Lightgun 1 and 2 seem to have been picked up/re-mapped correctly (X/Y axis control) however Lightgun 2 trigger/buttons aren't mapped. Lightgun 1 buttons work, but probably only because I lucked out and called for GUNCODE_4_BUTTON1 in the P1_BUTTON1 port type, etc. I need to remap the 3 buttons on each lightgun correctly. Pull out of keyboard controller id right? How do I separate the trigger/gun buttons again separately from the keyboard section so they will get correctly remapped everytime? Also, Keystoke arrows don't seem to work on MAME UI.
I'm making progress... Can you take a look at my code again here below and give me another nudge or two in the right direction?
Thanks again for your work on this utility. I have high hopes of getting this to work and no longer having to worry about having to constantly re-configure my lightguns on my MAME cabinet! :)
--- Code: ---<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<controlleralias>
<id>HID#VID_D209_PID_1601_MI_02#7_6f69e7b_0_0000#</id>
<alias>Lightgun_Player1</alias>
</controlleralias>
<controlleralias>
<id>HID#VID_D209_PID_1602_MI_02#7_23fea4a1_0_0000#</id>
<alias>Lightgun_Player2</alias>
</controlleralias>
<system name="default">
<controller id="keyboard">
<input>
<port type="UI_UP">
<newseq type="standard">KEYCODE_UP OR KEYCODE_8_PAD </newseq>
</port>
<port type="UI_DOWN">
<newseq type="standard">KEYCODE_DOWN OR KEYCODE_2_PAD </newseq>
</port>
<port type="UI_LEFT">
<newseq type="standard">KEYCODE_LEFT OR KEYCODE_4_PAD </newseq>
</port>
<port type="UI_RIGHT">
<newseq type="standard">KEYCODE_RIGHT OR KEYCODE_6_PAD</newseq>
</port>
<port type="UI_SELECT">
<newseq type="standard">KEYCODE_ENTER OR KEYCODE_LCONTROL</newseq>
</port>
<port type="UI_CONFIGURE">
<newseq type="standard">KEYCODE_TAB OR KEYCODE_1 KEYCODE_3</newseq>
</port>
<port type="UI_CANCEL">
<newseq type="standard">KEYCODE_ESC OR KEYCODE_2 KEYCODE_4</newseq>
</port>
<port type="START1">
<newseq type="standard">KEYCODE_1</newseq>
</port>
<port type="START2">
<newseq type="standard">KEYCODE_2</newseq>
</port>
<port type="COIN1">
<newseq type="standard">KEYCODE_3</newseq>
</port>
<port type="COIN2">
<newseq type="standard">KEYCODE_4</newseq>
</port>
<port type="START3">
<newseq type="standard">NONE</newseq>
</port>
<port type="START4">
<newseq type="standard">NONE</newseq>
</port>
<port type="P1_JOYSTICK_UP">
<newseq type="standard">
KEYCODE_8PAD
</newseq>
</port>
<port type="P1_JOYSTICK_DOWN">
<newseq type="standard">
KEYCODE_2PAD
</newseq>
</port>
<port type="P1_JOYSTICK_LEFT">
<newseq type="standard">
KEYCODE_4PAD
</newseq>
</port>
<port type="P1_JOYSTICK_RIGHT">
<newseq type="standard">
KEYCODE_6PAD
</newseq>
</port>
<port type="P1_BUTTON1">
<newseq type="standard">
GUNCODE_4_BUTTON1 OR KEYCODE_LCONTROL
</newseq>
</port>
<port type="P1_BUTTON2">
<newseq type="standard">
JOYCODE_1_BUTTON3 OR KEYCODE_LALT
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
JOYCODE_1_BUTTON2 OR KEYCODE_SPACE
</newseq>
</port>
<port type="P1_BUTTON4">
<newseq type="standard">
KEYCODE_LSHIFT
</newseq>
</port>
<port type="P1_BUTTON5">
<newseq type="standard">
KEYCODE_Z
</newseq>
</port>
<port type="P1_BUTTON6">
<newseq type="standard">
KEYCODE_X
</newseq>
</port>
<port type="P1_BUTTON7">
<newseq type="standard">
KEYCODE_C
</newseq>
</port>
<port type="P1_BUTTON8">
<newseq type="standard">
KEYCODE_5
</newseq>
</port>
<port type="P2_BUTTON1">
<newseq type="standard">
KEYCODE_A OR GUNCODE_3_BUTTON1
</newseq>
</port>
<port type="P2_BUTTON2">
<newseq type="standard">
JOYCODE_2_BUTTON3 OR KEYCODE_S
</newseq>
</port>
<port type="P2_BUTTON3">
<newseq type="standard">
JOYCODE_2_BUTTON2 OR KEYCODE_Q
</newseq>
</port>
</input>
</controller>
<controller id="Lightgun_Player1">
<input>
<port type="P1_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P1_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
<port type="P1_AD_STICK_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P1_AD_STICK_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
</input>
</controller>
<controller id="Lightgun_Player2">
<input>
<port type="P2_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P2_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
<port type="P2_AD_STICK_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P2_AD_STICK_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
</input>
</controller>
<!--
###################################################
ACTUAL INPUT MAPPING STARTS HERE
DO NOT actually put anything in this section.
It is completely cleared and regenerated!
###################################################
-->
<input>
<port type="UI_UP">
<newseq type="standard">KEYCODE_UP OR KEYCODE_8_PAD </newseq>
</port>
<port type="UI_DOWN">
<newseq type="standard">KEYCODE_DOWN OR KEYCODE_2_PAD </newseq>
</port>
<port type="UI_LEFT">
<newseq type="standard">KEYCODE_LEFT OR KEYCODE_4_PAD </newseq>
</port>
<port type="UI_RIGHT">
<newseq type="standard">KEYCODE_RIGHT OR KEYCODE_6_PAD</newseq>
</port>
<port type="UI_SELECT">
<newseq type="standard">KEYCODE_ENTER OR KEYCODE_LCONTROL</newseq>
</port>
<port type="UI_CONFIGURE">
<newseq type="standard">KEYCODE_TAB OR KEYCODE_1 KEYCODE_3</newseq>
</port>
<port type="UI_CANCEL">
<newseq type="standard">KEYCODE_ESC OR KEYCODE_2 KEYCODE_4</newseq>
</port>
<port type="START1">
<newseq type="standard">KEYCODE_1</newseq>
</port>
<port type="START2">
<newseq type="standard">KEYCODE_2</newseq>
</port>
<port type="COIN1">
<newseq type="standard">KEYCODE_3</newseq>
</port>
<port type="COIN2">
<newseq type="standard">KEYCODE_4</newseq>
</port>
<port type="START3">
<newseq type="standard">NONE</newseq>
</port>
<port type="START4">
<newseq type="standard">NONE</newseq>
</port>
<port type="P1_JOYSTICK_UP">
<newseq type="standard">
KEYCODE_8PAD
</newseq>
</port>
<port type="P1_JOYSTICK_DOWN">
<newseq type="standard">
KEYCODE_2PAD
</newseq>
</port>
<port type="P1_JOYSTICK_LEFT">
<newseq type="standard">
KEYCODE_4PAD
</newseq>
</port>
<port type="P1_JOYSTICK_RIGHT">
<newseq type="standard">
KEYCODE_6PAD
</newseq>
</port>
<port type="P1_BUTTON1">
<newseq type="standard">
GUNCODE_4_BUTTON1 OR KEYCODE_LCONTROL
</newseq>
</port>
<port type="P1_BUTTON2">
<newseq type="standard">
JOYCODE_1_BUTTON3 OR KEYCODE_LALT
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
JOYCODE_1_BUTTON2 OR KEYCODE_SPACE
</newseq>
</port>
<port type="P1_BUTTON4">
<newseq type="standard">
KEYCODE_LSHIFT
</newseq>
</port>
<port type="P1_BUTTON5">
<newseq type="standard">
KEYCODE_Z
</newseq>
</port>
<port type="P1_BUTTON6">
<newseq type="standard">
KEYCODE_X
</newseq>
</port>
<port type="P1_BUTTON7">
<newseq type="standard">
KEYCODE_C
</newseq>
</port>
<port type="P1_BUTTON8">
<newseq type="standard">
KEYCODE_5
</newseq>
</port>
<port type="P2_BUTTON1">
<newseq type="standard">
KEYCODE_A OR GUNCODE_3_BUTTON1
</newseq>
</port>
<port type="P2_BUTTON2">
<newseq type="standard">
JOYCODE_2_BUTTON3 OR KEYCODE_S
</newseq>
</port>
<port type="P2_BUTTON3">
<newseq type="standard">
JOYCODE_2_BUTTON2 OR KEYCODE_Q
</newseq>
</port>
<port type="P1_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_4_XAXIS
</newseq>
</port>
<port type="P1_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_4_YAXIS
</newseq>
</port>
<port type="P1_AD_STICK_X">
<newseq type="standard">
GUNCODE_4_XAXIS
</newseq>
</port>
<port type="P1_AD_STICK_Y">
<newseq type="standard">
GUNCODE_4_YAXIS
</newseq>
</port>
<port type="P2_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_2_XAXIS
</newseq>
</port>
<port type="P2_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_2_YAXIS
</newseq>
</port>
<port type="P2_AD_STICK_X">
<newseq type="standard">
GUNCODE_2_XAXIS
</newseq>
</port>
<port type="P2_AD_STICK_Y">
<newseq type="standard">
GUNCODE_2_YAXIS
</newseq>
</port>
</input>
</system>
</mameconfig>
--- End code ---
Wade007:
OK, I've pushed things along some more since my last post. I think I have everything set up in the Ctrl file now so my XArcade Tankstick and two ArcadeGuns (Aimtraks) to get remapped correctly on my MAME cabinet. I was able to clean up my XML coding a bit more and resolved the P2 lightgun trigger mapping issue. Keystroke arrows in MAME UI has been resolved. It had nothing to do with ControllerRemap but rather a frontend issue that got messed up somehow.
Only one question remains... correctly remapping the 2nd and 3rd buttons (JOYCODE) on the lightguns via ControllerRemap. What am I not understanding?
Each of my Aimtrak based lightguns has 3 buttons. Trigger, Reload (back) and handle.
For example if I map the following buttons (partial code) for Lightgun_Player1:
--- Code: ---<controller id="Lightgun_Player1">
<input>
<port type="P1_BUTTON1">
<newseq type="standard">
GUNCODE_BUTTON1
</newseq>
</port>
<port type="P1_BUTTON2">
<newseq type="standard">
JOYCODE_BUTTON3
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
JOYCODE_BUTTON2
</newseq>
</port>
</input>
</controller>
--- End code ---
What results via ControllerRemap (partial code) is:
--- Code: ---<port type="P1_BUTTON1">
<newseq type="standard">
KEYCODE_LCONTROL <!-- This is correct. Mapped separately via the "keyboard" id-->
OR
GUNCODE_3_BUTTON1 <!-- This works! Trigger button remapped correctly-->
</newseq>
</port>
<port type="P1_BUTTON2">
<newseq type="standard">
KEYCODE_LALT <!-- This is correct. Mapped separately via the "keyboard" id-->
OR
JOYCODE_3_BUTTON3 <!-- NOT correct for the P1 gun. If mapped via MAME it should be
JOYCODE_1_BUTTON3 in order to work correctly-->
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
KEYCODE_SPACE <!-- This is correct. Mapped separately via the "keyboard" id-->
OR
JOYCODE_3_BUTTON2 <!-- NOT correct for the P1 gun. If mapped via MAME it seems to be
JOYCODE_1_BUTTON2 in order to work correctly-->
</newseq>
--- End code ---
Similarly, the second and third buttons on the Player 2 lightgun only work when mapped (manually) to JOYCODE_2_BUTTON"X". The trigger buttons (GUNCODE) for both guns work perfectly.
Something seems off here, but I'm not sure how to fix it. Any help (drventure?).
Do I need to map the JOYCODE buttons separately somehow?
I deleted the config files for "default" and any lightgun game that uses 2 or more buttons before executing ControllerRemap, but the 2nd and 3rd "Joycode" buttons don't seem to picked up correctly. Generally, only the keyboard button gets mapped and the JOYCODE_X_BUTTONX gets left off entirely when I look at the resulting MAME config file for the desired lightgun game. What am I missing here?
Lastly, another huge THANKS for this utility. Despite my questions/concerns, this app is a huge help and greatly needed. Thanks for the time and effort to create it (drventure).
Wade007:
Not quite solved but....
As a follow-up, I realized that perhaps Windows was seeing my Aimtraks as both a lightgun AND a joystick and therefore I needed to remap the controls separately.
When I run ControllerRemap /list I get a Joystick Device list as follows [brackets added]:
--- Code: ---1. 'ATRAK Device #1' , ID=0 [This is P1 lightgun]
2. 'ATRAK Device #2' , ID=1 [This is P2 lightgun]
Mouse Device List (after listing installed mouse and trackball)
1. [...computer mouse listed here...code]
2. [...xarcade trackball listed here...code]
3. 'HID#VID_D209_PID_1602_MI_02#7_23fea4a1_0_0000#' [This is P2 lightgun]
4. 'HID#VID_D209_PID_1601_MI_02#7_6f69e7b_0_0000#' [This is P1 lightgun]
--- End code ---
So in my XML Ctrl file I set up the following code to pick up the joystick button portion of the lightguns (Buttons 2 &3) along with the regular lightgun (which work fine) settings:
--- Code: ---<controlleralias>
<id>ATRAK Device #1</id>
<alias>"Lightgun_Player1_joystickbuttons"</alias>
</controlleralias>
<controlleralias>
<id>ATRAK Device #2</id>
<alias>"Lightgun_Player2_joystickbuttons"</alias>
</controlleralias>
<controlleralias>
<id>HID#VID_D209_PID_1601_MI_02#7_6f69e7b_0_0000#</id>
<alias>Lightgun_Player1</alias>
</controlleralias>
<controlleralias>
<id>HID#VID_D209_PID_1602_MI_02#7_23fea4a1_0_0000#</id>
<alias>Lightgun_Player2</alias>
</controlleralias>
--- End code ---
Then in the <system name="default"> area of my ctrl XML file I added the following code:
--- Code: ---<controller id="Lightgun_Player1_joystickbuttons">
<input>
<port type="P1_BUTTON2">
<newseq type="standard">
JOYCODE_BUTTON3
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
JOYCODE_BUTTON2
</newseq>
</port>
</input>
</controller>
<controller id="Lightgun_Player2_joystickbuttons">
<input>
<port type="P2_BUTTON2">
<newseq type="standard">
JOYCODE_BUTTON3
</newseq>
</port>
<port type="P2_BUTTON3">
<newseq type="standard">
JOYCODE_BUTTON2
</newseq>
</port>
</input>
</controller>
--- End code ---
Shouldn't this work? Trouble is...it's not. After executing ControllerRemp.exe, it still won't map the P1/P2 BUTTON2/3 buttons to JOYCODE_BUTTON"X" like its suppose to. It only maps the keyboard mappings and nothing else. :banghead:
I'm stuck. Below is my entire current ctrl XML file written for ControllerRemp.exe. Any ideas...anyone? drventure? :notworthy:
--- Code: ---<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<controlleralias>
<id>HID#VID_D209_PID_1601_MI_02#7_6f69e7b_0_0000#</id>
<alias>Lightgun_Player1</alias>
</controlleralias>
<controlleralias>
<id>HID#VID_D209_PID_1602_MI_02#7_23fea4a1_0_0000#</id>
<alias>Lightgun_Player2</alias>
</controlleralias>
<controlleralias>
<id>ATRAK Device #1</id>
<alias>"Lightgun_Player1_joystickbuttons"</alias>
</controlleralias>
<controlleralias>
<id>ATRAK Device #2</id>
<alias>"Lightgun_Player2_joystickbuttons"</alias>
</controlleralias>
<system name="default">
<controller id="keyboard">
<input>
<port type="UI_UP">
<newseq type="standard">KEYCODE_UP OR KEYCODE_8_PAD </newseq>
</port>
<port type="UI_DOWN">
<newseq type="standard">KEYCODE_DOWN OR KEYCODE_2_PAD </newseq>
</port>
<port type="UI_LEFT">
<newseq type="standard">KEYCODE_LEFT OR KEYCODE_4_PAD </newseq>
</port>
<port type="UI_RIGHT">
<newseq type="standard">KEYCODE_RIGHT OR KEYCODE_6_PAD</newseq>
</port>
<port type="UI_SELECT">
<newseq type="standard">KEYCODE_ENTER OR KEYCODE_LCONTROL</newseq>
</port>
<port type="UI_CONFIGURE">
<newseq type="standard">KEYCODE_TAB OR KEYCODE_1 KEYCODE_3</newseq>
</port>
<port type="UI_CANCEL">
<newseq type="standard">KEYCODE_ESC OR KEYCODE_2 KEYCODE_4</newseq>
</port>
<port type="START1">
<newseq type="standard">KEYCODE_1 OR ENTER</newseq>
</port>
<port type="START2">
<newseq type="standard">KEYCODE_2</newseq>
</port>
<port type="COIN1">
<newseq type="standard">KEYCODE_3</newseq>
</port>
<port type="COIN2">
<newseq type="standard">KEYCODE_4</newseq>
</port>
<port type="START3">
<newseq type="standard">NONE</newseq>
</port>
<port type="START4">
<newseq type="standard">NONE</newseq>
</port>
<port type="P1_JOYSTICK_UP">
<newseq type="standard">
KEYCODE_8PAD
</newseq>
</port>
<port type="P1_JOYSTICK_DOWN">
<newseq type="standard">
KEYCODE_2PAD
</newseq>
</port>
<port type="P1_JOYSTICK_LEFT">
<newseq type="standard">
KEYCODE_4PAD
</newseq>
</port>
<port type="P1_JOYSTICK_RIGHT">
<newseq type="standard">
KEYCODE_6PAD
</newseq>
</port>
<port type="P1_BUTTON1">
<newseq type="standard">
KEYCODE_LCONTROL
</newseq>
</port>
<port type="P1_BUTTON2">
<newseq type="standard">
KEYCODE_LALT
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
KEYCODE_SPACE
</newseq>
</port>
<port type="P1_BUTTON4">
<newseq type="standard">
KEYCODE_LSHIFT
</newseq>
</port>
<port type="P1_BUTTON5">
<newseq type="standard">
KEYCODE_Z
</newseq>
</port>
<port type="P1_BUTTON6">
<newseq type="standard">
KEYCODE_X
</newseq>
</port>
<port type="P1_BUTTON7">
<newseq type="standard">
KEYCODE_C
</newseq>
</port>
<port type="P1_BUTTON8">
<newseq type="standard">
KEYCODE_5
</newseq>
</port>
<port type="P2_BUTTON1">
<newseq type="standard">
KEYCODE_A
</newseq>
</port>
<port type="P2_BUTTON2">
<newseq type="standard">
KEYCODE_S
</newseq>
</port>
<port type="P2_BUTTON3">
<newseq type="standard">
KEYCODE_Q
</newseq>
</port>
<port type="P2_BUTTON4">
<newseq type="standard">
KEYCODE_W
</newseq>
</port>
<port type="P2_BUTTON5">
<newseq type="standard">
KEYCODE_E
</newseq>
</port>
<port type="P2_BUTTON6">
<newseq type="standard">
KEYCODE_OPENBRACE
</newseq>
</port>
<port type="P2_BUTTON7">
<newseq type="standard">
KEYCODE_CLOSEBRACE
</newseq>
</port>
<port type="P2_BUTTON8">
<newseq type="standard">
KEYCODE_6
</newseq>
</port>
</input>
</controller>
<controller id="Lightgun_Player1">
<input>
<port type="P1_BUTTON1">
<newseq type="standard">
GUNCODE_BUTTON1
</newseq>
</port>
<port type="P1_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P1_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
<port type="P1_AD_STICK_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P1_AD_STICK_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
</input>
</controller>
<controller id="Lightgun_Player2">
<input>
<port type="P2_BUTTON1">
<newseq type="standard">
GUNCODE_BUTTON1
</newseq>
</port>
<port type="P2_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P2_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
<port type="P2_AD_STICK_X">
<newseq type="standard">
GUNCODE_XAXIS
</newseq>
</port>
<port type="P2_AD_STICK_Y">
<newseq type="standard">
GUNCODE_YAXIS
</newseq>
</port>
</input>
</controller>
<controller id="Lightgun_Player1_joystickbuttons">
<input>
<port type="P1_BUTTON2">
<newseq type="standard">
JOYCODE_BUTTON3
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
JOYCODE_BUTTON2
</newseq>
</port>
</input>
</controller>
<controller id="Lightgun_Player2_joystickbuttons">
<input>
<port type="P2_BUTTON2">
<newseq type="standard">
JOYCODE_BUTTON3
</newseq>
</port>
<port type="P2_BUTTON3">
<newseq type="standard">
JOYCODE_BUTTON2
</newseq>
</port>
</input>
</controller>
<!--
###################################################
ACTUAL INPUT MAPPING STARTS HERE
DO NOT actually put anything in this section.
It is completely cleared and regenerated!
###################################################
-->
<crosshairs>
<crosshair player="0" mode="0" />
<crosshair player="1" mode="0" />
</crosshairs>
<input>
<port type="UI_UP">
<newseq type="standard">KEYCODE_UP OR KEYCODE_8_PAD </newseq>
</port>
<port type="UI_DOWN">
<newseq type="standard">KEYCODE_DOWN OR KEYCODE_2_PAD </newseq>
</port>
<port type="UI_LEFT">
<newseq type="standard">KEYCODE_LEFT OR KEYCODE_4_PAD </newseq>
</port>
<port type="UI_RIGHT">
<newseq type="standard">KEYCODE_RIGHT OR KEYCODE_6_PAD</newseq>
</port>
<port type="UI_SELECT">
<newseq type="standard">KEYCODE_ENTER OR KEYCODE_LCONTROL</newseq>
</port>
<port type="UI_CONFIGURE">
<newseq type="standard">KEYCODE_TAB OR KEYCODE_1 KEYCODE_3</newseq>
</port>
<port type="UI_CANCEL">
<newseq type="standard">KEYCODE_ESC OR KEYCODE_2 KEYCODE_4</newseq>
</port>
<port type="START1">
<newseq type="standard">KEYCODE_1 OR ENTER</newseq>
</port>
<port type="START2">
<newseq type="standard">KEYCODE_2</newseq>
</port>
<port type="COIN1">
<newseq type="standard">KEYCODE_3</newseq>
</port>
<port type="COIN2">
<newseq type="standard">KEYCODE_4</newseq>
</port>
<port type="START3">
<newseq type="standard">NONE</newseq>
</port>
<port type="START4">
<newseq type="standard">NONE</newseq>
</port>
<port type="P1_JOYSTICK_UP">
<newseq type="standard">
KEYCODE_8PAD
</newseq>
</port>
<port type="P1_JOYSTICK_DOWN">
<newseq type="standard">
KEYCODE_2PAD
</newseq>
</port>
<port type="P1_JOYSTICK_LEFT">
<newseq type="standard">
KEYCODE_4PAD
</newseq>
</port>
<port type="P1_JOYSTICK_RIGHT">
<newseq type="standard">
KEYCODE_6PAD
</newseq>
</port>
<port type="P1_BUTTON1">
<newseq type="standard">
KEYCODE_LCONTROL
OR
GUNCODE_4_BUTTON1
</newseq>
</port>
<port type="P1_BUTTON2">
<newseq type="standard">
KEYCODE_LALT
</newseq>
</port>
<port type="P1_BUTTON3">
<newseq type="standard">
KEYCODE_SPACE
</newseq>
</port>
<port type="P1_BUTTON4">
<newseq type="standard">
KEYCODE_LSHIFT
</newseq>
</port>
<port type="P1_BUTTON5">
<newseq type="standard">
KEYCODE_Z
</newseq>
</port>
<port type="P1_BUTTON6">
<newseq type="standard">
KEYCODE_X
</newseq>
</port>
<port type="P1_BUTTON7">
<newseq type="standard">
KEYCODE_C
</newseq>
</port>
<port type="P1_BUTTON8">
<newseq type="standard">
KEYCODE_5
</newseq>
</port>
<port type="P2_BUTTON1">
<newseq type="standard">
KEYCODE_A
OR
GUNCODE_2_BUTTON1
</newseq>
</port>
<port type="P2_BUTTON2">
<newseq type="standard">
KEYCODE_S
</newseq>
</port>
<port type="P2_BUTTON3">
<newseq type="standard">
KEYCODE_Q
</newseq>
</port>
<port type="P2_BUTTON4">
<newseq type="standard">
KEYCODE_W
</newseq>
</port>
<port type="P2_BUTTON5">
<newseq type="standard">
KEYCODE_E
</newseq>
</port>
<port type="P2_BUTTON6">
<newseq type="standard">
KEYCODE_OPENBRACE
</newseq>
</port>
<port type="P2_BUTTON7">
<newseq type="standard">
KEYCODE_CLOSEBRACE
</newseq>
</port>
<port type="P2_BUTTON8">
<newseq type="standard">
KEYCODE_6
</newseq>
</port>
<port type="P1_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_4_XAXIS
</newseq>
</port>
<port type="P1_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_4_YAXIS
</newseq>
</port>
<port type="P1_AD_STICK_X">
<newseq type="standard">
GUNCODE_4_XAXIS
</newseq>
</port>
<port type="P1_AD_STICK_Y">
<newseq type="standard">
GUNCODE_4_YAXIS
</newseq>
</port>
<port type="P2_LIGHTGUN_X">
<newseq type="standard">
GUNCODE_2_XAXIS
</newseq>
</port>
<port type="P2_LIGHTGUN_Y">
<newseq type="standard">
GUNCODE_2_YAXIS
</newseq>
</port>
<port type="P2_AD_STICK_X">
<newseq type="standard">
GUNCODE_2_XAXIS
</newseq>
</port>
<port type="P2_AD_STICK_Y">
<newseq type="standard">
GUNCODE_2_YAXIS
</newseq>
</port>
</input>
</system>
</mameconfig>
--- End code ---
[EDIT - Final solution] I finally just decided to just hard-code the JOYCODE buttons 2 & 3 on my lightguns for Player 1 and Player 2 in the Keyboard ID area as they come up in MAME. These buttons don't seem to get messed up like the GUNCODE IDs often do upon Windows bootup. I just mapped them directly and they seem to work fine. No need to try and map them as a joystick controller separately after all. Unless anyone else has a new idea or solution, I'm going with this one. I then created a BAT file to launch ControllerRemap.exe and put a shortcut to the BAT file in my Windows/Startup menu. Done.
Thought I'd post here in case anyone else was using AimTrak/Arcade Guns. Thanks again drventure for this utility. Definitely solves a concern I had for a long time. Nice work!!
MydknyteStyrm:
I was wondering if this utility was necessary if I was planning my cab to NOT have any control unplugged. Everything I put in is staying. Does Windows change my ID's on powering up and down? Thanks!
Wade007:
--- Quote ---I was wondering if this utility was necessary if I was planning my cab to NOT have any control unplugged. Everything I put in is staying. Does Windows change my ID's on powering up and down? Thanks!
--- End quote ---
Others can chime in here regarding their own situations, but for me the answer to your question is a resounding "YES".
I have two AimTrak guns that NEVER get unplugged, but Windows often changes their IDs upon boot-up of my cabinet system, making MAME lightguns games temporarily not work. I knew how to fix it, but it was a bother to have to reconfigure the guns occasionally, and then cross my fingers that Windows wouldn't change the IDs again on the next boot-up. It was a concern I had for quite a while. One that I brought up to Arcade Guns owner, Eric Harbo. He's the one who showed me this thread.
This utility fixed the problem for me. :)
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version