EMULAB Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

The new forum is online, hope you enjoy it!

Pages: [1]   Go Down

Author Topic: How can I achieve completely independent rom sets with clrmamepro?  (Read 1848 times)

sTo0z

  • Member
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 3
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile

Originally posted on MAME Reddit: https://www.reddit.com/r/MAME/comments/6uhitk/how_can_i_achieve_completely_independent_rom_sets/

I am working with MAME and romset 0.174.

I am trying to create rom sets that are completely independent of other sets, and have everything they need within their own .zip to run.
I have tried:
* Scanning
* Rebuilding
* Turning OFF/Un-checking "Separate BIOS..."
* Split sets
* Non-merged sets

I don't know what else to do.

An example offender is galaga.zip. I have tried to re-build, scan, fix, and complete this set in every way that I can find. No matter what I do, it refuses to pack in the required Namco files, and thus the rom set cannot run on its own.
Of course I could manually fix this, but that is not a long term or sustainable solution to the potential number of rom sets that face a similar issue.

I can see that other collections that you can find out there have the namco files included in the galaga set, so I know someone is able to do this somewhere, somehow (and I don't think they have done it manually).

Would absolutely love some help on this, I've spent 2 weeks and staring at loading bars for hours and hours trying to figure this out... :)

Thank you, community!
Logged


Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 78
  • Offline Offline
  • Posts: 2634
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile

well...first of all you should check if MAME is still able to load such an independent set, i.e. not separated device sets, not separated bios sets. If not, you can stop ;-)

if MAME still tries to load everything from everywhere as it did in the past you will still be stuck since there is no option to use not-separated devices.

A start would be to rebuild an unmerged set with a disabled "separate bios sets" rebuilderadvanced option out of a full parent/clone/bios set collection.....but then device roms are still missing.....and MAME uses more and more separated devices....

Another approach would be to generate a new datfile out of the -listxml export from MAME....a XSLT transformation wouldn't be too tough which merges everything from everywhere....

I currently see no real need to also add an optional 'separate device roms' enable/disable as I did long time ago for biossets (actually I more see the removal of *that* optional switch).


In the end...in my opinion there is not really a real need to have such "full" sets at all....it's just a pure waste of diskspace ;-)
Logged

sTo0z

  • Member
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 3
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile

Hi Roman,

Thanks so much for the reply.

I guess I don't understand...

If Namco files are meant to be in an external set, and galaga is meant to not include them, what is the appropriate/correct way to load galaga?

If they are meant to be separate, why are other full sets out in the wild including the required namco files inside galaga?
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 78
  • Offline Offline
  • Posts: 2634
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile

You have to differ between some things here...

1st of all, MAME, the emulator. Last time I've looked at the source code I saw that MAME itself does not really care that much where the files required for one specific set are stored. It simply looks in each setup rompath for the setname (.zip or folder) and tries to match romfiles by crc32 match. It also looks in belonging parent set archives, belonging biosset archives and device archives.

2nd of all, cmpro, the audit tool. It checks pretty strictly how files are named and how they are stored. It complains about wrong names, misplaced files etc...

and finally 3rd of all, difference of storing, having a full set and playing. A complete set doesn't necessarily play 100%, there might be emulation problems. Storing methods are more a personal taste but today you find only 2 widely used ones: split merged sets and fully merged sets, both with separated bioses and devices.
Your "not-merged sets approach" (all required files in one set) is absolutely uncommon in the MAME environment.

Let's take "galaga" for example...."galaga" is currently a parent set (not a clone) which uses a lot of devices
<device_ref name="z80"/>
      <device_ref name="z80"/>
      <device_ref name="z80"/>
      <device_ref name="namco51"/>
      <device_ref name="mb8843"/>
      <device_ref name="namco54"/>
      <device_ref name="mb8844"/>
      <device_ref name="namco06"/>
      <device_ref name="watchdog"/>
      <device_ref name="screen"/>
      <device_ref name="gfxdecode"/>
      <device_ref name="palette"/>
      <device_ref name="speaker"/>
      <device_ref name="namco"/>
      <device_ref name="discrete"/>

