Jump to content
LaunchBox Community Forums

Windows 10 keeps changing controller id's for MAME


darrenmarchand

Recommended Posts

I figured out on my own a way easier way. Just make default.cfg read only, or if you have specific cfgs for each game make each one of them read only. If you ever need to make changes just uncheck read only make the changes and then make it read only again. Works very well. 

Link to comment
Share on other sites

I've tested it with all 4 contollers and it al seems to be working with the settings i have. I may be able to leave it as is. It could mess up when i introduce the wheel, but i guess for now, its functioning properly. I'm going to turn the pc off a couple times to be sure Mame isnt losing the setup.

thx for all the help 

  • Like 1
Link to comment
Share on other sites

12 hours ago, Jayinem said:

I figured out on my own a way easier way. Just make default.cfg read only, or if you have specific cfgs for each game make each one of them read only. If you ever need to make changes just uncheck read only make the changes and then make it read only again. Works very well. 

i had been doing that too. it won't work. Windows still eventually changes it.

Link to comment
Share on other sites

1 hour ago, darrenmarchand said:

i had been doing that too. it won't work. Windows still eventually changes it.

Windows has a horrible setup for controller numbers but Windows doesn't actually change it, It's MAME that does. And it does work to use read only I've done it for a year and I have a steering wheel, arcade stick and regular controller and all still work. 

Edited by Jayinem
Link to comment
Share on other sites

On 5/4/2021 at 7:39 PM, JoeViking245 said:

(I deleted and moved some stuff for readability here.  DO NOT DELETE ANYTHING LIKE I DID)


<mapdevice device="Generic   USB  Joystick"                             controller="JOYCODE_1" />
<mapdevice device="Generic   USB  Joystick"                             controller="JOYCODE_2" />
<mapdevice device="Xinmotek Controller device id: Xinmotek Controller"  controller="JOYCODE_3" />
<mapdevice device="XInput Player 1 device id: XInput Player 1"          controller="JOYCODE_4" /> 

<port type="P1_JOYSTICK_UP">
  <newseq type="standard">
    JOYCODE_1_YAXIS_UP_SWITCH OR JOYCODE_2_YAXIS_UP_SWITCH OR JOYCODE_4_YAXIS_UP_SWITCH OR JOYCODE_5_YAXIS_UP_SWITCH
  </newseq>

1st 4 lines show "JOYCODE_1"   "JOYCODE_2"   "JOYCODE_3"   "JOYCODE_4"   (note: 1, 2, 3, 4)

The 2nd to last line here references JOYCODE_1, 2, 4, 5  (note: 1, 2, 4, 5)

So when you tested this, it probably didn't work for the last 2 controllers correctly.

Based on what I'm seeing, the 1st 4 lines should point to 1, 2, 4, 5   OR   (less likely)  the 2nd to last line needs to reference 1, 2, 3, 4.

 

So. its messed up again! i shut the PC down and unplugged the usb hub where all the joysticks are connected, and when i booted  up and started Mame, it rearranged the sticks and buttons. I had shut the PC down a few days ago and nothing changed then. Is it because i unplugged this time?

Link to comment
Share on other sites

@darrenmarchand May I see what your verbose output looks like (with at least your 4 main controllers plugged in and on.. if not everything, including wheel etc.)?

Open Windows Command Prompt and navigate to your MAME main folder.  At the prompt, type 

mame.exe -v >dmList.txt

(change mame.exe to mame64.exe if needed)

