Jump to content
LaunchBox Community Forums

Lightspeed: Ultra-Fast Mame Importer Tool


Jason Carr

Recommended Posts

Like always, all my reported issues are gone now. Thanks!

But no post without another bug report or feature request ;)

Not sure if this is a new one or if I just haven’t saw it until now. If you import Arcade and SoftList games then you get all ports of arcade games for the SoftList platforms added as clones to the actual Arcade game entries. I don’t know if that’s on purpose because it isn’t necessarily a bad thing, but you end up with this:

softlist.thumb.jpg.a8ba9ecbaaccbaea7e23e5b9c6e40595.jpgIt’s impossible to determine which entry belongs to which platform without checking the folder paths in the Additional Apps tab.

And of course an option to disable that Lightspeed adds the SoftLists ports as clones would be great as well.

 

I also had an idea that would probably make the life a little easier for people who don’t know that much about arcade platforms. You could add buttons for MAME and Demul in the platforms tab that will automatically check/uncheck all platforms which are supported by these emulators when you click on them. Buttons for “Model 2 Emulator” and “Supermodel” would also be possible but I don’t know if they would be needed at all as they cover only 1 platform each.

Maybe you could also add “Gaelco” as one of the default platforms. I know that it features only 2 games but it only works through Demul and because of that is currently the only way to add these through the platform from driver option. Most people won’t necessarily know that these games even exist and even if they do they would have to do a little research to find out that the correct platform driver is called "atvtrack.cpp" if they want to import them in to LaunchBox. And of course you would also cover all arcade platforms that Demul supports because Gaelco is the only one missing right now.

Link to comment
Share on other sites

Not sure if this has been fixed yet or not but in version 183.beta 8 there is a issue with Lightspeed exporting the mame.xml correctly. If the Description or the manufacturer has the "&" in the title then it will error out when you go to open it with other 3rd party programs that manage mame.xml files (eg, Filterhyperlist.exe, etc). I had to do a search and replace of "&" and replace it with "&"
After that everthing was ok.

Also I noticed there is a 1kb ratings.ini file in lightspeeds support folder. Are you going to implement that at a future date? I have a complete 0.183 mame.xml with ratings if you would like it. 

Link to comment
Share on other sites

@CriticalCid, The problem with the additional applications mixing mess and mame seems gone on my end, so not sure if it was a recent change I made. Should be good on the next release. I Added the Gaelco platform. Gaelco actually has 47 games listed under it. I will think about the demul set. More likely I will need someone to assemble a full list in txt format, just the rom names listed and use that list to start, instead of relying on filters for such custom list.

@what2be, have you tried the latest beta 9 posted above? I believe the problem with the "&" was fixed already on the previous version. About the ratings.ini, it's already supported. The way it works is: Lightspeed gathers all the ratings from Launchbox and pre-populates the list for you, so if you click on a game that was rated in LB you will see the stars accordingly. This ratings.ini is basically an overwrite, so if you want to select any number of games and click on the stars, it will update the ratings for those games and as soon as you close Lightspeed those ratings will be saved in the ratings.ini file. Next time you open Lightspeed, it will search for the info in Launchbox, but if it finds any new data in the ratings.ini, it will then import those ratings instead, so next time you export your list it will sync Lightspeed ratings with Launchbox's ratings. 

Edited by Antropus
Link to comment
Share on other sites

Oh I’m sorry. I guess I wasn’t clear enough. I didn’t mean a general manufacturer platform or the Gaelco boards that MAME supports. I only meant the two games (three with the clone) that Demul labels as Gaelco. These games don’t work in MAME and can only be emulated through Demul. That’s why I suggested to give them their own platform as you currently have to manually add them through the “atvtrack.cpp” source driver to get them imported in to LaunchBox at all.

 

And it seems that you have misunderstood my Demul suggestion as well. I meant that Lightspeed should just select the Demul platforms (Naomi 1+2, Atomiswave, Hikaru, Gaelco) and deselect all other platforms. BUT your idea is actually even better. Especially considering the upcoming playlists feature in LaunchBox it’s a very good idea.

