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
Lightguns Arcade1Up Try the site in https mode Site News

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

  

Author Topic: Control types in gamelists  (Read 5341 times)

0 Members and 1 Guest are viewing this topic.

herg

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 2
  • Last login:February 24, 2015, 02:26:36 pm
Control types in gamelists
« on: December 16, 2011, 10:58:03 am »
I'm building my first cabinet, and I have questions about how controls are handled in gamelists.

Whether I generate a gamelist using MaLa tools or Romlister, the "Input Controls" field is populated with a generic "joy" rather than a more specific "joy4way".  I do see "4-way Joystick" further down in the game metadata.  Is this the normal format for a gamelist?

I'm using retrogui, and it appears to be using the game metadata to choose the controls image to display.  Trackballs and spinners are displayed properly, but joysticks aren't shown at all.  I have used a hex-editor to modify a gamelist entry to change "joy" to "joy4way", and the joystick is displayed properly.

I don't have my Ultrastik 360's yet, but once I do, I'm planning to use the mapper plugin.  From what I understand, it can use a few different methods to choose which map to use.  Is the most common way to use the Input Controls info from the gamelist?  Would metadata as described above cause problems?

After more investigation:
Yes, it does mess with the joystick mapping.
Code: [Select]
EVENT: Game start (ROM: 'joust', CLONE OF: '', CONTROL: 'joy')

_build_mapname: Built map file name: 'D:\MAME\MaLa174\MaLa174\Maps\joust.ugc'
_file_exists: Seeing if file 'D:\MAME\MaLa174\MaLa174\Maps\joust.ugc' exists
_file_exists: 'D:\MAME\MaLa174\MaLa174\Maps\joust.ugc' does not exist
_get_mapname: did not locate rom name map file: 'D:\MAME\MaLa174\MaLa174\Maps\joust.ugc'
_get_mapname: empty cloneof
_get_mapname: locating map by control type: 'joy'
_get_mapname: did not locate control name map file: 'D:\MAME\MaLa174\MaLa174\Maps\joust.ugc'
_build_mapname: Built map file name: 'D:\MAME\MaLa174\MaLa174\Maps\Toler Arcade.ugc'
_file_exists: Seeing if file 'D:\MAME\MaLa174\MaLa174\Maps\Toler Arcade.ugc' exists
_file_exists: 'D:\MAME\MaLa174\MaLa174\Maps\Toler Arcade.ugc' does not exist
_get_mapname: did not locate emulator map file: 'D:\MAME\MaLa174\MaLa174\Maps\Toler Arcade.ugc'
_build_mapname: Built map file name: 'D:\MAME\MaLa174\MaLa174\Maps\default.ugc'
_file_exists: Seeing if file 'D:\MAME\MaLa174\MaLa174\Maps\default.ugc' exists
_file_exists: 'D:\MAME\MaLa174\MaLa174\Maps\default.ugc' does exist
_get_mapname: located default map file: 'D:\MAME\MaLa174\MaLa174\Maps\default.ugc'
_file_exists: Seeing if file 'D:\MAME\MaLa174\MaLa174\Maps\default.ugc' exists
_file_exists: 'D:\MAME\MaLa174\MaLa174\Maps\default.ugc' does exist
_run_ultramap: command line '"C:\Program Files\UltraMap\ultramap.exe" "D:\MAME\MaLa174\MaLa174\Maps\default.ugc" '

... and a another update after solving the problem:
MAME v0.144 changes the format of the xml output.  I used v0.143 to generate the xml file, then ran through all the Romlister stuff, and everything worked.
« Last Edit: December 20, 2011, 11:59:30 am by herg »

NOP

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 916
  • Last login:September 19, 2017, 08:22:27 pm
  • I stole my avatar.
    • winterMAME
Re: Control types in gamelists
« Reply #1 on: December 23, 2011, 09:36:59 am »
sorry for the big delay in responding to this. ok, so I will have to somehow get romlister to now detect the differences in xml versions.  Hopefully it didn't change too drastically, because this is a core-level function of the program.  no ETA, I have lots of things on my plate right now.

thanks for debugging this for us.

swarmster

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 2
  • Last login:May 21, 2013, 01:14:43 am
  • I want to build my own arcade controls!
Re: Control types in gamelists
« Reply #2 on: May 19, 2013, 02:08:48 am »
Hello, and sorry for bumping this old thread, but having just finished my first cabinet (for which this forum was a great help), I can confirm that the issue described above is still present.

