qmc2 / qmc2-mame-fe

QMC2 - M.A.M.E. Catalog / Launcher II
40 stars 3 forks source link

ROMAlyser does not shows why romset is incorrect when device rom is missing #18

Closed blikblum closed 2 years ago

blikblum commented 2 years ago

When a romset is complete but depends on a device which at least a rom is missing, the romset is show as incorrect

Running ROMAlyser in the romset list its own roms as correct but does not hint why the state is incorrect

As an example look at ibm5170 romset which depends on ega device. When ega is missing, ibm5170 state is incorrect but ROMAlyser does not hint why is incorrect.

Below is the ROMAlyser log:

20:32:10.136: analysis started
20:32:10.217: determining list of sets to analyze
20:32:10.217: done (determining list of sets to analyze)
20:32:10.219: 1 set to analyze
20:32:10.219: analyzing 'ibm5170'
20:32:10.220: parsing XML data for 'ibm5170'
20:32:10.225: done (parsing XML data for 'ibm5170')
20:32:10.227: checking 11 files for 'ibm5170'
20:32:10.231: loading '6181028.u27' with CRC 'f6573f2a' from 'F:/roms/arcade/mame/ibm5170.zip' as '6181028.u27'
20:32:10.234: loading '6181029.u47' with CRC '7075fbb2' from 'F:/roms/arcade/mame/ibm5170.zip' as '6181029.u47'
20:32:10.239: loading '6480090.u27' with CRC '99703aa9' from 'F:/roms/arcade/mame/ibm5170.zip' as '6480090.u27'
20:32:10.244: loading '6480091.u47' with CRC '013ef44b' from 'F:/roms/arcade/mame/ibm5170.zip' as '6480091.u47'
20:32:10.250: loading '5170_even_u27_ 27256.bin' with CRC '6790392d' from 'F:/roms/arcade/mame/ibm5170.zip' as '5170_even_u27_ 27256.bin'
20:32:10.255: loading '5170_odd_u47_ 27256.bin' with CRC '4c0f3db4' from 'F:/roms/arcade/mame/ibm5170.zip' as '5170_odd_u47_ 27256.bin'
20:32:10.260: loading '1501824_717750.mmipal14l4.u87.jed' with CRC '3c819a27' from 'F:/roms/arcade/mame/ibm5170.zip' as '1501824_717750.mmipal14l4.u87.jed'
20:32:10.264: loading '1503135_705075.mmipal14l4.u130.jed' with CRC 'aac77198' from 'F:/roms/arcade/mame/ibm5170.zip' as '1503135_705075.mmipal14l4.u130.jed'
20:32:10.270: WARNING: unable to identify '1503085.mmipal.u14.jed' from 'F:/roms/arcade/mame/ibm5170.zip' by CRC (no dump exists / CRC unknown)
20:32:10.275: loading '1501814.82s123an.u115' with CRC '849c9217' from 'F:/roms/arcade/mame/ibm5170.zip' as '1501814.82s123an.u115'
20:32:10.279: loading '55x8041.82s147an.u72' with CRC 'f2cc4fe6' from 'F:/roms/arcade/mame/ibm5170.zip' as '55x8041.82s147an.u72'
20:32:10.281: done (checking 11 files for 'ibm5170')
20:32:10.281: done (analyzing 'ibm5170')
20:32:10.282: 0 sets remaining
20:32:10.287: analysis ended - elapsed time = 00:00:00.151

Below is mame -verifyroms ibm5170

C:\bin\emu\mame0243b_64bit>mame.exe -verifyroms ibm5170
ibm5170     : 1503085.mmipal.u14.jed (2048 bytes) - NOT FOUND - NO GOOD DUMP KNOWN
ibm5170     : 1503033.bin (2048 bytes) - NOT FOUND (at_keybc)
ibm5170     : yan25d05.bin (2048 bytes) - NOT FOUND (at_keybc)
ibm5170     : keyboard_1.5.bin (2048 bytes) - NOT FOUND (at_keybc)
ibm5170     : 6277356.u44 (16384 bytes) - NOT FOUND (ega)
ibm5170     : 143-03.bin (8192 bytes) - NOT FOUND (ega)
ibm5170     : 143-02.bin (8192 bytes) - NOT FOUND (ega)
ibm5170     : 1503099.m5 (1024 bytes) - NOT FOUND (kb_pcat84)
romset ibm5170 is bad
1 romsets found, 0 were OK.

Below is xml entry

