I have completed the first alpha build of an enhanced Mala game list generator which provides (I feel) the simplest, most user friendly way to create, manage, edit, and filter Mala game lists.

A word of warning before I continue:I purchased a MAME cabinet just a few weeks ago and know very little (almost nothing) about MAME, Mala, or the arcade scene in general. Everything I know about MAME at this point has originated from reviewing NOP's C++ ROMLister source code and Loadman's Delphi Mala source code and thanks goes out to those guys for providing it to me so I could realize my vision for a better game list editor! The code is still extremely early and has not been tested exhaustively on anything other than Windows 7 x64.

There are 2 parts to this solution:

mlgconverter.exe: the engine which converts mlg files to ini and ini files to mlg (command line - written in Delphi)

Select the elements in the mame database to display onscreen (or hide)

Sort by any of the elements in the mame database

Group the records in the mame database by desired field

Drag and drop games from mame database into game list

Search game descriptions

Change database view from 'Details', 'List View', or 'Tile View'

Using malaGamelistEditor.exe

The first time you run malaGamelistEditor.exe you will be prompted to browse the the mame.xml file created by mala when you first ran it. If genre information is missing from the mame.xml file then you will be prompted if you want to merge genre information into your existing mame.xml document.

As the application is loading you will see a progress bar in the lower left hand side of the program which indicates its current progress. It may take a few seconds to kick off if your database has 8,000+ records.

Fig. 3 - User has right clicked the header column to select the rows to display.

Fig. 4 - User has searched the database for the term 'Street Fighter'.

Fig. 5 - User has selected the existing game list 'Fighter - 2.5D'.mlg and it is being parsed and loaded by mlgconverter.exe

NOTES:

The program only loads *.mlg files from the same directory it is running in.

You can refresh the mlg list drop down and database info by using the 'Refresh Form' button.

You MUST save any changes you make to your game lists by using the 'Save' button in the tool bar.

The * asterisk character in the mala game list section lets you know you've made unsaved changes.

I have included a sample mlg file for you to play with (Fighter - Versus.mlg).

The 'FTP to Arcade' option is disabled right now and I felt it was too complicated for most users.

Using mlgconverter.exe (ONLY For Non-Microsoft.NET v3.5 users or scriptwriters/programmers)

The command line mlgconverter.exe utility is a Borland Delphi tool developed exclusively to provide a clean, portable method for reading and writing MaLa *.mlg files, which are essentially binary ini files, readable (more or less) only by Delphi applications. All the respect in the world goes to ROMLister developer NOP, which managed to write mlg files with C++ with like 8 zillions lines of code.

There are 2 parameters which the converter needs, the task to complete and the file to work on (must be the full file path, not just the name of the file). The export task will convert an existing mlg file to plain-text INI and the import task will convert plain-text INI to binary mlg format, readable by MaLa.

The INI file standard used by MaLa (and mlgconverter) can be seen below:

Not all these values are required by MaLa, but I can't tell you which ones are because I just create an INI file based on the data in the mame.xml file. You would have to play around to determine which values are absolutely required.

Each section header is the name of the rom (for example: [sf2ce] is the header for Street Fighter 2: Championship Edition and the values in the section are all for that game).

Please let me know if this tool gets used and if you find it useful to you. Realistically, the code base is not production ready but it works and does what I wanted it to do but I don't want to put too much more time into this if I'm the only one using it.

one thing i'd like to see in a gamelist program is the ability to delete ROMs not in the list(s). or, more safely, move them out somewhere else you can test and make sure you won't be needing them. The program would have to be smart enough not to get rid of parent sets and BIOSes for anything that might be in the list.

anyway, i may be in the minority now using a small harddrive. I've already deleted the big stuff I don't play, but ditching lots of smaller games would help too.

ETA: maybe this is already possible with another util now that MLG can be turned into INI?