Some of these devices have files, some other don't. "namco51" for example consists of the file 51xx.bin.

So to play "galaga" in MAME, you need all listed "galaga" rom files:
      <rom name="gg1_1b.3p" size="4096" crc="ab036c9f" sha1="ca7f5da42d4e76fd89bb0b35198a23c01462fbfe" region="maincpu" offset="0"/>
      <rom name="gg1_2b.3m" size="4096" crc="d9232240" sha1="ab202aa259c3d332ef13dfb8fc8580ce2a5a253d" region="maincpu" offset="1000"/>
      <rom name="gg1_3.2m" size="4096" crc="753ce503" sha1="481f443aea3ed3504ec2f3a6bfcf3cd47e2f8f81" region="maincpu" offset="2000"/>
      <rom name="gg1_4b.2l" size="4096" crc="499fcc76" sha1="ddb8b121903646c320939c7d13f4aa4ebb130378" region="maincpu" offset="3000"/>
      <rom name="gg1_5b.3f" size="4096" crc="bb5caae3" sha1="e957a581463caac27bc37ca2e2a90f27e4f62b6f" region="sub" offset="0"/>
      <rom name="gg1_7b.2c" size="4096" crc="d016686b" sha1="44c1a04fba3c7c826ff484185cb881b4b22e6657" region="sub2" offset="0"/>
      <rom name="gg1_9.4l" size="4096" crc="58b2f47c" sha1="62f1279a784ab2f8218c4137c7accda00e6a3490" region="gfx1" offset="0"/>
      <rom name="gg1_11.4d" size="4096" crc="ad447c80" sha1="e697c180178cabd1d32483c5d8889a40633f7857" region="gfx2" offset="0"/>
      <rom name="gg1_10.4f" size="4096" crc="dd6f1afc" sha1="c340ed8c25e0979629a9a1730edc762bd72d0cff" region="gfx2" offset="1000"/>
      <rom name="prom-5.5n" size="32" crc="54603c6b" sha1="1a6dea13b4af155d9cb5b999a75d4f1eb9c71346" region="proms" offset="0"/>
      <rom name="prom-4.2n" size="256" crc="59b6edab" sha1="0281de86c236c88739297ff712e0a4f5c8bf8ab9" region="proms" offset="20"/>
      <rom name="prom-3.1c" size="256" crc="4a04bb6b" sha1="cdd4bc1013f5c11984fdc4fd10e2d2e27120c1e5" region="proms" offset="120"/>
      <rom name="prom-1.1d" size="256" crc="7a2815b4" sha1="085ada18c498fdb18ecedef0ea8fe9217edb7b46" region="namco" offset="0"/>
      <rom name="prom-2.5c" size="256" crc="77245b66" sha1="0c4d0bee858b97632411c440bea6948a74759746" region="namco" offset="100"/>

Plus the referenced device files where 51xx.bin is just one of it.

Nearly the same applies on bios references.


Now why are there sets out in the wild which are "complete"....well....because "galaga" is supported for decades in MAME but the set and organization of the set changed over time.
Separated Device sets (compared to bios references) are rather new. So up to one point in the past the needed file was part of the set, now it isn't anymore.
So instead of having the 51xx.bin set in dozens of namco files, it's better to have it once as a device and the sets reference to this one.

Logged

sTo0z

  • Member
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 3
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile

Completely understood, thanks for that.

I guess I have a lot to learn, I appreciate the detailed info.

In my first approach to MAME, I found and used roms from a "non-merged" set. I was able to simply grab a title (galaga), toss it on my mame setup, and load the game no problem.

Later, I found myself needing other specific set versions, and was able to follow the upgrade process (using your awesome tool), and attempted to get back to "drop the set in there, done" as before.

