It took me a while to find the reason for this behavior... it's caused by coleco's -lx output which doesn't seem to be fully correct IMHO.
QMC2 needs to know the interface of a device and looks that up from the XML data. When I compare coleco with any other machine I see a colon (:) in front of the interface name:
rene@marvin:~/src/mame-git> ./mame64 coleco -lx | grep "<device type="
<device type="cartridge" tag="cartslot" interface=":coleco_cart">
rene@marvin:~/src/mame-git> ./mame64 a2600 -lx | grep "<device type="
<device type="cartridge" tag="cartslot" mandatory="1" interface="a2600_cart">
<device type="cassette" tag=":cassette" interface="a2600_cass">
However, in the coleco software-list the colon is omitted, so QMC2 can't find a match (and sees no "mount device" because of it):
rene@marvin:~/src/mame-git> ./mame64 -listsoftware coleco | grep "<part name=" | uniq
<part name="cart" interface="coleco_cart">
I don't know if that's a bug in MAME or if it "works as designed". If the latter is true, I would need to ignore the colon as a simple workaround. But as it seems to be the only driver that's doing this I suppose it's not QMC2's fault.I really need feedback about this from some MAME-dev, please!