<machine name="ibm5170">
    <description>PC/AT 5170</description>
    <year>1984</year>
    <manufacturer>International Business Machines</manufacturer>
    <rom name="6181028.u27" size="32768" crc="f6573f2a" sha1="3e52cfa6a6a62b4e8576f4fe076c858c220e6c1a"/>
    <rom name="6181029.u47" size="32768" crc="7075fbb2" sha1="a7b885cfd38710c9bc509da1e3ba9b543a2760be"/>
    <rom name="6480090.u27" size="32768" crc="99703aa9" sha1="18022e93a0412c8477e58f8c61a87718a0b9ab0e"/>
    <rom name="6480091.u47" size="32768" crc="013ef44b" sha1="bfa15d2180a1902cb6d38c6eed3740f5617afd16"/>
    <rom name="5170_even_u27_ 27256.bin" size="32768" crc="6790392d" sha1="c4a5310341f346dd072d096152060ef5e4430a7f"/>
    <rom name="5170_odd_u47_ 27256.bin" size="32768" crc="4c0f3db4" sha1="97a0cf589b93551ed1d03bd622cbc8fd5634512f"/>
    <rom name="1501824_717750.mmipal14l4.u87.jed" size="743" crc="3c819a27" sha1="d2f4889e628dbbef50b7f48cb1d1a313232bacc8"/>
    <rom name="1503135_705075.mmipal14l4.u130.jed" size="743" crc="aac77198" sha1="b318da3a1fbe5402836c1b548e231e0794d0c032"/>
    <rom name="1503085.mmipal.u14.jed" size="2048" status="nodump"/>
    <rom name="1501814.82s123an.u115" size="32" crc="849c9217" sha1="2955ae1705c3b59170f1373f99b3ea5c174c4544"/>
    <rom name="55x8041.82s147an.u72" size="512" crc="f2cc4fe6" sha1="e285468516bd05083155a8a272583deef655315a"/>
    <device_ref name="i80286"/>
    <device_ref name="at_mb"/>
    <device_ref name="pit8254"/>
    <device_ref name="pit_counter"/>
    <device_ref name="pit_counter"/>
    <device_ref name="pit_counter"/>
    <device_ref name="am9517a"/>
    <device_ref name="am9517a"/>
    <device_ref name="pic8259"/>
    <device_ref name="pic8259"/>
    <device_ref name="isa16"/>
    <device_ref name="mc146818"/>
    <device_ref name="speaker"/>
    <device_ref name="speaker_sound_device"/>
    <device_ref name="at_keybc"/>
    <device_ref name="i8042ah"/>
    <device_ref name="software_list"/>
    <device_ref name="software_list"/>
    <device_ref name="software_list"/>
    <device_ref name="software_list"/>
    <device_ref name="software_list"/>
    <device_ref name="isa16_slot"/>
    <device_ref name="ega"/>
    <device_ref name="screen"/>
    <device_ref name="palette"/>
    <device_ref name="crtc_ega"/>
    <device_ref name="isa16_slot"/>
    <device_ref name="isa8_fdc_at"/>
    <device_ref name="upd765a"/>
    <device_ref name="floppy_connector"/>
    <device_ref name="floppy_35_hd"/>
    <device_ref name="speaker"/>
    <device_ref name="flopsnd"/>
    <device_ref name="floppy_connector"/>
    <device_ref name="floppy_35_hd"/>
    <device_ref name="speaker"/>
    <device_ref name="flopsnd"/>
    <device_ref name="isa16_slot"/>
    <device_ref name="isa_com_at"/>
    <device_ref name="ns16450"/>
    <device_ref name="ns16450"/>
    <device_ref name="rs232"/>
    <device_ref name="rs232_mouse_hle_logitech"/>
    <device_ref name="rs232"/>
    <device_ref name="isa16_slot"/>
    <device_ref name="isa_ide"/>
    <device_ref name="idectrl"/>
    <device_ref name="ata_slot"/>
    <device_ref name="idehd"/>
    <device_ref name="harddisk_image"/>
    <device_ref name="ata_slot"/>
    <device_ref name="speaker"/>
    <device_ref name="speaker"/>
    <device_ref name="pc_kbdc"/>
    <device_ref name="kb_pcat84"/>
    <device_ref name="i8048"/>
    <device_ref name="ram"/>
</machine>

For completeness, ROMAlyser should walk the device_ref nodes, check if the device is not romless and check if its roms are missing

qmc2 commented 2 years ago

There is an option to find out - clicking the right mouse button on the set reveals that it has 36 referenced devices, which when you analyze THEM (you can do this by selecting the corresponding menu item) shows that "ega" may be missing.

Most of the ROMAlyzer is documented here BTW: https://wiki.batcom-it.net/index.php/The_%27ultimate%27_guide_to_QMC2#Analyzing_sets_with_the_ROMAlyzer

This specific question is (somewhat) answered here.

blikblum commented 2 years ago

There is an option to find out - clicking the right mouse button on the set reveals that it has 36 referenced devices

Thanks. This works for me.

Maybe make this action more visible (or suggesting its usage) when there are device sets or state is incorrect?

This specific question is (somewhat) answered here.

Its different now (as you noted). The romset is marked as incorrect even when have all roms

qmc2 commented 2 years ago

Well, the set IS correct (or "mostly correct") as seen by the ROMAlyzer although "mame -verifyroms" (meanwhile) says that it is incorrect. That's a situation I'm not going to "fix" as it works as expected ;). I see that it may be confusing, but it is caused by a misunderstanding.

blikblum commented 2 years ago

Well, the set IS correct (or "mostly correct") as seen by the ROMAlyzer although "mame -verifyroms" (meanwhile) says that it is incorrect

The issue for me is "fixed" so can be closed but such romsets (with device missing roms) are reported by QMC as incorrect both in the GUI (red icon) and in ROM Status report. This creates the discrepancy because initially ROMAlyser reports as correct, only after verifying devices, ROMAlyser detects the incorrect status

qmc2 commented 2 years ago

Yes, "the GUI (red icon) and the ROM Status report" use the "-verifyroms" output, whereas the ROMAlyzer has its own way of considering a ROM set, also because it has to "manage" the set(s). They are completely different parts of the process working in two different ways.