EMULAB Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

The new forum is online, hope you enjoy it!

Pages: [1] 2   Go Down

Author Topic: MESS and software lists  (Read 31270 times)

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
MESS and software lists
« on: 28 April 2010, 09:00 »

Hi Roman.

In the past few weeks, we have added in MESS support for software lists (in xml format). In other words, MESS is now including software info (in xml format) like MAME does, in addition to bios info.

Software lists currently work as follows:

* -listxml output now has a <softwarelist> item for systems which supports xml lists (as if it's a device for the system)
* a new command, -listsoftware allows to either export all the supported xml lists (if launched as mess.exe -listsoftware) or a single xml list for a given system (if launched as e.g. mess.exe pokemini -listsoftware)

Notice that the xml structure is basically a simplified version of the  MAME one (see http://git.redump.net/cgit.cgi/mess/tree/hash/softwarelist.dtd )

Now, let me move to the point of this post: is there any hope to see clrmame directly support our lists [1]? and if so, is there anything we can do to help you with your side of the work? e.g. would it be eaier if all lists appear in the main listxml output? or would you prefer the current approach where we leave lists as a separate output?

A possible setup might be:

- clrmame runs mess -lx
- then, it parses the output looking for <softwarelist>
- finally, it offers to the user the choice of using one of the lists to rebuild or scan a directory (and the actual xml to be used can be called by running again mess with "system -listsoftware" parameter)

Alternatively, clrmame might create profiles for each of the software lists, when it parses the listxml output... or even ask the user if he wants to import the software list...

Not knowing the inner structure of clrmame, I have no idea if any of the proposals fits clrmame architecture, but I would be interested to know if there is any hope for this.

Regards

[1] I think it's already possible (but I haven't tried) to use our xml to produce a clrmame dat for the specific systems, by using logiqx tools... but it's a procedure which is a bit too complicate, compared to how easy is to scan MESS bioses and MAME romsets
Logged


Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #1 on: 28 April 2010, 09:26 »

You got a mess binary handy to play with? One which supports the additional commands?
....and of course you can always use XSLT to transform the software list into something readable ;)


ah...got one...hmm...I will have a look at it...but don't count on it...
« Last Edit: 28 April 2010, 17:24 by Roman »
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #2 on: 29 April 2010, 09:48 »

hmm...ok...got a latest SVN build but using the commands only print out an empty list....I guess the real software list data is kept externally and will be included there if available....do you have some test data to play with?
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #3 on: 29 April 2010, 09:59 »

that's because bobz prebuilt exe do not includes the hash/ directory. sorry, I hadn't thought to that.

you can take the current lists from

http://git.redump.net/cgit.cgi/mess/tree/hash/

notice that you have to take the xml files, not the hsi, and put them in the hash/ directory. not all the lists are currently supported (even if I'm working on that, and probably tomorrow most of them will be supported). I suggest you to take scv.xml, pv1000.xml and ibmpcjr_cart.xml to test.

thanks for looking into this
« Last Edit: 29 April 2010, 10:02 by etabeta »
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #4 on: 29 April 2010, 11:44 »

hmm...still no luck with it...all I get is (besides of the !ELEMENT stuff)

<softwarelists>
        <softwarelist name="ibmpcjr_cart">
        </softwarelist>
</softwarelists>
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Mac OS X 10.6.3 Mac OS X 10.6.3
  • Browser:
  • Safari 4.0.5 Safari 4.0.5
    • View Profile
Re: MESS and software lists
« Reply #5 on: 29 April 2010, 12:07 »

mmm... here, if

1. I take the exe from http://bobz38.free.fr/mess_autobuild/index.php
2. download ibmpcjr_cart.xml from the git repository
3. put ibmpcjr_cart.xml in hash/ (after creating the directory)
4. launch mess -listsoftware or mess ibmpcjr -listsoftware

it works... going to investigate some more...

EDIT: I confirm that the above procedure should work. the only things I can think of to cause your problems are: you downloaded by mistake ibmpcjr.hsi in place of ibmpcjr_cart.xml, or you have some different hashpath set in your mess.ini. I suggest to try in a new folder to exclude the latter possibility
« Last Edit: 29 April 2010, 12:27 by etabeta »
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #6 on: 29 April 2010, 17:37 »

no go....

D:\temp\mess>mess ibmpcjr -listsoftware
<?xml version="1.0"?>
<!ELEMENT softwarelists (softwarelist*)
        <!ELEMENT softwarelist (software+)>
                <!ATTLIST softwarelist name CDATA #REQUIRED>
                <!ATTLIST softwarelist description CDATA #IMPLIED>
                <!ELEMENT software (description, year?, publisher, 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 part (dataarea*)>
                                <!ATTLIST part name CDATA #REQUIRED>
                                <!ATTLIST part interface CDATA #REQUIRED>
                                <!ATTLIST part feature 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 #IMPLIE
D>
                                                <!ATTLIST rom size CDATA #REQUIR
ED>
                                                <!ATTLIST rom crc CDATA #IMPLIED
>
                                                <!ATTLIST rom md5 CDATA #IMPLIED
>
                                                <!ATTLIST rom sha1 CDATA #IMPLIE
D>
                                                <!ATTLIST rom offset CDATA #IMPL
IED>
                                                <!ATTLIST rom status (baddump|no
dump|good) "good">
                                                <!ATTLIST rom loadflag (load16_b
yte|load16_word|load16_word_swap|load32_byte|load32_word|load32_word_swap|load32
_dword|load64_word|load64_word_swap|reload) #IMPLIED>
<softwarelists>
        <softwarelist name="ibmpcjr_cart">
        </softwarelist>
</softwarelists>
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #7 on: 29 April 2010, 17:52 »

does your mess.ini contain the correct hashpath? that kind of result usually points towards a missing xml list, but then it should not even show the name="ibmpcjr_cart"... it's so weird...

does the ibmpcjr_cart.xml file contain all these pieces:

http://git.redump.net/cgit.cgi/mess/plain/hash/ibmpcjr_cart.xml  ?

at my end, it works like a charm with the procedure above (I tried again from scratch on my setup, winxp 32bit, and it also works on macosx 10.6 32&64 bit with self compiled executable). I really have no idea what the source of your problems could be...
« Last Edit: 29 April 2010, 17:55 by etabeta »
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #8 on: 29 April 2010, 18:05 »

ok..got it working now
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #9 on: 29 April 2010, 18:48 »

great! :)
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Mac OS X 10.6.3 Mac OS X 10.6.3
  • Browser:
  • Safari 4.0.5 Safari 4.0.5
    • View Profile
Re: MESS and software lists
« Reply #10 on: 03 May 2010, 12:33 »

sorry if I reply to my own post, but I wanted to point out that now all the xml lists (but 32x) are hooked up to the correspondent drivers. in other words, if you need more testcases, you can choose any available xml file, put it in the hash directory you created and it will be recognized :)
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #11 on: 04 May 2010, 19:20 »

