欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

Windows CE Dreamcast Community Edition:在 Sega Dreamcast 上运行真正的窗口化桌面系统

2026/7/5编程开发

将 Sega Dreamcast 内置的 Windows CE 2.12 重新打包,实现了一个完整的窗口化多任务桌面环境,并附带开发工具链,可直接编译生成可引导光盘镜像。

背景:被隐藏的 Windows CE

Sega Dreamcast 是第一款(也是唯一一款)内置 Windows CE 作为可选操作系统的游戏主机。它搭载了一颗 Hitachi SH-4 CPU(32-bit RISC,主频 200 MHz),并配备 PowerVR2 图形芯片(PVR2)。零售游戏在启动时,会加载一张光盘上刻录的 Windows CE 2.12 运行时环境,但这个系统被高度精简,只暴露了游戏所需的最小 API 接口,用户根本看不到桌面、任务栏或任何传统的 Windows 界面。

Windows CE Dreamcast Community Edition(以下简称 wince-dc)项目的核心目标就是:把这张光盘上的 CE 运行时改造成一个真正可用的桌面系统,让玩家和开发者能像使用一台微型 PC 一样操作 Dreamcast。

项目亮点:从源代码到可引导光盘,一键完成

wince-dc 最令人印象深刻的一点是它完全自包含。仓库里直接打包了:

  • SH-4 PE 编译器(cl.exe,针对 SH-4 处理器的 Portable Executable 格式编译器)
  • 完整的 CE 镜像工具链(包括 makeimg、romimage 等工具)
  • CE 2.12 SDK 的头文件和库文件

这意味着你不需要安装微软的 Platform Builder,不需要购买任何 SDK,甚至不需要输入 CD Key。只要在 Windows 主机上装好 CMake(≥3.20)和 Ninja 构建系统,然后运行:

bash
cmake -G Ninja -S . -B build
cmake --build build --target gdi

就能直接从源代码生成一个标准的、可引导的 .gdi 光盘镜像文件。整个过程一气呵成,没有中间环节。

功能特性:一个真正可用的桌面

DCWin 桌面外壳

项目开发了一个名为 DCWin 的桌面外壳程序。它利用 Dreamcast 的 PVR2 图形芯片和 Direct3D 接口进行图形合成,实现了:

  • 窗口化管理:窗口可以移动、调整大小、最小化、最大化
  • 任务栏:显示正在运行的程序
  • 开始按钮:类似 Windows 95/98 的“开始”菜单
  • 鼠标光标:支持通过 Dreamcast 手柄或鼠标设备控制光标
  • 多进程架构:每个应用程序运行在自己的 CE 进程中,互不干扰

内置应用程序

DCWin 桌面自带了一套基础应用程序:

  • Explorer(资源管理器):可以浏览 \(根目录)、\Windows(系统目录)、\CD-ROM(光盘目录),并直接启动二进制文件
  • Task Manager(任务管理器):实时查看进程列表和内存使用情况
  • Clock(时钟):显示当前时间
  • Calculator(计算器):基础计算功能
  • 内存测试器:用于检测内存状态
  • Winsock 网络测试器:用于测试网络连接

网络功能:正在推进中的 TCP/IP 栈

这是项目中最复杂、也最令人兴奋的部分。Dreamcast 原本只支持拨号上网(PPP 协议),通过调制解调器连接 ISP。wince-dc 的目标是实现以太网连接,让 Dreamcast 接入现代局域网。

项目采用了一种巧妙的方法:通用链接垫片(universal link shim),即 mppp.dll。这个 DLL 的作用是拦截系统对标准拨号网络协议栈的调用,将其转换为以太网通信。具体来说:

  • 原本的 microstk.exe(微软的微型 TCP/IP 栈)和 winsock.dll 是设计用于 PPP 拨号的
  • mppp.dll 垫片让它们“以为”自己在通过调制解调器拨号,但实际上数据是通过以太网传输的
  • 垫片内部实现了 DHCP(动态主机配置协议,用于自动获取 IP 地址)、ARP(地址解析协议,用于将 IP 地址转换为 MAC 地址)、DNS(域名解析)等关键网络功能
  • DNS 配置来源:DHCP 选项 6(指定 DNS 服务器)→ Dreamcast 自身闪存中的 ISP 配置 → 公共 DNS 解析器(如 8.8.8.8)

目前,项目支持两种物理网络后端:

  1. Broadband Adapter:Dreamcast 官方宽带适配器(BBA),通过以太网直接连接
  2. W5500/MACRAW over SPI:使用 W5500 以太网芯片,通过 SPI(串行外设接口)与 Dreamcast 通信

