Jump to content
LaunchBox Community Forums

Best Method to Update MAME


PanteraZombie

Recommended Posts

Is there currently a recommended method to update your MAME collection within LaunchBox that will save your custom configs and media etc? And is there a certain recommended MAME set (merged/non-merged/split) that makes future updates easier? I have been using merged sets... but would I be correct in saying that using non-merged would make it easier for updates so I could just overwrite or add updated rom sets? With my last MAME update, I just completely removed (backed up) MAME and used LaunchBox's MAME importer for a fresh install... but was pretty tedious to copy back over any custom configs and media, and I lost my favorites...

Link to comment
Share on other sites

 

On 9/12/2024 at 6:00 PM, PanteraZombie said:

Is there currently a recommended method to update your MAME collection within LaunchBox that will save your custom configs and media etc? And is there a certain recommended MAME set (merged/non-merged/split) that makes future updates easier? I have been using merged sets... but would I be correct in saying that using non-merged would make it easier for updates so I could just overwrite or add updated rom sets? With my last MAME update, I just completely removed (backed up) MAME and used LaunchBox's MAME importer for a fresh install... but was pretty tedious to copy back over any custom configs and media, and I lost my favorites...

There are two aspects here.  1) updating MAME with new sets  2) updating LB to reflect new MAME sets. 

For #1: the set type isn't as critical as long as consistent in type you are updating.  I personally use a split set but for #2 (discussed below) LB doesn't care (merged, split, non-merged) as the Mame Fullset importer uses MAME's XML metadata to make pointers to the games as doesn't really "import" the roms like for other platforms (again assuming not manually importing and using LB MAME Full set Importer).  There are ways to update the sets which can provide more detail if that was your question but assume it is more for the LB portion. 

For #2 (and this is assuming just Arcade set, not Software List MAME set): 

  • Always make backup of metadata via LB interface before doing import in case you have to revert
  • The only "sure" way to keep customization is to do initial import via automated way, do your customization,  then do manual per game import for any new games you want to add thereafter (i.e., drag and drop rom into LB window) and never using Fullset importer again.
  • If delete MAME games from LB and do fullset import, all data will be back to "zero" and revert to MAME XML metadata provided by MAME team and all customization lost (and back to what you had where have to redo). To see the MAME metadata fields you can look in the Launchbox\Metadata\Mame.XML file. 
  • If do not delete MAME games from LB and import over top via fullset importer, any customization to metadata not in MAME XML will be retained as long as ROM file name stays same.  Custom Fields will also be retained. Most times ROM names (at least for arcade) are relatively static so the ROM name changes are not usually a huge issue.  Fields like Favorites, Hidden, Broken, Video URL,  Star Rating, and Wikipedia entry will also be retained as not in the MAME metadata set.  However, will lose changes to fields like Genre, Play Mode, Developer, Publisher, Version, Title with what the MAME team has in their metadata. For example MAME likes to put in names like "Aero Fighters 3 / Sonic Wings 3". If you change that and then do subsequent import it will revert back to the "MAME way". 
  • If file name of ROM changes then as far as LB is concerned it will be "new" and although it may match via LB DB entry (via name) any customization will be lost. 
  • If do import and then do a LB "Update Metadata and Media Wizard" then LB will look to the LB online DB and will replace data based on what you tell it.  However, just like any changes you make if you then subsequently do a Fullset MAME import the LB online DB data will be overwritten back to the MAME XML metadata.  Genre is perfect example, where you can see this as MAME uses genres like "Platform / Fighter Scrolling" where as LB DB will use one entry like Platform.

Ideally what would be useful for LB is if we could "lock" fields and/or prioritize if data present do not change similar to other platforms (for various legit reasons it is different for MAME now). But for moment, metadata customization is problematic with MAME. 

  • Like 1
  • Game On 1
Link to comment
Share on other sites

Really appreciate the explanation! That all makes sense. I was just curious to see how people are keeping their MAME sets in LaunchBox up-to-date without losing custom changes made... wasn't sure if there was an easier route than how I did it. I have put a request feature in for a MAME update wizard, something similar to the import wizard. It would be great if LaunchBox knows what current version of MAME you have, and you can tell it what version you're updating to... while going through a set of prompts telling what you want to do with the previous metadata/media etc. 

The reason I asked if I should switch over to non-merged sets, due to them being all stand-alone self-contained roms, is if I could just download the update rom sets and add-to/overwrite my original full set and just keep updating using the update rom sets going forward. What I was wondering is if doing that, I could just use the "Scan for added arcade roms" tool... and afterwards "Scan for removed arcade roms". That way it would maintain my current games with all of their configs and media, but only scan in new metadata/media for the new additions.

