EMULAB Forum

clrmamepro [English] => clrmame Discussion => Topic started by: redshift on 22 May 2012, 23:34

Title: software lists and subfolders
Post by: redshift on 22 May 2012, 23:34
Aloha,
I have a question about MESS software lists and subfolders.  Is there an easy way to set up my folders so that the BIOS and devices go in a root folder, e.g. ROMS\MESS, and then each software list gets rebuilt into a subfolder corresponding to its name?
I don't see any easy way to do that from the "Systems" dialogue.  Currently CMP rebuilds everything to the same directory.  And the Auto-Assign button assigns the same folder to every software list.  Am I missing something obvious here?  Or do I manually need to create a subfolder for each system?
Thanks in advance! :)
Title: Re: software lists and subfolders
Post by: Roman on 23 May 2012, 06:28
well, first you need to decide which method you prefer:

1) X profiles for X sofware lists
2) 1 profile for X software lists

For the first method, you simply load all the software list xmls in the profiler as a batch (select them all, hit load, then the batcher appears). There (misc tab) you can automatically let cmpro create rompaths for you for each profile.

The second method is different. There you got only 1 profile for many software lists. This mode can be used if you directly import software lists from MAME or MESS (it asks you during import). In this mode you have to use system default paths / separated rompaths for each system/software list. The auto-assign option of course only helps you if you got rompaths setup already and got some files in it. Cmpro tries to assign the rompaths to the systems by looking at the files in the paths and tries to do a best-match assignment. If you got empty rompaths, all paths are assigned to the 1st one. So if you start from scratch with no files for the software lists, you need to go through the assignement hell once....
Title: Re: software lists and subfolders
Post by: redshift on 23 May 2012, 07:24
Thanks Roman for replying.  CMP asked me about software lists when I created a DAT from the MESS executable, so I would like to keep it all in the same profile if possible.

The second method is different. There you got only 1 profile for many software lists. This mode can be used if you directly import software lists from MAME or MESS (it asks you during import). In this mode you have to use system default paths / separated rompaths for each system/software list. The auto-assign option of course only helps you if you got rompaths setup already and got some files in it. Cmpro tries to assign the rompaths to the systems by looking at the files in the paths and tries to do a best-match assignment. If you got empty rompaths, all paths are assigned to the 1st one. So if you start from scratch with no files for the software lists, you need to go through the assignement hell once....

Ideally, I would like to rebuild all the MESS ROMs and software lists from various ROMs I have on my drive.  So following your explanation, would it be enough to create a folder for each list, and then put a dummy ZIP inside each one?  I was thinking of speeding up "assignment hell" a bit by editing the paths in my MESS.cmp, under Misc_SoftwareLists =, i.e.
Code: [Select]
Misc_SoftwareLists =
32x|D:\ROMs\MESS\32x\|0|a2600|D:\ROMs\MESS\a2600\|0|a2600_cass|D:\ROMs\MESS\a2600_cass\|0
etc.
Would that work?

Thanks.
Title: Re: software lists and subfolders
Post by: Roman on 23 May 2012, 09:03
Well...dummy zip isn't enough for the auto assign since cmpro looks at the hashvalues of the single rom files and tries to match the belonging software list...

