Yesterdays post about the current state of Mame CD-i emulation caused quite some discussions on the community pages. It even triggered cdifan, the author of CD-i Emulator, to wake up his CD-i Bits blog (dormant since 2018) and post an extensive reply including his view on the difficulties that CD-i emulation is facing. It's an interesting discussion, followed by many people and while probably only a handful of people can actually pull the trick here, the insights are very meaningful to the whole CD-i Community. Cdifan: "My own goal in developing CD-i Emulator was to have a good enough emulation to actually play CD-i discs. For this, it is technically not even necessary to emulate *any* existing CD-i specific hardware, as CD-i is basically a software API standard. If you have a correct implementation of that standard you are done (there are of course some complications). It is interesting to note that CD-Ice, the first ever (public) CD-i emulator, did exactly this. The author used his knowledge of the CD-i specification (Green Book) to implement the API from scratch using his source code for “Rise of the Robots” as a working sample.
Although
often treated as a single-game emulator, this is not in fact correct as
his emulator ran many other games as well. The Green Book states that
CD-i players run the CD-RTOS operating system using an “68000-family
processor”. This is therefore the minimum amount of *actual* hardware
that needs emulation, and it’s exactly what CD-Ice did."
"Going the full HLE (High Level Emulation] route like CD-Ice did has its own
problems of course [...]. I chose a different approach
for CD-i Emulator. Knowing
that fully implementing CD-RTOS would be hard, I wanted to use the
existing BIOS software. This meant that I would have to emulate some
hardware, but only to the extent that the BIOS uses it. And I would not
just stare at access patterns and the immediately surrounding
(disassembled) BIOS code but take a more holistic approach as described [in my new CD-i Bits blogpost.]
The approach used by CD-i Emulator as outlined in this article also
explains why I am not interested in non‑HLE emulation of the various
microcontrollers and DSP chips. It serves no purpose in playing CD-i discs:
getting good HLE emulations of these chips so the BIOS can do its thing is enough.
As a not insignificant side bonus to this, no chip decapping or other exotic
hardware exercises are required for this approach."
[Thanks, cdifan - bottom picture by Retrostuff]