one thing i'd like to see in a gamelist program is the ability to delete ROMs not in the list(s). or, more safely, move them out somewhere else you can test and make sure you won't be needing them. The program would have to be smart enough not to get rid of parent sets and BIOSes for anything that might be in the list.

anyway, i may be in the minority now using a small harddrive. I've already deleted the big stuff I don't play, but ditching lots of smaller games would help too.

ETA: maybe this is already possible with another util now that MLG can be turned into INI?

Hm.. that is interesting. This little program wasn't really designed to be running on your arcade, at least not mine (because my arcade is running a puny windows 2000 PC with like 128MB of ram) so its features are entirely geared towards creating custom mlg game lists based on the master mame.xml database. For me... there aren't any roms on the machine I use this tool on. In fact, on the development build there's an FTP Update feature so when I get done creating a new game list, I just click a button and the new lists are FTP'd over to my arcade.

If my tools were included in the main MaLa release, then I'd probably design a tool specifically geared towards being run directly on the arcade (integrated with mala itself) but as it stands now, this tool is stand-alone and pretty much only has the features that I need personally.

Yea, exactly. My cabinet can barely run W2K, let alone the .NET framework. In fact I don't know if you can even install .NET v3.5 on W2K. From the outset this tool was designed to be used on your regular PC and then the mlg files are transferred to the cab through VNC, RDP, or FTP.

one thing i'd like to see in a gamelist program is the ability to delete ROMs not in the list(s). or, more safely, move them out somewhere else you can test and make sure you won't be needing them. The program would have to be smart enough not to get rid of parent sets and BIOSes for anything that might be in the list.

romlister does that. For any list you create, you can output it as a batch file too. Use that batch file to move or copy the files you do want over to your machine. See the tutorials for working with batch files.

In order for that to be effective, you would want to use CMpro to convert your collection into a split set, where each .zip file is its own game. Delete the zip, delete the game entirely. You don't mess with parent zip files being required to run child games that way or even need separate BIOS zips. Most people with large hard drives would just leave the rom set this way.

Since you're pressed for space, you would probably want to then use cmpro again to re-merge the set, reducing the amount of HDD space you'd need.

edit: not trying to steal thund3rstruck's thunder (sorry for the pun) about the new utility!

edit: not trying to steal thund3rstruck's thunder (sorry for the pun) about the new utility!

Not at all... ROMLister is perfect for advanced tasks like the one requested above. My tool is for dummies like me who are new to the scene and just want a brows-able, filtered list of all the roms (sortable by the various elements in mame.xml) which we can drag and drop into new gamelists.

for list editing I wish to have a simple tool that allows me to create the list as just plain text rom names. then havig the list converted to mala list game does such tool exists ??

I'm most used to deal with text parsing and unix tools than other thing, thats why dealing with plain text is easier for me. no need for graphic interface. command line will be fine.

Absolutely, Please read the 2nd half of the post. My tools consist of 2 parts, the command line converter and the graphical user interface which wraps the converter. The CLI utility, does just as you say, it converts binary mlg files to plain-text (ascii) ini files. Feel free to use Perl, Bash, CShell, or whatever tool you like to parse the file. If you want to convert from plain-text to binary mlg, then just create the ini file in your language of choice and feed it into the converter. The ini template is in the post.

You can also read about my lessons learned from this project in my code-project article which documents how I arrived at the solution I engineered and the struggles I had to overcome regarding some of the limitations I encountered with the System.Diagnostics.Process class types while building this modular framework:http://www.codeproject.com/KB/dotnet/FunWithProcesses.aspx

The only reason there is a graphical user interface at all is because I figured no-one (other than me) would ever use the tool if I released the command line converter on it's own.

I have not tested it yet but when you are done I am happy to hosts it at malafe.net if you want? Or at least a link to it.

I appreciate it loadman. I have created all my lists using the tool and now I'm just waiting for feedback from the MaLa community. If it's useful to them then I will host it on one of my servers permanently, and if not then that's ok too, the publicly available project will die and I'll just use it myself whenever I need to manage my MaLa game lists.