What reason did you decide to use the split rom set? Am I right in thinking the non-merged set would be easier for updating... or would split be better? I've never went the route to grab the update rom sets yet, so I'm not even sure which sets those would update.

Link to comment
Share on other sites

13 hours ago, PanteraZombie said:

Really appreciate the explanation! That all makes sense. I was just curious to see how people are keeping their MAME sets in LaunchBox up-to-date without losing custom changes made... wasn't sure if there was an easier route than how I did it. I have put a request feature in for a MAME update wizard, something similar to the import wizard. It would be great if LaunchBox knows what current version of MAME you have, and you can tell it what version you're updating to... while going through a set of prompts telling what you want to do with the previous metadata/media etc. 

The reason I asked if I should switch over to non-merged sets, due to them being all stand-alone self-contained roms, is if I could just download the update rom sets and add-to/overwrite my original full set and just keep updating using the update rom sets going forward. What I was wondering is if doing that, I could just use the "Scan for added arcade roms" tool... and afterwards "Scan for removed arcade roms". That way it would maintain my current games with all of their configs and media, but only scan in new metadata/media for the new additions.

What reason did you decide to use the split rom set? Am I right in thinking the non-merged set would be easier for updating... or would split be better? I've never went the route to grab the update rom sets yet, so I'm not even sure which sets those would update.

Updating MAME sets (i.e., #1 above) is usually easiest if using tool like TorrentCheck.  You go to Pleasuredome Git Hub, download the Torrent file for your set type (you have to start a temp Torrent as they use magnet links, then stop torrent).  Take downloaded torrent file and drop into Torrentcheck, point TorrentCheck to your MAME set and run it. It will rename (if tell it to) files if checksum matches, double check valid files and leave them, delete non-valid ROMs no longer in set (will backup if tell it to).  Then you can rejoin torrent pointing to the folder and will only download deltas for that set.  Easier than messing with CLRMAME Pro and update packs (for me).  If you are completely downloading a full non-merged set each time and nuking your folder with fully updated then could do as proposed (with no Torrentcheck stuff).  However, if downloading an UPDATE only set (i.e., not full non-merged) and overwriting your existing set will work MOST times.  What you will get eventually is rom files that are stragglers.  The reason is MAME does rename things so even with a non-merged set you could have an older ROM name in folder which won't get removed along with the new name. It won't hurt anything as these are fully standalone zip game files, but longer term could get confusing. Although bandwidth is less issue these days a split set tends to have less delta changes.  For example, if un-merged and one driver change could cascade to multiple standalone zip game files whereas with split and to degree merged will be less zips to update.  I also use split for both software and arcade simply because can easily see the clone zip files and it is slightly smaller than non-merged to download.  If bandwidth and HD storage not issue and not concerned that have a lot more zip files (as shows all clones) then un-merged can be easiest. 

 

Scan for new ROMs should work assuming you have pointed your MAME platform folder to your ROMs directory. 

Screenshot2024-09-15154040.thumb.png.8754c695cc8cf4179a8f841692cffdad.png

You can test by deleting a game in LB or putting a "new" dummy rom in your MAME rom folder.  If do a scan LB will pick up that game zip and re-add it. If you have auto import turned on then LB will see the new dummy zip and add it.  So you could do initial full set import, make your customization, then only depend on scanning for new ROMs for updates vs using fullset MAME importer tool.

As for,  "Scan for Removed MAME Roms" feature that should be avoided regardless of set as LB will delete CHD games and a few "no zip" games.  LB puts in dummy rom pointers in pathing of the game for some CHDs without a corresponding ROM zip but the ROM doesn't physically exist (speaking ROM not the CHD file itself). If you scan for removed ROMs, LB simply looks to "is ROM there are not" and will suggest to delete the game as there is no zip file in the ROMs directory (it is the CHD file).  There are some other oddballs like "Pong" which has no direct ROM file which will also get deleted if use this scan/remove feature. Example: all these games exist/work in MAME and shouldn't be removed:

Screenshot2024-09-15154716.thumb.png.61db483a3d39f555b5ee15c3bef17d34.png

Edited by sundogak
  • Like 1
Link to comment
Share on other sites

Hi there,

 

I chose to keep mine as simple as possible and used the merged set approach with the first full set download, then run updates monthly per my document in thread below. This guide still works with at least up to LB 13.15. Will know about 13.16 when the next MAME update comes out.

 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...