Of course you can manually edit the .cmp file if that's faster for you.
Title: Re: software lists and subfolders
Post by: redshift on 24 May 2012, 23:33
Okay.... so I wrote myself a little awk script to take care of all the paths.  Or so I thought!  I can edit the MESS.cmp file, and paste the following in:
Code: [Select]
Misc_SoftwareLists =
32x|D:\ROMs\MESS\32x\|0|a2600|D:\ROMs\MESS\a2600\|0|a2600_cass|D:\ROMs\MESS\a2600_cass\|0|a5200|D:\ROMs\MESS\a5200\|0|a7800|D:\ROMs\MESS\a7800\|0|a800|D:\ROMs\MESS\a800\|0|abc1600|D:\ROMs\MESS\abc1600\|0|abc80|D:\ROMs\MESS\abc80\|0|abc800|D:\ROMs\MESS\abc800\|0|abc806|D:\ROMs\MESS\abc806\|0|advision|D:\ROMs\MESS\advision\|0|alice32|D:\ROMs\MESS\alice32\|0|alice90|D:\ROMs\MESS\alice90\|0|apfm1000|D:\ROMs\MESS\apfm1000\|0|apple1|D:\ROMs\MESS\apple1\|0|apple2|D:\ROMs\MESS\apple2\|0|apple2gs|D:\ROMs\MESS\apple2gs\|0|aquarius|D:\ROMs\MESS\aquarius\|0|arcadia|D:\ROMs\MESS\arcadia\|0|astrocde|D:\ROMs\MESS\astrocde\|0|atom|D:\ROMs\MESS\atom\|0|bbcbc|D:\ROMs\MESS\bbcbc\|0|bw2|D:\ROMs\MESS\bw2\|0|c128_cart|D:\ROMs\MESS\c128_cart\|0|c128_flop|D:\ROMs\MESS\c128_flop\|0|c128_rom|D:\ROMs\MESS\c128_rom\|0|c64_cart|D:\ROMs\MESS\c64_cart\|0|c64_flop|D:\ROMs\MESS\c64_flop\|0|casloopy|D:\ROMs\MESS\casloopy\|0|cbm700_cart|D:\ROMs\MESS\cbm700_cart\|0|cd32|D:\ROMs\MESS\cd32\|0|cdi|D:\ROMs\MESS\cdi\|0|cdtv|D:\ROMs\MESS\cdtv\|0|channelf|D:\ROMs\MESS\channelf\|0|coco_cart|D:\ROMs\MESS\coco_cart\|0|coleco|D:\ROMs\MESS\coleco\|0|cpc_cass|D:\ROMs\MESS\cpc_cass\|0|cpc_flop|D:\ROMs\MESS\cpc_flop\|0|crvision|D:\ROMs\MESS\crvision\|0|dim68k|D:\ROMs\MESS\dim68k\|0|einstein|D:\ROMs\MESS\einstein\|0|famicon_flop|D:\ROMs\MESS\famicon_flop\|0|fm77av|D:\ROMs\MESS\fm77av\|0|fm7_cass|D:\ROMs\MESS\fm7_cass\|0|fm7_disk|D:\ROMs\MESS\fm7_disk\|0|gameboy|D:\ROMs\MESS\gameboy\|0|gamecom|D:\ROMs\MESS\gamecom\|0|gamegear|D:\ROMs\MESS\gamegear\|0|gamepock|D:\ROMs\MESS\gamepock\|0|gba|D:\ROMs\MESS\gba\|0|gbcolor|D:\ROMs\MESS\gbcolor\|0|gmaster|D:\ROMs\MESS\gmaster\|0|gx4000|D:\ROMs\MESS\gx4000\|0|ibm5140|D:\ROMs\MESS\ibm5140\|0|ibm5150|D:\ROMs\MESS\ibm5150\|0|ibm5170|D:\ROMs\MESS\ibm5170\|0|ibmpcjr_cart|D:\ROMs\MESS\ibmpcjr_cart\|0|ibmpcjr_flop|D:\ROMs\MESS\ibmpcjr_flop\|0|intv|D:\ROMs\MESS\intv\|0|intvecs|D:\ROMs\MESS\intvecs\|0|iq151_cart|D:\ROMs\MESS\iq151_cart\|0|iq151_flop|D:\ROMs\MESS\iq151_flop\|0|jaguar|D:\ROMs\MESS\jaguar\|0|juicebox|D:\ROMs\MESS\juicebox\|0|kc_cart|D:\ROMs\MESS\kc_cart\|0|kc_cass|D:\ROMs\MESS\kc_cass\|0|kc_flop|D:\ROMs\MESS\kc_flop\|0|lisa|D:\ROMs\MESS\lisa\|0|lisa2|D:\ROMs\MESS\lisa2\|0|lynx|D:\ROMs\MESS\lynx\|0|m5|D:\ROMs\MESS\m5\|0|mac_flop|D:\ROMs\MESS\mac_flop\|0|mac_hdd|D:\ROMs\MESS\mac_hdd\|0|mbc55x|D:\ROMs\MESS\mbc55x\|0|megacd|D:\ROMs\MESS\megacd\|0|megacdj|D:\ROMs\MESS\megacdj\|0|megadriv|D:\ROMs\MESS\megadriv\|0|megaduck|D:\ROMs\MESS\megaduck\|0|megapc|D:\ROMs\MESS\megapc\|0|mpz80|D:\ROMs\MESS\mpz80\|0|msx1_cart|D:\ROMs\MESS\msx1_cart\|0|msx2_cart|D:\ROMs\MESS\msx2_cart\|0|mz2500|D:\ROMs\MESS\mz2500\|0|n64|D:\ROMs\MESS\n64\|0|neogeo|D:\ROMs\MESS\neogeo\|0|nes|D:\ROMs\MESS\nes\|0|next|D:\ROMs\MESS\next\|0|ngp|D:\ROMs\MESS\ngp\|0|ngpc|D:\ROMs\MESS\ngpc\|0|pasogo|D:\ROMs\MESS\pasogo\|0|pb2000c|D:\ROMs\MESS\pb2000c\|0|pc1512|D:\ROMs\MESS\pc1512\|0|pc1640|D:\ROMs\MESS\pc1640\|0|pc8201|D:\ROMs\MESS\pc8201\|0|pc8801_cass|D:\ROMs\MESS\pc8801_cass\|0|pc8801_flop|D:\ROMs\MESS\pc8801_flop\|0|pc88va|D:\ROMs\MESS\pc88va\|0|pc98|D:\ROMs\MESS\pc98\|0|pce|D:\ROMs\MESS\pce\|0|pcecd|D:\ROMs\MESS\pcecd\|0|pico|D:\ROMs\MESS\pico\|0|pippin_flop|D:\ROMs\MESS\pippin_flop\|0|plus4_cart|D:\ROMs\MESS\plus4_cart\|0|plus4_flop|D:\ROMs\MESS\plus4_flop\|0|pokemini|D:\ROMs\MESS\pokemini\|0|psion|D:\ROMs\MESS\psion\|0|psx|D:\ROMs\MESS\psx\|0|pv1000|D:\ROMs\MESS\pv1000\|0|pv2000|D:\ROMs\MESS\pv2000\|0|ql|D:\ROMs\MESS\ql\|0|rainbow|D:\ROMs\MESS\rainbow\|0|rx78|D:\ROMs\MESS\rx78\|0|sage2|D:\ROMs\MESS\sage2\|0|sat_cart|D:\ROMs\MESS\sat_cart\|0|saturn|D:\ROMs\MESS\saturn\|0|scv|D:\ROMs\MESS\scv\|0|segacd|D:\ROMs\MESS\segacd\|0|sg1000|D:\ROMs\MESS\sg1000\|0|sgx|D:\ROMs\MESS\sgx\|0|smc777|D:\ROMs\MESS\smc777\|0|sms|D:\ROMs\MESS\sms\|0|snes|D:\ROMs\MESS\snes\|0|sorcerer_cart|D:\ROMs\MESS\sorcerer_cart\|0|spectrum|D:\ROMs\MESS\spectrum\|0|st|D:\ROMs\MESS\st\|0|studio2|D:\ROMs\MESS\studio2\|0|super6|D:\ROMs\MESS\super6\|0|supracan|D:\ROMs\MESS\supracan\|0|svi318_cart|D:\ROMs\MESS\svi318_cart\|0|svi318_cass|D:\ROMs\MESS\svi318_cass\|0|svi318_flop|D:\ROMs\MESS\svi318_flop\|0|svision|D:\ROMs\MESS\svision\|0|tandy200|D:\ROMs\MESS\tandy200\|0|tdv2324|D:\ROMs\MESS\tdv2324\|0|tg16|D:\ROMs\MESS\tg16\|0|ti99_cart|D:\ROMs\MESS\ti99_cart\|0|tiki100|D:\ROMs\MESS\tiki100\|0|trs80m2|D:\ROMs\MESS\trs80m2\|0|trsm100|D:\ROMs\MESS\trsm100\|0|tutor|D:\ROMs\MESS\tutor\|0|tvc_cart|D:\ROMs\MESS\tvc_cart\|0|uzebox|D:\ROMs\MESS\uzebox\|0|v1050|D:\ROMs\MESS\v1050\|0|vc4000|D:\ROMs\MESS\vc4000\|0|vectrex|D:\ROMs\MESS\vectrex\|0|vg5k|D:\ROMs\MESS\vg5k\|0|vic10|D:\ROMs\MESS\vic10\|0|vic1001_cart|D:\ROMs\MESS\vic1001_cart\|0|vic1001_flop|D:\ROMs\MESS\vic1001_flop\|0|vidbrain|D:\ROMs\MESS\vidbrain\|0|vii|D:\ROMs\MESS\vii\|0|vixen|D:\ROMs\MESS\vixen\|0|wscolor|D:\ROMs\MESS\wscolor\|0|wswan|D:\ROMs\MESS\wswan\|0|x1_cass|D:\ROMs\MESS\x1_cass\|0|x1_flop|D:\ROMs\MESS\x1_flop\|0|x68k_flop|D:\ROMs\MESS\x68k_flop\|0|xegs|D:\ROMs\MESS\xegs\|0
What a mass of paths :P