I installed this app recently on my home PC (win7 32bit), since my arcade box doesn't have .net framework. Anyways, I copied over my malagamelist.mlg file, and mame.xml, however I am unable to get the game list to open up.

My first step was to use the command line and export it to a .ini... the screen scrolled through the entire list, and eventually got to the end. No ini. Then I opened up the GUI, it imported my .XML fine, and displayed ALL of my games that I have in the list on the left. When the GUI tried to load the .mlg, again the DOS window came up, scrolled through my list, and eventually closed, with no result.

It seems regardless of what I try, I can't get my .mlg to populate in the right-hand column. Suggestions?

I installed this app recently on my home PC (win7 32bit), since my arcade box doesn't have .net framework. Anyways, I copied over my malagamelist.mlg file, and mame.xml, however I am unable to get the game list to open up.

My first step was to use the command line and export it to a .ini... the screen scrolled through the entire list, and eventually got to the end. No ini. Then I opened up the GUI, it imported my .XML fine, and displayed ALL of my games that I have in the list on the left. When the GUI tried to load the .mlg, again the DOS window came up, scrolled through my list, and eventually closed, with no result.

It seems regardless of what I try, I can't get my .mlg to populate in the right-hand column. Suggestions?

I got your mlg file and man is it huge (2,235 games)! Ok so here's your problem. When you created your game list you named it 'Games' in the mala game list editor (the editor that comes with Mala) but you saved the file as trim.mlg. So when you selected it from the GUI program it exported properly, but it was exported as 'Games.ini' since the command line converter names the file based on the internal mala list title.

To get it to load in the GUI program, just rename the exported Games.ini file to trim.ini and viola! It loads right up and you can edit it, add to it, or remove items from it.

In the GUI program, the exported INI file and the MLG file need to have the same name. That's not a problem if you use the GUI to create and manage all your lists, but if you use a 'legacy' list, (in other words, a list created with the default MaLa list editor tool) you need to make sure the Title of the list and the file name are the same.

I got your mlg file and man is it huge (2,235 games)! Ok so here's your problem. When you created your game list you named it 'Games' in the mala game list editor (the editor that comes with Mala) but you saved the file as trim.mlg. So when you selected it from the GUI program it exported properly, but it was exported as 'Games.ini' since the command line converter names the file based on the internal mala list title.

Indeed its huge, I have been going through it by hand in MAME deleting titles that don't work, are lame, I will never play, etc. The idea being that your program will make it a bit easier to filter through and modify my list.

Thanks for your help, I was fairly certain it was something I was doing wrong with the app. I will be sure to give it a try tonight when I get hom from work.

In the meantime, 1 quick question--I didn't see it addressed but might have missed it in my skimming of the thread:

Does your program let the user spit a text file of the games used in a list? More specifically, I'd love to have a text file of the game names (not ROM names, the text string that appears in MaLa).

Thanks!-Jason

The mlgconverter.exe (the command line tool which speaks Mala's language) converts the binary, proprietary MLG file format into plain-text INI. The INI file contains all the data in the original MLG file. The name of the game (not the rom name but the actual title) itself is stored in the Description key for the section which represents each game.

The Graphical User Interface tool (MalaGamesListEditor.exe), simply wraps the command line tool so users never have to actually use the command line tool, unless they want to script/automate the creation of game lists.

I'm not sure that answered your question... if not, perhaps I didn't understand the question

I think you answered my question--I wasn't 100% sure that an "ini" file was a "txt" file. I guess that's interchangeable.

I downloaded it & tried it out & had a couple of comments/questions/problems:

1 - Because I didn't have my mame.xml handy (lazy, tired...), I tried to launch the GUI version (MalaGameListEditor.exe), but it wouldn't launch without mame.xml. That's OK.

2 - So, I ran the command prompt version. It took a couple of tries for me to get the syntax correct. I noticed that the file is mlgconverter.exe, but the command prompt "help" that pops up explains syntax & calls the program convertmlg. I guess you had a name change in the development somewhere? :]

