Skip to content

Extract filesystem and MPEG streams from Philips CD-i disk images

Notifications You must be signed in to change notification settings

andrei-ch/CD-i-Extract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CD-i Extract

Extract filesystem and MPEG streams from Philips CD-i disk images

Background

Philips CD-i disc filesystem is not supported by modern operating systems. It was last supported natively in Windows 3.1.

Third-party Windows 95/98/ME filesystem driver exists but it did not work for me.

There's also a Windows program called ISOBuster which was able to partially decode the filesystem but came short of decoding any useful media.

What this is

This tool allows extracting most of the media content stored on CD-i disc, provided your drive can read it on a physical level (many can't).

It supports extracting the complete filesystem, as well as real-time MPEG streams (a.k.a. "Full Motion Extension"). These MPEG streams cannot be accessed using only the filesystem queries because their playback requires information from sector headers.

Additionally, this tool's source code includes a library for parsing CD-ROM XA and CD-i sectors, and navigating CD-i filesystem.

Build

macOS

Install required libraries:

brew install boost
brew install libpng

Build:

mkdir build
cd build
cmake ..
make

Install:

sudo make install

It was last built using Xcode 13.2.1 and tested on macOS 12.0.1.

Raspbian

Install required libraries:

sudo apt-get install boost1.67-dev
sudo apt-get install libpng-dev

Build:

mkdir build
cd build
cmake ..
make

Install:

sudo make install

Last built using gcc (Raspbian 8.3.0-6+rpi1) 8.3.0

Use

Before you can use this tool, you need to dump the contents of CD-i track from the disc. Note that data must be extracted as raw, preserving all sector content, not just audio parts.

For example:

  1. Install cdda2wav:

brew install cdda2wav

  1. Unmount disk prior to ripping (use your actual device):

sudo umount /dev/disk4

  1. Extract CD-i track:

sudo cdda2wav output-format=raw cdrom-endianess=big -t 0 image.raw

  1. Finally, run the tool to decode the image:

cdix print image.raw

At this point you should see a list of directories and files stored on CD-i.

cdix extract-all image.raw

To address in future

  1. Extract ADPCM audio

About

Extract filesystem and MPEG streams from Philips CD-i disk images

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published