Jump to content
LaunchBox Community Forums

Lightspeed Mame Importer - Teaser


Antropus

Recommended Posts

Hi guys, First of all, I would like to congratulate Jason and team for the beautiful work with this frontend. Exceptional work and a ton of potential! For the past few days I've been working on a new workflow to import my Mame sets as different platforms and I'm pleased to announce that in the near future (just give me a week or two), you will be able to populate LaunchBox with as many custom Mame platforms/Lists as you wish in just a few seconds (depending on your machine and number of games in your rom folder). Why do I need that? Because I'm also developing a powerful list generator and I want to separate certain systems as their own platform, also great for other emulators supporting Mame's name convention (Demul, Model2, Kawaks etc). So, instead of simply "Mame" showing up as the arcade platform, I like to have AtomisWave, Naomi, Naomi2, Cave and others presented as their very own platform, all done for me automatically, as they all share common artwork, videos, notes and metadata. I got the prototype working almost flawlessly and I'm now optimizing it and writing a simple GUI to make the process virtually pain free for newbies or experienced users. Here are the current features: - Gathers Metadata from Mame.dat or mame listxml, including Title, Release Date and Developer - Gathers Notes from history.dat - Gathers Genre info from catver.ini - Adds Date Added using the current day/time - Generates unique IDs for games and unique IDs for emulators, mimicking what Jason already does with LaunchBox - Injects all the gathered information into the current LaunchBox.xml - Adds new entries for both Emulator and Platforms to LaunchBox.xml, correctly linking them to the games just added - Populates images from Mame default installation folder (Flyers >> Covers, Snaps >> Screenshots). Videos are populated as well, as long as you keep a "videos" folder under your Mame installation folder. In a nutshell, this program will be targeted to people like me, who already have a massive collection of roms and artwork and want a SUPER fast way to simply migrate Mame into LaunchBox with no need to scrape anything online. So, is this like an offline scraper then? You bet it is! But it's more than that, as it automates the whole process for you, in a way that I believe to be the easiest possible (even though Jason already made SUPER easy to do things). In my current tests, I'm populating LaunchBox from a folder with 2256 roms as a source in just about 3~4 seconds! How it works: 1) Close LaunchBox 2) Run the program, add a few info to it, like the desired new Platform name(s) and Mame installation folder, for example 3) Wait a few seconds until it parses everything and then open LaunchBox. Your collection is now all populated in there and all games are ready to be enjoyed. It's that easy! :) Sorry for the teaser and nothing to test for now. Soon! -Kris
Link to comment
Share on other sites

I would love to know more about that! :) I thought that as long as the emulator key is in place and games got unique IDs things were good? I just tried to manually drag and drop additional games from another folder to my currently auto-generated list. I picked the same platform and same emulator and it added just fine. I then double-clicked the game and it worked as well. Do you mind expanding on your question? I would love to learn more about this awesome frontend! Thanks!
Link to comment
Share on other sites

The codes are generated once, and yes the codes will probably never overlap. However, if you gave two different games the same identifier in the XML that would not work. LaunchBox wouldn't handle that. So is there a way for your generated codes to double check the LaunchBox XML and make sure nothing is redundant?
Link to comment
Share on other sites

Oh, I got it! I think we are covered. My IDs are being generated randomly from a string formed by: abcdef0123456789. Virtually impossible to get matching identifiers (or at least that would take a looooong time), especially from a 32 characters key structure! Thanks for clarifying and btw, your videos are awesome! Learned a lot from them. You will love this tool so much that you will like to cover it on one of your future episodes :P -Kris
Link to comment
Share on other sites

