JoeViking245 Posted September 9, 2019 Share Posted September 9, 2019 (edited) MAME Software Lists Import Tool - plugin View File Use this plugin to filter and import MAME Software Lists into LaunchBox. New - version 6.0 Requires LaunchBox 13.3 or newer* Slightly different look. Same old features. A lot of (behind the scenes) code improvement. This update has been rewritten in .NET 6.0 to “keep up with the times”. *If you’re using LaunchBox version 13.2 or older, download version 4.5 of the plugin. (For now, at least) v4.5 will still work with LaunchBox 13.3 and newer. Features: Import MAME Console/Computer ROMs into a new or existing Platform Import clones as Additional Apps, separately or not at all (Option) Skip Prototypes (Option) Skip Non-Supported ROMs Adds the Platform and Command-line Parameter to the selected MAME emulator (ex. Atari 2600 a2600 -cart) (Option) Copy ROMs to a new folder during importing Imported games tagged as not supported by MAME will be marked as "Broken". (Option) Import only games that exist in your ROMs Source Folder (Option) Ignore games that only have a Title change (when updating) Version information found inside parenthesis in a Games Title will be added to the games "Version" (metadata) Audit Feature: Compare your existing softlist console/Platform against the MAME hash.xml. Will cross check Title and Rom names. - Select the respective hash.xml and Platform - Click Audit (last page) - Any differences along with a brief description will be shown. - Option to select files (if any) and have them removed from your LaunchBox Platform. - Will check main Titles as well as Additional Apps (if you imported them that way). This does NOT check rom integrity. That's between you and Clrmamepro (or related utility). What's needed: (1) dll file included in the zip. MAME Software List hash files (located in the "hash" sub folder of your Mame's main folder) MAME Software List ROMs* and BIOS files (only if you want to actually play them) *The rom set needs to be either a Split set or a Non-Merged set for a full import If you plan to not import clones, any type set will work. What it won't do: Filter/Sort by Region (it's a MAME hash file limitation) Determine if/what BIOS files are needed Import Metadata and Media (just use the built in LaunchBox Tool) To remove extra information from the games titles [Example "(Jpn)"], select Yes, download and replace all existing metadata and media when running the tool.) How to: - Copy the "ImportMameSoftwareLists" folder from the zip file to your ..\LaunchBox\Plugins folder. - Navigate to that folder and unblock the .dll file. (Right click, Properties, and click Unblock) - Start LaunchBox. Click on "Tools" and select "Import MAME Software Lists". - Navigate through the wizard. - After running the plugin, right-click your new platform and select Edit. Set Scrape-as to whatever your platform is and save. Notes: ROM Folder Locations (screen): The Destination Folder is required even if you don't plan to copy the files. It's needed to set up the Application Path for the ROMs when Importing. Copy and/or Import (screen): To add Version info (if it exists in the Games Title) to an existing console (Platform), run the plugin and DO NOT CHECK Ignore games that only have a Title change (when updating) Selecting an emulator: The main intent of this plugin is to import consoles and computers using MAME softlist ROMs and set the games "proper" Title and application path. It will also attempt to add the appropriate Command-line Parameter for the platform in MAME’s Associated Platforms. If you prefer to use an emulator that can load MAME ROMs other than MAME (or a variant there-of), go for it. It’s recommended to select MAME while using the importer, and then change the Default Emulator when done importing. You can select the 'other' emulator in the plugin, and it will be set as the default for the platform. But it will also have the default command line parameters for the associated platform set using MAME parameters. So be sure to adjust as necessary. Importing: (optional) "Import games that only exist in the ROMs Source Folder" If using a Merged softlist set, clones will not get imported using this option. But if you have a curated Split set, this can be handy. (optional) "Ignore games that only have a Title change (when updating)" If you manually renamed your game titles, check this box. Updating: If you’ve updated your MAME emulator and MAME softlist ROMs, simply run the importer and point to the updated hash file and select your existing platform. When updating, this plugin will NOT remove any games from your collection that MAME has removed from the hash file(s). You can use Audit to compare your collection to the MAME hash file and manually remove games from your collection that don't exist in the hash file (if you so desire). Downloading Metadata: After running the plugin, right-click your new platform and select Edit. Set Scrape-as to whatever your platform is and save. When downloading metadata and Media, choose "Yes, download and replace all existing metadata and media". This will remove the Version info from the games Title. After updating the metadata, if some, but not all games got updated, restart LaunchBox and try the bulk metadata downloader again. Auditing: When auditing, if a game originally had the version info in its Title and you have ran the Download Metadata and Media wizard selecting "Yes, download and replace all existing metadata and media", you WILL see games marked as Missing. * MESS xml * Spoiler To see MAME's Overall and Emulation status [Preliminary/Good/Imperfect]in the Import Mame Software Lists plugin, you will need to have the MESS xml file that matches your version of MAME. messxxx.xml (where 'xxx' is the MAME version. i.e. mess215.xml) This file needs to be located in the same folder as the plugin (..\LaunchBox\Plugins\ImportMameSoftwareLists\) and can be download from: https://www.progettosnaps.net/mess/repository/ (July 10,2023 updated site link) These files are [relatively] large (24MB+) and will slow down the screen updates when selecting different consoles/computers. Use "Shrink_MESSxml.exe" to reduce the mess xml file size to a little over 1MB to eliminate slow screen updates. After 1st making a backup, it then removes unneeded data from the xml file. Place only the one 'shrunken' xml file in the plugin folder. ..\LaunchBox\Plugins\ImportMameSoftwareLists\mess242.xml The Import Mame Software Lists plugin will search for "mess*.xml". So as you update, just replace the old xml file (mess242.xml) with the new one (mess243.xml). ONLY HAVE ONE MESS XML FILE IN THE PLUGIN FOLDER AT A TIME! Other Notes: (things I've learned) - Software List folder/file locations: Spoiler For easiest integration with MAME, place all Software List folders inside a single directory (i.e. "software") and name them the same name as their respective hash xml file_name. For example: D:\emulators\MAME\software\ D:\emulators\MAME\software\32x\ D:\emulators\MAME\software\a2600\ D:\emulators\MAME\software\a2600_cass\ D:\emulators\MAME\software\apple2gs\ Now, all you need to add to mame.ini in "rompath" is "software". You don't need to worry about any of the Software List sub-folders. # # CORE SEARCH PATH OPTIONS # homepath . rompath roms;software Assuming you still have both boxes checked ("Don't use quotes..." and "Use File name only..." in the MAME emulator settings, you'll be able to lauch these without problems*. - *Associated Platform Command line parameters Spoiler The command lines that get placed in MAME - Associated Platforms come from hash files. However there are a few that will need to be manually edited. A couple I'm aware of are: Apple 2GS: needs to be changed from "apple2gs -flop1" to "apple2gs -flop3" Sony PlayStation: (though doens't work in MAME) needs to be changed from "psx -cdrm" to "psu -cdrm" (See MAME and CDROMS) SNK NeoGeo CD: For some reason I can only get it work if the command line (neocdz -cdrm) is placed under each games "Emulation" tab in "Use Custom Command-LineParameter". This plugin can help put that in there for you. If someone knows how to get it to work otherwise, please let me know so I don't have to look like I'm pimping my other plugins. - MAME and CDROMS Spoiler MAME will run (when supported) CDROMS by simply pointing the application path to the game's folder rom_name. You do not need to point to the chd file to run it. (Note: the plugin will have it point to the folder_name.zip, but with the checkbox "Use file name only..." checked, it takes off".zip". If you wish to import CDROM games into LaunchBox for use with a different emulator, you will need to have the application path point to the games actual file_name.chd. New Feature: When the plugin sees that the media type is CDROM, you'll be given the option to import the roms for "use with an emulator other than MAME" (Choose "Yes"). If you'll only be using them with MAME, choose "No". Submitter JoeViking245 Submitted 09/08/2019 Category Third-party Apps and Plugins Edited October 31, 2019 by JoeViking245 2 2 Quote Link to comment Share on other sites More sharing options...
slagfart Posted October 24, 2019 Share Posted October 24, 2019 Hey Joe! This is really sweet. Thanks for this! I installed it on a new installation of LaunchBox with a full mame software set, using the MAME 0.214 hashes. The plugin gets to the end of the import process for the platform I tested (32X), but then the LaunchBox xml files don't get created. I also press F5, and nothing new appears. Any ideas? How can I help you debug? I'm using the latest version of LaunchBox. Secondly, ideally I'd like to point the plugin at my MAME software set folder, and have all platforms be imported at once. Is this possible? Thanks!! Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 24, 2019 Share Posted October 24, 2019 I've found that you must fill out every field through the menu using the browse and add buttons where applicable. You can not type any paths in or anything or it will fail. Also if you go to tools manage platform I can almost guarantee that it created the platform it just didn't populate any games. The second part of your request is not possible at all. Quote Link to comment Share on other sites More sharing options...
JoeViking245 Posted October 24, 2019 Author Share Posted October 24, 2019 Thanks for the feedback! @slagfart There's an issue (with my plugin, only) when creating a new Platform that it doesn't save it right away (Sometimes. Seems to be hit-or-miss). So when you click Import, there's no Platform to import to. However when the plugin closes as @DOS76 found, it does get created/saved. Just not populated. At that point, you can rerun the plugin and select that Platform. This is either a limitation of creating plugins or the plugin creators' (me) knowledge. I believe the LB staff are working on implementing an updated save-on-the-fly feature for plugins that will resolve this issue. I may also have found a 'hack' that will work. To be determined. Until then..... Before importing to a new Platform, create the new Platform in LaunchBox 1st. Tools. Manage Platforms.... Add.... Then start the plugin and select that Platform in the pull down. Selecting the hash (xml files) folder location does need to be done using the Browse button. Note: The plugin will save the last location used. So after 1st use (assuming your hash folder location doesn't change) you still need to click the Browse button, but then just click OK (or hit Enter). The Choose Platform and Select Emulator need to be done using the pull down combo-box's (vs typing them in). The Rom Source and Destination folders can be manually typed in OR selected using the respective Browse buttons. The ability to have all Software List Consoles/Computers (Platforms) imported at one time isn't going to happen. Too many side affects. 1 Quote Link to comment Share on other sites More sharing options...
JoeViking245 Posted October 24, 2019 Author Share Posted October 24, 2019 (edited) @slagfart @DOS76 The issue of games not being populated after creating a new Platform should be fixed now. BTW, the issue was a limitation of my programming skills and knowledge. Nothing to do with LaunchBox. Edited October 24, 2019 by JoeViking245 1 Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 24, 2019 Share Posted October 24, 2019 Damn @JoeViking245I just realized this doesn't work with the SWL CHD's as it doesn't drill down into the individual folder and get the CHD it only creates the path to the folder and adds zip to the end. So for example 1st game in the Library path looks like \\Server\Emulators\Arcade\SoftWareList CHD's\PSX\007twine.zip where it would need to drill down and return \\Server\Emulators\Arcade\SoftWareList CHD's\PSX\007twine\007 The world is not enough.chd Quote Link to comment Share on other sites More sharing options...
JoeViking245 Posted October 24, 2019 Author Share Posted October 24, 2019 Oh. Ok. Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 24, 2019 Share Posted October 24, 2019 hey no worries if you don't want to add that functionality to improve on your already awesome plug-in. ? 1 Quote Link to comment Share on other sites More sharing options...
JoeViking245 Posted October 24, 2019 Author Share Posted October 24, 2019 lol Thank you sir. I wasn't even thinking about Software List chd's when I started it. I was just happy to get working what I did. I'll have to look into how LaunchBox handles importing MAME chd's to get some pointers. Oh! Wait! It doesn't. lol Though, like doing a mass Software List import, it's possible but will take a bit of finessing. But hey, I'm up for the challenge. (chd's. not Mass Import) No promises. Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 24, 2019 Share Posted October 24, 2019 yeah I'm using RetroArch as the emulator (for most standard stuff) and pointing it to the chd like you would any other file. Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 24, 2019 Share Posted October 24, 2019 well its already doing a good job to the file folder just instead of adding a .zip it would have to be able to go a level deeper using the <software name as a folderpath and disk name as the final item appended with .chd. Now I have no clue how much more difficult that is. 1 Quote Link to comment Share on other sites More sharing options...
slagfart Posted October 28, 2019 Share Posted October 28, 2019 (edited) Sadly my need was to load the CHD games in. Okay, so I'm thinking of a different method to solve the same problem, especially given that the MAME Hashes don't necessarily hold all the information needed for LaunchBox anyway. I've created this: https://github.com/slagfart/launchbox-data-xml-for-MAME-sets I'm still completing the import and cleaning of the Saturn XML by myself, but if you guys already have some XML set up on the MAME sets for other platforms, please feel free to add it! You can contribute whenever you update data in launchbox via git commandline tools. If you are interested, I'm also open to keeping the images and videos in the same folder. Thoughts? Edit: I hope I haven't hijacked your thread! Edited October 28, 2019 by slagfart Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 28, 2019 Share Posted October 28, 2019 wow I don't want to be a dick but I used this to replace my xml and its a mess with all kinds of messed up naming that doesn't match the DB. Thankfully there is a backup system in LB as I didn't bother to make a backup but in my opinion this xml is unusable in the current state 1 Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 28, 2019 Share Posted October 28, 2019 Quickly fixed but remember boys and girls always make a backup (or just rely on the LB backup system) Quote Link to comment Share on other sites More sharing options...
slagfart Posted October 29, 2019 Share Posted October 29, 2019 (edited) Hahahahah thanks for trying it out! I don't yet have a way to deal with all the clones with mangled names, except for going through one-by-one (which I am doing). Hence the intent of the project. Sorry for nearly wrecking your build. If you've already done the hard work of importing the complete MAME Saturn set, would you like to share your XML? It could then be the basis for others to extend (if you're missing any images) Edit: Just added a warning to the readme. Thanks! Edited October 29, 2019 by slagfart Quote Link to comment Share on other sites More sharing options...
slagfart Posted October 29, 2019 Share Posted October 29, 2019 (edited) I took the hint and cleaned up at least the alphabetical top page of the Saturn stuff. If you import the collection now, you'll see this instead: This remains a work in progress obviously! I'm just whacking away at this, one game at a time. Edited October 29, 2019 by slagfart Quote Link to comment Share on other sites More sharing options...
slagfart Posted October 29, 2019 Share Posted October 29, 2019 Got to the end of titles that begin with 'A'. Phew! Changes are ready to go in the git repo. Quote Link to comment Share on other sites More sharing options...
DOS76 Posted October 29, 2019 Share Posted October 29, 2019 my old Saturn xml isn't based off of the MAME SWL CHD's just a bunch of bin cues files so it wouldn't help in adding it. Quote Link to comment Share on other sites More sharing options...
slagfart Posted October 29, 2019 Share Posted October 29, 2019 8 minutes ago, DOS76 said: my old Saturn xml isn't based off of the MAME SWL CHD's just a bunch of bin cues files so it wouldn't help in adding it. No problem. If you like the idea I'll continue updating the repo, and the Saturn will get done eventually. Or, feel free to pick a console and start work! Quote Link to comment Share on other sites More sharing options...
JoeViking245 Posted October 29, 2019 Author Share Posted October 29, 2019 So I only glanced at messages here but figured I try importing Saturn CD using the plugin. Granted I don't have any of the MAME chd's for it and (at least as of release 0.214) it's not supported in MAME anyway. Is this what it's suppose to look like?I'm guessing maybe a regular Saturn emulator doesn't use chd's? Or maybe it's just a naming convention that's different (blame MAME. lol)? Oh, and @DOS76, I updated it so that it accounts for cdroms (chd's). ? (2nd pict path) 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.