I used Romlister to generate some Mala gamelists. Some filtered, others assembled by hand.

mame.xml, controls.ini, and the merged .xml thing romlister created all have the correct information for input control ('joy4way', for example).

"Selected Game Metadata" in Mala reports "Input Control = joy" and then further down, "Controls Used= 4-way Joystick". Of course, what gets read by the Mala layout as well as Ultrastik Mapper is "joy", which causes the layout to be less informative and the controls to not map properly.

Is there a reason why this is happening? The "solution" proposed above seems to be to use an old version of MAME to generate an xml file for my newer version of MAME (0.148). Wouldn't this give me an inaccurate list? And anyway, the xml created by my MAME has the proper control information in it, so I'm not even sure that's where the problem is.

Has anyone else run into this issue? Any chance there's going to be a way to fix it without hand-creating all my .mlg lists again?

Thanks everyone!

NOP

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 916
  • Last login:September 19, 2017, 08:22:27 pm
  • I stole my avatar.
    • winterMAME
Re: Control types in gamelists
« Reply #3 on: May 20, 2013, 05:57:50 pm »
try this one.

http://www.waste.org/~winkles/ROMLister/RomLister28wip10.zip

*** you will need to re-merge your input files.  ***



the problem is that the mame devs change the input descriptors from "input=joy4way" in the xml to something more (or less) descriptive like "input=joy, ways=4" and that breaks RL when searching and then when outputting a list too.  That's why your list only contains the word JOY in it instead of joy4way.

With the above linked version, when creating a merged file I merely check for the new spelling and convert it back to the old spelling.  It's not ideal, but having to release different versions of romlister to match whatever the mame dev's do is also not ideal- there's a lot more of them than there are of me.

please post back here with a yay or nay if it helps.


swarmster

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 2
  • Last login:May 21, 2013, 01:14:43 am
  • I want to build my own arcade controls!
Re: Control types in gamelists
« Reply #4 on: May 21, 2013, 12:57:46 am »
Wow, I certainly didn't expect such an immediate response!

I re-merged and threw a couple games onto a quick list and it seems to work! Thanks!!

I'll report back if I run into any issues as I re-build my lists, but I suspect it'll be fine.

(Although actually, if I could abuse your ear for a second, I'm feeling a feature request coming on. It might be significant work and/or outside the scope of the program, but it would be cool to be able to 'import' existing playlists into your working list in RomLister. Especially if re-saving the list then pulled all the info from a freshly merged xml file. ;))

Thanks again!

dgame

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 620
  • Last login:June 01, 2025, 11:09:55 pm
  • I am no Jedi
Re: Control types in gamelists
« Reply #5 on: May 21, 2013, 12:15:04 pm »
Thanks for the update NOP,

When I merge MAME 148u4 in this 28wip10 version the first game 005 and others are no longer available (Full list of 28554 ROMS).

I do the same merge in ROMLister version 27 and it works (Full list of 28578 ROMs) .

The 005 entry (and others) are in the MAME listxml.xml file but do not get merged into the ROMlister merge file when using 28wip10.

It works with ROMLister version 27 using the same MAME, Catver.ini, controls.xml, and nplayers.ini. Even used the listxml.xml generated through 28wip10.

Note that my full lists totals are different than the official MAME as I have dkongpe and other extra drivers added.
The total is not the issue. It is the difference in the totals between the ROMLister versions that is the concern.

Thanks again for this awesome utility.

NOP

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 916
  • Last login:September 19, 2017, 08:22:27 pm
  • I stole my avatar.
    • winterMAME
Re: Control types in gamelists
« Reply #6 on: May 22, 2013, 12:28:00 am »
huh.
yep, just confirmed the missing 005 here.

That one might be easily explained considering it's the 1st rom in the list. (and stupidly should have caught that bug considering it's the first one in the list!)
That doesn't explain the other 23 missing roms though.    The next issue is finding out what those other roms might be.

I'll look into this shortly.

swarmster - an import list tool has been on the todo list for a long time.  I haven't quite figured out how to do that yet, since I'd want to be able to load in any list that RL can export, since that logically makes the most sense.  Once I get this bug out of the way I think I can work on that a bit. 




dgame

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 620
  • Last login:June 01, 2025, 11:09:55 pm
  • I am no Jedi
