-cart being read as "load config art" in MAME core

I can’t seem to pass the -cart parameter in retroarch without it thinking I’m specifying a config file. Windows 7 x64 system, current mame core (also failed with both mame2014 and ume2014). My command line is as follows:

retroarch -L cores\mame_libretro.dll odyssey2 -cart1 voice -cart2 "c:\games\roms\odyssey2\timelord.zip"

timelord.zip will load fine without “odyssey2 -cart1 voice -cart2”, but that argument is required in order to activate the voice synthesis - at least that’s the parameter used in the standalone mame executable that I’ve verified as working. I also noticed this at the start of the logfile:

RetroArch [INFO] :: Set config file to : art1 RetroArch [INFO] :: Set config file to : art2

As well, it doesn’t seem to match timelord.zip against the hashfiles once the above argument is used.

Any idea? I’m assuming it’s syntax related, but…

Did you search/read the other with a similar subject ?

As said previously you have to backquote your args or using a “.cmd” text file.

retroarch -L cores\mame_libretro.dll  "mame odyssey2 -cart1 voice -cart2 \"c:\games\roms\odyssey2\timelord.zip\""
or using a text file timelord.cmd containing
mame odyssey2 -cart1 voice -cart2 "c:\games\roms\odyssey2\timelord.zip"

I did, but found nothing specifying proper syntax as your reply did. Unfortunately, still no success even with the exact command line above. It’s no longer parsing it as an attempt to load a config file, but now the core is unable to locate the bios which is zipped in same directory as the roms themselves as I’ve read that is proper, and which works fine when not attempting to specify -cart to activate voice synthesis. Error as follows:

o2bios.rom NOT FOUND (tried in odyssey2 odyssey2) terminate called after throwing an instance of 'emu_fatalerror’

I have the -cart .cmd text file method working for Atari 5200. Maybe try that system as a way to rule stuff out.

Also have the bios folder unzipped in the same directory and name the folder with games and bios after the MAME name. (a5200 for that test)

Good idea. Structured as follows:

-Games\Retroarch -Games\Roms\a5200 -Games\Roms\a5200\mking.zip -Games\Roms\a5200\mking.cmd -Games\Roms\a5200\a5200.zip -Games\Roms\a5200\5200.rom -Games\Roms\a5200\5200a.rom

Results: retroarch --verbose >> log.txt 2>&1 -L cores\mame_libretro.dll "c:\games\roms\a5200\mking.zip" works fine, finds bios, loads rom

retroarch --verbose >> log.txt 2>&1 -L cores\mame_libretro.dll "mame a5200 -cart “c:\games\roms\a5200\mking.zip”" loads core, crashes not finding bios 5200.rom NOT FOUND (tried in a5200 a5200) Fatal error: Required files are missing, the machine cannot be run.

Then tried using a .cmd file placed in roms folder .cmd contained: mame a5200 -cart “c:\games\roms\a5200\mking.zip”

retroarch --verbose >> log.txt 2>&1 -L cores\mame_libretro.dll "c:\games\roms\a5200\mking.cmd" crashes not finding rom RetroArch [libretro INFO] :: Starting game from command line:mame a5200 -cart “c:\games\roms\a5200\mking.zip” RetroArch [libretro WARN] :: Driver mame not found -1 RetroArch [libretro WARN] :: Game not found: mking

Same result as above if mking.cmd file placed in same directory as retroarch itself (wanted to rule that out)

Im no expert on the logs or anything but it sounds like your unzipped bios file path is not correct.

Should be this

Games/Roms/a5200/a5200/5200.rom

They should be in their own folder

Tried that again just now (thought I did initially as well but wanted to double check) - still fails to find bios in 2nd command line scenario.

Is the syntax I used above the same as your .cmd file (mame a5200 -cart "c:\games\roms\a5200\nameofrom.zip)? Perhaps if I try to replicate your exact .cmd…

Mine is here. I cant view it on my phone but dont think i had mame at the front.

https://drive.google.com/file/d/0B1v5ou8ATmXwUGJxQTAzUkxpWDQ/view?usp=drivesdk

Command line syntax isn’t any different really. I suspect the differences in environment (Android vs Windows) and the fact I’m using softwarelist roms may be a part of it. Going to conduct a few more tests but should probably abandon this thread as the original problem in subject has been solved and now working on the others that have arisen.

Thanks to both yourself and r-type.

thanks @Thatman84 and sorry @gbeam i was tired when wrote the syntax , mame is not needed !

the syntax that work for me for odyssey2

retroarch -L mame_libretro.so "odyssey2  -cart /somewhere/content.zip -rp /elsewhere/here"

Hopefully a simple Q for you r-type:

Your original syntax (minus mame): retroarch -L cores\mame_libretro.dll "oyssey2 -cart1 voice -cart2 “c:\games\roms\odyssey2\timelord.zip”"

I’ve never used or seen \ used to bracket paths - what would be the proper syntax to specify both rom and rompath (bios)?

retroarch -L cores\mame_libretro.dll "odyssey2 -cart1 voice -cart2 “c:\path\to\rom.zip” -rp “c:\path\to\bios.zip”"

As I said, I’ve never used \ in arguments, and I’m not sure if they’re used to bracket front/back as above or???

\ is only used inside a doublequote to prevent another doublequote to be interpreted as an ending of the doublequote .

so if your rom/bios path don’t have space in their name , you can omit them , but if your path is something like /the path i use/ (contening space ) you need to double quote it . but as it reside inside a double quote (needed by cmd to be interpreted correctly ) you have to put a backslash before the double quote . if you launch a cmd file , you don’t need to backquote the whole cmdline . so you can omit backslash if you have to use double quote for name containing space .

not sure to be clear !

So basically, if arguments are in quotes due to spaces in pathname, use \ on all but first and last quote of commandline. Thank you.

Ended up working using a .cmd file (absolutely could not get it to work via only command line no matter how it was quoted/back-quoted) with the following syntax below (for anyone on a windows platform who might search for Odyssey2 and voice synthesis):

command line retroarch -L cores\mame_libretro.dll gamename.cmd

gamename.cmd odyssey2 -cart1 voice -cart2 “c:\full\path\to\rom.zip” -rp "c:\full\path\to\bios"

-rp was needed only if bios was in location other than retroarch\roms (conventional wisdom of having bios in same dir as roms or under system somewhere did NOT work in my case). Bios could be zipped or not. This method also works with non-softwarelist roms (at least it did when I tested it with various nointro)

Thanks again to both r-type and Thatman84

For the record, this command

retroarch -L mame_libretro.so "odyssey2 -cart1 voice -cart2 \"/opt/mame/test/Attack of the Timelord (USA).zip\" -rp /opt/mame/romsmess"

works fine with mame0.186 and failed like you describe with mame0.185.