With the playlist feature you won’t need to split up the MAME set into different platforms anymore. You can keep all games in the same platform and create playlists instead which can either automatically filter games out on specific criteria (basically what you already do with Lightspeed for populating the custom platforms) or create lists with a static selection of games. You can even include the playlists to the platforms list, so not much would change on the surface but behind the scenes it would be much more cleaner. The playlist feature is currently only available in the latest LaunchBox beta versions but Jason said that he plans to release the stable version next week.

 

So my idea for Lightspeed would be this:

The user can choose if he wants to import the custom platforms as real platforms or as playlists. If he chooses the first option, nothing changes and Lightspeed will do the same thing as it currently does.

But if the user chooses to use Playlists instead, Lightspeed will import all games into single platforms based on their emulator. So if you would import all arcade games you will end up with these 4 platforms:

Demul

MAME

Sega Model 2

Sega Model 3

In addition to these platforms will Lightspeed create the playlists that the user has chosen. For example would be “Capcom CPS-1” just be playlist which filters out all games with the “cps1.cpp” source, etc.

 

Coming back to Demul. It’s quite simple. Demul emulates the following arcade platforms:

- Cave 1000

- Gaelco

- Sega Hikaru

- Sega Naomi/Naomi 2

- Sammy Atomiswave

As far as I can see it overlaps in 3 cases with MAME.

- All Cave 1000 games (I would prefer to keep them as a MAME platform and just ignore these games for Demul)

- 1 Naomi game (Doki Doki Idol Star Seeker)

- 1 Atomiswave game (Sushibar)

Personally, I would prefer to keep all the Naomi and Atomiswave games under a single emulator and exclude them from the MAME filter.

Nonetheless, here’s the listxml of the current Demul 0.7a build:

demulroms.txt

Link to comment
Share on other sites

Good morning @Antropus

I just tested with the latest beta 8 and observed that although all my roms are archived as .7z, LightSpeed added 67 of those roms as .zip in the ApplicationPath for roms I have in my roms folder.

The problem can be reproduced whether you have the [Options | Match These Folders | Roms] checkbox enabled or not.

 The same 67 rom entries are consistently added to the Arcade.xml file.

I am attaching screenshots and Lightspeed.ini should you wish to check my LS configuration.

Edit: I just attached the Arcade.xml compressed as 7z

Here is the list of the problem rom entries:

  •   R:\MAME\0.183\roms\area51
  •   R:\MAME\0.183\roms\area51mx
  •   R:\MAME\0.183\roms\area51t
  •   R:\MAME\0.183\roms\area51ta
  •   R:\MAME\0.183\roms\bassang2
  •   R:\MAME\0.183\roms\bassangl
  •   R:\MAME\0.183\roms\biofreak
  •   R:\MAME\0.183\roms\blitz
  •   R:\MAME\0.183\roms\blitz2k
  •   R:\MAME\0.183\roms\blitz99
  •   R:\MAME\0.183\roms\blitz99a
  •   R:\MAME\0.183\roms\calspeed
  •   R:\MAME\0.183\roms\calspeeda
  •   R:\MAME\0.183\roms\carnevil
  •   R:\MAME\0.183\roms\cliffhgr
  •   R:\MAME\0.183\roms\cryptklr
  •   R:\MAME\0.183\roms\cubeqst
  •   R:\MAME\0.183\roms\darkhleg
  •   R:\MAME\0.183\roms\eggsplc
  •   R:\MAME\0.183\roms\fbait2bc
  •   R:\MAME\0.183\roms\fbaitbc
  •   R:\MAME\0.183\roms\fbaitmc
  •   R:\MAME\0.183\roms\firefox
  •   R:\MAME\0.183\roms\gauntdl
  •   R:\MAME\0.183\roms\gauntleg
  •   R:\MAME\0.183\roms\gtfore01
  •   R:\MAME\0.183\roms\gtfore02
  •   R:\MAME\0.183\roms\gtfore03
  •   R:\MAME\0.183\roms\hypbbc2p
  •   R:\MAME\0.183\roms\hyperath
  •   R:\MAME\0.183\roms\hyprdriv
  •   R:\MAME\0.183\roms\jdredd
  •   R:\MAME\0.183\roms\jojo
  •   R:\MAME\0.183\roms\jojoba
  •   R:\MAME\0.183\roms\jojojr1
  •   R:\MAME\0.183\roms\jojojr2
  •   R:\MAME\0.183\roms\kinst
  •   R:\MAME\0.183\roms\kinst2
  •   R:\MAME\0.183\roms\konam80s
  •   R:\MAME\0.183\roms\lacrazyc
  •   R:\MAME\0.183\roms\mace
  •   R:\MAME\0.183\roms\macea
  •   R:\MAME\0.183\roms\mach3
  •   R:\MAME\0.183\roms\maxforce
  •   R:\MAME\0.183\roms\nagano98
  •   R:\MAME\0.183\roms\naganoj
  •   R:\MAME\0.183\roms\pong
  •   R:\MAME\0.183\roms\powyak96
  •   R:\MAME\0.183\roms\powyakex
  •   R:\MAME\0.183\roms\redearth
  •   R:\MAME\0.183\roms\rotr
  •   R:\MAME\0.183\roms\salarymc
  •   R:\MAME\0.183\roms\sfiii
  •   R:\MAME\0.183\roms\sfiii2
  •   R:\MAME\0.183\roms\sfiii3
  •   R:\MAME\0.183\roms\sfiii3ur1
  •   R:\MAME\0.183\roms\sfrush
  •   R:\MAME\0.183\roms\simpbowl
  •   R:\MAME\0.183\roms\susume
  •   R:\MAME\0.183\roms\tenthdeg
  •   R:\MAME\0.183\roms\turrett
  •   R:\MAME\0.183\roms\usvsthem
  •   R:\MAME\0.183\roms\vaportrx
  •   R:\MAME\0.183\roms\vcircle
  •   R:\MAME\0.183\roms\wargods
  •   R:\MAME\0.183\roms\warzardr1
  •   R:\MAME\0.183\roms\wg3dh
     