However, when I restart CMP, it shows all the paths as <not assigned> and the folder names have been overwritten in the configuration file... :'(  Can you tell me what I am missing here?

Thanks Roman :D
Title: Re: software lists and subfolders
Post by: Roman on 25 May 2012, 07:35
Guess you need to set all related options for systems...most likely these:

Misc_BIOSSets
Misc_SoftwareLists
Misc_StandardBIOSActive
Misc_StandardMechActive
Misc_StandardDeviceActive
Misc_StandardBIOSPath
Misc_StandardMechPath
Misc_StandardDevicePath

Title: Re: software lists and subfolders
Post by: redshift on 26 May 2012, 03:34
Hi Roman,

Misc_BIOSSets

This should only list the BIOS sets, not the software lists, correct?  In my case it is:
Code: [Select]
Misc_BIOSSets = 3do|D:\ROMs\MESS\|1|cd32|D:\ROMs\MESS\|1|cdimono1|D:\ROMs\MESS\|1
I don't mind having these few BIOS sets in my base folder.

Quote
Misc_SoftwareLists

done :)

Quote
Misc_StandardBIOSActive
Misc_StandardMechActive
Misc_StandardDeviceActive

These are just on/off toggles?  How do they relate to the problem I am having?

Quote
Misc_StandardBIOSPath
Misc_StandardMechPath
Misc_StandardDevicePath

