You can download the CD-i ROM file from the internet but if you want to experience a specific type of CD-i player or you want to emulate your Digital Video Cartridge, it might be interesting to know how to get the original ROM files out from your CD-i player. To do this, you'll need a cable that connects your CD-i player to your PC. This is the so called CD-i null-modem cable (pictured at the top). It has the CD-i port on one side (a so-called 8-pin mini din port):
And a serial port (RS232, db9m port) on the other side, connected according to the diagram that you see below. By using this cable, not only the BIOS rom file (of around 256kb) will be extracted, but also the Digital Video Cartridge ROM file, at least if your player has a DVC installed.
You can buy these cables from alibaba for around 2 euro per piece: Have a look here. If your PC has no serial input port, you can also try the USB version.
Instructions how to retrieve your own CD-i ROMS:
The purpose of the CD-i Link program (cdilink) is to communicate with a CD-i player over a serial connection. The communication uses the "stub" protocol; see the file stub.txt that you should have received with this file for more information.
The primary purpose of cdilink is to upload the system ROMs from a CD-i player to a PC for use with a CD-i emulator, but you can also upload or download other files and display information about the CD-i player. This allows you to inspect and modify the contents of the player NVRAM (e.g., highscore files) and to to inspect the contents of CD-i discs.
The "stub" protocol used by cdilink supports basic services such as uploading from and downloading to player memory and a limited form of remote debugging and execution. The cdilink program builds upon these basics to provide higher-level services such as locating and uploading the system ROMs, determining the CD-i player type, displaying the contents of directories on the CD-i player and copying files between the CD-i player and the PC. See the option listing at the end of this document for more information about the full capabilities of cdilink.
To use cdilink with your CD-i player you need a so-called CD-i nullmodem cable. Such a cable used to come with the CD-Interlink disc but you can easily make one yourself or perhaps borrow one from a fellow CD-i fan. See the file cables.txt for more information.
![]() |
The CD-i connector and the serial port should be wired according to this scheme (click to enlarge) |
The nullmodem cable needs to be connected to the serial port of your CD-i player. It is typically located at the back of the player and often marked "Input 2"; for some players you need to use a port splitter cable on the front port. On consumer players the serial port generally has a MiniDIN-8 connector; for the Philips CD-i 605 authoring player you need to use the DB-9 connector on the back marked "Input 3".
Most Philips CD-i players support the so-called "download subset" of the "stub" protocol, which is enough to let cdilink download a full implementation of the protocol (cdistub) into the player. If your player does not support this, you will need to use a CD-i disc containing the cdi_stub program. A disc image file of the cdi_stub disc suitable for burning should be available from the same place where you got cdilink.
The "no extra memory" configuration of the CD-i 605 player does not support access to the serial port from a CD-i program; you will need to configure some extra memory or use a605stub instead of cdistub. For uploading the CD-i system ROMs you need to connect the nullmodem cable and type the following command line:
- cdilink -roms
When cdilink says "Waiting for stub..." you must turn on the CD-i player (if your player supports the download subset) or start the cdi_stub disc (if your player does not support the download subset).
If you've connected everything properly, cdilink will recognize the CD-i player and start communicating with it. A typical cdilink -roms session looks like this:
- CD-i Link version 0.5.x
- Waiting for stub...
- Downloading cdistub...
- 00008XXX
- Ending download stub...
- CD-i Stub version 0.5.x
- Reading module directory...
- Reading module information...
- 00XXXXXX
- Found XX modules
- Reading memory list...
- Building ROM list...
- Uploading cdixxxy.rom (512K)...
- 00XXXXXX
- Uploading xmpegy.rom (128K)...
- 00EXXXXX
- Ending stub...
- Done!
[Thanks, cdifan]