About This 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 *
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:
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
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
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".
What's New in Version 2.0 See changelog
Released
2.0
- Brand New Look (sorta): Changed the Import Wizard to make use of existing LaunchBox resources.
This eliminates the need for an extra dll file and helps maintain consistency with LaunchBox's UI.
- Fixed: When importing Clones as Separate Apps, progress bar now shows accurate progress.
- House Keeping: Some code cleanup and improvements to (hopefully) catch any errors and be more efficient.
To upgrade to version 2.0, delete the 2 existing dll files from your ..\Plugins\ImportMameSoftwareLists\ folder and and place the new one from the zip file in their place.
Required Files:
** Versions up though v1.32 **
../LaunchBox/Plugins/ImportMameSoftwareLists/ImportMameSoftwareLists.dll
../LaunchBox/Plugins/ImportMameSoftwareLists/AdvancedWizard.dll
** Versions starting from v2.0 **
../LaunchBox/Plugins/ImportMameSoftwareLists/ImportMameSoftwareLists2.dll
1.32
- Clarification: When copying files, existing files with the same name will be overwritten.
(useful when updating Software Lists)
- Fixed: Tools menu icon.
- Fixed: Will no longer Import games that already exist.
- Fixed: If Platform already exists as an 'Additional Platform' for the MAME emulator, it won't add it again.
- New Feature: If a newly imported game is tagged as not supported by MAME, it will be marked as "Broken".
Will also check existing games in the Platform being imported to (in case MAME updated its' status)
(Not applicable to clones when imported as additional apps)
- Changed: Made changes and reduced the dll file size by about 75%
1.31.1
- Fixed error: not showing up in the "Tools" menu.
1.31
- Moved to Tools menu. Select "Tools" - "Import MAME Software Lists"
- Improvement: Added real-time progress bars for Copy and Import
- Improvement: Attempts to find your hash-files folder location automatically
- Improvement: When adding New Platform, will automatically fill in the selected Console (can be edited)
- Improvement: When running "Copy and Import", tasks run simultaneously to reduce completion time
1.30
- Fixed: When Importing into LaunchBox, progress bar indicates "Importing" instead of "Copying".
- Fixed: Removed plugin from BigBox
- Fixed: Miscellaneous Import issues
- New Feature: When importing CDROM media, the Application Path can be set to point the rom_name folder or to the roms file_name.chd for use with emulators other that MAME. (See "MAME and CDROMS")
- New Feature: Will show MAME's emulation 'status' for the selected consoles/computers [Preliminary/Good/Imperfect]. **Requires additional file. (File not required for the plugin to function. But the status will not appear.)
**To see the status, you will need to have the messxxx.xml (where 'xxx' is the MAME version: mess215.xml) file in the same folder as the plugin. (See "MESS xml")
V1.20
* Fixed 'Copy and Import' and 'Import' when creating a new Platform. (For real this time)
* Added refresh LaunchBox after plugin closes to show newly created Platform. Shouldn't need to press F5 after exiting plugin.
V1.10
* Added rom file compression format option (.zip [Default], .7z) [used for copying and command lines only]
* Changed Command-Line to remove "_xxxx". i.e. "spectrum_cass" becomes "scpetrum" (required for MAME command line)
* Added 'add platform to emulator' as Associated Platform
- Moved Command-Line from game "Custom Command-Line" to Emulator: Associated-Platform, Custom Command-Line
* Fixed 'Copy and Import' (would sometimes copy then not import)
Notes:
- Software Lists consoles use the default command-line: console_name -media_switch ["path_to\gamename.zip"]
i.e. a2600 -cart (This is automatically added when importing games)
LaunchBox adds ["path_to\gamename.zip"]
- Unlike with Arcade machines, mame.ini does NOT need to have Software List rom folders added to "rompath".
(The exception is any necessary bios files which are not included in the Copy process)
This assumes the MAME emulator does NOT have "Don't use quotes" and "Use filename only" checked. (Both boxes unchecked)
TODO:
Add driver status ("good", "imperfect", "preliminary") for console listings