Windows CE Dreamcast 社区版 (wince-dc)
Windows CE Dreamcast Community Edition (wince-dc)

原始链接: https://github.com/maximqaxd/wince-dc

**Windows CE Dreamcast Community Edition** 是一个旨在将世嘉 Dreamcast 主机内隐藏的、精简版 Windows CE 2.12 运行时转换为功能完备、支持多任务处理的桌面环境的项目。 主要功能包括: * **DCWin 桌面:** 一个由 Dreamcast 的 PVR2/Direct3D 硬件驱动的窗口化外壳,具备任务栏、开始菜单以及窗口管理(移动、调整大小、最小化/最大化)功能。 * **内置应用程序:** 包含资源管理器、任务管理器、计算器、时钟以及各种系统测试工具。 * **独立的构建系统:** 该项目包含了必要的 SH-4 PE 编译器和 CE 镜像工具链。通过一次 CMake 调用即可完成从源码编译到生成可引导 `.gdi` 文件的所有流程,无需额外的 SDK 或 CD 密钥。 * **网络功能(开发中):** 具备一个通用链接垫片(`mppp.dll`),旨在通过传统的拨号协议栈实现以太网连接(支持宽带适配器或通过 SPI 连接的 W5500 模块)。 该项目使用世嘉原厂 "Dragon" SDK 二进制文件作为核心内核,而外壳、驱动程序和网络垫片均为自行开发。它能够生成兼容 GDEMU、MODE 等硬件解决方案或物理光盘的引导镜像。

``` Hacker News 最新 | 过往 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Windows CE Dreamcast 社区版 (wince-dc) (github.com/maximqaxd) 20 分,由 msephton 发布于 2 小时前 | 隐藏 | 过往 | 收藏 | 1 条评论 帮助 russdill 8 分钟前 [–] “只需调用一次 cmake,即可从源码生成可引导的 disc.gdi。无需 Platform Builder,无需安装 SDK,也无需 CD Key。” 这简直就是新时代的“破折号”。 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索: ```
相关文章

原文

DCWin desktop
A real, windowed Windows CE desktop — running on a Sega Dreamcast.


The Dreamcast shipped a stripped-down Windows CE 2.12 that retail games booted into and never exposed. Windows CE Dreamcast Community Edition takes that same on-disc CE runtime and turns it into something you can actually use: a multitasking windowed desktop and an in-progress TCP/IP stack over the Broadband Adapter — all baked into a standard bootable Dreamcast disc.

It is fully self-contained: the SH-4 PE compiler and the entire CE image toolchain are vendored in this repo. One cmake invocation goes from source to a bootable disc.gdi. No Platform Builder, no SDK install, no CD key.

  • DCWin desktop shell — a windowed, multitasking desktop composited on the PVR2 / Direct3D: move / resize / minimize / maximize windows, a Start button, taskbar, and a mouse cursor. Every app runs in its own CE process.
  • Built-in apps — Explorer (browse \, \Windows, \CD-ROM; launch binaries), Task Manager (live process + RAM view), Clock, Calculator, a memory tester, and a winsock network tester.
  • Networking over the stock CE stack (work in progress) — a universal link shim (mppp.dll) aims to let the stock microstk.exe + winsock.dll run over Ethernet instead of dial-up PPP, with DHCP/ARP/DNS handled in the shim (DHCP option-6 → the Dreamcast's own flash ISP config → a public resolver). Both link backends — the Broadband Adapter and a W5500/MACRAW over SPI transport — are still being brought up and not yet working end-to-end.
  • Self-contained CMake build — vendored SH-4 cl.exe + the CE image tools (makeimg, romimage, …). Produces retail (silent) or debug (serial console) images, and a standard bootable GDI.

Prerequisites: CMake ≥ 3.20 and a generator (Ninja). The pair bundled with Visual Studio works out of the box — nothing else from VS is used. PowerShell is used for the disc-imaging steps (Windows host).

# configure (point -DCMAKE_MAKE_PROGRAM at ninja if it isn't on PATH)
cmake -G Ninja -S . -B build

# 1) just the SH-4 modules -> build/modules/  (dcspi.dll, mppp.dll, dcshell.exe, dcw* apps)
cmake --build build

# 2) the bootable OS image -> build/0winceos.bin
cmake --build build --target image

# 3) the full chain -> build/disc/disc.gdi
cmake --build build --target gdi
Option Default Effect
-DKERNEL=retail|debug retail retail = the silent kernel. debug = the SCIF serial-console kernel. Changes boot logging only.
-DDLLS=retail|debug retail retail = the stock OS DLLs (what real games run on). debug = the checked (assert-heavy) DLLs; these break some titles (e.g. DirectDraw/DDHAL), so leave this retail unless you're chasing a system-DLL bug.
-DAUTORUN=<exe> dcshell.exe The program launched at boot (HKLM\init Autorun). Use forward slashes for a path, e.g. -DAUTORUN=/CD-ROM/DC.EXE to autostart a disc binary.
-DEXTRADATA=<dir> (none) Folder whose contents are placed in the disc's \CD-ROM (e.g. a game's files). Relative paths resolve against the repo root; our OS image always wins for 0WINCEOS.BIN.
# example: a SCIF serial-console image (over the working retail DLLs) with a game on the disc
cmake -S . -B build -DKERNEL=debug -DEXTRADATA=path/to/game
cmake --build build --target gdi

The build produces a standard multi-track build/disc/disc.gdi that boots on real Dreamcast hardware:

  • GDEMU / MODE / USB-GD-ROM — copy the disc.gdi + its track files onto the SD card / image and select it from the menu.
  • Burned disc — for a GD-R / GDEMU-exact layout, use toolchain/make-gdi-real.ps1 to rebuild against a real CE-game GDI (matches the original IP.BIN + track geometry).

The default image boots straight to the DCWin desktop. For diagnostics, build with -DKERNEL=debug and watch the Dreamcast serial (SCIF) console.

Path What
CMakeLists.txt, cmake/ the entire build (modules → image → GDI)
shell/ the DCWin desktop shell, PVR2/D3D compositor, and the client apps
net/netif/ the universal mppp.dll link shim (BBA + W5500 backends, DHCP/ARP/DNS)
drivers/dcspi/ reusable SPI transport (SCI hardware-SPI + SCIF bit-bang) for the W5500
toolchain/ wrap-image.ps1 / make-gdi.ps1 / make-gdi-real.ps1 + the build README
vendor/sh-toolchain/ the SH-4 PE compiler + CE headers
vendor/wcesdk/ the vendored CE 2.12 SDK: headers, libs, image tools, OS modules, kernels

See toolchain/README.md for build internals.

This project builds on the Sega "Dragon" Windows CE for Dreamcast SDK (vendored). The shell, networking shim, and SPI driver are original work; the CE kernel and system modules are the stock SDK binaries. Don't redistribute the vendored SDK binaries outside the spirit of this research project.

联系我们 contact @ memedata.com