1.png

2.png

3.png

4.png

5.png

6.png

Lightspeed.ini

Arcade.7z

 

Edited by Pacman56
Link to comment
Share on other sites

@CriticalCid, this starts to get too specific I believe. Lightspeed is a tool for MAME. It is flexible enough for you to be able to generate lists for other emulators as well, but I would not make a change just because Demul to be honest.
I found some bugs that were causing corruption of platforms generated by using the drivers and by roms/lists/files and I believe I fixed it, so you will be able to simply point it to a demul list, check the overwrite filters box and it will create a platform with all necessary games for you. That's the whole point for me to create that option. You could create multiple lists in txt format, name them for example "Demul Roms.txt", "Model2 and Model 3.txt", "Naomi1 & Naom2.txt" or whatever name you want and roms listed in there will be imported by Lightspeed, all those files at once, naming the platforms accordingly. It's very flexible and easy to use.

You just need to assemble those lists first. I can Demul, Winkawaks and FinalBurnAlpha using those, but to be frank, MAME already emulates most of this stuff and it's just a matter of time before MAME starts emulating what Demul emulates and in that case this will become obsolete.
I could add a dropdown menu that would list all available lists so that could function as a preset for Demul or anything else you can think of, as long as there's a list for them.  The Gaelco platform was added anyway and it's good that's there. The games don't completely suck :)

Edited by Antropus
Link to comment
Share on other sites

Sure thing. I just thought that it may be a great feature and it would have definitely helped me if I were new to all this. So I thought I suggest it to you.

But of course is your tool already powerful enough to make me accomplish everything I want, so personally I’m fine either way ;)

Link to comment
Share on other sites

11 minutes ago, CriticalCid said:

Sure thing. I just thought that it may be a great feature and it would have definitely helped me if I were new to all this. So I thought I suggest it to you.

But of course is your tool already powerful enough to make me accomplish everything I want, so personally I’m fine either way ;)

Not like I will not compromise though ;)
I will add the drop-down menu, so that will be pretty straight forward for any newbie to simple select the available options from it and the list will populate accordingly. I just need those lists in txt format, exactly like you find inside of the All Killer No Filler folder that comes packaged with Lightspeed. The fucntion is kinda buried as it is, so the drop-down menu will help. Actually, a combo box will be even better, because that way you can select one, all or any number of lists at once.

-Kris

Link to comment
Share on other sites

50 minutes ago, Antropus said:

