I thought some of you that have requested to use different versions of Mame or other emulators in one Mala gamelist might be interested in how I did it. Why did I want to add this? I use Aaron Giles Radikal Bikers emulator. This emulator emulates that one game. I didn't want to have to change emulators in Mala to show a game list with this one game by itself. I also sometimes like to run different versions of Mame for those games that run better with earlier versions. I also wanted other combinations like having Tiger Woods Pga Tour in a game list with Golden Tee. I wanted to run Daytona with the new Model 2 emulator and have it show up in the same list as my other racing games.
The solution involves moving the roms for different emuls into subfolders. If it is a game that doesn't have a rom, then a dummy rom is added to the sub-folder. For example, moving all the roms for the new Model 2 emulator to a subfolder. Then having Mala pass the %path% parameter to a batch file. The batch file will know what emulator to use based upon the path variable that is passed to it. The solution does NOT use the "Other Emu Config" section of Mala because that requires different game lists.
Adding games that are not part of the mame.xml is easy to do by adding a few lines to mame.xml. Anyway, here's how I did it. Suggestions for improvement are welcome.
1. Create a parent folder for the roms of the non-Mame or other versions of Mame such as:
C:\emulators\other_emus
2. Create a sub folder for every type of emu, for example
c:\emulators\other_emus\m2
c:\emulators\radikalb
c:\emulators\other_emus\pc_games
3. In Mala, add the path parameter to the command line
making sure there is a space between the 2 parameters:
Mame Config>Additional>Command line:
%rom% %path%
4. Set a second rom path
Mame Config>Basics>Rom path
Choose Rom path =
2
Enter the path to the parent folder created in the 1st step:
c:\emulators\other_emus
Important! Click:
Search in subfolders5. Place the actual rom (or create a dummy file with a zip extension if a ROM isn't used) into one of the appropriate folders. For example, move daytona.zip from the normal Mame roms folder to:
c:\emulators\other_emus\m2
You must not leave a copy of Daytona.zip in the Mame roms folder or Mame will run it instead of the Model 2 emulator.
6. In Mala, refresh the Main Games List.
7. In the Mame folder, create a Mame.cmd which contains the following for example:
if "%2" == "C:\emulators\other_emus\radikalb" goto radikalb
if "%2" == "C:\emulators\other_emus\m2" goto m2
if "%2" == "C:\emulators\other_emus\pc_games" goto pc_games
mame.exe %1
exit
:radikalb
cd ..\radikal
closemul.exe radikalb.exe
exit
:m2
cd ..\m2emulator
closemul.exe emulator.exe zip %1 rar
exit
:pc_games
cd \emulators\pc_games
%1.cmd
exit
8. In Mala, change the MAME executable to point to the Mame.cmd file that you created above instead of mame.exe.
Mame Config>Basics>Mame executable
For example:
C:\emulators\mame116u3\mame.cmd
9. If you want to add other emulators that run games that are not part of Mame, you can easily add them to the Mame xml file by adding (for example)
the following entry for each game to the very bottom of mame.xml:
<game name="Tigerw">
<description>Tiger Woods PGA Tour 07</description>
<year>2007</year>
<manufacturer>EA Sports</manufacturer>
<driver status="good" emulation="good"/>
</game>
A batch file could be written to take the file names in a folder and add the xml entries automatically though the description would have to be manually edited/added. Year and manufacturer are optional.
Note that refreshing the main game list is usually necessary after changes. Also note that custom game lists are not automatically refreshed. For example, if you have Daytona already set to be run by Mame and you change it to be run by M2, the custom game list still points to the old rom location. It will have to be removed and re-added to get the new settings.