Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news


  

Author Topic: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)  (Read 33234 times)

0 Members and 1 Guest are viewing this topic.

MydknyteStyrm

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 242
  • Makeup FX Gamer
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #200 on: September 25, 2015, 07:33:43 pm »
Did you have Controllerremap set in HyperHQ? I know it works when starting Hyperspin, but not when I just test games thru the RL interface.


Sent from my iPhone using Tapatalk

stigzler

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 656
  • It seemed like a good idea at the time....
    • Mago 20.13
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #201 on: September 26, 2015, 03:30:17 am »
Sorry - don't use either HyperHQ or RL

mark shaker

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 290
  • Oh Crikey!
    • Mark's Basement Arcade
Bug Report!
« Reply #202 on: November 07, 2015, 09:11:20 am »
drventure:

Thanks so much for this program. My mouse and joystick numbers were stable under Windows 7. But when I updated my MAME Cabs to Windows 10, the mouse and joystick numbers were mixed up after every boot.

Andy W. from Ultimarc pointed me to ControllerRemap.

I did find one issue: There is an inconsistency between the IDs given in the list function and how they are used in the remap function.

My Joysticks are listed like so (IDs 0-7)
   1.  'AKI2', ID=2
   2.  'AKI2', ID=3
   3.  'AKI1', ID=0
   4.  'AKI3', ID=4
   5.  'AKI1', ID=1
   6.  'AKI4', ID=6
   7.  'AKI3', ID=5
   8.  'AKI4', ID=7

But in order to have the input tag populated, I have to reference them like so (IDs 1 and 2 only):
   1. AKI2:1
   2. AKI2:2
   3. AKI1:1
   4. AKI3:1
   5. AKI1:2
   6. AKI4:1
   7. AKI3:2
   8. AKI4:2

I just discovered this, so I have not yet verified that the using this workaround will generate the correct Joystick numbers.

BTW: I'm using Version 0.0.11.

  - Mark

UPDATE:

I've verified that referencing the Joysticks using the IDs 1 and 2 does correctly populate the input tag. So, I'm good to go. I think the bugs are in the list feature, first for starting the ID number with 0 (not 1) and second for not resetting the ID number even though the Controllers did not have the exact same name.
« Last Edit: November 07, 2015, 10:56:56 am by mark shaker »

drventure

  • (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4124
  • Laser Death Ray Bargain Bin! Make me an offer!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #203 on: November 07, 2015, 01:47:16 pm »
Glad its more or less working for you.  Haven't had any other reports of the number mixup like this,  but I haven't run it on win 10 iether.

I'll have a look and see if I can figure out whats up.

Thanks for the report!

mark shaker

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 290
  • Oh Crikey!
    • Mark's Basement Arcade
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #204 on: November 08, 2015, 07:12:54 am »

drventure:

Thank you for developing and continuing to support ControllerRemap.

This is really minor, as once I figured out what was happening with the IDs, the workaround was easy.

Please let me know f I can provide any info to help.

Based on my experience with Win10, I think that ControllerRemap is going to get a bump in usage. :-) 

   - Mark

