Jump to content
LaunchBox Community Forums

Using MAME (MESS) Retroarch to emulate various systems


SiriusVI

Recommended Posts

Hey everyone,

some time ago, I tried to emulate Apple II games with the Mame core of Retroarch and succeded. There was some tinkering involved and lots of help by this wonderful forum. I've since managed to emulate lots and lots of systems using using this method. The basics for how this works can be reviewed here:
 

 

Let's look at how I got Apple II to run:

 

1. Get Mame Software List Roms and put them in a folder.

2. You make sure that you copy any extra files that mame requires

My Folder is called "Apple II" and looks like this:
image.png.343849700802c7a39db3a7220c354218.png3. Go to X:\LaunchBox\Emulators\RetroArch\system\mame\ini and edit "apple2e.ini". You need to specify where your roms are:

image.thumb.png.da99a2f32d49a381ae3dcd0d1b2e1fd6.png4. Add a new Retroarch Emulator to your list of emulators and check "Don't use Quotes". 

5. Add Apple II as an associated platform, choose mame (no year tags) as your core and use this command line (yes with the double quotes): 

"apple2e -rp \"L:\LaunchBox\Games\Apple II\" -flop1 \"%romfile%\""

 

This way, the apple roms load fine (in the mame core options, you must turn CLI on for Apple II to work).

 

Now, if this works, why am I complaining? Well, there are some downsides to using Software List Mame roms. First of all, they are named in a way that prevents Launchbox to scrape Metadata, and second, The software List roms include not only games, but also loads of programs and other software that don't work or that I don't need.

Recently I've read in this form that Mame actually CAN use roms that are named differently from Software List conventions when using command lines to open them. This interested me so I tried to load Apple II toms from the TOSEC set using the same method as shown above. And what do you know. It works very well. This is great, because sets like TOSEC separate games from other kinds of software and the file names are usable by Launchbox.

 

So what's the problem? The problem is that this method works well with computer systems that use floppy disks or cassettes. It does NOT work for systems using cartridges (-cart).

Systems that use cartridges seem to work differently from systems using floppies and cassettes. For example, if I try to emulate Atari 5200 using Software List roms, I don't need t add a corresponding commandline like for Apple II ("apple2e -rp \"L:\LaunchBox\Games\Apple II\" -flop1 \"%romfile%\""). Instead, the game will run fine using the mame core without any command line. The same goes for other cartridge based systems like Aamber Pegasus.

If I however try to use a different Set, say the no intro set for Atari 5200, the game will not load. For Example, if I load "berzerk.zip", the game will work. If I load "BerZerk (USA).zip", the game will not load.

Then I thought, maybe I need that weird command line to be able to use non Software List roms with mame. So I tried:

"a5200 -rp \"L:\LaunchBox\Games\Atari 5200\" -cart \"%romfile%\""

This however causes Retroarch to crash.

 

So why is this? Why can I emulate floppy based systems like Apple II or Acorn Archimedes, but not cartridge based systems such as Atari 5200 or Aamber Pegasus?

I'm not against using Software List roms, I just like to keep things consistent and convenient, but I always have the option of going back to using Software List roms. However, I'm really interested in why this just won't work. It's really bugging me.

Edited by SiriusVI
Link to comment
Share on other sites

I've never tried MAME roms in RotroArch because... well MAME works.  But if you're using the MAME core in RA, you were really close to answering your own question when talking about BerZerk.   "berzerk.zip" works, but "BerZerk (USA).zip" does not.

MAME, be it stand alone or through RA uses and looks for it's file naming convention.  i.e. berzerk.zip  or  adventur.zip.  So when it see "BerZerk (USA).zip", it doesn't recognize it, so probably doesn't even bother to look inside the zip for the .bin file.  I don't know about the 5200 no-intros, but the 2600 set, inside the zip file has a ".a26" file extension.  Again, MAME probably wants a ".bin".   So kind of a double wammy of using non-MAME roms with the MAME core.

But if you have the other [no-intro] sets you could still use RA but with a different core loaded. Couldn't you?

 

Link to comment
Share on other sites

Thank you for answering.

Yes it seems to have something to do with mame Software List naming conventions, but this is only an issue for cartdidges it seems. Maybe I explained it badly in my initial post, so I try to simplify it here:

1. I have Apple II roms and Acorn Achimedes roms (from the TOSEC set) which are NOT named correctly (acording to Mame Software List), but mame will still load them if I use the commandline shown above

2. I have Atari 5200 roms and Aamber pegasus roms (from the TOSEC set) which are NOT named correctly (acording to Mame Software List), and mame refuses to load them. 

3. As far as I understood, both of you use Software List roms and yes Mame will obviously load any roms which are named correctly acording to Mame Software List

So the question ist: why can I load Apple II, Acorn Achimedes and many other disk based systems (with incorrect names), but not Atari 5200, Aamber Pegasus and other cartridge based systems.

Edited by SiriusVI
Link to comment
Share on other sites

There is a way to use RA MAME core with for Software List games in MAME using non software list roms ie no-intro roms will work. The thing of it is I don't remember how to do so and can't recall who posted the solution on the forums but it is definitely possible just much easier to use MAME and official Software LIst roms.

Link to comment
Share on other sites

6 minutes ago, DOS76 said:

There is a way to use RA MAME core with for Software List games in MAME using non software list roms ie no-intro roms will work. The thing of it is I don't remember how to do so and can't recall who posted the solution on the forums but it is definitely possible just much easier to use MAME and official Software LIst roms.

Yes I know that it is possible (it was a post by you that put me up to this idea ;)), and I managed to do it with all systems that use floppy disk and cassette images. I'm just wondering why it doesn't also work for cartridge images.