hmm...well...currently I only see a chance to support them as a xml file, i.e. you need to create the xml for the softwarelist yourself and then you can load it in the profiler similar to other dats...

<softwarelists>
   <softwarelist name= ..../>
</....>

hmm....I guess I will also only support one softwarelist in softwarelists.....
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Mac OS X 10.6.3 Mac OS X 10.6.3
  • Browser:
  • Safari 4.0.5 Safari 4.0.5
    • View Profile
Re: MESS and software lists
« Reply #12 on: 04 May 2010, 23:21 »

for sure it would be a good start and it would make my work way easier (whenever I want to rebuild one of the lists, I currently have to convert lists to use MAME-like fields and then to convert it through datutil and finally load the dat in clrmame ;) )

notice that we currently

1. do not define a specific DOCTYPE
2. use cloneof only without romsof (and this is probably not going to change)

is anything of the above a problem for clrmame?

also, would you need any specific change to the xml format (or to the dtd) to make easier the support? or is there anything else which could allow (or help) further integration between our lists and clrmame (except hiring you to do this as a full time job ;) )?

in any case, thanks to have looked into the thing :)
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #13 on: 05 May 2010, 10:39 »

you got a software list handy with cloneof statements? The url http://git.redump.net/cgit.cgi/mess/plain/hash seems to be down at the moment
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Mac OS X 10.6.3 Mac OS X 10.6.3
  • Browser:
  • Safari 4.0.5 Safari 4.0.5
    • View Profile
Re: MESS and software lists
« Reply #14 on: 05 May 2010, 11:09 »

here you can find the whole bunch of softlists (~1MB)

http://mamedev.emulab.it/etabeta/fast/files/roman_xml.zip

plenty of examples both in small lists and in larger ones. notice, though, that most of the parent/clone relations in current lists do not imply shared roms (due to most cart dumps consisting of a single file); things will change with NES which will support separate prg & chr files and which will feature many clones using the chr file of the parent with a clone-specific prg file like parent-clones in MAME (even if MAME xml also adds romof in this case, while we don't, to differentiate the presence of a bios parent). I can provide a sample of this (not yet ready) NES list, if needed.
« Last Edit: 05 May 2010, 11:10 by etabeta »
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #15 on: 05 May 2010, 18:08 »

ok...hashfile works in profiler, -listsoftware output works also... however I found something weird looking in ibmpcjr_cart:

<rom name="basic.bin" size="32768" crc="8fc2a724" sha1="216915e954d393e42a30d1eb8666371439dcbd38" offset="0"/>
<rom size="32768" offset="8000" loadflag="reload" />

the second rom tag doesn't hold any name......any comment on this? Should this mean to load the same rom again at a different offset?
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Mac OS X 10.6.3 Mac OS X 10.6.3
  • Browser:
  • Safari 4.0.5 Safari 4.0.5
    • View Profile
Re: MESS and software lists
« Reply #16 on: 05 May 2010, 18:57 »

apparently yes, even if I hadn't noticed that such a case could occur: that code is supposed to reload the same rom in the new offset (at loading time, softwarelists "dataarea" are transformed into MAME rom regions, and various MAME flags might apply).

I think that, even if more flags could be added later, you can safely assume that only <rom> with a name corresponds to separate rom entries to be built in a set...
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #17 on: 05 May 2010, 18:59 »

ok...but cmpro will show a warning for the rom without name then.....
Logged

etabeta

  • Karma: 0
  • Offline Offline
  • Posts: 111
  • Operating System:
  • Mac OS X 10.6.3 Mac OS X 10.6.3
  • Browser:
  • Safari 4.0.5 Safari 4.0.5
    • View Profile
Re: MESS and software lists
« Reply #18 on: 05 May 2010, 19:04 »

fine with me, as long as you can say "yes to all" when the first warning appears ;)
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 112
  • Offline Offline
  • Posts: 3287
  • Operating System:
  • Windows 7 Windows 7
  • Browser:
  • Firefox 3.6.3 Firefox 3.6.3
    • View Profile
Re: MESS and software lists
« Reply #19 on: 05 May 2010, 19:10 »

hehe...no...it will show that for each rom...but actually I can switch that off for softwarelists...
Logged
Pages: [1] 2   Go Up
 

Page created in 0.11 seconds with 20 queries.

anything