One of the differences between MAME CD-i emulation and cdifan's CD-i Emulator is that MAME focuses on one (most common) BIOS ROM and CD-i Emulator wants to support ALL BIOS ROM's. cdifan about this:"I wrote CD-i Emulator to potentially handle all BIOSses, because you never know which one the particular user has. And since him/her uploading it themselves is the only legal way of getting it, I wanted to support that.. The complexity is not so much in the multiple hardware revisions... Even the various DVC cartridge drivers are descendants of eachother (I actually found source code for one of these that has the revision comments clearly marked). Most currently existing CD-i emulators use so-called low-level emulation for the system software. This means that to perform their emulation function they need copies of this software."
Why is it important in developing CD-i Emulator? cdifan adds: "CD-i Emulator used to do mainboard autodetection based on ROM contents as specified by cditypes.rul. It has worked well so far as in enabling emulation, but specific ROM version recognition was getting very messy based on that and Retrostuff pointed me to the ROM ID/Revision information so I'm in the process of incorporating that. Autodetection will still be used for ROMs with unknown (or no) IDs but for the other ones it is then no longer needed (CD-i Emulator will still verify the autodetection)" Retrostuff adds: "There aren't many one-to-one relationships between system ROMs and CD-i players. A ROM with a certain ID could have been used by several players and -more often- a certain player could have used several different ROMs. To determine, which player model and generation you are dealing with, use the CD-i Type rules from www.cdiemu.org ."
Philips has informally stated that they would not themselves go after copyright infringement over CD-i BIOS ROMs distributed with a free emulator. However, they also stated that these ROMs also contain stuff that's not theirs (e.g. it belongs to Microware and/or some third-party driver writers and was distributed in CD-i players under license) and that they could not give any guarantees about those parts. cdifan: "This is the reason I have never distributed ROMs with my emulator."
This makes it more difficult to focus now on a CD-i Emulator which would run without a BIOS ROM (so that everything is inside the Emulator (a ROM-less emulator also would require a lot more work) or even a CD-i Emulator that could read original CD-i disc from the CD drive (=High Level Emulation (HLE)). cdifan about this: "interaction between disc and emulator is the most undocumented part of the CD-i hardware. It requires reverse engineering or copying existing code. Regarding HLE of the BIOS, I have a skeleton but it's not complete enough to run anything."
cdifan elaborates further on CD-i ROMS in this CDi Bits article
[Thanks, cdifan, Retrostuff]