[Solved] CD-i via MAME - Neither method for running games is working

Here are the 2 guides I used for the 2 methods I’m aware of for loading CD-i games via MAME:

WITH Softlists:

withOUT Softlists:

Here is my game directory:

When loading WITH softlists, here is my MAME.opt (everything is default):

mame_alternate_renderer = "disabled"
mame_altres = "640x480"
mame_auto_save = "disabled"
mame_boot_from_cli = "disabled"
mame_boot_to_bios = "disabled"
mame_boot_to_osd = "disabled"
mame_buttons_profiles = "enabled"
mame_cheats_enable = "disabled"
mame_cpu_overclock = "default"
mame_lightgun_mode = "none"
mame_mame_4way_enable = "disabled"
mame_mame_paths_enable = "disabled"
mame_media_type = "rom"
mame_mouse_enable = "disabled"
mame_read_config = "disabled"
mame_saves = "game"
mame_softlists_auto_media = "enabled"
mame_softlists_enable = "enabled"
mame_throttle = "disabled"
mame_write_config = "disabled"

When loading withOUT softlists, here is my MAME.opt:

mame_alternate_renderer = "disabled"
mame_altres = "640x480"
mame_auto_save = "disabled"
mame_boot_from_cli = "enabled"
mame_boot_to_bios = "disabled"
mame_boot_to_osd = "disabled"
mame_buttons_profiles = "enabled"
mame_cheats_enable = "disabled"
mame_cpu_overclock = "default"
mame_lightgun_mode = "none"
mame_mame_4way_enable = "disabled"
mame_mame_paths_enable = "disabled"
mame_media_type = "cdrm"
mame_mouse_enable = "disabled"
mame_read_config = "disabled"
mame_saves = "game"
mame_softlists_auto_media = "enabled"
mame_softlists_enable = "disabled"
mame_throttle = "disabled"
mame_write_config = "disabled"

I previously had this working withOUT softlists a good long while back when I was using RocketLauncher which loaded the games from command line. Now I’m using launchbox - which is giving me 3 options to load these games up.

  • WITH Softlists - point launchbox at “hotmario.zip”
  • withOUT Softlists - point launchbox at “hotel mario (1994)(philips)(eu)[!].chd”
  • and finally withOUT Softlists via Command-line - "-L /Emulators/RetroArch/cores/mame_libretro.dll "X:\Games\Philips CD-i\cdimono1\hotel mario (1994)(philips)(eu)[!].chd"

WITH softlists, RetroArch comes up and shows “initializing” and freezes and crashes.

withOUT softlists, RetroArch’s icon on my taskbar shows it starts to open, and then immediately crashes.

I’ve gone over these tutorials several times and feel like I’m either stupid or crazy because nothing, not one method, is working.

Can anyone help me out?

P.S. I also tried putting the .cdh files in “…/cdimono1/hotmario” like normal arcade CHDs work, but also no dice.

I would try from the command line first, as suggested here, and see what Retroarch is complaining about. It’s possible you’re files dont contain something MAME is looking for and the command line will tell you. The other thing to look at is the hash folder in your RA system/bios folder (see link above)

Your file setup looks correct for launching with softlists.

2 Likes

Ok, so first of all thank you (thank you, thank you!) because this led me down the rabbit hole that got it sorted.

It’s a whole constellation of screwery so allow me to explain in possibly absurd detail… I suspect anyone trying to run CDi via MAME will be running into these problems as well, so hopefully this will serve as a decent resource.

At some point, recently, the cdimono1.zip has changed in one of MAME’s newest romset versions. As a result the up-to-date mame_libretro.dll is now looking for different files in cdimono1.zip than it was before. Specifically, it’s looking for these files:

zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201
zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206

Sadly, I was only able to find 1 of the 2 after spending some time on google thus far… LUCKILY though, I still have a backed up mame_libretro.dll from MAME v0.191 - because that was what was current when I got my arcade set and I was (thankfuly) smart enough to save a backup of the core. This older version of the MAME core doesn’t ask for these new files at all. Instead it just recognizes what (seemingly) every prior form of cdimono1.zip contains.

However running the command line launch using this older core was still giving me errors though because it wasn’t seeing the .chd I had. At first I couldn’t understand why, but I was checking the cdi.xml hash file (found here: https://github.com/mamedev/mame/tree/master/hash) and after a game of ‘spot the difference’, I was able to see what it was.

  • File I had: “hotel mario (1994)(philips)(eu).chd”
  • File it wanted: “hotel mario (1994)(philips)(eu)(!).chd”

It did not want the [!] at the end of the file, which seems contradictory to everything I’d seen, but whatever; we already know MAME makes no sense, even in a crazy man’s world lol

Anyway, with this in place it now loads correctly WITH softlists. Possibly more importantly, taking the 2 lines in my MAME.opt file:

mame_media_type = "rom"
mame_softlists_enable = "enabled"

and changing them instead to:

mame_media_type = "rom"
mame_softlists_enable = "enabled"

I can now load withOUT softlists - that is to say I can point LaunchBox directly at the .chd and side-step the ‘dummy files’ entirely.

However, this isn’t exactly satisfying either as with these MAME.opt settings, you can no longer load arcade games. Also there’s no core options per content directly as of the time of this writing so… that leaves per game overrides! Luckily only ‘so’ many games even work in CDi emulation at this time (Nothing that uses the DVC - Digital Video Cartridge).

So you can create an .opt file with just those 2 lines in it for each game you plan to run and BAM - best of both worlds.

Either way I feel like this lays out a few different options for running these and some of the obstacles someone might run into. Hopefully this comes up in searches for folks lol

Hey there,

I’m the one who wrote the first tutorial on the LaunchBox forums. I also experienced crashes recently. The solution was to update my mame set to a newer version as it seems that cdimono1 was updated at some point, as mentioned above.

As for the problem about mame not being able to launch arcade games. You are correct, that is a problem. My solution was to create a custom retroarch config file that points to a custom retroarch core config file which has boot from cli enabled. That way I can keep the main mame config untouched.

1 Like

Or you can duplicate the core and make the second one save its options in a different folder. There is a topic somewhere that has the program and files to do this.

This is the main reason I use the softlist method. You dont have to really muck about with the MAME settings at all so long as your files are in the correctly name folder and you download the hash files to your system/bios directory.

It was a great write up, and seriously helped me work with this so thank you for that.

I suspected as soon as I saw the change in cdimono1.zip that an update to the MAMEset would resolve the problem as well…

My problem there though, and I assume I’m not the only one in this boat, is that updating MAMEsets seems like an absolute nightmare. I’m honestly not sure how anyone keeps their sets up to date. The whole process with clrmamepro or w/e it is just seems so daunting and confusing.

It took so long to download the 0.191 set I have that I can’t imagine having to download new sets on the regular to update it. I figured if/when MAME has some kind of major breakthrough with certain arcade boards or MESS consoles (Like FM Towns Marty) that I’d revisit.

Softlists seems like the way to go, particularly if you can just keep everything up to date. I haven’t decided which method I will be using yet, but I figured there’s so many different ways I’d write it up for reference.