drventure

  • (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4124
  • Laser Death Ray Bargain Bin! Make me an offer!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #205 on: November 08, 2015, 10:53:47 am »
Oooh.... I think I know what's going on.

It looks like you have 8 sticks installed, but there are pairs that come up with the same ID NAME. Is that correct?

If it is, then what happens in ControllerRemap normally matches on the NAME, not the ID, because the whole problem is that the IDs can change out from under you.
That's why you basically need to just ignore the ID numbers in the list. They're there mainly to point out what IDs windows has set them to "right now". But that doesn't mean when you unplug one and plug it back in, they'll end up with the same id.

What happens is Cremap realizes there's TWO controllers that both have the same name, so it says "Ok the first instance of that controller is "1" and the second instance is "2" etc.

So then, later, when you refer to those controllers in your cfg file, you refer to them as "AK2:1", which actually means "the first instance of a controller in the group of controllers that are all named "AK2".

I hope that makes sense.

One thing you might do in this case is check out the ALIASING feature in cremap.

It allows you to say something like

"AK2:1" = "LeftUpperStick"
"AK2:2" = "LeftLowerStick"

and then refer to them in the CFG file as

"LeftUpperStick" or "LeftLowerStick" so that it reads a little clearer.

mark shaker

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 290
  • Oh Crikey!
    • Mark's Basement Arcade
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #206 on: November 08, 2015, 06:40:04 pm »
drventure;

I have a Pacmamea MAME Cab with 5 rotating panels.  It has 4 AKI (Arcade Kontrol Interface) boards. Each AKI shows up as a 3 axis joystick + a 2 axis joystick.  One of features of the AKI board was that it could be ordered with different names (AKI1 through AKI4), so that windows would not get the different boards mixed up. And in my experience, Windows has never mixed up one AKI's 3 axis and 2 axis controller.

So I still think that there is a small issue the ControllerRemap (maybe just under with Win10): The IDs given by the /list command do not match the IDs I have to use in <controlleralias> tag.

My list output and <controlleralias> tags are below. Notice that the /list shows AKI4 with IDs 6 and 7, but in the <controlleralias> tags I had to use AKI4 with IDs 1 and 2.

Here is my list:

D:\ControllerRemap>ControllerRemap /list

ControllerRemap Utility v0.0.11.0 - For Mame
(c) 2011 drventure Enterprises


Joystick Device List (Devices are in enumeration order) ...

   1.  'AKI2', ID=2
   2.  'AKI2', ID=3
   3.  'AKI1', ID=0
   4.  'AKI3', ID=4
   5.  'AKI1', ID=1
   6.  'AKI4', ID=6
   7.  'AKI3', ID=5
   8.  'AKI4', ID=7

Mouse Device List (Devices are in enumeration order) ...

   1.  'HID#VID_04B4_PID_0201_MI_01#9_13de298_0_0000#'
   2.  'HID#VID_04B4_PID_0201_MI_00#9_2515205a_0_0000#'
   3.  'HID#VID_D209_PID_1582_MI_01#9_c2ed3e1_0_0000#'
   4.  'HID#VID_0488_PID_0020_Col01#8_20daecd8_0_0000#'
   5.  'HID#VID_0518_PID_0001_MI_01_Col01#8_318ea06_0_0000#'
   6.  'HID#VID_1241_PID_1111#8_2220ff0_0_0000#'
   7.  'HID#VID_D209_PID_1582_MI_02#9_2160e07_0_0000#'

End of list

Here are my <controlleralias> tags:

   <controlleralias>
      <id>AKI1:1</id>
      <alias>Panel1_Left_Stick</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI1:2</id>
      <alias>Panel1_Right_Stick</alias>
   </controlleralias>
   <controlleralias>
      <id>HID#VID_D209_PID_1582_MI_01#9_c2ed3e1_0_0000#</id>
      <alias>Panel2_Left_Trackball</alias>
   </controlleralias>
   <controlleralias>
      <id>HID#VID_D209_PID_1582_MI_02#9_2160e07_0_0000#</id>
      <alias>Panel2_Right_Trackball</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI3:1</id>
      <alias>Panel3_Left_Bat</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI1:1</id>
      <alias>Panel3_Right_Bat</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI3:2</id>
      <alias>Panel3_Left_Stick</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI3:1</id>
      <alias>Panel3_Right_Stick</alias>
   </controlleralias>
   <controlleralias>
      <id>HID#VID_1241_PID_1111#8_2220ff0_0_0000#</id>
      <alias>Panel4_Spinner</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI2:2</id>
      <alias>Panel5_Right_Stick</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI2:1</id>
      <alias>Panel5_Left_Stick</alias>
   </controlleralias>
   <controlleralias>
      <id>HID#VID_04B4_PID_0201_MI_01#9_13de298_0_0000#</id>
      <alias>Panel5_Right_Spinner</alias>
   </controlleralias>
   <controlleralias>
      <id>HID#VID_04B4_PID_0201_MI_00#9_2515205a_0_0000#</id>
      <alias>Panel5_Left_Spinner</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI4:2</id>
      <alias>Right_Pedal</alias>
   </controlleralias>
   <controlleralias>
      <id>AKI4:1</id>
      <alias>Left_Pedal</alias>
   </controlleralias>

I actually have 13 different "ctrlr" .cfg files. (But most share a common section that includes the <controlleralias> tags and <controller> tags for the keyboard and pedals.)  I set the most common ctrlr file as the default, and assign the others to individual games. I set up a batch file that remaps all the ctrlr files that use either mice or analog sticks, and then launches MameUI.

I'm very grateful for ControllerRemap. Without it I would not have been able to upgrade my cabinet to Win10.

   - Mark
« Last Edit: November 08, 2015, 09:38:14 pm by mark shaker »

drventure

  • (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4124
  • Laser Death Ray Bargain Bin! Make me an offer!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #207 on: November 09, 2015, 12:01:36 pm »
Quote
So I still think that there is a small issue the ControllerRemap (maybe just under with Win10): The IDs given by the /list command do not match the IDs I have to use in <controlleralias> tag.

I don't believe there's an issue here.

The thing is (and I suspect this might be a bit confusing, so I'll look at possibly changing the wording), the ID number that shows in the list generated by /LIST has nothing to do with how to reference a controller in the CFG file.

For instance, I see that you have a single AK stick controller that actually exposes 2 "sticks" to windows, as in AKI4 ID 6 and ID 7.

No problem there.

But, since windows can shift those IDs around on a whim, the ID numbers listed are ONLY valid for RIGHT NOW. They might be (and likely will be) completely different if you unplugged 3 sticks and moved them to different USB ports, or powered off, or any number of other things.

So, consider those ID numbers as for INFORMATION and curiosity only. You really can't use them for much else.


When you go to set up your CFG file (or files), what you need to know is the name of the controller "AKI4" and, if there are multiple instances of it, which instance you want to use.

So, when you reference

"AKI4:2"

this is NOT saying "controller AKI4 with an ID of 2"

instead, it's saying "The second instance of a controller in the group of controllers that are all named "AKI4""



So, in short, while it can be helpful from a debugging perspective to know the joystick ID number (and indeed that's why it's including the the info that the /LIST command outputs), from the standpoint of configuring your controller file, you need to ignore the ID numbers.

mark shaker

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 290
  • Oh Crikey!
    • Mark's Basement Arcade
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #208 on: November 09, 2015, 07:39:12 pm »

drventure;

I had to re-read the documentation to figure out where I got confused: I did not realize that the JoystickID number given by the list command and the instance number were 2 separate things. (I thought the two processes listed on page 16 for specifying a joystick when there were several with the same name were just different syntax for using the same identifying number.)

I apologize for being so thick.

And now my confusion will be preserved on the internet until the end of time. :-(

   - Mark

drventure

  • (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4124
  • Laser Death Ray Bargain Bin! Make me an offer!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #209 on: November 09, 2015, 09:33:49 pm »
No worries. It can be a bit confusing to get CtrlRemap working, but then, the problem itself is pretty dang confusing.

Glad you got things going!

sin360

  • (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 44
  • I want to build my own arcade controls!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #210 on: December 31, 2015, 03:05:25 pm »
Hello, I'm currently trying to finish my cabinet and I'm running into issues with my ctrlr file in mame. I made it using controllerremapgui and P1,P2 the trackball and spinner work, but P3&4 are not. The joysticks are not working and the buttons are not configured correctly. I compiled my mame64 0.155 with hiscore and no nag. Here is a pastebin of my ctrlr file. http://pastebin.com/EYKLKuXY

I forgot to add that with no control file selected I have the same issue.

drventure

  • (+2)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 4124
  • Laser Death Ray Bargain Bin! Make me an offer!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #211 on: December 31, 2015, 04:23:16 pm »
It's hard to be sure what's going on. It looks like things are mapped right in your ctlr file.

If you have a look at the generated result file (or use the /test option) does the keymapping look right there?

You mention that things don't work even without the ctrlr file in the mix. If that's the case, you may not have you keyboard encoder mapped to the keys you thing it should be mapped to.

For instance, p4 joystick down is the N key in the ctrlr file, but if your keyboard encoder isn't set up like that (or if you've got the switch wire wired to the wrong input on the ctlr, then that'd be a problem.

Those a few things to check for anyway.


sin360

  • (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 44
  • I want to build my own arcade controls!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #212 on: December 31, 2015, 04:28:26 pm »
Sorry I forgot to mention that I made a ctrlr config using the hotrose config as a starting point and added P3&4 and they worked,  but I couldn't get the trackball and spinner to work in that file.

stigzler

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 656
  • It seemed like a good idea at the time....
    • Mago 20.13
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #213 on: December 31, 2015, 04:57:34 pm »
Have you checked any default mame or game .cfgs in mame/cfg folder? Any controls in cfg folders here can stop ctrlremap.cfgs working. More details here:

https://controllerremapgui.codeplex.com/wikipage?title=Setting%20up%20Per-Game%20Settings&referringTitle=Documentation


sin360

  • (+1)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 44
  • I want to build my own arcade controls!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #214 on: December 31, 2015, 05:45:38 pm »
Ok I made progress still not sure exactly why my ctrlr config is not working as it should, but the controls are working now.  First yes I got rid of all my configs and started from scratch and still had the same issue. I was originally using mameuifx before I decided to compile my own copy of mame64 which got me know where. It was in the back of my head the whole time that mame was using some default, but the file was empty and I figured that my config should override it, but it didn't.

So long story short I loaded mame64 went to the general config and looked at players 3&4 and they were setup to defaults. So I changed just players 3&4 and now everything works as it should. I opened up he default config and it has the players 3&4 now. So I added my neogeo setup to the ctrlr file I was using and everything works well now.

Thank You all for the help

MotoChi

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 11
  • I want to build my own arcade controls!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #215 on: January 19, 2016, 09:02:28 am »
Dr. Venture, thank you for this utility, it's amazing.

Just got it set up yesterday.  Set up was for a cocktail table, U360's on each end via USB. On the long side a U360 via USB, trackball and spinner via usb, and a mini grip via UltiMarc I/0 (connected as player 2 on the board, then USB).

Before setting up ControllerRemap, I'd never been able to use 1 joy and spinner/track at same time, was always plugging/unplugging.

Now EVERYTHING is working perfect.  Even have multi mouse enabled, so no accidental track/spinner nudges.  What an amazing utility.  Great documentation.  Very straight forward.

I've been able to set up correctly per game overrides for unique joy/spinner combos now, just works great.

I was never able to get the /mame argument to working with Mala (but would work command line).  However, the batch command method and having Mala call that worked just fine.

Member PL1 pointed me in the direction of your utility.  You did a great job on it.

putto72

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 24
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #216 on: February 13, 2016, 08:25:10 pm »
Hi, this utility would be really helpful.. I have built a new system using Windows 10 and found that it often shifts around usb devices. I tried preparing a configuration file, but I always get the following error when doing /Remap:

Unexpected problem encountered. System.NullReferenceException: Riferimento a un oggetto non impostato su un'istanza di oggetto.
   in ControllerRemap.ControllerEntries._Closure$__4._Lambda$__12(ControllerEntry j)
   in System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   in System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   in ControllerRemap.ControllerEntries.get_InternalFindByID(String index, Boolean IgnoreInstance)
   in ControllerRemap.CFGFileMame.Scan()
   in ControllerRemap.CFGFiles.Scan()
   in ControllerRemap.Program.Main()

This is what I get when I list devices:

Joystick Device List (Devices are in enumeration order) ...

   1.  'ATRAK Device #1', ID=2
   2.  'Controller (XBOX 360 For Windows)', ID=4
   3.  'Ultimarc Ultra-Stik Player 2', ID=1
   4.  'UHID Gamepad Device #1', ID=3
   5.  'Ultimarc Ultra-Stik Player 1', ID=0

Mouse Device List (Devices are in enumeration order) ...

   1.  ''
   2.  'HID#VID_1241_PID_1111#7_36822904_0_0000#'
   3.  'HID#VID_D209_PID_0301_MI_01#9_a81f0c9_0_0000#'
   4.  'HID#VID_D209_PID_1501_MI_03_Col01#8_1fc8b79d_0_0000#'
   5.  'HID#VID_D209_PID_1501_MI_03_Col02#8_1fc8b79d_0_0001#'
   6.  'HID#VID_D209_PID_1601_MI_02#7_6f69e7b_0_0000#'
   7.  'HID#VID_D209_PID_0501_MI_01#8_3a7f8b52_0_0000#'
   8.  'HID#VID_046D_PID_C52B_MI_01_Col01#7_b4c835b_0_0000#'
   9.  'HID#VID_D209_PID_0502_MI_01#8_24588317_0_0000#'
   10.  ''

End of list

And this is the result of /save:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfControllerEntry xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ControllerRemap">
  <ControllerEntry>
    <DeviceID>2</DeviceID>
    <EnumerationPos>1</EnumerationPos>
    <IsJoystick>true</IsJoystick>
    <IsMouse>false</IsMouse>
    <Name>ATRAK Device #1</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>4</DeviceID>
    <EnumerationPos>2</EnumerationPos>
    <IsJoystick>true</IsJoystick>
    <IsMouse>false</IsMouse>
    <Name>Controller (XBOX 360 For Windows)</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>1</DeviceID>
    <EnumerationPos>3</EnumerationPos>
    <IsJoystick>true</IsJoystick>
    <IsMouse>false</IsMouse>
    <Name>Ultimarc Ultra-Stik Player 2</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>3</DeviceID>
    <EnumerationPos>4</EnumerationPos>
    <IsJoystick>true</IsJoystick>
    <IsMouse>false</IsMouse>
    <Name>UHID Gamepad Device #1</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>5</EnumerationPos>
    <IsJoystick>true</IsJoystick>
    <IsMouse>false</IsMouse>
    <Name>Ultimarc Ultra-Stik Player 1</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>10</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name i:nil="true" />
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>9</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_D209_PID_0502_MI_01#8_24588317_0_0000#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>8</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_046D_PID_C52B_MI_01_Col01#7_b4c835b_0_0000#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>7</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_D209_PID_0501_MI_01#8_3a7f8b52_0_0000#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>6</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_D209_PID_1601_MI_02#7_6f69e7b_0_0000#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>5</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_D209_PID_1501_MI_03_Col02#8_1fc8b79d_0_0001#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>4</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_D209_PID_1501_MI_03_Col01#8_1fc8b79d_0_0000#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>3</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_D209_PID_0301_MI_01#9_a81f0c9_0_0000#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>2</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name>HID#VID_1241_PID_1111#7_36822904_0_0000#</Name>
  </ControllerEntry>
  <ControllerEntry>
    <DeviceID>0</DeviceID>
    <EnumerationPos>1</EnumerationPos>
    <IsJoystick>false</IsJoystick>
    <IsMouse>true</IsMouse>
    <Name i:nil="true" />
  </ControllerEntry>
</ArrayOfControllerEntry>

My devices are all connected to a 7 port D-Link HUB; I suspect it is the source of two "empty" devices that I believe are confusing the enumeration. Any suggestion?

Thank you.



stigzler

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 656
  • It seemed like a good idea at the time....
    • Mago 20.13
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #217 on: February 20, 2016, 06:35:22 am »
Away from my setup for a while so cant check. However, that xml isnt looking right. Compare it with other cfgs in this topuc.

putto72

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 24
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #218 on: February 20, 2016, 06:58:18 am »
Well, that's what "/save" spits out, I have not touched it...

Endprodukt

  • (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 612
  • I want to build my own arcade controls!
Re: New ControllerRemap utility, 7/11/13 update available (Version 0.0.11)
« Reply #219 on: April 20, 2016, 03:05:03 pm »
I can't setup my Spinners correctly. They should use the spot "Dial Analog" in the default config but will not be bound to them in MAME. Controller Port says DIAL only, might that be a problem? Changing it to P1_DIAL_ANALOG didn't help though.

Looking at the Defaul Config (launched by RemapGUI) it will change the Guns correctly but Spinner 1, Spinner 2 and Trackball are all set to Mouse 1.

Here is my ctrl.cfg:

Code: [Select]
<mameconfig version="10">
  <controlleralias>
    <id>keyboard</id>
    <alias>keyboard</alias>
  </controlleralias>
  <controlleralias>
    <id>HID#VID_D209_PID_1601_MI_02#9_375eebb1</id>
    <alias>Gun 1 Mouse</alias>
  </controlleralias>
  <controlleralias>
    <id>HID#VID_D209_PID_1602_MI_02#a_2d683b22</id>
    <alias>Gun 2 Mouse</alias>
  </controlleralias>
  <controlleralias>
    <id>HID#VID_1241_PID_1111#8_1933e90a</id>
    <alias>Spinner 2</alias>
  </controlleralias>
  <controlleralias>
    <id>HID#VID_D209_PID_15A1#8_1d39b884</id>
    <alias>Trackball</alias>
  </controlleralias>
  <controlleralias>
    <id>ATRAK Device #1</id>
    <alias>Gun 1 Pad</alias>
  </controlleralias>
  <controlleralias>
    <id>ATRAK Device #2</id>
    <alias>Gun 2 PAD</alias>
  </controlleralias>
  <controlleralias>
    <id>HID#VID_1241_PID_1111#8_2bed99af</id>
    <alias>Spinner 1</alias>
  </controlleralias>
  <system name="default">
    <controller id="keyboard">
      <input>
        <port type="P1_JOYSTICK_UP">
          <newseq type="standard">KEYCODE_UP</newseq>
        </port>
        <port type="P1_JOYSTICK_DOWN">
          <newseq type="standard">KEYCODE_DOWN</newseq>
        </port>
        <port type="P1_JOYSTICK_LEFT">
          <newseq type="standard">KEYCODE_LEFT</newseq>
        </port>
        <port type="P1_JOYSTICK_RIGHT">
          <newseq type="standard">KEYCODE_RIGHT</newseq>
        </port>
        <port type="P1_JOYSTICKRIGHT_UP">
          <newseq type="standard">KEYCODE_UP</newseq>
        </port>
        <port type="P1_JOYSTICKRIGHT_DOWN">
          <newseq type="standard">KEYCODE_DOWN</newseq>
        </port>
        <port type="P1_JOYSTICKRIGHT_LEFT">
          <newseq type="standard">KEYCODE_LEFT</newseq>
        </port>
        <port type="P1_JOYSTICKRIGHT_RIGHT">
          <newseq type="standard">KEYCODE_RIGHT</newseq>
        </port>
        <port type="P1_JOYSTICKLEFT_UP">
          <newseq type="standard">KEYCODE_Q</newseq>
        </port>
        <port type="P1_JOYSTICKLEFT_DOWN">
          <newseq type="standard">KEYCODE_W</newseq>
        </port>
        <port type="P1_JOYSTICKLEFT_LEFT">
          <newseq type="standard">KEYCODE_E</newseq>
        </port>
        <port type="P1_JOYSTICKLEFT_RIGHT">
          <newseq type="standard">KEYCODE_R</newseq>
        </port>
        <port type="P1_BUTTON2">
          <newseq type="standard">KEYCODE_S</newseq>
        </port>
        <port type="P1_BUTTON3">
          <newseq type="standard">KEYCODE_D</newseq>
        </port>
        <port type="P1_BUTTON4">
          <newseq type="standard">KEYCODE_Z</newseq>
        </port>
        <port type="P1_BUTTON5">
          <newseq type="standard">KEYCODE_X</newseq>
        </port>
        <port type="P1_BUTTON6">
          <newseq type="standard">KEYCODE_C</newseq>
        </port>
        <port type="P1_BUTTON7">
          <newseq type="standard">KEYCODE_F</newseq>
        </port>
        <port type="P1_BUTTON8">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON9">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON10">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON11">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON12">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON13">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON14">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON15">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P1_BUTTON16">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P2_JOYSTICK_UP">
          <newseq type="standard">KEYCODE_8PAD</newseq>
        </port>
        <port type="P2_JOYSTICK_DOWN">
          <newseq type="standard">KEYCODE_5PAD</newseq>
        </port>
        <port type="P2_JOYSTICK_LEFT">
          <newseq type="standard">KEYCODE_4PAD</newseq>
        </port>
        <port type="P2_JOYSTICK_RIGHT">
          <newseq type="standard">KEYCODE_6PAD</newseq>
        </port>
        <port type="P2_JOYSTICKRIGHT_UP">
          <newseq type="standard">KEYCODE_T</newseq>
        </port>
        <port type="P2_JOYSTICKRIGHT_DOWN">
          <newseq type="standard">KEYCODE_Y</newseq>
        </port>
        <port type="P2_JOYSTICKRIGHT_LEFT">
          <newseq type="standard">KEYCODE_U</newseq>
        </port>
        <port type="P2_JOYSTICKRIGHT_RIGHT">
          <newseq type="standard">KEYCODE_I</newseq>
        </port>
        <port type="P2_JOYSTICKLEFT_UP">
          <newseq type="standard">KEYCODE_8PAD</newseq>
        </port>
        <port type="P2_JOYSTICKLEFT_DOWN">
          <newseq type="standard">KEYCODE_5PAD</newseq>
        </port>
        <port type="P2_JOYSTICKLEFT_LEFT">
          <newseq type="standard">KEYCODE_4PAD</newseq>
        </port>
        <port type="P2_JOYSTICKLEFT_RIGHT">
          <newseq type="standard">KEYCODE_6PAD</newseq>
        </port>
        <port type="P2_BUTTON2">
          <newseq type="standard">KEYCODE_H</newseq>
        </port>
        <port type="P2_BUTTON3">
          <newseq type="standard">KEYCODE_J</newseq>
        </port>
        <port type="P2_BUTTON4">
          <newseq type="standard">KEYCODE_B</newseq>
        </port>
        <port type="P2_BUTTON5">
          <newseq type="standard">KEYCODE_N</newseq>
        </port>
        <port type="P2_BUTTON6">
          <newseq type="standard">KEYCODE_M</newseq>
        </port>
        <port type="P2_BUTTON7">
          <newseq type="standard">KEYCODE_K</newseq>
        </port>
        <port type="P2_BUTTON8">
          <newseq type="standard">NONE</newseq>
        </port>
        <port type="P3_JOYSTICK_UP">
          <newseq type="standard">KEYCODE_Q</newseq>
        </port>
        <port type="P3_JOYSTICK_DOWN">
          <newseq type="standard">KEYCODE_W</newseq>
        </port>
        <port type="P3_JOYSTICK_LEFT">
          <newseq type="standard">KEYCODE_E</newseq>
        </port>
        <port type="P3_JOYSTICK_RIGHT">
          <newseq type="standard">KEYCODE_R</newseq>
        </port>
        <port type="P3_BUTTON1">
          <newseq type="standard">KEYCODE_1PAD</newseq>
        </port>
        <port type="P3_BUTTON2">
          <newseq type="standard">KEYCODE_2PAD</newseq>
        </port>
        <port type="P3_BUTTON3">
          <newseq type="standard">KEYCODE_3PAD</newseq>
        </port>
        <port type="P3_BUTTON4">
          <newseq type="standard">KEYCODE_0PAD</newseq>
        </port>
        <port type="P4_JOYSTICK_UP">
          <newseq type="standard">KEYCODE_T</newseq>
        </port>
        <port type="P4_JOYSTICK_DOWN">
          <newseq type="standard">KEYCODE_Y</newseq>
        </port>
        <port type="P4_JOYSTICK_LEFT">
          <newseq type="standard">KEYCODE_U</newseq>
        </port>
        <port type="P4_JOYSTICK_RIGHT">
          <newseq type="standard">KEYCODE_I</newseq>
        </port>
        <port type="P4_BUTTON1">
          <newseq type="standard">KEYCODE_SLASHPAD</newseq>
        </port>
        <port type="P4_BUTTON2">
          <newseq type="standard">KEYCODE_ASTERISK</newseq>
        </port>
        <port type="P4_BUTTON3">
          <newseq type="standard">KEYCODE_MINUSPAD</newseq>
        </port>
        <port type="P4_BUTTON4">
          <newseq type="standard">KEYCODE_PLUSPAD</newseq>
        </port>
        <port type="UI_CONFIGURE">
          <newseq type="standard">KEYCODE_5 KEYCODE_DELPAD</newseq>
        </port>
        <port type="UI_PAUSE">
          <newseq type="standard">KEYCODE_DELPAD</newseq>
        </port>
        <port type="P1_BUTTON1">
          <newseq type="standard">KEYCODE_A</newseq>
        </port>
        <port type="P2_BUTTON1">
          <newseq type="standard">KEYCODE_G</newseq>
        </port>
      </input>
    </controller>
    <controller id="Gun 1 Mouse">
      <input>
        <port type="P1_LIGHTGUN_X">
          <newseq type="standard">GUNCODE_5_XAXIS</newseq>
        </port>
        <port type="P1_LIGHTGUN_Y">
          <newseq type="standard">GUNCODE_5_YAXIS</newseq>
        </port>
        <port type="P1_BUTTON1">
          <newseq type="standard">GUNCODE_1_BUTTON1</newseq>
        </port>
      </input>
    </controller>
    <controller id="Gun 2 Mouse">
      <input>
        <port type="P2_LIGHTGUN_X">
          <newseq type="standard">GUNCODE_1_XAXIS</newseq>
        </port>
        <port type="P2_LIGHTGUN_Y">
          <newseq type="standard">GUNCODE_1_YAXIS</newseq>
        </port>
        <port type="P2_BUTTON1">
          <newseq type="standard">GUNCODE_2_BUTTON1</newseq>
        </port>
      </input>
    </controller>
    <controller id="Spinner 2">
      <input>
        <port type="P2_DIAL">
          <newseq type="standard">MOUSECODE_3_XAXIS</newseq>
        </port>
      </input>
    </controller>
    <controller id="Trackball">
      <input>
        <port type="P1_TRACKBALL_X">
          <newseq type="standard">MOUSECODE_2_XAXIS</newseq>
        </port>
        <port type="P2_TRACKBALL_X">
          <newseq type="standard">MOUSECODE_2_XAXIS</newseq>
        </port>
        <port type="P1_TRACKBALL_Y">
          <newseq type="standard">MOUSECODE_2_YAXIS</newseq>
        </port>
        <port type="P2_TRACKBALL_Y">
          <newseq type="standard">MOUSECODE_2_YAXIS</newseq>
        </port>
        <port type="P1_MOUSE_X">
          <newseq type="standard">MOUSECODE_2_XAXIS</newseq>
        </port>
        <port type="P1_MOUSE_Y">
          <newseq type="standard">MOUSECODE_2_YAXIS</newseq>
        </port>
      </input>
    </controller>
    <controller id="Gun 1 Pad">
      <input>
        <port type="P1_BUTTON2">
          <newseq type="standard">JOYCODE_1_BUTTON1</newseq>
        </port>
      </input>
    </controller>
    <controller id="Gun 2 PAD">
      <input>
        <port type="P2_BUTTON2">
          <newseq type="standard">JOYCODE_2_BUTTON1</newseq>
        </port>
      </input>
    </controller>
    <controller id="Spinner 1">
      <input>
        <port type="P1_DIAL">
          <newseq type="standard">MOUSECODE_4_XAXIS</newseq>
        </port>
      </input>
    </controller>
    <input>
      <port type="P1_JOYSTICK_UP">
        <newseq type="standard">KEYCODE_UP</newseq>
      </port>
      <port type="P1_JOYSTICK_DOWN">
        <newseq type="standard">KEYCODE_DOWN</newseq>
      </port>
      <port type="P1_JOYSTICK_LEFT">
        <newseq type="standard">KEYCODE_LEFT</newseq>
      </port>
      <port type="P1_JOYSTICK_RIGHT">
        <newseq type="standard">KEYCODE_RIGHT</newseq>
      </port>
      <port type="P1_JOYSTICKRIGHT_UP">
        <newseq type="standard">KEYCODE_UP</newseq>
      </port>
      <port type="P1_JOYSTICKRIGHT_DOWN">
        <newseq type="standard">KEYCODE_DOWN</newseq>
      </port>
      <port type="P1_JOYSTICKRIGHT_LEFT">
        <newseq type="standard">KEYCODE_LEFT</newseq>
      </port>
      <port type="P1_JOYSTICKRIGHT_RIGHT">
        <newseq type="standard">KEYCODE_RIGHT</newseq>
      </port>
      <port type="P1_JOYSTICKLEFT_UP">
        <newseq type="standard">KEYCODE_Q</newseq>
      </port>
      <port type="P1_JOYSTICKLEFT_DOWN">
        <newseq type="standard">KEYCODE_W</newseq>
      </port>
      <port type="P1_JOYSTICKLEFT_LEFT">
        <newseq type="standard">KEYCODE_E</newseq>
      </port>
      <port type="P1_JOYSTICKLEFT_RIGHT">
        <newseq type="standard">KEYCODE_R</newseq>
      </port>
      <port type="P1_BUTTON2">
        <newseq type="standard">KEYCODE_S OR JOYCODE_1_BUTTON1</newseq>
      </port>
      <port type="P1_BUTTON3">
        <newseq type="standard">KEYCODE_D</newseq>
      </port>
      <port type="P1_BUTTON4">
        <newseq type="standard">KEYCODE_Z</newseq>
      </port>
      <port type="P1_BUTTON5">
        <newseq type="standard">KEYCODE_X</newseq>
      </port>
      <port type="P1_BUTTON6">
        <newseq type="standard">KEYCODE_C</newseq>
      </port>
      <port type="P1_BUTTON7">
        <newseq type="standard">KEYCODE_F</newseq>
      </port>
      <port type="P1_BUTTON8">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON9">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON10">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON11">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON12">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON13">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON14">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON15">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P1_BUTTON16">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P2_JOYSTICK_UP">
        <newseq type="standard">KEYCODE_8PAD</newseq>
      </port>
      <port type="P2_JOYSTICK_DOWN">
        <newseq type="standard">KEYCODE_5PAD</newseq>
      </port>
      <port type="P2_JOYSTICK_LEFT">
        <newseq type="standard">KEYCODE_4PAD</newseq>
      </port>
      <port type="P2_JOYSTICK_RIGHT">
        <newseq type="standard">KEYCODE_6PAD</newseq>
      </port>
      <port type="P2_JOYSTICKRIGHT_UP">
        <newseq type="standard">KEYCODE_T</newseq>
      </port>
      <port type="P2_JOYSTICKRIGHT_DOWN">
        <newseq type="standard">KEYCODE_Y</newseq>
      </port>
      <port type="P2_JOYSTICKRIGHT_LEFT">
        <newseq type="standard">KEYCODE_U</newseq>
      </port>
      <port type="P2_JOYSTICKRIGHT_RIGHT">
        <newseq type="standard">KEYCODE_I</newseq>
      </port>
      <port type="P2_JOYSTICKLEFT_UP">
        <newseq type="standard">KEYCODE_8PAD</newseq>
      </port>
      <port type="P2_JOYSTICKLEFT_DOWN">
        <newseq type="standard">KEYCODE_5PAD</newseq>
      </port>
      <port type="P2_JOYSTICKLEFT_LEFT">
        <newseq type="standard">KEYCODE_4PAD</newseq>
      </port>
      <port type="P2_JOYSTICKLEFT_RIGHT">
        <newseq type="standard">KEYCODE_6PAD</newseq>
      </port>
      <port type="P2_BUTTON2">
        <newseq type="standard">KEYCODE_H OR JOYCODE_2_BUTTON1</newseq>
      </port>
      <port type="P2_BUTTON3">
        <newseq type="standard">KEYCODE_J</newseq>
      </port>
      <port type="P2_BUTTON4">
        <newseq type="standard">KEYCODE_B</newseq>
      </port>
      <port type="P2_BUTTON5">
        <newseq type="standard">KEYCODE_N</newseq>
      </port>
      <port type="P2_BUTTON6">
        <newseq type="standard">KEYCODE_M</newseq>
      </port>
      <port type="P2_BUTTON7">
        <newseq type="standard">KEYCODE_K</newseq>
      </port>
      <port type="P2_BUTTON8">
        <newseq type="standard">NONE</newseq>
      </port>
      <port type="P3_JOYSTICK_UP">
        <newseq type="standard">KEYCODE_Q</newseq>
      </port>
      <port type="P3_JOYSTICK_DOWN">
        <newseq type="standard">KEYCODE_W</newseq>
      </port>
      <port type="P3_JOYSTICK_LEFT">
        <newseq type="standard">KEYCODE_E</newseq>
      </port>
      <port type="P3_JOYSTICK_RIGHT">
        <newseq type="standard">KEYCODE_R</newseq>
      </port>
      <port type="P3_BUTTON1">
        <newseq type="standard">KEYCODE_1PAD</newseq>
      </port>
      <port type="P3_BUTTON2">
        <newseq type="standard">KEYCODE_2PAD</newseq>
      </port>
      <port type="P3_BUTTON3">
        <newseq type="standard">KEYCODE_3PAD</newseq>
      </port>
      <port type="P3_BUTTON4">
        <newseq type="standard">KEYCODE_0PAD</newseq>
      </port>
      <port type="P4_JOYSTICK_UP">
        <newseq type="standard">KEYCODE_T</newseq>
      </port>
      <port type="P4_JOYSTICK_DOWN">
        <newseq type="standard">KEYCODE_Y</newseq>
      </port>
      <port type="P4_JOYSTICK_LEFT">
        <newseq type="standard">KEYCODE_U</newseq>
      </port>
      <port type="P4_JOYSTICK_RIGHT">
        <newseq type="standard">KEYCODE_I</newseq>
      </port>
      <port type="P4_BUTTON1">
        <newseq type="standard">KEYCODE_SLASHPAD</newseq>
      </port>
      <port type="P4_BUTTON2">
        <newseq type="standard">KEYCODE_ASTERISK</newseq>
      </port>
      <port type="P4_BUTTON3">
        <newseq type="standard">KEYCODE_MINUSPAD</newseq>
      </port>
      <port type="P4_BUTTON4">
        <newseq type="standard">KEYCODE_PLUSPAD</newseq>
      </port>
      <port type="UI_CONFIGURE">
        <newseq type="standard">KEYCODE_5 KEYCODE_DELPAD</newseq>
      </port>
      <port type="UI_PAUSE">
        <newseq type="standard">KEYCODE_DELPAD</newseq>
      </port>
      <port type="P1_BUTTON1">
        <newseq type="standard">KEYCODE_A OR GUNCODE_2_BUTTON1</newseq>
      </port>
      <port type="P2_BUTTON1">
        <newseq type="standard">KEYCODE_G OR GUNCODE_5_BUTTON1</newseq>
      </port>
      <port type="P1_LIGHTGUN_X">
        <newseq type="standard">GUNCODE_2_XAXIS</newseq>
      </port>
      <port type="P1_LIGHTGUN_Y">
        <newseq type="standard">GUNCODE_2_YAXIS</newseq>
      </port>
      <port type="P2_LIGHTGUN_X">
        <newseq type="standard">GUNCODE_5_XAXIS</newseq>
      </port>
      <port type="P2_LIGHTGUN_Y">
        <newseq type="standard">GUNCODE_5_YAXIS</newseq>
      </port>
      <port type="P2_DIAL">
        <newseq type="standard">MOUSECODE_4_XAXIS</newseq>
      </port>
    </input>
  </system>
</mameconfig>

  
 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31