Btw, I have a couple of additional tools I'm putting together right now, the biggest one being my list generator that has everything Romlister has plus a ton of other features (over a year on it so far...). But I'm also pretty happy with my series of wrappers for Demul: - They completely hide any trace of the emulator's window - They add a nice splash screen with progress bar during loading and boots straight to the bios screen just before the game starts - They also quit the emulator gracefully when pressing esc, by logging the processID and killing the process by ID instead of program name, which proved to be more reliable for me, returning to LB without any trace of windows popping around - They run demul on a "fake fullscreen window", with no traces of window, making the games run way faster than in fullscreen mode - They simplify the parameters used on the original emulator. You can simply run my "Atomiswave.exe" with no parameters (other than the default "file" parameter and the game will run perfectly. Same for "Naomi.exe" and "Naomi2.exe". My plan is to make those available soon, together with a modified version that will accept more parameters, so you can run any demul system with a simple wrapper. To do: switch windows resolution on the fly, returning to the previous resolution on exit. I'll add this soon. -Kris
Link to comment
Share on other sites

This sounds fantastic @Antropus, I have one request, would it be possible to have the images and movies import into another location of our choosing other than the default one inside the LaunchBox directory? I keep all my media in a different structure to the LaunchBox default setup.
Link to comment
Share on other sites

CADScott said This sounds fantastic @Antropus, I have one request, would it be possible to have the images and movies import into another location of our choosing other than the default one inside the LaunchBox directory? I keep all my media in a different structure to the LaunchBox default setup.
But then it wouldn't work in LaunchBox unless you did a ton of symbolic linking... and even then, more than likely not.
Link to comment
Share on other sites

CADScott said This sounds fantastic @Antropus, I have one request, would it be possible to have the images and movies import into another location of our choosing other than the default one inside the LaunchBox directory? I keep all my media in a different structure to the LaunchBox default setup.
Sure thing! I actually have that covered. The thing is, to keep it simple as this is basically a Mame "migration" kinda tool, it will auto populate the gui with mame's installation folder for you, so even if someone is not experienced, by selecting mame's folder and clicking ok you should still get stuff going pretty easily, BUT you will be able to overwrite the paths auto-populated in the gui and from that point on, any game you add and any re-scrape you do, LauchBox should save your images/videos to the exact location you defined. -Kris
Link to comment
Share on other sites

SentaiBrad said But then it wouldn't work in LaunchBox unless you did a ton of symbolic linking... and even then, more than likely not.
It will work :) In fact, it's working already, because foreseeing this I decided to add all the snaps, videos and flyers as internal variables in my code. So, everything works with those variables in place. I just need to give the user the key to capture those variables via gui and we are all set. So far I'm only using those three folders because I don't use most of anything else, but I see that you can pretty much customize all locations by hand by editing the platform, so I can give the user a straight path to those. Remember: this is a tool to help populating large numbers of rom sets super quick and easy, but it's not a replacement for what LaunchBox does when it comes to adding new games to pre-existing platforms. Think of it like this: if you got mame and all its artwork and support files (catver, history, mamedat) available locally and you just got started with setting up LaunchBox. At this point you've got a single system installed, master system for example and you want to add mame, but not simply mame. You want to add Naomi, Naomi2, NeoGeo, Atomiswave, Cave, CPS1, CPS2, CPS3, etc, each one as a different platform. In other words, any other system based on the mame romset. To do so in LaunchBox you will need to create each platform, link each to the emulator, add the roms through the wizard for each one of them, scrape the info from somewhere, edit the locations for each one of those systems to point to your mame artwork. That will take a while I tell you that! Instead, you will be able to simply point all of those, at the same time, to the same source folders and the program will setup everything for you and once you got all the fields filled up, it will be a matter of seconds before you can re-open LaunchBox too see everything up and running. So, more for "virgin" setups, I would say, but if you already got a lot of other stuff set and Mame is the last piece missing, it's smart enough to simply inject the new content into your current, existing library :) -Kris
Link to comment
Share on other sites