Re: Control types in gamelists
« Reply #7 on: May 22, 2013, 05:36:08 pm »
I did a Diff between the merge files and these are the missing entries:
Quote
   Line 9: +      <game name="005" sourcefile="segag80r.c" sampleof="005">
   Line 25130: +   <game name="mie" sourcefile="src/mame/machine/mie.c" isdevice="yes" runnable="no">
   Line 25141: +   <game name="hdd" sourcefile="src/emu/machine/idectrl.c" isdevice="yes" runnable="no">
   Line 25144: +   <game name="bsmt2000" sourcefile="src/emu/sound/bsmt2000.c" isdevice="yes" runnable="no">
   Line 25153: +   <game name="ldv1000" sourcefile="src/emu/machine/ldv1000.c" isdevice="yes" runnable="no">
   Line 25162: +   <game name="h63484" sourcefile="src/emu/video/h63484.c" isdevice="yes" runnable="no">
   Line 25169: +   <game name="namco51" sourcefile="src/mame/machine/namco51.c" isdevice="yes" runnable="no">
   Line 25177: +   <game name="namco50" sourcefile="src/mame/machine/namco50.c" isdevice="yes" runnable="no">
   Line 25185: +   <game name="namco52" sourcefile="src/mame/audio/namco52.c" isdevice="yes" runnable="no">
   Line 25193: +   <game name="namco54" sourcefile="src/mame/audio/namco54.c" isdevice="yes" runnable="no">
   Line 25204: +   <game name="ide_baseboard" sourcefile="src/mame/drivers/chihiro.c" isdevice="yes" runnable="no">
   Line 25207: +   <game name="pr8210" sourcefile="src/emu/machine/ldpr8210.c" isdevice="yes" runnable="no">
   Line 25216: +   <game name="midssio" sourcefile="src/mame/audio/midway.c" isdevice="yes" runnable="no">
   Line 25227: +   <game name="tms32032" sourcefile="src/emu/cpu/tms32031/tms32031.c" isdevice="yes" runnable="no">
   Line 25231: +   <game name="tms32031" sourcefile="src/emu/cpu/tms32031/tms32031.c" isdevice="yes" runnable="no">
   Line 25235: +   <game name="simutrek" sourcefile="src/emu/machine/ldpr8210.c" isdevice="yes" runnable="no">
   Line 25246: +   <game name="namco53" sourcefile="src/mame/machine/namco53.c" isdevice="yes" runnable="no">
   Line 25254: +   <game name="scsi_harddisk" sourcefile="src/emu/machine/nscsi_hd.c" isdevice="yes" runnable="no">
   Line 25262: +   <game name="ncr537xx" sourcefile="src/emu/machine/53c7xx.c" isdevice="yes" runnable="no">
   Line 25265: +   <game name="22vp931" sourcefile="src/emu/machine/ldvp931.c" isdevice="yes" runnable="no">
   Line 25274: +   <game name="namco62" sourcefile="src/mame/machine/namco62.c" isdevice="yes" runnable="no">
   Line 25282: +   <game name="saa5050" sourcefile="src/emu/video/saa5050.c" isdevice="yes" runnable="no">
   Line 25289: +   <game name="m50458" sourcefile="src/emu/video/m50458.c" isdevice="yes" runnable="no">
   Line 25297: +   <game name="mb90082" sourcefile="src/emu/video/mb90082.c" isdevice="yes" runnable="no">

NOP

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 916
  • Last login:September 19, 2017, 08:22:27 pm
  • I stole my avatar.
    • winterMAME
Re: Control types in gamelists
« Reply #8 on: May 22, 2013, 06:31:44 pm »
http://www.waste.org/~winkles/ROMLister/RomLister28wip11.zip

the mystery is solved.

part bug, part feature.

005 was missing purely because it was the first ROM in the xml file.  I scrape off the XML header, and I scraped 1 line too far, which resulted in further queries in the XML to not see the <game name=" tag.

The other missing roms, the ones you've listed for us here, are not actually game roms, but devices.  I've got a thing in romlister now when I look at a game's entry, if the "isdevice=yes" tag is set, those are automatically excluded from the list because they are not really games you'd ever add to your list, because they are not games.  Maybe a bit draconian of me to do that.  if someone can tell me why they would ever want those in a list, I'm all ears.