Skip to content

OpenCDi v0.3.0 - Libretro Core, Mono-IV Board, In-Memory Savestates & Runtime BIOS Selector

Latest

Choose a tag to compare

@sigsantilio sigsantilio released this 08 Nov 22:16
· 14 commits to main since this release

OpenCDi v0.3.0 — Standalone & Libretro High Performance Release

OpenCDi is an open-source, high-performance Philips CD-i emulator written in Rust, designed for accuracy, modularity, and modern platform integration.


Project Team & Credits

  • Project Lead & Maintainer: Gianluca ("sigsantilio")
  • Core Contributors:
    • ArnoldDeRuiter: Libretro core architecture, Mono-IV chips emulation, deterministic in-memory savestates engine, and CDIC / MPEG audio synchronization.
    • OpenCDi Community & Testers

Highlights of Version 0.3.0:

  • Official Libretro Core (opencdi_libretro.dll): Run CD-i games natively inside RetroArch and compatible frontends with zero-latency Runahead and deterministic Rewind support.
  • Philips CD-i 490 (Mono-IV) Emulation: Initial experimental support for the Mono-IV system architecture, including CIAP (CD-i Audio/Packet), IKAT I/O co-processor, and Dallas DS1216 RTC.
  • Advanced Audio Architecture & CD-DA Playback:
    • Continuous free-running MPEG audio decode clock synchronized with CPU cycles, cutting startup latency down to 1.6 ms (70 samples) and virtually eliminating FMV audio underrun dropouts.
    • Hardware-accurate CDIC AUDCTL (0x3FA) register and audio map playback engine with sound-group streaming and true ABUF interrupt timing for flawless sound effects (Zelda: The Wand of Gamelon, Link: The Faces of Evil).
    • Direct 44.1 kHz stereo CD-DA disc streaming support.
    • Proper CDIC sector interrupt decay when disc reads stop, preventing interrupt storm freezes.
  • Runtime BIOS & DVC Switcher: Switch BIOS ROMs on the fly (Ctrl+B) or through the system menu, with zip set unpacking (e.g. cdimono1.zip) and config persistence in opencdi.ini.
  • Interactive Missing-BIOS Assistant: Built-in visual prompt when no ROM is present to guide users to file selection or opening the bios/ directory in Windows Explorer.
  • Ultra-Fast In-Memory Savestates: Trait-based deterministic serialization across 1000 slots (F2 save, F4 load, F6/F7 slot select), covering Mono-I, Mono-IV, and DVC MPEG states with 100% bit-for-bit video and audio roundtrip fidelity.
  • Exclusive Gamepad / Mouse Modes: Instant toggle (F9) ensuring pure mouse/lightgun accuracy for shooting classics (Mad Dog McCree, Mad Dog II, Drug Wars) without gamepad axis interference.
  • High-Definition PNG Screenshots: Capture raw, uncompressed screenshots (F8 / F12) with frame counter stamps.
  • Enhanced Title Compatibility: Fully verified and playable across a broad range of CD-i games (Hotel Mario, The Apprentice, The 7th Guest, Lost Eden, Dragon's Lair, Chaos Control, Creature Shock, Earth Command, Striker Pro, and more).

Available Downloads & Core Packages:

  • opencdi-v0.3.0-windows-x64.zip: Complete standalone emulator (Win32 GUI) + Windows x64 Libretro core (opencdi_libretro.dll).
  • opencdi-libretro-android.zip: Native RetroArch Android cores (arm64-v8a for modern 64-bit phones/tablets, and armeabi-v7a for 32-bit devices).
  • opencdi-libretro-linux.zip: Native RetroArch Linux cores (x86_64 for PC/Steam Deck, aarch64 for Raspberry Pi 4/5, and armv7 for Raspberry Pi 2/3).

Package Contents (opencdi-v0.3.0-windows-x64.zip):

  • opencdi.exe: Standalone emulator with Win32 GUI menu, disc swapping, and video aspect controls.
  • opencdi_libretro.dll: Native 64-bit core for RetroArch.
  • opencdi_libretro.info: Libretro core metadata definition.
  • bios/: Dedicated folder for BIOS ROMs (cdi220b.rom, vmpega.rom, cdi490a.rom, etc.).
  • README.txt: Quick-start and controls guide.

Special Acknowledgments:

  • The MAME / MESS Team: for hardware documentation on custom Philips and Motorola ICs (SCC68070, MCD212, CDIC, Slave 68HC05).
  • The World of CD-i and the CD-i preservation community.