Jump to content
LaunchBox Community Forums

dsync89

Members
  • Posts

    85
  • Joined

  • Last visited

  • Days Won

    1

dsync89 last won the day on May 13 2024

dsync89 had the most liked content!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

dsync89's Achievements

16-Bit Artificial Intelligence

16-Bit Artificial Intelligence (4/7)

40

Reputation

  1. Seems like this error started to popup quite frequently now whenever I tried to select a filter or randomly scrolling in Big Box after some time. Already checked all the XMLs and all of them are valid and not malformed. Not sure what's the possible cause here.
  2. Not sure if you could fill the BOX word with light blue just like the box art, and invert the color for the JUICE (dark inside, light blue outside, also similar to the box)? TQ
  3. Thanks for all these amazing work! Will incorporate it to my banner image 🙂 Nice seeing these obscure system artworks get fililng up in my collection.
  4. Requesting the following to fit with my marquee banner image background Thanks! Mattel Juicebox Image: https://www.etsy.com/listing/1434381748/vintage-early-00s-mattel-toys-juice-box Takara Popira Takara Jumping Popira Probably will be difficult since the source image is only 256x224 and I couldn't find any other high res ones. https://tcrf.net/File:Popira-title.png Tomy evio Image link: V.Smile Baby Image link: https://leyjao.pk/mother-and-baby/toys-and-games/activity-toys/vtech-v.smile-baby-infant-development-system/
  5. Hey there, thanks I was highly inspired by it that's for sure. Knowing about lua scripting support in MAME really does open up a lot of ideas. When I first started few days ago I didn't even know how to send a keystroke lol, after looking at your lua script (or the one in Bob-Z repo) then it gave me a lot of context. Frankly before I did this initiative I was thinking to use AHK, but then it would make getting the cassette state or getting any machine state at all impossible.
  6. Hey guys currently trying to create a high res banner for obscure computer system, but couldn't find one for VTech Laser 700. https://www.homecomputermuseum.nl/en/collectie/vtech/vtech-laser-700/#vtech-laser-700
  7. If you've been fuddling with complex boot sequences for various computer systems in MAME/MESS, look no further! I'm now sharing a collection of MAME-tested Lua autoboot scripts that I've personally written to seamlessly launch software for various classic computer systems that often have complex boot sequences. Say goodbye to manual boot commands and enjoy a smoother MAME launching experience! Key features include: Curated & Tested: A collection of reliable Lua autoboot scripts, verified against MAME 0.278 ROM sets. Seamless Launching: Designed to automatically handle complex boot sequences for various computer systems. Modular Design: Features a autoboot_common.lua library for easy maintenance and readability, encapsulating complex timing and future expansion. No more complex coding the frame time or button sequences! Simply call the intuitive functions encapsulated in this library! Easy Integration: Simply download and extract to your MAME scripts folder. LaunchBox Friendly: My MAME Curated Softlist Importer v1.1.0 plugin can automatically configure -autoboot_script command lines for matching titles in LaunchBox." If you're interested to run those obscure MESS system without having to execute those complex boot sequence, look no further! Currently it can autoamte 24 system softlists by the time of posting, which are selected based on some obscure or common computer systems that has most working titles. I'm open for suggestion if you have any more systems that would like to automate! https://github.com/dsync89/mess-curated-autoboot-scripts
  8. Hey there thanks for trying it out. Hmm it display fine on my Windows 11 with font DPI 100% and 125%. Can you try to reset DPI scaling to 100% and see if it still persist?
  9. MAME Curated Softlist Importer View File MAME Curated Platform Softlist Importer for LaunchBox (v1.0.0) Have you ever wanted to import your MAME Software Lists (softlists) into LaunchBox in a clean, organized, playble, and automated way? This plugin is designed to do just that, acting as a powerful companion to tools like mess-curator. It goes beyond simple importing by using a highly-configurable YAML file to intelligently map MAME systems and softlists to the correct LaunchBox platforms, apply the right emulator settings, mark games as broken if there is relevant metadata, and even handle complex scenarios like clones and importing artwork. This plugin, when importing using my MAME 0.278 system-softlist YAML preset, will add 106 Platforms and ~16k games to your Launchbox collections, all ready to play, or at least those that I tried :-) Important Plugin Note Note: This is NOT a successor nor replacement for the amazing MAME Software Lists Import Tool - plugin 6.0.2 that is developed by @JoeViking245 that also serve the purpose to import MAME softlist into Launchbox. The original tool is perfect for users who want a simple, direct way to import softlist games using the MAME hash XMLs. If that's your goal, I strongly recommend using it. This plugin, however, was inspired by it and was born from my own OCD needs and is designed for a more complex, automated workflow. It excels at creating highly customized "curated" platforms that can contain a mix of different softlist media, obscure systems, and custom launch commands—all managed through a central configuration file that simplifies maintenance for future MAME updates. The curated list (system-softlist YAML) used by this plugin is also maintained by me and is readily available as preset by this plugin. Perhaps that list will be contributed by the communities if it is able to gain some attention 🙂 Release Note 2025.07.11 - Initial release to the public community Launchbox forum Motivation While there exist other tools can import MAME Software Lists such as MAME Software Lists Import Tool by @JoeViking245, they often fall short when dealing with the complexity and quirks of MAME's database. This plugin was created to solve common frustrations: Platform Clutter: MAME often has multiple system drivers and media types (cassette, floppy, cartridge) for a single real-world platform. Other importers can create a messy platform list (e.g., "Amstrad CPC (Cassette)", "Amstrad CPC (Floppy)"). This tool intelligently maps them all to a single, clean platform like "Amstrad CPC". Manual Emulator Configuration: Getting softlist titles to run correctly often requires specific command-line arguments for each game or media type. This tool automates that process entirely based on a flexible configuration file. Complex System Mapping: What about systems that have no softlists but are still desirable to import, like JAKKS Pacific Plug & Play devices? This tool allows you to map them to the correct platform, ensuring they are not overlooked. Or even better, having a mixture of systems and softlist titles under one single platform, e.g. some JAKKS Pacific Plug & Play devices has pluggable soft keys. Fine-Grained Control: The import process is driven by a powerful YAML file, giving you complete control to override default settings, define custom command lines for specific games, and handle exceptions gracefully. In short, this plugin was built for curators who want their MAME softlist collection in LaunchBox to be not just imported, but correctly and cleanly organized with minimal manual effort. What's best is that job is already done for you by me, which I also maintained a template here. Key Features Wizard-Style Interface: An easy-to-use, step-by-step wizard to guide you through the import process. Intelligent Platform Mapping: Uses a YAML configuration to map multiple MAME systems and softlists to a single, clean LaunchBox platform (e.g., mapping a2600, a2600_cass, etc., all to "Atari 2600"). Automatic Emulator Configuration: Sets the correct MAME driver and command-line parameters for each game, ensuring they are immediately playable. Advanced Clone Handling: Choose how to handle clone ROMs: Import as Additional Apps (Recommended). Import as separate, standalone games. Skip them entirely. Artwork & Manuals Importing: Automatically finds and copies associated artwork (Gameplay, Title, Select Screens) and manuals from your MAME extras folders. Game Health Status: Automatically flags games as "Broken" in LaunchBox if they are marked as supported="no" or status="preliminary" in MAME's database. Detailed Progress Reporting: See real-time updates on which platform and file is being processed. Cleanup Options: Can remove all existing games from a platform before import to ensure a fresh start. How It Works The importer relies on three main sources of information: Your Curated ROMs Folder: It scans a folder where your ROMs are organized by platform, system, and softlist. This structure is essential for the importer to understand the context of each file. MESS's XML Database (mess.xml): This file provides the ground truth for all machine information, software details, and parent-clone relationships. YAML Configuration (system_softlist.yml): This is the heart of the importer. It defines how a system or softlist titles is mapped to LaunchBox platforms, which emulator to use, what custom command-line arguments are needed, and more. This file gives you complete control over the final import. The YAML Configuration (system_softlist.yml) can be automatically generated using my mess_curator tool. The tool processes this information to create perfectly configured game entries in LaunchBox, complete with metadata, artwork, and the correct launch commands. Dependencies To use this importer plugin, you must first organize your MAME softlist ROMs using a companion tool, mess-curator CLI/UI that I developed. The importer relies on the specific folder hierarchy and metadata references created by mess-curator's system_softlist.yml configuration. You can either use a preset system_softlist.yml provided by mess-curator or generate your own. Prerequisites Before you begin, you will need: 1. MAME Curated Softlist Importer Launchbox Plugin Download and place the MAMECuratedSoftlistImporter.dll file into Launchbox\Plugins\MAMECuratedSoftlistImporter folder. 2. Curated ROMs Folder A folder containing your MAME softlist ROMs, organized in a specific structure. My mess-curator companion tool can generate this structure for you via mess-curator copy-roms subcommand. - Your_Base_Roms_Folder/ <-- e.g., "roms" - platform-friendly-display-name/ <-- e.g., "jakks-pacific-tv-game" - mame_system_name/ <-- system without any softlist titles, e.g., "jak_batm" - system.zip <-- e.g., matches the mame_system_name (zip file), should only have one single zip file - mame_system_name/ <-- system with softlist titles, e.g., "jak_dora" - softlist_name/ <-- e.g., "jakks_gamekey_nk" - softlist_game1.zip <-- e.g., "dora.zip" - softlist_game2.zip <-- e.g., "popsnow.zip" - softlist_game3.zip <-- e.g., "volbird.zip" Steps Download the latest release from mess-curator Releases page. Run python src\mess_curator.py and go through the initial setup wizard until you reach the point where it download the mess.xml for your matching MAME romset version. Refer here for the initial setup. Run python src\mess_curator.py copy-roms to start copying roms from your MAME romset adhering to the system/softlist structure defined in the system_softlist.yml file. Check your output rom folder, profit! 3. MAME/MESS XML File An XML file containing metadata for non-arcade systems that matches your MAME ROMset version, downloadable from https://www.progettosnaps.net/mess/repository. E.g. for MAME 0.278, download https://www.progettosnaps.net/download/?tipo=mess_xml&file=/mess/packs/xml/mess278.zip. 4. system_softlist.yml YAML Config File This is the most important file that defines the metadata for the rom files detected during import configurations. You can use a pre-defined template that is selectable in Step 1 Setup Wizard with my mess-curator tool. This file is critical. It tells the importer how to handle each system and softlist titles. Here is an example snippet with explanations: # This is a single entry for the Amstrad CPC system. amstrad_cpc: # A list of all MAME system/driver names that should be mapped to this platform. mame_system_names: - cpc464 - cpc664 - cpc6128 # ... and so on. # The final, user-friendly name for the platform in LaunchBox. platform_name: Amstrad CPC # A list of all MAME softlist names that belong to this platform. softlist_names: - cpc_cass - cpc_flop # (Optional) The category for this platform in LaunchBox. platform_category: Computer # (Optional) Defines the emulator and command-line parameters. emulator: # The name of the Emulator entry in your LaunchBox setup. name: MAME (Cartridge) # {mame_system_name} and {media_type} are placeholders that the importer will fill in. default_command_line_parameters: '{mame_system_name} {media_type}' See my mess-curator repo README here for more information. 5. MAME (MESS) Emulator Create an emulator named as MAME (MESS) and configure it to point to your mame.exe emulator. The emulator name is not hard coded in the plugin itself, and is lookup from the system_softlist.yml, and MAME (MESS) is the default emulator name specified in that file. Usage: Step-by-Step The importer is designed to be run from within LaunchBox (Tools > MAME Curated Softlist Importer). Step 1: Configure Paths Set the paths to your ROMs, MAME hash folder, MAME XML file, and the system softlist YAML file. For the system softlist YAML file, you can also automatically select a template matching your MAME ROMset version from my mess-curator repo. Step 2: Select Platforms Choose which platforms (as defined in the system softlist YAML file) you want to import or update. You can select by category and see a list of platforms that belonged to that category. Step 3: Import Options Configure how clones and unsupported games are handled. You can also choose to remove existing games in the platform before importing to ensure all rom paths are up to date. Step 4: Import Artwork & Manuals Select which types of artwork and manuals you want to copy over from your MAME extras folders. Ideally you want all since Launchbox database might not have the snaps for all of these softlist titles. The plugin will intelligently mapped each artwork type to the right Launchbox artwork folder for each selected platform. Step 5: Processing & Summary The tool will now process all selected platforms, providing real-time progress updates. Once complete, it will display a detailed summary of the import session. The screenshot above shows the output for all 105 platforms (took ~5 minutes). Import complete! Games Removed: 3254 Imported: 16542 games Updated: 0 games Skipped (already existed): 462 games Clones Added as Additional Apps: 4365 games Platforms Created: 68 platforms --- Metadata Details --- Used MAME System Description Fallback: 1054 games Metadata Not Found (used filename): 1 games --- Health Status --- Marked as Broken (Unsupported/Preliminary): 3828 games --- Artwork & Manuals Summary --- Title Screens Copied: 6886 Gameplay Snaps Copied: 7583 Select Screens Copied: 117 Manuals Copied: 424 A Note on Saving: After the import is finished, LaunchBox needs to save all the changes to its database. For very large imports (100+ platforms), this can take several minutes. The UI may appear to hang during this time—this is normal. Please be patient and let it complete the save. Just for reference, this is what a fresh Launchbox collections will looked like after importing all 106 platforms for MAME 0.278 ROMset, using my preset 0.278 system-softlist YAML file. FAQ Q: Why create per-game custom command lines instead of using a universal LUA script? A: Simplicity and reliability. This method ensures that every game has a self-contained, correct launch command without relying on external scripts that can sometimes fail or require complex setup. It's the most straightforward way to guarantee playability out of the box. For advanced users who want to automate complex sequences (like loading from a tape, entering commands, etc.), MAME's autoboot_script feature is the ideal solution. You can find excellent examples of such scripts at RandoMame's autoboot_script repository. As a matter of fact, I'm also working on a separate project to provide these autoboot scripts. Stay tuned! Future Work Automatically assign newly added Platform to the Platform Categories from system-softlist YAML file Even though the system-softlist YAML file already defined various Platform Categories for the Platforms, I couldn't find any reference in the Launchbox Plugin API that mention how to assign multiple Platform Categories for a Platform. So for now you have to add them manually. Disclaimer This tool modifies your LaunchBox database (LaunchBox.xml and other files). Please back up your LaunchBox Data folder before running a large import for the first time. The author is not responsible for any data loss. Use at your own risk. Submitter dsync89 Submitted 07/11/2025 Category Third-party Apps and Plugins  
  10. Version 1.0.0

    20 downloads

    MAME Curated Platform Softlist Importer for LaunchBox (v1.0.0) Have you ever wanted to import your MAME Software Lists (softlists) into LaunchBox in a clean, organized, playble, and automated way? This plugin is designed to do just that, acting as a powerful companion to tools like mess-curator. It goes beyond simple importing by using a highly-configurable YAML file to intelligently map MAME systems and softlists to the correct LaunchBox platforms, apply the right emulator settings, mark games as broken if there is relevant metadata, and even handle complex scenarios like clones and importing artwork. This plugin, when importing using my MAME 0.278 system-softlist YAML preset, will add 106 Platforms and ~16k games to your Launchbox collections, all ready to play, or at least those that I tried :-) Important Plugin Note Note: This is NOT a successor nor replacement for the amazing MAME Software Lists Import Tool - plugin 6.0.2 that is developed by @JoeViking245 that also serve the purpose to import MAME softlist into Launchbox. The original tool is perfect for users who want a simple, direct way to import softlist games using the MAME hash XMLs. If that's your goal, I strongly recommend using it. This plugin, however, was inspired by it and was born from my own OCD needs and is designed for a more complex, automated workflow. It excels at creating highly customized "curated" platforms that can contain a mix of different softlist media, obscure systems, and custom launch commands—all managed through a central configuration file that simplifies maintenance for future MAME updates. The curated list (system-softlist YAML) used by this plugin is also maintained by me and is readily available as preset by this plugin. Perhaps that list will be contributed by the communities if it is able to gain some attention 🙂 Release Note 2025.07.11 - Initial release to the public community Launchbox forum Motivation While there exist other tools can import MAME Software Lists such as MAME Software Lists Import Tool by @JoeViking245, they often fall short when dealing with the complexity and quirks of MAME's database. This plugin was created to solve common frustrations: Platform Clutter: MAME often has multiple system drivers and media types (cassette, floppy, cartridge) for a single real-world platform. Other importers can create a messy platform list (e.g., "Amstrad CPC (Cassette)", "Amstrad CPC (Floppy)"). This tool intelligently maps them all to a single, clean platform like "Amstrad CPC". Manual Emulator Configuration: Getting softlist titles to run correctly often requires specific command-line arguments for each game or media type. This tool automates that process entirely based on a flexible configuration file. Complex System Mapping: What about systems that have no softlists but are still desirable to import, like JAKKS Pacific Plug & Play devices? This tool allows you to map them to the correct platform, ensuring they are not overlooked. Or even better, having a mixture of systems and softlist titles under one single platform, e.g. some JAKKS Pacific Plug & Play devices has pluggable soft keys. Fine-Grained Control: The import process is driven by a powerful YAML file, giving you complete control to override default settings, define custom command lines for specific games, and handle exceptions gracefully. In short, this plugin was built for curators who want their MAME softlist collection in LaunchBox to be not just imported, but correctly and cleanly organized with minimal manual effort. What's best is that job is already done for you by me, which I also maintained a template here. Key Features Wizard-Style Interface: An easy-to-use, step-by-step wizard to guide you through the import process. Intelligent Platform Mapping: Uses a YAML configuration to map multiple MAME systems and softlists to a single, clean LaunchBox platform (e.g., mapping a2600, a2600_cass, etc., all to "Atari 2600"). Automatic Emulator Configuration: Sets the correct MAME driver and command-line parameters for each game, ensuring they are immediately playable. Advanced Clone Handling: Choose how to handle clone ROMs: Import as Additional Apps (Recommended). Import as separate, standalone games. Skip them entirely. Artwork & Manuals Importing: Automatically finds and copies associated artwork (Gameplay, Title, Select Screens) and manuals from your MAME extras folders. Game Health Status: Automatically flags games as "Broken" in LaunchBox if they are marked as supported="no" or status="preliminary" in MAME's database. Detailed Progress Reporting: See real-time updates on which platform and file is being processed. Cleanup Options: Can remove all existing games from a platform before import to ensure a fresh start. How It Works The importer relies on three main sources of information: Your Curated ROMs Folder: It scans a folder where your ROMs are organized by platform, system, and softlist. This structure is essential for the importer to understand the context of each file. MESS's XML Database (mess.xml): This file provides the ground truth for all machine information, software details, and parent-clone relationships. YAML Configuration (system_softlist.yml): This is the heart of the importer. It defines how a system or softlist titles is mapped to LaunchBox platforms, which emulator to use, what custom command-line arguments are needed, and more. This file gives you complete control over the final import. The YAML Configuration (system_softlist.yml) can be automatically generated using my mess_curator tool. The tool processes this information to create perfectly configured game entries in LaunchBox, complete with metadata, artwork, and the correct launch commands. Dependencies To use this importer plugin, you must first organize your MAME softlist ROMs using a companion tool, mess-curator CLI/UI that I developed. The importer relies on the specific folder hierarchy and metadata references created by mess-curator's system_softlist.yml configuration. You can either use a preset system_softlist.yml provided by mess-curator or generate your own. Prerequisites Before you begin, you will need: 1. MAME Curated Softlist Importer Launchbox Plugin Download and place the MAMECuratedSoftlistImporter.dll file into Launchbox\Plugins\MAMECuratedSoftlistImporter folder. 2. Curated ROMs Folder A folder containing your MAME softlist ROMs, organized in a specific structure. My mess-curator companion tool can generate this structure for you via mess-curator copy-roms subcommand. - Your_Base_Roms_Folder/ <-- e.g., "roms" - platform-friendly-display-name/ <-- e.g., "jakks-pacific-tv-game" - mame_system_name/ <-- system without any softlist titles, e.g., "jak_batm" - system.zip <-- e.g., matches the mame_system_name (zip file), should only have one single zip file - mame_system_name/ <-- system with softlist titles, e.g., "jak_dora" - softlist_name/ <-- e.g., "jakks_gamekey_nk" - softlist_game1.zip <-- e.g., "dora.zip" - softlist_game2.zip <-- e.g., "popsnow.zip" - softlist_game3.zip <-- e.g., "volbird.zip" Steps Download the latest release from mess-curator Releases page. Run python src\mess_curator.py and go through the initial setup wizard until you reach the point where it download the mess.xml for your matching MAME romset version. Refer here for the initial setup. Run python src\mess_curator.py copy-roms to start copying roms from your MAME romset adhering to the system/softlist structure defined in the system_softlist.yml file. Check your output rom folder, profit! 3. MAME/MESS XML File An XML file containing metadata for non-arcade systems that matches your MAME ROMset version, downloadable from https://www.progettosnaps.net/mess/repository. E.g. for MAME 0.278, download https://www.progettosnaps.net/download/?tipo=mess_xml&file=/mess/packs/xml/mess278.zip. 4. system_softlist.yml YAML Config File This is the most important file that defines the metadata for the rom files detected during import configurations. You can use a pre-defined template that is selectable in Step 1 Setup Wizard with my mess-curator tool. This file is critical. It tells the importer how to handle each system and softlist titles. Here is an example snippet with explanations: # This is a single entry for the Amstrad CPC system. amstrad_cpc: # A list of all MAME system/driver names that should be mapped to this platform. mame_system_names: - cpc464 - cpc664 - cpc6128 # ... and so on. # The final, user-friendly name for the platform in LaunchBox. platform_name: Amstrad CPC # A list of all MAME softlist names that belong to this platform. softlist_names: - cpc_cass - cpc_flop # (Optional) The category for this platform in LaunchBox. platform_category: Computer # (Optional) Defines the emulator and command-line parameters. emulator: # The name of the Emulator entry in your LaunchBox setup. name: MAME (Cartridge) # {mame_system_name} and {media_type} are placeholders that the importer will fill in. default_command_line_parameters: '{mame_system_name} {media_type}' See my mess-curator repo README here for more information. 5. MAME (MESS) Emulator Create an emulator named as MAME (MESS) and configure it to point to your mame.exe emulator. The emulator name is not hard coded in the plugin itself, and is lookup from the system_softlist.yml, and MAME (MESS) is the default emulator name specified in that file. Usage: Step-by-Step The importer is designed to be run from within LaunchBox (Tools > MAME Curated Softlist Importer). Step 1: Configure Paths Set the paths to your ROMs, MAME hash folder, MAME XML file, and the system softlist YAML file. For the system softlist YAML file, you can also automatically select a template matching your MAME ROMset version from my mess-curator repo. Step 2: Select Platforms Choose which platforms (as defined in the system softlist YAML file) you want to import or update. You can select by category and see a list of platforms that belonged to that category. Step 3: Import Options Configure how clones and unsupported games are handled. You can also choose to remove existing games in the platform before importing to ensure all rom paths are up to date. Step 4: Import Artwork & Manuals Select which types of artwork and manuals you want to copy over from your MAME extras folders. Ideally you want all since Launchbox database might not have the snaps for all of these softlist titles. The plugin will intelligently mapped each artwork type to the right Launchbox artwork folder for each selected platform. Step 5: Processing & Summary The tool will now process all selected platforms, providing real-time progress updates. Once complete, it will display a detailed summary of the import session. The screenshot above shows the output for all 105 platforms (took ~5 minutes). Import complete! Games Removed: 3254 Imported: 16542 games Updated: 0 games Skipped (already existed): 462 games Clones Added as Additional Apps: 4365 games Platforms Created: 68 platforms --- Metadata Details --- Used MAME System Description Fallback: 1054 games Metadata Not Found (used filename): 1 games --- Health Status --- Marked as Broken (Unsupported/Preliminary): 3828 games --- Artwork & Manuals Summary --- Title Screens Copied: 6886 Gameplay Snaps Copied: 7583 Select Screens Copied: 117 Manuals Copied: 424 A Note on Saving: After the import is finished, LaunchBox needs to save all the changes to its database. For very large imports (100+ platforms), this can take several minutes. The UI may appear to hang during this time—this is normal. Please be patient and let it complete the save. Just for reference, this is what a fresh Launchbox collections will looked like after importing all 106 platforms for MAME 0.278 ROMset, using my preset 0.278 system-softlist YAML file. FAQ Q: Why create per-game custom command lines instead of using a universal LUA script? A: Simplicity and reliability. This method ensures that every game has a self-contained, correct launch command without relying on external scripts that can sometimes fail or require complex setup. It's the most straightforward way to guarantee playability out of the box. For advanced users who want to automate complex sequences (like loading from a tape, entering commands, etc.), MAME's autoboot_script feature is the ideal solution. You can find excellent examples of such scripts at RandoMame's autoboot_script repository. As a matter of fact, I'm also working on a separate project to provide these autoboot scripts. Stay tuned! Future Work Automatically assign newly added Platform to the Platform Categories from system-softlist YAML file Even though the system-softlist YAML file already defined various Platform Categories for the Platforms, I couldn't find any reference in the Launchbox Plugin API that mention how to assign multiple Platform Categories for a Platform. So for now you have to add them manually. Disclaimer This tool modifies your LaunchBox database (LaunchBox.xml and other files). Please back up your LaunchBox Data folder before running a large import for the first time. The author is not responsible for any data loss. Use at your own risk.
  11. Yea I couldn't find any references to add the parent relationship too. Intuitively one would have thought it would be something like IPlatform.AddParent(). Hope it's just something that I missed, I'm certainly sure there are ways to do it. IPlatform does seems to have a Category but I'm not sure if it's relevant. Tried to put a semicolon in that field thinking that it could be the delimiter, but no luck there.
  12. Thanks @C-Beats for looking into this! I thought it could be `DataManager.GetAllParents()`, but found the list is empty. foreach (var categoryName in matchingSystemConfig.PlatformCategory) { if (!existingCategoryNames.Contains(categoryName)) { dataManager.AddNewPlatformCategory(categoryName); existingCategoryNames.Add(categoryName); // Add to our in-memory list MessageBox.Show($"Platform Category '{categoryName}' did not exist and has been created.", "Category Created", MessageBoxButtons.OK, MessageBoxIcon.Information); PluginHelper.DataManager.Save(true); // persist it just in case it's not updated } } IParent[] allParentRelationships = dataManager.GetAllParents(); foreach (var parent in allParentRelationships) { MessageBox.Show($"IParent parent.PlatformName={parent.PlatformName}, parent.ParentPlatformName={parent.ParentPlatformName}, parent.ParentPlatformCategoryName={parent.ParentPlatformCategoryName}", "Parent Assignment", MessageBoxButtons.OK, MessageBoxIcon.Information); } Inspecting `Parents.xml` and I can see all the Parents for each new Platform that I created. However calling `dataManager.GetAllParents();` doesn't seem to retrieve those entries. <?xml version="1.0" standalone="yes"?> <LaunchBox> <Parent> <PlatformName>Takara Tomy TV Game</PlatformName> </Parent> <Parent> <PlatformName>JoyPalette TV Games</PlatformName> </Parent> <Parent> <PlatformName>Epoch TV Games</PlatformName> </Parent> <Parent> <PlatformName>Tomy Handhelds (LCD)</PlatformName> </Parent> <Parent> <PlatformName>Nintendo Game and Watch</PlatformName> </Parent> <Parent> <PlatformName>Takara e-kara</PlatformName> </Parent> <Parent> <PlatformName>RADICA Play TV</PlatformName> </Parent> <Parent> <PlatformName>Hasbro TV Games</PlatformName> </Parent> <Parent> <PlatformName>Milton Bradley Handhelds (LCD)</PlatformName> </Parent> <Parent> <PlatformName>Parker Brothers Handhelds (LCD)</PlatformName> </Parent> <Parent> <PlatformName>Tronica Handhelds (LCD)</PlatformName> </Parent>
  13. Is there a way to add a Platform to more than one Platform Categories, where some of it is nested. For example, adding the Platform Bandai Handheld (LCD) to [MESS] and [Handhelds (LCD)] Platform Category where [Handhelds (LCD)] is nested under [MESS] - MESS - Handhelds (LCD) Initially I thought the Platform.Category support multiple values via semicolon `;`, but turned out it doesn't and LB will just literally add it instead. Code snippet ... IDataManager dataManager = PluginHelper.DataManager; IPlatform finalGameTargetPlatform = ... ... // Only add Platform Category if settings is enabled if (IsAddPlatformCategory) { // Set the platform's Category property for MULTIPLE categories --- // matchingSystemConfig is a model that holds a list of Platform Categories for a Platform if (matchingSystemConfig != null && matchingSystemConfig.PlatformCategory != null && matchingSystemConfig.PlatformCategory.Any()) { // First, ensure all parent categories exist in LaunchBox. // If they don't, create them. IPlatformCategory[] allPlatformCategories = dataManager.GetAllPlatformCategories(); var existingCategoryNames = allPlatformCategories.Select(c => c.Name).ToHashSet(StringComparer.OrdinalIgnoreCase); foreach (var categoryName in matchingSystemConfig.PlatformCategory) { if (!existingCategoryNames.Contains(categoryName)) { dataManager.AddNewPlatformCategory(categoryName); // Add to our temporary HashSet to avoid re-checking in the same run existingCategoryNames.Add(categoryName); MessageBox.Show($"Platform Category '{categoryName}' did not exist in LaunchBox and has been created.", "Platform Category Created", MessageBoxButtons.OK, MessageBoxIcon.Information); } finalGameTargetPlatform.Category = categoryName; MessageBox.Show($"Platform '{finalGameTargetPlatform.Name}' assigned to Categories: '{finalGameTargetPlatform.Category}'", "Category Assignment", MessageBoxButtons.OK, MessageBoxIcon.Information); dataManager.Save(true); } // Now, set the Category property of the platform. // LaunchBox uses a semicolon-separated string to represent MULTIPLE categories. // finalGameTargetPlatform.Category = string.Join(";", matchingSystemConfig.PlatformCategory); // Example: "MESS (TV Games);MESS (TEST)" //MessageBox.Show($"Platform '{finalGameTargetPlatform.Name}' assigned to Categories: '{finalGameTargetPlatform.Category}'", "Category Assignment", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
  14. Hey there fellow Launchbox Devs, this is my first attempt to develop a plugin that attempt to read all zip files in a a rom folder recursively and create a new Platform and Games for those. So far I've setup the full .NET 9.0 development environment and confirm LB can load this plugin and I can see it in the Tools menu. What's strange is despite calling `PluginHelper.DataManager.Save()` after `AddNewPlatform` and `AddNewGame` I don't see any XML created. I've checked the Plugin docs but couldn't find anywhere that mention how to save other than this. A snippet of the code. public void OnSelected() { var platformName = "JAKKS Pacific TV Games"; var romFolder = @"c:\temp\mame_curated_romset\jakks-pacific-plug-and-play-tv\"; // Your curated folder IPlatform platform = PluginHelper.DataManager.GetPlatformByName(platformName) ?? PluginHelper.DataManager.AddNewPlatform(platformName); platform.SortTitle = platformName; //platform.Save(); foreach (var file in Directory.GetFiles(romFolder, "*.zip", SearchOption.AllDirectories)) // This makes it recursive { var fileName = Path.GetFileNameWithoutExtension(file); IGame newGame = dataManager.AddNewGame(fileName); // STEP 4: Set game properties newGame.Platform = platform.Name; newGame.ApplicationPath = @"C:\MAME\roms\bubblebobble.zip"; newGame.CommandLine = ""; // optional newGame.EmulatorId = dataManager.GetAllEmulators().FirstOrDefault()?.Id; // optional newGame.Version = "Softlist"; newGame.SortTitle = "Bubble Bobble"; PluginHelper.DataManager.Save(); } MessageBox.Show("Import complete!", "JAKKS Importer", MessageBoxButtons.OK, MessageBoxIcon.Information); } public bool ShowInLaunchBox => true; public bool ShowInBigBox => false; public System.Drawing.Image IconImage { get { return Resource1.logo; } } public bool AllowInBigBoxWhenLocked => throw new NotImplementedException(); } Edit: Solved. Turned out I just have to refresh the menu! This will be a first step for a plugin to come that will handily import a curated MAME MESS list.
  15. Thanks for the reply! I didn't expect a reply so soon 😄 To clarify, I'm updating ROMs that were originally located in: MAME-0.263/roms/softlist to the newer path: MAME-0.277/roms/softlist I’ve noticed that if the ROM files in MAME-0.277/roms/softlist are identical (i.e., same filenames and checksums) to those already present in MAME-0.263/roms/softlist, then the LaunchBox MAME Softlist Import Tool will not update the ROM paths. Yes, I’m adding the clones as Additional Apps. For example, if a game title like "foo" already exists in Platform A which I imported from 0.263 MAME softlist, and the updated 0.277 MAME softlist set introduces a clone named "foo2", the import tool does not add "foo2" as an Additional App under the existing "foo" entry. It seems that if the base title already exists, newly introduced clones with different filenames aren’t added automatically as Additional Apps. For the two issues above there is no error shown but rather a successful ones. Ah yes I guess I'm one of those niche ones. Too bad ever since MESS being integrated into MAME, there are still using the legacy hash.xml files for those systems. To the best of my knowledge there is no DAT project for those softlist systems. I'm simply being picky so I'm importing those selected softlist platform one by one, and also for me to learn more about these obscure systems. Updating is a pain since I had to manually go through these softlist system and re-run the import tool.
×
×
  • Create New...