>> Thursday, October 1, 2009
After CD-Ice (2002) and CD-i Emulator (2005) there is a next interesting effort put in this third CD-i emulation project at MESS. Nobody knows how far it will come but it actually triggers the interest of CD-i Emulator again after three years of silence. We'll try to follow the developments close although I have to repeat cdifan's claim of how complex and difficult emulating the CD-i is, but it's a fact there is a start at MESS. User 'Just Desserts' with the help of cdifan (the author of CD-i Emulator) has done all the great work. Screens ate of the actual new MESS CD-i Emulator.
The technical story: "I'm not really sure how much farther I'll be able to go at this point, though. I'm pretty sure it now wants some sort of communication with the CDIC and SLAVE devices, both of which are completely undocumented, as far as I've been able to find. There are multiple CD-i revisions, all of which are pretty dissimilar, and will require a whole lot of work on a per-machine basis to emulate in MESS. I'm currently emulating the Mono Imodel (Philips 220 F2), which is arguably the simplest out of all of them. There is no MPEG decoder in the original base machines, just an external cartridge that is used by some (but not all) games, hence skirting around the MPEG patent issue for now.
"Of course, the screenshots sit on a throne of lies; it's only because I responded to the BIOS's initial 0xb0000000 inquiry with 0xb0000215. Interestingly, it doesn't seem to actually care about the disc base unless I reply with 0xb0004101, which makes sense as the BIOS I'm dealing with looks for bit 6 to be set in the second-least-significant byte. Ahh, progress.
The Mono I model that I'm emulating consists of an SCC68070-based processor, SLAVE (probably an MCU) + CDIC (both working together for CD tasks), some model of off-the-shelf RTC (I forget which, but it's documented in the driver), and an MCD212 video chip. I just submitted mouse movement support for the CD-i driver. I posted that C-Cube CL-450 documentation on the CD-interactive forums a few weeks ago. Sorry that it wasn't the C-Cube chip used in the CD-i for some reason, but I'm at least postive it was used in the Amiga CD32 MPEG module.
I'd also like to see a metric ton of PCB scans/photos to start towards "identifying" the custom chips in CD-I, although I'd venture to say you've done a ton of work. I see that incog and Arbee have stepped up to the plate, but you need to motivate your fanbase and collectors over at CD-interactive forums."
cdifan: "The SLAVE/IKAT interfaces are pretty simple and mostly deal with basic control of the CD drive (seek, start, stop, etc) and full control of pointing devices (except backside port), front display and buttons, and a small bit of machine control (reset). The difficult part is that these interface are referenced from many different drivers (one for each device type accessible via the SLAVE/IKAT), but it's not inherently hard to emulate, just a lot of work.
The main source of incompatibilities is, in my view, in the register and timing details of the CD+AUDIO controller chips. These chips are undocumented and reverse engineering of drivers only goes so far. I have in a few cases made instrumented drivers to run on the the real hardware and provide me with actual chip register access traces, but this is hard to do, the trace buffers are finite and you quickly drown in the data except for very simple test cases (which running a game with compat probs certainly is NOT).
All Philips-built players contain a download routine in the ROMs that you can use to download whatever you want into the player; it doesn't even have to be OS9. You may want to check out my "cdistub" program (it comes with assembly source) and the host program to go with it, "cdilink" (no source yet). Both can be found in the Downloads section of the CD-i Emulator site; they make it possible to upload the ROMs of any Philips CD-i player to a PC needing only the right cable. No need to burn ROMs :-)"
So far the story updated October 3th. Nobody knows where it will end but it's great news in the small world of CD-i.