3 - After figuring out the syntax, I typed in "mlgconverter export Infernolab.mlg" (minus the quotes). It crunched through my 2200-ish files, saying: "Exported: ? from list: Infernolab Cabinet", where "?" is each ROM name. After it was all done, I couldn't find any new .ini file that was generated. Should it be written to the same directory as the program & the mlg file?

3 - After figuring out the syntax, I typed in "mlgconverter export Infernolab.mlg" (minus the quotes). It crunched through my 2200-ish files, saying: "Exported: ? from list: Infernolab Cabinet", where "?" is each ROM name. After it was all done, I couldn't find any new .ini file that was generated. Should it be written to the same directory as the program & the mlg file?

Yea, I noticed that the other day as well. The game list file path parameter needs to be the full path because the Delphi code I wrote is a little dumb (cause I had to learn the Delphi programming language in like 2 hours to do this). So in other words you need to specify the full path like this:

You can be sure that a new file infernolab.ini was created somewhere on your disk, but I can't tell you exactly where it went... . That's a legit bug that I need to fix.

I was waiting for someone to use the command line converter before mentioning this bug...

Hope this helps,Cheers!

Heh, isn't that basically the same issue I was having several days ago? No ini file to be found in the directory. No worries, I've redone my .mlg with the full path and this time all worked like it should have.Still a handy app, for sure.

Yea, I noticed that the other day as well. The game list file path parameter needs to be the full path because the Delphi code I wrote is a little dumb (cause I had to learn the Delphi programming language in like 2 hours to do this). So in other words you need to specify the full path like this:

You can be sure that a new file infernolab.ini was created somewhere on your disk, but I can't tell you exactly where it went... . That's a legit bug that I need to fix.

Howdy-

Oddly, I did a search from Windows Explorer & it found no such .ini file anywhere on my hard drive. Kooky. I re-ran the program with the full path to my .mlg file & it cranked through all 2200ish games & created the .ini file. Hooray!

One more request/question. My goal is to simply generate a txt file list of all of the games in my MaLa cabinet, as they appear in my MaLa menu. This seems to correspond to the "description" line in the .ini file that your program generated.

Is there a way to generate a file with *only* this piece of data, 1 entry per line? I'd like the "description=" text to not be there, but that's very easily taken out with a Find & Replace in Word or Notepad.

Oddly, I did a search from Windows Explorer & it found no such .ini file anywhere on my hard drive. Kooky. I re-ran the program with the full path to my .mlg file & it cranked through all 2200ish games & created the .ini file. Hooray!

Well actually the file is going to be named based on the gamelist title itself, so it would only be inferno.ini if inferno was the name of the game list title. When I get some time I'm going to dig in and find out exactly what's going on if you don't specify the path. It might well be doing nothing since I think I have implemented empty try/catch error handling (due to my lack of knowledge of the Delphi language).

Quote from: jasonbar

Is there a way to generate a file with *only* this piece of data, 1 entry per line? I'd like the "description=" text to not be there, but that's very easily taken out with a Find & Replace in Word or Notepad.

Yes there is, just not in this tool. My tool serves a very specific/limited purpose, and thats to create, edit, and manage MaLa game lists. For all these auxiliary tasks I recommend using ROMLister. In ROMLister you load up your XML file, click the 'List All Roms' button, and select the CSV option. From there you can select the 'Description' field and specify the output as a text file.

If all you want is a list with the descriptions, you can do it using a vbscript. I've attached a zip with a vbscript that does what you're after. You must run it from the command prompt (inside the zip file is a short cut) using the following syntax:CreateMalaGameList.vbs mala.ini #

mala.ini refers to the ini file generated by malaGamelistEditor.exe.# can take to two values 0 or 1: 0 leaves the description just as it is 1 removes the brackets from the description: (), [], {}

Example:CreateMalaGameList.vbs fighters.ini 1

The end result is a file with an underscore infront of it, in the same directory:_fighters.ini