The take just one path, not a list, correct?  In my case they read:
Code: [Select]
Misc_StandardBIOSPath = D:\ROMs\MESS\
Misc_StandardMechPath =
Misc_StandardDevicePath = D:\ROMs\MESS\

Thanks again for your help, I'm still confused why it overrides the settings from my MESS.cmp file?

Aloha and have a good weekend :)
Title: Re: software lists and subfolders
Post by: Roman on 26 May 2012, 18:40
I will check it on monday evening. of course dont modify the cmp file while cmpro is running.
Title: Re: software lists and subfolders
Post by: redshift on 28 May 2012, 07:34
Thanks Roman. :) Just to confirm, I always quit CMP before making any changes to the configuration file.
Title: Re: software lists and subfolders
Post by: Roman on 28 May 2012, 21:31
Simply adding the paths in the Misc_SoftwareLists entry works fine here.

I guess your problem is based on 6) Cmpro tries to open the .cmp file in a not-sharable mode and if it fails to open it, it restores defaults...

1) created a new profile based on MAME exe
2) loaded this profile and included software lists
3) after load, quit cmpro
4) created some software lists path, e.g. E:\temp\test\megatech
5) edit belonging .cmp file and set Misc_SoftwareLists = megatech|E:\temp\test\megatech|1|neogeo|*|1|stv|*|1
6) quit the texteditor
7) start cmpro and load profile
Title: Re: software lists and subfolders
Post by: Roman on 29 May 2012, 18:55
I double checked the code and there is no special read/write lock...but it definetly works for me when I got cmpro not running and close the texteditor before I restart cmpro...let me know if that works for you.
Title: Re: software lists and subfolders
Post by: redshift on 30 May 2012, 10:14
Right, I got it working!  Turns out my problem was actually that the systems had all been disabled in the configuration file, e.g.
Code: [Select]
xegs|D:\ROMs\MESS\xegs\|0 when in fact that 0 needed to be a 1.
Once I changed all the 0s to 1s CMP happily accepted my manually edited MESS.cmp...

Thanks Roman for your help and for sticking with me! :)
Title: Re: software lists and subfolders
Post by: Roman on 30 May 2012, 10:46
:O)