|
Joined: Jun 2017
Posts: 50
Member
|
Member
Joined: Jun 2017
Posts: 50 |
Last edited by MusicLovr; 12/28/19 09:58 PM.
|
|
|
|
Joined: Feb 2004
Posts: 2,622 Likes: 326
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,622 Likes: 326 |
I added exactly one attribute to the -listxml output that's necessary for a front-end to properly deal with slot cards that enable software lists (e.g. Acorn "tube" devices, Spectrum DOS expansions, WafaDrive, etc.), and provided a reference implementation for showing available software lists for a given slot configuration, and discovering a suitable configuration to run a given piece of software. It's very rare that I change the -listxml at all, and I try to avoid changing existing parts because it can break front-ends. Unfortunately qmc2 seems to be upset by the unrecognised attribute I added.
If you want to keep using qmc2, you need to update or keep using an old version of MAME with it. If you don't update it, you'll still be missing out on support for software lists enabled by slot cards. Prior to 0.217, MAME was not providing the necessary information, and using it effectively will require UI work.
|
|
|
|
Joined: Jun 2017
Posts: 50
Member
|
Member
Joined: Jun 2017
Posts: 50 |
I'm sure you strive not to break the front ends. And I understand this is sometimes impossible.
We should be grateful that that QMC2 worked so well, for 21 months, without support.
Thank you for the infos. And as always, respect for the mamedev team!
Last edited by MusicLovr; 12/29/19 04:59 PM.
|
|
|
|
Joined: Feb 2007
Posts: 507
Senior Member
|
Senior Member
Joined: Feb 2007
Posts: 507 |
The problem was introduced by a commit by AJR. In infoxml.cpp on line 1954 tag is output before name for the software list entry: out << util::string_format("\t\t<softwarelist tag=\"%s\" name=\"%s\" status=\"%s\"", normalize_string(newtag.c_str()), normalize_string(swlist.list_name().c_str()), swlist.is_original() ? "original" : "compatible"); This order is also not consistent with the DTD: <!ELEMENT softwarelist EMPTY>
<!ATTLIST softwarelist name CDATA #REQUIRED>
<!ATTLIST softwarelist tag CDATA #REQUIRED>
<!ATTLIST softwarelist status (original|compatible) #REQUIRED>
<!ATTLIST softwarelist filter CDATA #IMPLIED>
qmc2 relies on name being the first attribute after softwarelist. Exchanging the order fixes the issue. I will commit the fix shortly.
|
|
|
|
Joined: Mar 2001
Posts: 17,247 Likes: 265
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,247 Likes: 265 |
That's great, couriersud!
|
|
|
|
Joined: Jun 2017
Posts: 50
Member
|
Member
Joined: Jun 2017
Posts: 50 |
Yes, fantastic! A HUGE thanks! (and apologies to Vas Crabb  )
Last edited by MusicLovr; 12/30/19 05:36 PM.
|
|
|
|
Joined: Feb 2004
Posts: 2,622 Likes: 326
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,622 Likes: 326 |
That's absurd - attributes are order-insensitive. Any compliant DTD validator (e.g. xmllint) accepts the XML as-is. If you're going to change it though, flip the order in the DTD around. The tag is the identifier.
|
|
|
|
Joined: Feb 2007
Posts: 507
Senior Member
|
Senior Member
Joined: Feb 2007
Posts: 507 |
Vas, academically your are right. Your recent commit is academically right. Everything is right now. Understood. Unfortunately your latest commit again kills QMC2 software lists again.
Rene can't fix it. I don't have access to the sourceforge repository. I don't have time for such academic topics as well.
Please, you have access to the QMC2 repository. Please fix it if for academic purposes you break it again.
|
|
|
|
Joined: Mar 2001
Posts: 17,247 Likes: 265
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,247 Likes: 265 |
That's absurd - attributes are order-insensitive. Any compliant DTD validator (e.g. xmllint) accepts the XML as-is. If you're going to change it though, flip the order in the DTD around. The tag is the identifier. There is also no harm done or technical debt incurred to MAME or the XML standard to output things in the order QMC2 expects.
|
|
|
|
Joined: Feb 2004
Posts: 2,622 Likes: 326
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,622 Likes: 326 |
Fuck me, this code is terrible. It isn't even an XML parser, it’s doing string matching for specific tags. It's so fragile it’s ridiculous.
|
|
|
1 members (Revenant),
206
guests, and
1
robot. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,344
Posts122,328
Members5,077
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|