After the MAME main window gets fully loaded, Exit MAME.  (don't be tempted to play games. ;))

Drag and drop the new "dmList.txt" file that it created into your reply here.

Link to comment
Share on other sites

1 hour ago, JoeViking245 said:

@darrenmarchand May I see what your verbose output looks like (with at least your 4 main controllers plugged in and on.. if not everything, including wheel etc.)?

Open Windows Command Prompt and navigate to your MAME main folder.  At the prompt, type 


mame.exe -v >dmList.txt

(change mame.exe to mame64.exe if needed)

After the MAME main window gets fully loaded, Exit MAME.  (don't be tempted to play games. ;))

Drag and drop the new "dmList.txt" file that it created into your reply here.

just fyi. I did redo the default.cfg and copied it again to the ctrlr folder. i also changed the contoller numbers to 1,2,3,4 as you mentioned earlier. i haven't rebooted the PC or unplugged any contollers again.

dmList.txt

Link to comment
Share on other sites

@darrenmarchand It looks like it loaded your 2 Generic USB Joystick's like it was supposed to.

image.thumb.png.904faa16d5daffde1b30151567dcecd8.png

(note: "joycode #0" shown here is your "JOYCODE_1".  "joycode #1" is your "JOYCODE_2")

 

Looking again at your zerodelay_x2.cfg file, I think you need to revise the lines for Kinmotek and XInput.  For those 2, remove the stuff before (and including) "Device id: "

image.thumb.png.45b5fbfaf527d4a4bbf089ce6fff52a7.png

after:

image.thumb.png.21923f8e0492110d37fb85bb7974841a.png

Moral of the story, put in the devices ID info, but not "Device id: ". ;) 

Link to comment
Share on other sites

5 hours ago, JoeViking245 said:

@darrenmarchand It looks like it loaded your 2 Generic USB Joystick's like it was supposed to.

image.thumb.png.904faa16d5daffde1b30151567dcecd8.png

(note: "joycode #0" shown here is your "JOYCODE_1".  "joycode #1" is your "JOYCODE_2")

 

Looking again at your zerodelay_x2.cfg file, I think you need to revise the lines for Kinmotek and XInput.  For those 2, remove the stuff before (and including) "Device id: "

image.thumb.png.45b5fbfaf527d4a4bbf089ce6fff52a7.png

after:

image.thumb.png.21923f8e0492110d37fb85bb7974841a.png

Moral of the story, put in the devices ID info, but not "Device id: ". ;) 

Thanks. Do i need to re-copy those 2 lines after making the changes to default.cfg? 

Link to comment
Share on other sites

13 minutes ago, darrenmarchand said:

Do i need to re-copy those 2 lines after making the changes to default.cfg? 

Just fix those 2 lines in whatever file you're loading your controllers with.  According to the verbose out you showed in 'dmList.txt', you're using "zerodelay_x2.cfg" to load your controllers.  So change them in there.

I'm guessing in your mame.ini file, you have listed under # CORE INPUT OPTIONS...   "ctrlr             zerodelay_x2".  If you have that in there AND you're trying to make changes to default.cfg, you're you're going to have a real tough time troubleshooting.

Link to comment
Share on other sites

Oh sorry. I may not have typed that correctly.  I meant after changing those 2 lines in zerodelay_x2 , do I copy and paste those changes into default.cfg? 

 

For the second part, I don't follow. Yes, I have "core input options ctrlr zerodelay_cfg. Isn't that what I'm supposed to have? Then after setting the controllers in Mame I copy default.cfg to the ctrlr folder. After that, I shouldn't need to make anymore changes to the general controls, right?

Link to comment
Share on other sites

27 minutes ago, darrenmarchand said:

Then after setting the controllers in Mame I copy default.cfg to the ctrlr folder. After that, I shouldn't need to make anymore changes to the general controls, right?

From the other post I linked... 

- In the ‘../MAME/cfg’ folder, copy “default.cfg” and paste it into the ‘../MAME/ctrlr/’ folder.  From here you can rename it to something like “MyControls.cfg”.

It probably have said "... you should rename it..".  Which I assume is what you did.  Renamed it to "zerodelay_x2" because that's what your mame.ini is looking for.  (I'm guessing you mistyped when you just now wrote "zerodelay_cfg" [vs "zerodelay_x2"?]).   Whichever it is, make sure it's name is the same as what's in your mame.ini.

So it's now copied into the ctrlr folder, is properly renamed... now insert the "<mapdevice device=" lines just as you did before [but with those corrections noted above].

Link to comment
Share on other sites

28 minutes ago, JoeViking245 said:

From the other post I linked... 

- In the ‘../MAME/cfg’ folder, copy “default.cfg” and paste it into the ‘../MAME/ctrlr/’ folder.  From here you can rename it to something like “MyControls.cfg”.

It probably have said "... you should rename it..".  Which I assume is what you did.  Renamed it to "zerodelay_x2" because that's what your mame.ini is looking for.  (I'm guessing you mistyped when you just now wrote "zerodelay_cfg" [vs "zerodelay_x2"?]).   Whichever it is, make sure it's name is the same as what's in your mame.ini.

So it's now copied into the ctrlr folder, is properly renamed... now insert the "<mapdevice device=" lines just as you did before [but with those corrections noted above].

Oh. I didn't rename default.cfg the first time around. I have default.cfg AND zerodelay_x2 in the ctrl folder. With mame.ini pointing to zerodelay_x2. So I'll rename default.cfg and have mame.ini point to that now.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...