Reading what you say, and folks like me who don't have all the info and still trying to learn, the definition of "non-merged" is incredibly mis-leading:
Quote
Non-Merged Sets   All rom files will have all the necessary roms to run them.

It makes it sound like you can drop the single set and have it run, no matter what. But what I guess what I've failed to realize, is that the keyword "rom" here does not apply to files such as 50xx.bin. You're saying this file is not a "rom", it is something else, yes?

I guess I liked the idea that if I really wanted to, I could build such a set with automation, where all I would possibly have to ever do is find a single title I want, and copy it over. But now, I'm always going to be potentially troubleshooting every single set I put into my MAME environment, one by one, to see if I've missed some random external set.

Wasted space is truly not an issue, convenience is, but if you're saying I'm off my rocker and this is a very un-common approach, that's fine too. But it's a little strange that others agree and place these files inside sets to make truly independent sets, and I doubt they manually did that, so I was very curious how they did. Maybe not your tool?

Anyways, thanks very much again for the important info, you seem to take a lot of care in your replies, it's great to see.
Logged

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 78
  • Offline Offline
  • Posts: 2634
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile

Well, 50xx.bin is also a "rom" file.... or let's say a dump of an integrated circuit... there are various types, so let's all call them rom now for easiness.
MAME simply started a while back to separte device rom dumps from the sets. A soundchip device dump for example is most likely used by a lot of totally different game sets on the same hardware...so separate it and don't put it in each set.

Full merged sets =  you got 1 archive for the so called parent set and this archive also includes all files belonging to each clone of the game.
Split merged sets = you got 1 archive for the parent set which only holds the files for this parent and one archive for each clone set which only hold the not identical ones compared to the parent
NotMerged Sets = you got one archive for each set (no matter if parent or clone) and each archive holds all files for the specific files. So you got dupes for all commonly shared romfiles in the archives.

Besides of this, BIOS sets and device sets are still separated...

You're fully right if you now say that notmerged sets should contain the bios and device files as well.....but again...notmerged sets are totally uncommon...and so noone really cared about it...and yes,...that includes cmpro....at least at the moment....I will think about the "separate device sets" on/off option
Logged

f205v

  • Member
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 95
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 55.0 Firefox 55.0
    • View Profile
    • EMMA dumping team

Sorry if I jump into someone else discussion.

I, for one, am using regularly "not-merged-set", and updating them regularly at each new MAME version release.
The reason for it is the following: I dump a lot of old PCBs and obviously I need to correctly identify them to see if they are already fully documented or not. One of the tools I use to such an aim is "romcmp.exe".
So I point ROMCMP to compare my newly dumped set against the most likely candidate in the MAME ROMs collection, and usually I get a clone, so if I point it against a "split-set" I only get compares for the few clone ROMs and I do not know if the other ROMs I have dumped REALLY match the parent or not.
If I perform the same procese against a "not-merged-set" I can get (in one single run) a FULL report of matches for the clone I have dumped.

So, if there will be in the future a possibility to have BIOSes and DEVICEs also included into the "not-merged-set" I will be double happy, becuase my job checking dumps will be even more complete and inclusive. And also because I could more easily check if some chips are missing or faulty on the real PCBs I will be checking.

Thanks for listening to my rants.  ;D
Logged
-------------
ciao
f205v

Roman

  • Global Moderator
  • Member
  • ***
  • Karma: 78
  • Offline Offline
  • Posts: 2634
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 60.0.3112.101 Chrome 60.0.3112.101
    • View Profile

thanks for the comment
however, there is a significant difference....bios roms are listed in the sets, device roms are not..only the reference to the device set....so I guess I need to code a bit more ;-)
« Last Edit: 20 August 2017, 18:30 by Roman »
Logged
Pages: [1]   Go Up
 

Page created in 0.181 seconds with 20 queries.