In the course of recent progress I had opportunity to search how to properly use mame core in Retroarch.
My findings are probably same as most of yours where it will end in frustration, angst, and consternation.
Behold.. I will give the benefit of my own findings and HOPEFULLY put and end once and for all to random musings and tests using ye olde mame core in Retroarch.
Keep in mind, I didn’t try any other systems than Apple (for somewhat obvious reasons) but I suspect the results are similar with other non arcade content.
First off, here is the appropriate directory structure (which can be changed.. see below)
drive:/path/retroarch/system/mame <- in this dir, I put everything I from a FRESH copy of mame outside the executables (mame.exe, chdman, .dll’s etc) but copied the dirs, cfg, ini ctrlr etc. completely from a fresh install in another directory.
drive:/path/retroarch/system/mame/roms <- this is where it’s interesting.. yes you SHOULD put system/bios roms here, and possibly games if using arcade (coming up I have a theory.. but never tried it YET)
–Here is where the bread and butter meet.. including some odd findings—
Note: I am using the LATEST mamelibretro.. no 2016, 2012, etc.. just whatever is latest as of today. Of course, it’s under the usual retroarch\cores. Nothing strange here.
Commandline: This is the uber frustrating not documented anywhere really well but I sussed out how to get it to work and think I know HOW it works.
Retroarch.exe -f -L cores\mame_libretro.dll “apple2e -rp .\system\mame/roms -gameio joy -flop1 .\games\beachhead.dsk”
Let’s break this down..
Retroach.exe -f -L cores\mame_libretro.dll <- the usual call for a libretro core. Nothing odd here..
“apple2e -rp .\system\mame/roms <– whoa.. wait a sec.. first note ENTIRE string of system and any commandlines being passed to the mame_libretro core MUST be in quotes.. because you’ll be using a space between commandline parameters
second note: -rp <-??? what the heck is this? yes.. it appears to mean ROM PATH.. which is where mame_libretro.dll (core) will find apple2e.zip (or any other mame non arcade system) <- THIS is important because you CAN put apple2e.zip as an example but the core seems to IGNORE the rest of the commandline PAST this every time. So… you put in the name of the SYSTEM (USUALLY has same name as a .zip) and put the PATH where that system rom/roms/bios are located. Note the system apple2e happens to have the .zip of apple2e.zip, but remember I am using the mame system name, NOT the .zip filename.
second note continued: I didn’t try myself yet.. but I suspect you may be able to put multiple paths using ; separator.. perhaps one path for your system bios, another for roms? Althought it doesn’t matter so much* because:
-gameio joy -flop1 .\games\beachhead.dsk” <- first.. notice the end quote? remember.. EVERYTHING past the .dll must be in quotes
the command -gameio, -flop1 etc are just the same commands you’d use for that particular SYSTEM in the mame core. No special magic here*** 🙂 read the commandline parameters for each SYSTEM via the mame wiki as they can be very different.
So.. that would solve the ‘how to use mame core (finally) with retroarch’ dilemma BUT keen observers see something.. I am NOT using software lists.
Why? because software lists that exist are too narrow and cannot be bother to edit/add any more.
*, *** -> here is where it gets weird.. and yes, probably because I am not using software lists blah blah but I’d say it’s a bug somewhere regardless..
If I had .\games\beach head.dsk” it would NOT work. This would seem illogical because my ENTIRE string past the .dll is in quotes remember? so my shouldn’t matter….
Well. it does…
Solution.. ANY file being loaded without those venerable ‘software lists’ must NOT have any spaces in filenames. Yes, replace them with _ or concatenate.. or create a fancy loader that will deal with it at runtime… oh wait.. 😉
In any event. I sincerely hope this helps anyone trying to use the mame core with libretro. The benefits of using retroarch are obvious.. but you have to use it correctly.
note note note: it seems the forum does not like \ so I had to substitute \ for / in this post above.. please note this and use \ instead of / as documented above. the forum software is treating as control chars I think.. (carriage return/linefeed perhaps?)
CALIMEROKAYU, LuDeGoo, Darbyram, Paulo Neto