Link to comment
Share on other sites

You've got my morbid curiosity going now.... let's try some reverse-engineering.

Look at apple2_cass.  [grabbing a file near the top of the list] let's compare the MAME rom "advent0.zip".  Is your TOSEC rom for the same game by any chance named something along the lines of "adventure 0 special sampler (1979)(adventure international)"?

same thing...

apple2_flop_orig  --  1on1.zip.   Is your TOSEC rom named "one on one"?

Link to comment
Share on other sites

1 hour ago, JoeViking245 said:

You've got my morbid curiosity going now.... let's try some reverse-engineering.

That's great =D.

So let's look at my apple2 games:

Apple II game "Alcazar - The Forgotten Fortress"

TOSEC name is: "Alcazar - The Forgotten Fortress (1985)(Activision)[48K].zip" containing "Alcazar - The Forgotten Fortress (1985)(Activision)[48K].woz"

Mame SL-Name is: "alcazar.zip" containing "alcazar.woz"

Both games load fine.

 

I did however look into the a5200 rom set from no intro and the zip files contain ".a25" files, whereas the mame set contails .bin files. So I went and grabbed the TOSEC set for a5200 which also uses .bin files. Sadly, the roms still don't load.

 

I did some  more testing and found out that if you rename the TOSEC .zip files the way mame expects them, the games will load just fine even though the files within the .zip files has a different name than the one in the mame set.

 

Edit: I'm almost 100% sure that the error lies at the command line.This works for Apple and all other floppy and cassette systems I've tried:

"apple2e -rp \"L:\LaunchBox\Games\Apple II\" -flop1 \"%romfile%\""

But the same command line does not work for nay cartridge based system I've tried

"a5200 -rp \"L:\LaunchBox\Games\Atari 5200\" -cart \"%romfile%\""

Edited by SiriusVI
Link to comment
Share on other sites

We might be looking at different implementations between Computers vs Consoles and also how they're ripped.  Ya, ya... bits/bytes, toma[y]to /toma[h]to. (Binary might in there too).  Anyway, different implementations: the team working on Computers may be more lenient towards filenames whereas the Console team working with the binary rips say "I'm going to call it whatever I want."

My guess with TOSEC zip renaming (5200), once MAME sees the correct [zip] filename, it doesn't care what's inside.  As long as the crc [?and/or sha1 [both?]] check out. 

Link to comment
Share on other sites

I fixed it! Atari 5200 is up and running. The error was in the mame core options. the option "boot from cli" must be "enabled", same as with Apple II. The reason why I left it disabled was that with mame Software List Roms, Atari and other cartridge-based systems work with CLI disabled. So I just thought I didn't need to enable it.

Don't know why I didn't think to test this option before.

 

Edit: interestingly enough. This fix does not work for Aamber Pegasus, even with the same settings.

Edited by SiriusVI
Link to comment
Share on other sites

4 minutes ago, JoeViking245 said:

That page pulls it's info directly from MAME itself (via -listmedia) which in turns coincides with the MAME hash xml (-cart or -cart1..). 

That was from 2016 and MAME version 0.174 though.

You are right, MAME 0.219 itself lists:

Quote

PS C:\Users\ARCADEPC\LaunchBox\Emulators\MAME> .\mame64.exe pegasus -listmedia
SYSTEM           MEDIA NAME       (brief)    IMAGE FILE EXTENSIONS SUPPORTED
---------------- --------------------------- -------------------------------
pegasus          romimage1        (rom1)     .bin
                 romimage2        (rom2)     .bin
                 romimage3        (rom3)     .bin
                 romimage4        (rom4)     .bin
                 romimage5        (rom5)     .bin
                 cassette         (cass)     .wav

Directly from MAME is always best source. 

Link to comment
Share on other sites

Well Snap!!   The latest hash file (0.220) also [still] says "cart".  Never would have thought to cross check with the -listmedia.  Well played @Headrush69 :)  Thanks!   I may need to rethink how I pull the info to use in the Software List Import Tool.  Then again, I'm thinking for a few anomalies, it'd be easier to stick with the hash file and answer questions later. :D

Link to comment
Share on other sites

16 minutes ago, JoeViking245 said:

 it'd be easier to stick with the hash file and answer questions later. :D

Probably. It's weird that it's still called a cart device, but they use the rom media type. Seems inconsistent. I did some searching in the MAME/MESS change logs and don't see much in regards to the Aamber Pegasus and when it changed. It wasn't an exhaustive search, but thought if it was just an over sight, would be something to report on Mame Testers.

JoeViking245, kudos on your software import tool BTW. I don't use software lists much myself, but I appreciate you providing that tool for people that do. (After spending decades amassing rom files, since finding LaunchBox and making an arcade cabinet, I'm much more into a smaller curated list of games that play well within that setting. My Apple 2 collection only has 7 games. Only ones from my youth that still play well today.)

Link to comment
Share on other sites

Yeah, I love the Software List Import Tool as well. The only downside to using Software Lists is that they contain so much software that isn't games that you have to go through all of the files separately once importing is donw. Would be great if there was a way to filter out all the non-games from the software lists.

Link to comment
Share on other sites

26 minutes ago, Headrush69 said:

kudos on your software import tool

Thank you very much. Both of you.  It's been a fun project/learning experience.

 

23 minutes ago, SiriusVI said:

Would be great if there was a way to filter out all the non-games from the software lists.

I haven't looked at all, but if you can find a current compiled 'category'-type file for Software Lists, it's definitely something that could be looked into. :) 

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