Windows CE Dreamcast Community Edition (wince-dc)
Windows CE Dreamcast Community Edition (wince-dc)
🖥️ Project Overview
The Sega Dreamcast originally shipped with a highly restricted version of Windows CE 2.12. While retail games utilized this environment, it was completely hidden never exposed to the end-user.
The Windows CE Dreamcast Community Edition transforms that dormant on-disc runtime into a functional, multitasking windowed desktop. It integrates a working GUI and an evolving TCP/IP stack via the Broadband Adapter, all packaged as a standard bootable disc.
The project is entirely self-contained; the repository includes the necessary SH-4 PE compiler and the full CE image toolchain. A single cmake command can transform the source code into a bootable disc.gdi file.
🚀 Core Features
The DCWin Desktop Shell
A custom shell that provides a windowed environment composited on PVR2 / Direct3D. Users can:
- Move, resize, minimize, and maximize windows.
- Interact via a Start button, taskbar, and mouse cursor.
Integrated Applications
The environment includes several built-in processes:
- Explorer: Navigate
\,\Windows, and\CD-ROMto launch binaries. - Task Manager: Monitor active processes and RAM usage in real-time.
- Utility Apps: A live Clock, Calculator, and a memory diagnostic tool.
- Network Tester: A dedicated tool for testing winsock connectivity.
Networking (Work in Progress)
The project utilizes a universal link shim called mppp.dll. The goal is to allow the stock microstk.exe and winsock.dll to operate over Ethernet instead of dial-up PPP.
- Logic: DHCP/ARP/DNS are handled within the shim.
- Resolution: .
- Backends: Support is being developed for both the Broadband Adapter and W5500/MACRAW via SPI (currently not end-to-end functional).
🛠️ Build System
Build Pipeline
The following diagram illustrates the transformation from source to disc:
Prerequisites
- CMake: Version
- Generator: Ninja (The version bundled with Visual Studio is compatible).
- Host OS: Windows (PowerShell is required for disc-imaging).
Compilation Steps
- Step 1: Configure
# Ensure -DCMAKE_MAKE_PROGRAM points to ninja if not in PATH cmake -G Ninja -S . -B build - Step 2: Build SH-4 Modules (e.g.,
dcshell.exe,mppp.dll)cmake --build build - Step 3: Generate OS Image (
build/0winceos.bin)cmake --build build --target image - Step 4: Create Final GDI (
build/disc/disc.gdi)cmake --build build --target gdi
Configuration Options
| Option | Default | Description |
|---|---|---|
-DKERNEL | retail | retail for silent boot; debug for SCIF serial console. |
-DDLLS | retail | retail for stock OS DLLs. debug includes asserts (may break some titles like DirectDraw). |
-DAUTORUN | dcshell.exe | Defines the binary launched at boot via HKLM\init Autorun. |
-DEXTRADATA | (none) | Folder to be placed in \CD-ROM. |
Example: Creating a debug image with a game included:
cmake -S . -B build -DKERNEL=debug -DEXTRADATA=path/to/game cmake --build build --target gdi
🎮 Running the OS
The resulting disc.gdi is a standard multi-track image compatible with:
- Optical Emulators: GDEMU, MODE, or USB-GD-ROM (copy files to SD card).
- Physical Media: Use
toolchain/make-gdi-real.ps1to ensure the layout matches original IP.BIN and track geometry for GD-R.
Diagnostic Tip: If the system hangs, build with
-DKERNEL=debugand monitor the Dreamcast's SCIF serial console.
📂 Repository Structure
| Path | Purpose |
|---|---|
shell/ | DCWin shell, PVR2/D3D compositor, and client apps. |
net/netif/ | The mppp.dll shim (BBA and W5500 backends). |
drivers/dcspi/ | SPI transport (Hardware-SPI + SCIF bit-bang). |
toolchain/ | Imaging scripts (make-gdi.ps1) and build documentation. |
vendor/sh-toolchain/ | SH-4 PE compiler and CE headers. |
vendor/wcesdk/ | CE 2.12 SDK: Kernels, OS modules, and image tools. |
⚠️ Important Notes
This project is based on the vendored Sega "Dragon" Windows CE SDK. While the shell, SPI driver, and networking shim are original creations, the kernel and system modules are stock SDK binaries. Please do not redistribute the vendored SDK binaries outside the context of this research project.