/robex/ - MAME CD-i emulation

CD-i emulation in Windows with MAME

By /robex/, March 2018. Back to Articles and Guides

Purpose

The purpose of this guide is to explain how to emulate Philips CD-i games using MAME 0.196 (as of March 2018) or higher. This guide was tested on Windows, however it should work in Linux as well.

An alternative would be using cdiemu, however it's buggy, non-free and development has been stalled since 2011.

Tools and software

We'll use MAME in order to emulate the CD-i. First, download the latest binary from here, and install it wherever you want.

The other files that you'll need are:

Getting started

Configuring MAME

First, drop the BIOS file (cdimono1.7z, don't decompress it) inside of roms, and create the following folder: consoles\cdi. All paths specified here begin at mame's root directory.

Then open a command prompt and run the following command: mame64 -createconfig. This will create the .ini files required by mame to look for the games. Open mame.ini and change the following line

rompath                   roms
...to:
rompath                   roms;consoles

Setting up the game

For mamecdi to run the game, it requires a .chd archive containing the game files, however, I've only been able to find the cue and iso/bin files online. Luckily, mame provides a program called chdman to perform the conversion between those.

The .chd must have a specific file name, to find it out you can try to run the game like this (you can find the list of names to put here, mirrored from progrettoemma.net):

mame64 cdimono1 hotmario
...this will produce an error (it's okay!) and then it will output the required filename:
hotel mario (1994)(philips)(eu)[!].chd NOT FOUND
Fatal error: Required files are missing, the machine cannot be run.

To convert the file, run the following command on the prompt, from mame's root directory (it can take a while to finish):

chdman createcd -i consoles\cdi\<yourgame.cue> -o consoles\cdi\<yourgame.chd>
Note that yourgame.chd must have the filename specified before, so for Hotel Mario the previous command would be:
chdman createcd -i "consoles\cdi\Hotel Mario.cue" -o "consoles\cdi\hotel mario (1994)(philips)(eu)[!].chd"
Now all you have to do is check that the file is indeed there, and we're ready to run the game!

Running the game

From mame's root dir, run the following command:

mame64 cdimono1 -skip_gameinfo hotmario

It will display a warning about accuracy, just hit any key, press the "Play CD-i" arrow and you should be running your game of choice!

Emulator comparison

Just for fun, here is a comparison between the audio quality of cdiemu and mamecdi, in the intro of Hotel Mario:

Pretty noticeable, isn't it?


/robex/ - Last edited: 2018-04-09 00:50:15