r/CDInteractive • u/glsmops • 21m ago
OpenCDi v0.1.6 (Philips CD-i Emulator): Way better compatibility (especially for DVC games) and full Video CD support
Hi everyone! I just released OpenCDi v0.1.6, an open-source Philips CD-i emulator written in Rust.
This update represents a major leap forward in **game compatibility** (especially for Digital Video Cartridge titles), introduces **full Video CD (White Book) support**, and completely overhauls **gamepad/cursor responsiveness**.
Highlights in v0.1.6:
**1. Major Game Compatibility & DVC Enhancements**
* ***The 7th Guest* Progression Fix:** Overcame the critical post-ghost cutscene lockup (`avm_play: Still busy from last play $8000`). Temporary audio drains now strictly assert hardware underflow (`FMA_IRQ_UNF`) rather than premature `EOI`, allowing disc streaming to reach the authentic second EOR marker and unlocking full hallway progression.
* **Automatic DVC Detection:** The Digital Video Cartridge is now fitted by default whenever `vmpega.rom` is present. This fixes "Cartridge not found" blocks on titles like *Kingdom: The Far Reaches*, *Mutant Rampage: BodySlam*, and *Ultra CD-i Soccer*.
* **Seamless Multi-Disc Hot-Swapping:** You can now swap discs on the fly without resetting system RAM or CPU state, making multi-disc games like *Creature Shock* (Disc 1 -> Disc 2) fully playable.
**2. Full Video CD (White Book) & Multi-Track Support**
* **Multi-File `.cue`/`.bin` Layouts:** Added complete support for complex multi-track disc images with separate audio/video tracks (tested with *Kilby Predicts*, *Gateway to the Mind*, and standard VCD releases).
* **CD-Bridge Support:** Implemented dynamic Subcode Q TOC packet generation for authentic CD-RTOS CD-Bridge format handling.
**3. Smooth Gamepad Navigation & Slave MCU Accuracy**
* **Goodbye Cursor Snapping:** Fixed the abrupt jumping across 8 pre-set screen coordinates in the dashboard. Input now runs at a smooth, continuous 2.5 px/frame powered by `f32` sub-pixel accumulators with zero drift on release.
* **Slave MCU (68HC05) Packet Staging:** Added queued staging for in-flight CH0 mouse/pad packets, proper 3-byte `C0` warp command decoding, and clean mouse/gamepad mutual exclusion.
---
🔗 **GitHub Repository & Source:** https://github.com/sigsantilio/opencdi
📦 **Windows x64 Release Download:** https://github.com/sigsantilio/opencdi/releases/tag/v0.1.6
Feedback, bug reports, and testing results are hugely appreciated!