LightspeedMame.png I made some great progress over the weekend: - The GUI is almost done now - Almost everything you see in the screenshot is auto-populated when you select your mame.exe, using the default mame folder structure as a starting point - Since this will be relying on catver to generate the metadata (together with history.dat and either listxml or mamedat), I decided to incorporate filters to it as well. Since I'm reusing the data parsed, there's virtually no hit at the already super fast speed. - I decided to hard code the platform names at this point, as they are necessary to auto-generate the lists based on their source, but I plan to add a "custom" field where you will be able to give any name you want, point to a custom ROM folder, define the emulator and command line and you will get everything set for you. - Since this is specific for Mame, the ROM source forlder is the same for all platforms, but you can always edit it manually in LaunchBox and point to custom rom folder if you wish later on. At this point, almost all filters and tag removal are completely working, but only general Mame is hooked up, so the other platforms based on Mame are not being created just yet. By turning on all filters and running it on a complete Mame set (almost 36.000 roms), I'm able to create a complete, functional, ready to go LaunchBox.xml in a little over 4 seconds, producing a list 3000+ games. My promise is that you will go from no mame at all to a fully functioning collection ready to be played from LaunchBox in seconds :) More to come soon. Cheers, -Kris
Link to comment
Share on other sites

To do list: - Add support to a config.ini that you can manually edit, making easier to update and save all paths so you don' t need to (although this is more likely a process that you will never need to do a thousand times) - Add custom entries for batch processing. Maybe it will just ask you for a txt file where you will have all listed platforms+emulators+rom folder+command Lines, using a separator and it will parse everything and batch process all entries for you. I think this will be the easiest and the fastest way to add a ton of new systems quickly and easy - Add a little help file (although it's pretty self-explanatory) - Handle error levels - Add option to copy roms to separated folders based on their platform. - Add links to where to find the support files for download (mame.dat, catver.ini and history.dat) - Handle LauchBox.xml backups - Other things I might think of -Kris
Link to comment
Share on other sites

This tool looks really promising. Looking forward to it! But I have two questions: - What does the filter “Other junk” specifically filter out? - Will the number of max. players imported in a custom or the play mode field? It’s something I still highly miss in LaunchBox’ own importer.
Link to comment
Share on other sites

CriticalCid said - What does the filter “Other junk” specifically filter out?
I'm writing a very comprehensive mame lister and there are a ton of entries that are not covered on the catver.ini file and don't seem to fall into any other category. Stuff with unknown status for example.
CriticalCid said - Will the number of max. players imported in a custom or the play mode field? It’s something I still highly miss in LaunchBox’ own importer.
Not sure if I understand. Are you asking for Nplayers support? I'm at work now and cannot check my LaunchBox, but is there a field in there for number of players? If not, I still can add support to NPlayers and simply add this info at the top or the bottom of the notes or within the title or any other place we find fitting. The same way I can add Orientation (vertical or horizontal) and type of graphics (raster or vector). Easy :) But that would be another hack though. It will look nice and all, but you will not be able to filter by number of players for example. To do that, Jason would have to add that functionality to the program. edit: wait. Seems like it has a "play mode" in there. It's kinda generic as it doesn't mention the number of players, but it's a filter I could populate automatically as well. -Kris
Link to comment
Share on other sites

I didn’t know that something like the NPlayers.ini exists until now. I only knew that it's included as extra info in the history.dat notes. But yes that’s exactly what I mean! Unfortunately there is no standard field for it in LaunchBox. That’s why it didn’t get scraped from the importer. I would like to be able to filter for multiplayer games within LaunchBox, so when some friends come by I could easily find some games we can play against each other or in co-op. So it has to be its own field. For example, the LaunchBoxAnnotator Tool from mathflair imports that info from the EmuXtras synopsis files into the play mode field. But as a extra custom field it would work as well. I definitely support the idea to add other extra information’s like the orientation or the display mode as you already mentioned. But I suggest adding these as extra custom fields, so we would be able to filter these games too.
Link to comment
Share on other sites

It's totally doable! I just manually edited the play mode field in the xml file and added "Cooperative (2 Players Sim)" and it worked just fine. Now when I select filters I can see "Cooperative (2 Players Sim)" listed correctly! That means that you WILL be able to filter it based on Nplayers :) I'll add this tonight. Great suggestion and a super easy addon on my side. Besides, since this will be listed under the already available "Play Mode", it will look pretty transparent for the user, like if it was supported all along :P Thanks! -Kris
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...