>> Monday, November 12, 2007
Let's have a chat about the new developments CD-i Emulator has gone through in the last year. While we all know the latest available public release is still version 0.52, author cdifan will be busy with his project for a long time. As some CD-i members sound desperate for new updates, cdifan can be sure about the popularity of his emulator of this obscure system! Although I don't think we were ever under much of an illusion about CD-i Emulator. It was going to serve a die-hard core contingent of CD-i fanatics anyway. Yet, I look forward to the day when CD-i Emulator offers increased compatibility and additional features, hopefully expanding the emulators user base. The demo offered by cdifan allows users to trial whatever CD-i software they have before purchasing the unlimited product. So I hope they know what the emulator offers! Recently the author of CD-i Emulator, cdifan, opened the gate a little and talked about what happened so far. Question: How about the current situation around emulation of the Digital Video Cartridge?
cdifan: "I have basic register and data decoding working for two of the three DVC models out there (GMPEG, VMPEG, IMPEG) and am getting the MPEG data streams from the drivers. But they need to be decoded and properly merged with the standard audio/video streams of the CD-i player. Video decoding is difficult because the hardware uses a "push" model instead of the "pull" model used by most existing codecs. This can be solved but it requires some pre-decoding and buffering trickery. Video merging is likewise difficult because the drivers expect to control the frame buffering directly, using a hardware frame fifo (in YUV format) with over half a dozen registers per stage, not all of which I understand yet. And let's not even speak about all the slow motion, jumping, seeking and synchronisation issues that also need to be solved eventually. Audio is much easier to handle but somewhat pointless without the video counterpart. I know of only a single game that would benefit from MPEG audio without MPEG video (can anyone guess?)."
Question: How about the implementation of keyboard support in CD-i Emulator? cdifan: "Believe me, I am aware that keyboard support is the most wanted feature for CD-i Emulator. But it's not as easy as you might think, especially since the original structure of that piece of code has turned out to be a bad design in view of the differences in pointing device handling between the various player models. I did some work on the Goldstar and CD-i 370 players recently and that has uncovered yet another set of misfeatures in that design..."
Update: "I have already explained that this particular bit of code has indeed become badly structured by too many adaptations to specification changes. It needs refactoring and I don't feel like investing feature time until that is done. And even then it certainly wouldn't take 10 minutes, a whole evening looks more like it, considering the number of configurations and test scenarios."
Pushing the boundaries CD-i member Nitrosoxide knows what he would like to see in the new CD-i Emulator version, additionally to the known CD-i Emulator wannahaves:
1. A more advanced Mouse Cursor Interface
"While the mouse interface of CD-i Emulator is useable, there are definitely major glitches. When the emulator is active with a game the computer mouse is only able to function within the emulator. By this I mean that you often can’t use your computer mouse to click outside the emulation screen, it's “trapped”. Nor can you click the emulator menus (File, Emulate, Decode, Window, Options, Help)."
2. Better Full Screen Support
"While Full Screen Support is definitely implemented, it doesn’t make the Windows Taskbar disappear. Nor can you have an experience (even by pulling down the taskbar) where the entire screen is 100% CD-i since the CD-i Emulator does have a button toolbar which I don’t think you can get rid of."
3. Different Display Support
"After hearing the CD-i supported SCART and so and so, I’d really like to see how much the platform can be pushed to get the best display possible. Currently with CD-i Emulator I hook it up to my widescreen HDTV through the computers' VGA port. Nintendo’s virtual console and xbox live seems to do a good job of displaying older games in 480p."
4. Emulation directly from CD
"Honestly the main reason for this, is that there are plenty of CD-i games, that are notoriously difficult to make a playable image out of. I Indeed spent about a year working on trying to get a suitable copy of The Apprentice, which is unfortunate since its probably one of the best games on the system."
cdifan elaborates on this last issue: "On a PC, getting data from a CD-i disc requires "raw" read techniques which differ greatly accross drives and drivers (read: Windows versions); I could never spend the amount of time on this that the authors of e.g. IsoBustor or CloneCD have. Some CD drives don't support reading CD-i or CD Ready discs at all, anyway; there is just no way that CD-i Emulator could fix this. And there are also emulation timing issues that can only be fixed by using "read-ahead" which quite possibly requires making CD-i Emulator multithreaded..."
Cdifan's update: "Mundane (to me) tasks like keyboard support will tend to get postponed until they are the only thing holding up a shiny new release. And that needs one or more somewhat major features or bugfixes; several of them are in the works but none are even near being finished. Of course, I also tend to somewhat underrate the importance of this particular feature: most games are much much nicer to play with either a joystick (which CD-i Emulator does support, albeit somewhat clumsily) or the mouse (which it supports quite well, I think). Open sourcing the emulator might fix part of the problem, but it certainly wouldn't help with the core emulation issues as nobody that I've had contact with seems to have the required in-depth technical knowledge of the CD-i system or even the drive to get it. That would tend to limit the contributions to the outer fringes of the project and thereby put more constraints on the core work."
More when it develops. Thanks to cdifan, devin, nitrosoxide