Front End Support > MaLa Frontend

GameLists: Multiple emuls in same list work-around solution

(1/68) > >>

SGT:
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:

--- Quote ---C:\emulators\other_emus
--- End quote ---

2. Create a sub folder for every type of emu, for example

--- Quote ---c:\emulators\other_emus\m2
c:\emulators\radikalb
c:\emulators\other_emus\pc_games
--- End quote ---

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:

--- Quote ---%rom% %path%
--- End quote ---

4. Set a second rom path
Mame Config>Basics>Rom path
Choose Rom path =
--- Quote ---2
--- End quote ---
Enter the path to the parent folder created in the 1st step:

--- Quote ---c:\emulators\other_emus
--- End quote ---

Important! Click: Search in subfolders

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

--- Quote ---c:\emulators\other_emus\m2
--- End quote ---
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:


--- Code: ---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
--- End code ---

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:

--- Code: ---C:\emulators\mame116u3\mame.cmd
--- End code ---

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:


--- Code: --- <game name="Tigerw">
                                  <description>Tiger Woods PGA Tour 07</description>
                                  <year>2007</year>
                                  <manufacturer>EA Sports</manufacturer>
                                  <driver status="good" emulation="good"/>
</game>
--- End code ---

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.

shock_:
 :notworthy:

I should be able to use this to integrate Daphne and MAME I think.  Nice tip on appending the XML, which suddenly becomes useful with the integrated game list.  It all makes sense!

SGT:

--- Quote from: shock_ on July 02, 2007, 08:47:46 pm ---I should be able to use this to integrate Daphne and MAME I think.   Nice tip on appending the XML, which suddenly becomes useful with the integrated game list.  It all makes sense!

--- End quote ---


Shock_,

Yes, I just added Dragon's Lair and it runs and shows up in a game list with other Mame games.

I added the following to mame.xml:


--- Code: --- <game name="lair">
                 <description>Dragon's Lair</description>
                 <year>1983</year>
                 <manufacturer>Cinematronics</manufacturer>
                 <driver status="good" emulation="good"/>
</game>
--- End code ---

I added a subfolder under other_emus:
c:\emulators\other_emus\daphne

I created an empty text file in this sub-folder and then renamed it lair.zip. I did this because I have Mala set up to only show games with roms.

I refreshed the main game list and made sure it showed up.

I added a Daphne section to mame.cmd:

--- Code: ---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
if "%2" == "C:\emulators\other_emus\daphne" goto daphne

mame.exe %1
exit

:radikalb
cd ..\radikal
closemul.exe radikalb.exe
exit

:m2
cd ..\m2emulator
closemul.exe emulator.exe zip %1 rar
exit

:pcgames
cd ..\pc_games
%1.cmd
exit

:pc_games
cd \emulators\pc_games
%1.cmd
exit

:daphne
SET DAPHNE=C:\emulators\Daphne\daphne.exe
cd ..\daphne
if "%1" == "lair" start/wait %daphne% dle20 vldp -framefile C:\emulators\Daphne\vldp_dl\lair\lair.txt -fullscreen -blank_skips -blank_searches -preset 1
exit

--- End code ---


You could actually modify the daphne section above so that you don't have to add a new line for each Daphne game as long as all your daphne txt files are in a sub folder with the same name as the txt file (which mine are not).  I think I will try to restructure my Daphne configuration so that I can use the following:

--- Code: ---:daphne
SET DAPHNE=C:\emulators\Daphne\daphne.exe
cd ..\daphne
start/wait %daphne% dle20 vldp -framefile C:\emulators\Daphne\vldp_dl\%1\%1.txt -fullscreen -blank_skips -blank_searches -preset 1
exit
--- End code ---

Word of caution.  The names of paths in the mame.cmd when comparing with == are case sensitive.

 :cheers:

SGT:
Check it out:

DaveMMR:
Awe... Some... !

I will try it out this weekend.  Thanks!   :cheers:

Navigation

[0] Message Index

[#] Next page

Go to full version