@Pacman56, just by quickly looking at the list without being at the computer I can tell you that the vast majority, if not all, are CHDs. I will take a look. Thanks!

@Antropus Although CHDs exist for these games, the 67 files that I've listed are not CHDs but .7z files containing roms that were created by the scanner of clrmamepro.
Those 67 files would launch properly within LB because LB will not care about the file extension (.zip or .7z).
In other words, when LB see area51.zip in the ApplicationPath but I have area51.7z in my rom folder, the game will still start properly. 
This is really not a big deal since the game will still launch but I was just wondering why the vast majority of my roms were imported by LS using the correct extension (.7z) with the exception of these 67 files.

EDIT: Added a screenshot showing some of those rom files

7.png

Edited by Pacman56
Link to comment
Share on other sites

@Pacman56, good catch. This has been fixed and it will be in the next version. I am a little tangled on a bug I found and it's taking me a little while to fix it. I will release a new version once I fix it.
A lot of the problems I see are related to how inconsistent support files are. I had to write a good chunk of code just to counter all the possible variations found in History.dat. Then there's the way Launchbox DB doesn't use the exact same descriptions as MAME does at times. Then there's MAME itself, that lists lots of software list games which are playable, even with a few glitches as unplayable. Then I found this out that some PGM clone games are listed as good while their parents are listed as imperfect, so if you try to create a list with only good games+clones, only the clones will show up so when you try to export those games using the option to add clones as additional apps, the game is not exported at all, because the parent is missing from the list. So from now on, every time clones are added to output, if the option to add additional apps to the parent is on, Lightspeed will force the parents to be moved to output as well. It will cause some discrepancies on the counting though, but we can live with that. For example, if you add 300 games+clones marked as good and turns out that their parents are marked as imperfect, those parents will be forced into output, so instead of seeing the same 300 games as in the filtered list, you will see 312 in the output, for example, because the parents are being added as well. Other than this issue, that's basically sorted out now, I am dealing with some inconsistency between exporting with the merge options vs. overwrite. This is the one causing more trouble at this point, but I will get t sorted, hopefully soon. 

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

@Antropus

Here is a different question regarding TTL roms.

If one enables the [Options | Match These Folders | Roms] option, and you did not create TTL dummies, should LS create ApplicationPath entries for those games?

For example, if I launch “breakout” directly from MAME64.exe, the game will launch properly as expected since this game is part of the MAME code itself.
However, the game will unfortunately not launch from LB. LB will return the following error “The ROM file you’ve specified does not exist” even though LS configured the emulator to use the “Use file name only without file extension or folder path” option.
Hopefully Jason can skip the file check when the “Use file name only without file extension or folder path” option is enabled in a future release but as an alternative, would it be possible to implement an option in LS to create TTL and CHD dummies in a folder other than the “MameRoms” folder? Something like “MameDummyRoms” which the user can add to his mame.ini?
Here is what I’m thinking:
On the Paths tab, you could add a new textbox labeled “MAME Dummy Roms” underneath “MAME Roms” and prefill it with the same value as “MAME Roms”. Power users can then override the value to something else if they want.

This would allow power users to have those dummy files in a folder other than the folder scanned by CLRMAMEPRO. This would make CMPRO happy when doing scans after those dummies are created. No Unnecessary files would be reported.

I’ll purchase a premium version of LightSpeed any time! Couldn’t live without it. ;)

2.png

1.png

3.png

4.png

Link to comment
Share on other sites

Yeah, the main purpose of creating those dummy roms is just to satisfy a limitation in Launchbox. You should suggest that to Jason because that's a super easy fix for him. The way I coded the dummy roms is to only create dummies for CHDs which don't have an associated .zip (or.7z), so there's no override. When you delete those dummies using the lightspeed function, they are checked against a criteria so only the dummies are deleted instead of actual roms. I could add that feature without too much trouble, but I am really hoping that Jason can fix that problem. The "Use file name only without extension" checkbox in Launchbox should do exactly that, so no need to have to create dummy files, which is pretty silly anyway. I've seen many people complaining about this limitation with CHDs and I am surprised this was never addressed.

Edited by Antropus
  • Like 2
Link to comment
Share on other sites

10 minutes ago, Antropus said:

