Jump to content
LaunchBox Community Forums
quazl

Question :: MAME Software Lists

Recommended Posts

I have been using No-Intro ROMs for years and have loved them. They are probably the cleanest set out there. As MAME continues becoming "THE" emulator along side RetroArch, I have been collecting the "Software Lists" ROMs. They seems to be more complete, but also named very differently.

Does the Launchbox Games DB recognize the MAME naming scheme for consoles?

Thanks and God Bless!

  • Like 1

Share this post


Link to post
Share on other sites

Hi @quazl, the MAME naming scheme I believe is currently only recognized for arcade platforms. What consoles have you found ROMs for that are using MAME-style file names?

Share this post


Link to post
Share on other sites

I have a whole set of MAME software list roms as of 174 they are basically how you use MESS inside of MAME there are data files that contain all of the info so it would be as easy as having LB parse from those files much like what ever file you use for the MAME list to get the correct name.

Share this post


Link to post
Share on other sites
21 hours ago, Jason Carr said:

Hi @quazl, the MAME naming scheme I believe is currently only recognized for arcade platforms. What consoles have you found ROMs for that are using MAME-style file names?

Like DOS76 says, I think around version 147 or some version around that time, MESS and MAME joined forces (for good hopefully). It used to be called UME, but they dropped that confusion and just absorbed MESS into MAME. They made sure that one could compile out all the "console trash" (as some arcade purist would say) to have an "old-school" MAME.exe.

I am glad the MAME and MESS team did it.

Here is an example of a Nintendo game named in the MAME format in the software lists

1942.zip

I was just curious, if LaunchBox was aware of the software list, I was going to setup a separate LB and see how it looked. I guess I could have just tried it out.

Share this post


Link to post
Share on other sites

I see, duh, of course. Currently there's no support for that, no. That said, it would be easy to add if someone could come up with a good data source (list of file names, platforms, and game titles in Excel, for example).

  • Like 1

Share this post


Link to post
Share on other sites

So I did a little bit of searching and think I have found a good start.

I used these sites for what I have found:

http://www.progettoemma.net/mess/ - This site seems to be in some loose connection to the Official Mame Team, but it is a little bit old.

http://docs.mamedev.org/commandline/commandline-all.html - This is the official help documentation with the commands I used to pull the info

I have attached two archives:

1. Software Lists - It is a folder containing all the info kept by MAME about the software lists separated by which system they are in. This doesn't include any of the systems that require CHD's which is basically images created from cassette tapes or hard drive images. I haven't figures those out yet.

2. Media List -  This is basically a folder containing text files of each system and which file extension that they support. I didn't know if this was helpful, but it was easy to get out of MAME, so I included it.

I also included the batch files for each set of files that I used to make these files.

Here is an excerpt of the Nintendo 64 system's XML file which looks like it might be helpful.

Quote