I'll let others chime in on that. I know for me personally, my cabinet runs a really old windows 2000 PC and that PC doesn't have the .NET framework installed. I use the tool to manage my gamelists on my main PC and then I FTP the mlg files to my cabinet.

It seems like the download link no longer works. Besides opening up a ton of popups, the page to download never appears. Any chance on reuploading it? Thanks! Looks like exactly what I've been looking for.

I just wanted to say thanks for such a great tool. I only used the converter, but it worked perfectly. I was able to take Hyperspin's XML files and convert them into Mala game list files with a file for each genre for each of my consoles. I definitely think the converter should be included with MaLa, at least.

Hi, I am running on Windows 7, and have everything installed on this machine, I believe, that you said we'd need to run this software. I am able to open the software, but once I modify a list, and then try to save it, I get an error message. I am only trying to add one game to the list, but it does not work. I have tried to add other games as well, but the error occurs also, so it's not specific to one game.

Attached below is a screenshot of the error, also the text that appears in the details section. Please let me know if you have any ideas as to why this isn't working for me.

Any reason this wouldn't be able to display the controls or Players columns properly? I'm trying to create lists for like, trackball games or 4 player games, and when I select those columns, they show up completely empty. I have checked the mame.xml file and the data is there, it just doesn't show up in your editor.

I was just giving the mlgconverter a run through, converting my All Games mlg file. I know there's about 2600 entries in it, but the tool appears to get drastically slower as it worked through the list, clicking off the first hundred entries in just a few seconds, but my the time it got down about 2-400 entries in, each entry was taking more than a second.

For anyone interested, these are the entries that you HAVE to have mlgconverter make a working mlg. The first two lines are the rom name as they appear in the directory. "description" is what you want to appear in the MaLa game list. romPath is the path to the folder that this rom is in, with trailing /. "extension" is just the rom extension, without period.

STEP 1: Use the mame executable to create an XML file. I did mine by opening a command prompt (Run CMD) and typing "mame -listxml >mame.xml" (without the quotes)

STEP 2: Download and unzip the Catver.ini file. NOTE. The Catver.ini file you will get also contains version information, and is formatted slightly different than the versions this program was built for, so we will need to modify the INI file in order to make it usable in this game list editor.

STEP 2A: Open Catver.ini in Notepad or Wordpad (might as well use Wordpad since you need it for STEP 2B), and scroll about halfway down. There will be a blank line, then "[Veradded]", then the list begins again only with the version of MAME each game was added. Delete everything from this point down, its not needed for the Game List Editor and will just slow down parsing and increase the chance of the program crashing.

STEP 2B: IMPORTANT - Now, in Wordpad (I tried notebook, but it just locks up, wordpad worked great), click Edit and click Replace. In the 'Find what' textbox put " = " i.e. space equals-sign space, (dont add parenthesis), and in the 'Replace with' textbox put "=" i.e. just equals-sign, (dont add parenthesis). Basically, we need to remove the space before and after all of the equal signs, the program was written for older versions of the Catver.ini files, and the older versions didnt have those spaces, so the program wont work.

STEP 3. Move the catver.ini file into the Mala Gamelist Editor directory and overwrite the one that is currently there.

STEP 4. Run the program, follow the prompt and find the mame.xml file you created earlier, then allow it to load. When it finishes loading it will ask you if you want to load the Genre information, click yes and wait. At this point it will begin parsing the INI File, this is also the point where the program often crashed on me. If it crashes, just reload and when it finishes loading the xml it will again ask if you want to add the Genre info, keep doing this eventually it will work.

-----

If you need to change to a different mame.xml (for whatever reason) just open malagamelisteditor.ini file and delete the entry for MAMEDB=. Just delete anything after the = sign and save, and next time you load the program it will ask you to find the xml file.

Hopefully this saves someone a little bit of time. I found this program quite useful for making a more detailed tree/gamelist in Mala, which helps me get to specific games *very* quickly.