As of January 2011, the sources for the CD-i Emulator program amount to over 100,000 lines of
C++ code in over 500 files, written in my private time over a period of
more than ten years (not counting support tools or sources not entirely written by me). They will be available at some future date.
Purely as a reference point, the July 2005 numbers where over 70,000 lines of C++ code in over 350 files.
As of version 0.5.3, CD-i Emulator incorporates source code from MAME/MESS
used to support the CHD file format and the writing of AVI and PNG files.
Such re-use is allowed by the MAME/MESS license for these sources
which is essentially BSD; the full license conditions are described in
detail in the file MCOPYING included with CD-i Emulator.
I found the following publicly-available references helpful:
Many of these are available from the ICDIA website at
the CPU32 documentation is available from the Freescale Semiconductor
website at www.freescale.com. In 2009 I received several pointers to documents from the MESS community.
- SCC68070 User Manual 1991, Parts 1 and 2 (hardcopy)
- Complete description of 68070 processor used in most Philips CD-i player models.
- MC68341 Integrated Processor User Manual (online)
- Complete description of 68341 processor used in several portable CD-i player models.
- CPU32 Reference Manual (online)
- Complete description of the CPU32 instruction set implemented in the 68341 processor.
- SCC66470 Video And System Controller, Data Sheet (online)
- Complete description of CD-i video hardware used in older CD-i player models.
- Motorola MCD212 Video Decoder and System Controller (VDSC), Advance Information (online)
- Complete description of CD-i video hardware used in
newer CD-i player models.
- Motorola MCD221 CD-Interface and Audio Processor (CIAP), Technical Summary (online)
- Somewhat high-level description of CD-i cd+audio hardware used in newer
CD-i player models.
- Motorola MCD251 MPEG Full Motion Video Decoder (FMV), Technical Summary (online)
- Somewhat high-level description of CD-i MPEG hardware used in IMPEG cartridge models.
- M48T08/M48T18 TIMEKEEPER® SRAM (online)
- Complete description of CD-i NVRAM hardware used in many CD-i player models.
- Microware OS-9 2.4 Documentation (online)
- Complete description of base component of CD-RTOS operating system used in all CD-i players.