<?xml version="1.0"?>
<!DOCTYPE softwarelists [
<!ELEMENT softwarelists (softwarelist*)>
 <!ELEMENT softwarelist (software+)>
  <!ATTLIST softwarelist name CDATA #REQUIRED>
  <!ATTLIST softwarelist description CDATA #IMPLIED>
  <!ELEMENT software (description, year, publisher, info*, sharedfeat*, part*)>
   <!ATTLIST software name CDATA #REQUIRED>
   <!ATTLIST software cloneof CDATA #IMPLIED>
   <!ATTLIST software supported (yes|partial|no) "yes">
   <!ELEMENT description (#PCDATA)>
   <!ELEMENT year (#PCDATA)>
   <!ELEMENT publisher (#PCDATA)>
   <!ELEMENT info EMPTY>
    <!ATTLIST info name CDATA #REQUIRED>
    <!ATTLIST info value CDATA #IMPLIED>
   <!ELEMENT sharedfeat EMPTY>
    <!ATTLIST sharedfeat name CDATA #REQUIRED>
    <!ATTLIST sharedfeat value CDATA #IMPLIED>
   <!ELEMENT part (feature*, dataarea*, diskarea*, dipswitch*)>
    <!ATTLIST part name CDATA #REQUIRED>
    <!ATTLIST part interface CDATA #REQUIRED>
    <!ELEMENT feature EMPTY>
     <!ATTLIST feature name CDATA #REQUIRED>
     <!ATTLIST feature value CDATA #IMPLIED>
    <!ELEMENT dataarea (rom*)>
     <!ATTLIST dataarea name CDATA #REQUIRED>
     <!ATTLIST dataarea size CDATA #REQUIRED>
     <!ATTLIST dataarea databits (8|16|32|64) "8">
     <!ATTLIST dataarea endian (big|little) "little">
     <!ELEMENT rom EMPTY>
      <!ATTLIST rom name CDATA #IMPLIED>
      <!ATTLIST rom size CDATA #IMPLIED>
      <!ATTLIST rom length CDATA #IMPLIED>
      <!ATTLIST rom crc CDATA #IMPLIED>
      <!ATTLIST rom sha1 CDATA #IMPLIED>
      <!ATTLIST rom offset CDATA #IMPLIED>
      <!ATTLIST rom value CDATA #IMPLIED>
      <!ATTLIST rom status (baddump|nodump|good) "good">
      <!ATTLIST rom loadflag (load16_byte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32_dword|load64_word|load64_word_swap|reload|fill|continue|reload_plain) #IMPLIED>
    <!ELEMENT diskarea (disk*)>
     <!ATTLIST diskarea name CDATA #REQUIRED>
     <!ELEMENT disk EMPTY>
      <!ATTLIST disk name CDATA #REQUIRED>
      <!ATTLIST disk sha1 CDATA #IMPLIED>
      <!ATTLIST disk status (baddump|nodump|good) "good">
      <!ATTLIST disk writeable (yes|no) "no">
    <!ELEMENT dipswitch (dipvalue*)>
     <!ATTLIST dipswitch name CDATA #REQUIRED>
     <!ATTLIST dipswitch tag CDATA #REQUIRED>
     <!ATTLIST dipswitch mask CDATA #REQUIRED>
     <!ELEMENT dipvalue EMPTY>
      <!ATTLIST dipvalue name CDATA #REQUIRED>
      <!ATTLIST dipvalue value CDATA #REQUIRED>
      <!ATTLIST dipvalue default (yes|no) "no">
]>

<softwarelists>
 <softwarelist name="n64" description="Nintendo 64 cartridges">
  <software name="007goldn">
   <description>007 - GoldenEye (Euro)</description>
   <year>1997</year>
   <publisher>Nintendo</publisher>
   <info name="serial" value="NUS-NGEP-(EUR,AUS)"/>
   <part name="cart" interface="n64_cart">
    <feature name="cart_model" value="NUS-006(EUR)" />
    <dataarea name="rom" size="12582912">
     <rom name="007 - goldeneye (europe).bin" size="12582912" crc="7425ae2d" sha1="63627dba22be2b357c0e370e68dc5af56eeb0a24"/>
    </dataarea>
   </part>
  </software>
  <software name="007goldnj" cloneof="007goldn">
   <description>007 - GoldenEye (Jpn)</description>
   <year>1997</year>
   <publisher>Nintendo</publisher>
   <info name="serial" value="NUS-NGEJ-JPN"/>
   <info name="release" value="19970823"/>
   <info name="alt_title" value="ゴールデンアイ 007"/>
   <part name="cart" interface="n64_cart">
    <dataarea name="rom" size="12582912">
     <rom name="007 - goldeneye (japan).bin" size="12582912" crc="c26fed78" sha1="451b41b63d75677bd42db89a56679208808fcfd0"/>
    </dataarea>
   </part>
  </software>

MediaList.7z

SoftwareLists.7z

Edited by quazl
The Code insert is using too many carriage returns it seems.
  • Like 2

Share this post


Link to post
Share on other sites

Has there been any updates on how this is going.  We have been trying to get something together to help with the scraping on discord the last few evenings... i have came up with a bat file that generates a cmd that allows RA mame (mess) to work, it just won't scrape correctly. Any news on how it works or how we could assist in getting this working would be wonderful... thanks...

  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, Jason Carr said:

This is planned for the MAME-related item from the poll, though no timeline at current.

 

If LaunchBox could gain the capability of associating the MAME set name or software name and base that from the description field, Then that would be an ideal solution as what's in the hash files seems to match the HyperSpin XMLs when it comes to the description field.

 

nes.xml that is located in mame/hash folder

<software name="megaman2u" cloneof="megaman2">
		<description>Mega Man 2 (USA)</description>
		<year>1989</year>
		<publisher>Capcom</publisher>
		<info name="serial" value="NES-XR-USA"/>
		<info name="release" value="198906xx"/>
		<part name="cart" interface="nes_cart">
			<feature name="slot" value="sxrom" />
			<feature name="pcb" value="NES-SGROM" />
			<feature name="mmc1_type" value="MMC1B2" />
			<feature name="pcb_model" value="NES-SGROM-02" />
			<feature name="ic1" value="PRG-ROM" />
			<feature name="ic2" value="CHR-RAM" />
			<feature name="ic3" value="MMC" />
			<feature name="ic4" value="CIC" />
			<feature name="cart_back_label" value="REV-A" />
			<dataarea name="prg" size="262144">
				<rom name="nes-xr-0 prg.ic1" size="262144" crc="0fcfc04d" sha1="2ec08f9341003ded125458df8697ca5ef09d2209" offset="00000" />
			</dataarea>
			<!-- 8k VRAM on cartridge -->
			<dataarea name="vram" size="8192">
			</dataarea>
		</part>
	</software>

HyperSpin nes.xml

<game name="Mega Man 2 (USA)" index="" image="">
		<description>Mega Man 2 (USA)</description>
		<cloneof></cloneof>
		<crc>0FCFC04D</crc>
		<manufacturer>Capcom</manufacturer>
		<year>1989</year>
		<genre>Platform</genre>
		<rating>HSRS - GA (General Audience)</rating>
		<enabled>Yes</enabled>
	</game>

In other words; if the user sets up Nintendo in their LaunchBox to use MAME and software list loading, then the ideal solution here is when LB detects megaman2u.zip or megaman2u.7z, LaunchBox would parse nes.xml and scrape metadata based on the description instead of worrying about how the actual archive is named. Everything would always match their respective XMLs

Edited by Replay

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×