不过,项目在 README 中坦诚说明:两个后端都还在开发中,尚未实现端到端的正常工作。这部分是社区贡献的重点方向。

构建选项详解

项目提供了几个关键的 CMake 构建选项,方便开发者进行定制:

选项 默认值 说明
-DKERNEL=retail 或 debug retail retail = 静默内核(无调试输出);debug = SCIF 串口控制台内核(输出启动日志)
-DDLLS=retail 或 debug retail retail = 零售版系统 DLL(与真实游戏一致);debug = 检查版 DLL(包含大量断言,但可能破坏某些游戏,如 DirectDraw/DDHAL)
-DAUTORUN=<exe> dcshell.exe 系统启动时自动运行的程序(对应注册表 HKLM\init\Autorun),例如 -DAUTORUN=/CD-ROM/DC.EXE 可直接启动光盘上的游戏
-DEXTRADATA=<dir> 无 指定一个文件夹,其内容会被放入光盘的 \CD-ROM 目录(例如存放游戏文件);相对路径相对于仓库根目录

运行方式

构建生成的 build/disc/disc.gdi 是一个标准的多轨道光盘镜像,可以在真实 Dreamcast 硬件上运行:

  • GDEMU / MODE / USB-GD-ROM:将 disc.gdi 及其轨道文件复制到 SD 卡或存储设备上,从菜单中选择即可
  • 刻录光盘:对于需要精确 GD-R 布局的情况,可以使用 toolchain/make-gdi-real.ps1 脚本,基于真实的 CE 游戏 GDI 重新生成(以匹配原版 IP.BIN 和轨道几何)

默认镜像启动后会直接进入 DCWin 桌面。如果需要诊断信息,可以用 -DKERNEL=debug 构建,然后通过 Dreamcast 的 SCIF 串口控制台查看日志。

仓库结构解析

wince-dc/
├── CMakeLists.txt # 顶层构建文件
├── cmake/ # CMake 辅助脚本
├── shell/ # DCWin 桌面外壳(PVR2/D3D 合成器 + 客户端应用)
├── net/netif/ # 通用 mppp.dll 垫片(BBA + W5500 后端,DHCP/ARP/DNS)
├── drivers/dcspi/ # 可复用的 SPI 传输层(SCI 硬件 SPI + SCIF 位碰撞)
├── toolchain/ # 构建辅助脚本(wrap-image.ps1, make-gdi.ps1 等)
├── vendor/sh-toolchain/ # SH-4 PE 编译器 + CE 头文件
├── vendor/wcesdk/ # CE 2.12 SDK(头文件、库、镜像工具、OS 模块、内核)
└── utils/ # 实用工具

法律与伦理说明

项目基于 Sega "Dragon" Windows CE for Dreamcast SDK(已随仓库打包)。需要明确的是:

  • DCWin 桌面外壳、网络垫片和 SPI 驱动是项目的原创代码
  • CE 内核和系统模块是来自官方 SDK 的二进制文件
  • 项目 README 明确要求:不要将打包的 SDK 二进制文件用于研究目的之外的分发

技术意义与社区价值

wince-dc 不仅仅是一个怀旧项目。它在技术层面展示了几个有趣的点:

  1. 嵌入式系统的逆向与重构:如何将封闭的嵌入式运行时环境解构并重新组合成一个开放的系统
  2. 驱动垫片技术:通过 DLL 劫持和函数重定向,在不修改内核的情况下改变网络协议栈的行为,这是一种在嵌入式系统中常见的兼容性技术
  3. 自包含工具链:将整个开发环境打包在 Git 仓库中,使得项目可复现、可审计,这是开源硬件/固件开发的最佳实践

对于 Dreamcast 爱好者来说,这个项目意味着他们可以用这台 1998 年的主机运行一个真正的窗口化操作系统,甚至尝试编写自己的应用程序。对于嵌入式开发者来说,它也是一个学习 SH-4 架构、Windows CE 内部机制和硬件抽象层设计的绝佳案例。

未来展望

截至本文撰写时,项目在 GitHub 上获得了 67 颗星和 2 个 Fork(数据来自原文)。网络功能的端到端实现是当前最大的挑战,也是最需要社区贡献的部分。一旦 TCP/IP 栈稳定工作,Dreamcast 就有可能成为一台真正的网络终端,可以运行 Web 浏览器、FTP 客户端,甚至简单的网络游戏服务器。

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

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消