OpenCDi 0.2.0 fixes the music in the CD-i Zelda games and builds natively on Linux
The open-source Philips CD-i emulator, written in Rust, got save states on 31 October and a new frontend a day later. You still need your own CD-i system ROMs.
AI-drafted from 3 sources. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.
OpenCDi is a young Philips CD-i emulator, written in Rust and released under the MIT licence. Its GitHub repository only dates from the middle of October, and it has already put out two releases in two days.
Version 0.2.0 arrived on 1 November, and the fix most people will notice is in the two Zelda games, The Wand of Gamelon and Link: The Faces of Evil. Their music is built from the CDIC chip's sound maps rather than streamed off the disc, and the release notes say the emulator now keeps the audio decoder's state when a buffer restarts, which gets rid of the pops and dropouts. The same release cleans up the mono audio in Escape from Cyber City and lines up mouse readings with the video so shots register properly in the full-motion video scenes of the Mad Dog shooters.
Linux first, then maybe Macs
Under the hood, 0.2.0 swaps the old window code for winit and softbuffer. According to the notes, OpenCDi now builds and runs natively on Linux under X11 or Wayland without Wine, and the Windows-only calls are fenced off so it can be compiled for Apple Silicon later. The download on the release page is still a Windows x64 zip, so on Linux you are building from source for now.
Other changes in 0.2.0:
- RetroArch-style shortcuts, including F11 or Alt+Enter for fullscreen, P to pause and holding Space to fast-forward
- a
--nvramoption so frontends such as RetroArch, Pegasus or LaunchBox can keep a separate save file per game - a separate headless test program for checking frames and audio without a window
- video decoding fixes aimed at The Lost Ride and Lost Eden
The notes thank contributor ArnoldDeRuiter for the Linux windowing work, the headless test runner and some of the video decoding fixes.
Save states came the day before
Version 0.1.9, out on 31 October, added save states in five slots, with F6 to save and F7 to load. It also writes the console's battery-backed memory to disk, so progress that games such as The 7th Guest, Hotel Mario and Burn:Cycle keep there survives closing the emulator. The mouse and gamepad no longer fight over input either, with F9 switching between them. Pressing F1 opens a feedback page for reporting games that break, and the developer is asking for those reports.
Bring your own BIOS
OpenCDi runs the real CD-i firmware, so it will not start without a dump of the player's system ROM. The README names cdi220b.rom from the European CD-i 220 as mandatory, plus vmpega.rom from the Digital Video Cartridge for full-motion video and Video CDs. Neither comes with the emulator. The project credits MAME's CD-i drivers for its hardware register layout, and the CDi_MiSTer FPGA project for its research into the console's chips.
Sources
- OpenCDi v0.2.0 release notes (GitHub)
- OpenCDi v0.1.9 release notes (GitHub)
- OpenCDi: Philips CD-i emulator in Rust (GitHub)
Image: Image: OpenCDi