Previous Thread
Next Thread
Print Thread
Page 2 of 5 1 2 3 4 5
Re: 0.217 eliminates a mess [Re: MusicLovr] #116624 12/28/19 09:51 PM
Joined: Jun 2017
Posts: 43
MusicLovr Offline OP
Member
OP Offline
Member
Joined: Jun 2017
Posts: 43
What, you didn't see the sign?:
[Linked Image from c1.neweggimages.com]
laugh crazy laugh

Last edited by MusicLovr; 12/28/19 09:58 PM.
Re: 0.217 eliminates a mess [Re: MusicLovr] #116625 12/29/19 01:32 AM
Joined: Feb 2004
Posts: 2,151
Vas Crabb Offline
Very Senior Member
Offline
Very Senior Member
Joined: Feb 2004
Posts: 2,151
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.

Re: 0.217 eliminates a mess [Re: MusicLovr] #116627 12/29/19 04:55 PM
Joined: Jun 2017
Posts: 43
MusicLovr Offline OP
Member
OP Offline
Member
Joined: Jun 2017
Posts: 43
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.
Re: 0.217 eliminates a mess [Re: MusicLovr] #116628 12/30/19 01:50 PM
Joined: Feb 2007
Posts: 498
C
couriersud Offline
Senior Member
Offline
Senior Member
C
Joined: Feb 2007
Posts: 498
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:

Code
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:

Code
                <!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.

Re: 0.217 eliminates a mess [Re: MusicLovr] #116629 12/30/19 03:31 PM
Joined: Mar 2001
Posts: 16,522
R
R. Belmont Offline
Very Senior Member
Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,522
That's great, couriersud!

Re: 0.217 eliminates a mess [Re: MusicLovr] #116631 12/30/19 05:24 PM
Joined: Jun 2017
Posts: 43
MusicLovr Offline OP
Member
OP Offline
Member
Joined: Jun 2017
Posts: 43
Yes, fantastic! A HUGE thanks!

(and apologies to Vas Crabb confused)

Last edited by MusicLovr; 12/30/19 05:36 PM.
Re: 0.217 eliminates a mess [Re: MusicLovr] #116638 12/31/19 12:54 AM
Joined: Feb 2004
Posts: 2,151
Vas Crabb Offline
Very Senior Member
Offline
Very Senior Member
Joined: Feb 2004
Posts: 2,151
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.

Re: 0.217 eliminates a mess [Re: MusicLovr] #116639 12/31/19 01:44 AM
Joined: Feb 2007
Posts: 498
C
couriersud Offline
Senior Member
Offline
Senior Member
C
Joined: Feb 2007
Posts: 498
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.

Re: 0.217 eliminates a mess [Re: Vas Crabb] #116640 12/31/19 01:56 AM
Joined: Mar 2001
Posts: 16,522
R
R. Belmont Offline
Very Senior Member
Offline
Very Senior Member
R
Joined: Mar 2001
Posts: 16,522
Originally Posted by Vas Crabb
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.

Re: 0.217 eliminates a mess [Re: MusicLovr] #116641 12/31/19 07:28 AM
Joined: Feb 2004
Posts: 2,151
Vas Crabb Offline
Very Senior Member
Offline
Very Senior Member
Joined: Feb 2004
Posts: 2,151
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.

Page 2 of 5 1 2 3 4 5

Moderated by  qmc2 

Who's Online Now
1 registered members (That70sguy), 103 guests, and 2 spiders.
Key: Admin, Global Mod, Mod
ShoutChat Box
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,783
Posts115,563
Members4,908
Most Online890
Jan 17th, 2020
Powered by UBB.threads™ PHP Forum Software 7.7.3