Yeah, the main purpose of creating those dummy roms is just to satisfy a limitation in Launchbox. You should suggest that to Jason because that's a super easy fix for him. The way I coded the dummy roms is to only create dummies for CHDs which don't have an associated .zip (or.7z), so there's no override. When you delete those dummies using the lightspeed function, they are checked agains a criteria so only the dummies are deleted instead of actual roms. I could add that feature without too much trouble, but I am really hoping that Jason can fix that problem. The "Use file name only without extension" checkbox in Launchbox should do exactly that, so no need to have to create dummy files, which is pretty silly anyway. I've seen many people complaining about this limitation with CHDs and I am surprised this was never addressed.

Thank you @Antropus

I created a post earlier today in the beta thread asking Jason to address that and I agree with you in that should be an easy fix.
Hopefully this minor change request will be well received by Jason. Crossing my fingers.

I'll try to find a way to mention it in the next live stream.
 

:)

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

My apologies @Antropus for creating all these posts tonight.

I was testing the functionality of creating the TTL and CHD dummies and noticed that LS (Beta 8) creates .zip dummies for rom files that already exist as .7z.
It's probably easier to understand what I'm trying to say :S by looking at the screenshot provided below. 
I don't believe this is an expected behavior but I could be wrong?

Cheers,

Chris

1.png

  • Like 1
Link to comment
Share on other sites

I started reimporting all my platforms after beginning a new empty library with lightspeed, but now i get this everytime i click on Nintendo Game Boy:
https://bitbucket.org/jasondavidcarr/launchbox/issues/2681/crash-when-clicking-on-nintendo-game-boy

Is this a problem generated by lightspeed or LB?

I was importing gbc while clicking on gb. Now that the import is done the error is gone.. Thank you!

Edited by rootshell
Link to comment
Share on other sites

14 hours ago, Antropus said:

Yeah, the main purpose of creating those dummy roms is just to satisfy a limitation in Launchbox. You should suggest that to Jason because that's a super easy fix for him. The way I coded the dummy roms is to only create dummies for CHDs which don't have an associated .zip (or.7z), so there's no override. When you delete those dummies using the lightspeed function, they are checked against a criteria so only the dummies are deleted instead of actual roms. I could add that feature without too much trouble, but I am really hoping that Jason can fix that problem. The "Use file name only without extension" checkbox in Launchbox should do exactly that, so no need to have to create dummy files, which is pretty silly anyway. I've seen many people complaining about this limitation with CHDs and I am surprised this was never addressed.

@Jason Carr

  • Like 2
Link to comment
Share on other sites

Thanks for this fantastic app!    The "All Killer no filler" feature, and more specifically, the ability to assimilate a group of rom lists, was something I was desperately trying to find.   I had done all kinds of crazy things with batch files to sort of get there.

I think you have mastered the "add" cases.   I can build my desired game list brilliantly in several ways now.  I can merge my output into my existing Attract Mode gamelist now, or build my custom output search-by-search, or even just drop another txt file into the game list folder.    Really awesome. 

Now I feel like we need a better way to manage exclusions.    I tend to remove things from my FE  as I go through my Attract Mode wheel (say, japanese games with so much Kanji that it's not playable for me, or games I manually determine I can't control reasonably with my cab).     Problem then is that these games "find their way" back into my game list again if I ever refresh from my master gameslists, unless I go through and manually remove them from the killer games lists.  

Just like how I want to preserve the work I use to build the lists, I also want to preserve my deletions.   Would be great if I could 

1) Specify a list of roms (exclude.txt) that I always want to exclude from output.   If it's in that file, I don't want to see it ever again.  
2) Come up with some sort of diffing mechanism that lets me determine things that have been removed from Attract Mode since the last export.   I can probably cobble up something with linux command line diffing/parsing to extrapolate and add to exclude.txt if this is too much for LightSpeed to handle on its own. 

The other thing I'm wondering is if anyone has other ideas of sources for quality game lists to add to the list of killer games?   I recommended one on the other forum (see attached), it's a "golden era" list that was thoughtfully put together on another site.    It fills a lot of gaps (like Arkanoid).   I still have a feeling there are a lot of great games missing from the master lists, and I'm wondering if there are other sources / game ratings sites we can tap into? 

 

goldenroms.txt

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...