NES主机改装Windows桌面环境,开发者用FPGA实现x86软核运行

一位名为Throaty Mumbo的硬件爱好者将经典NES游戏机改造为可运行类Windows图形界面的桌面系统,核心依赖EverDrive N8 Pro FPGA卡与Next186软核处理器,项目已开...

互联网/IT

一台灰白相间的任天堂娱乐系统(NES)主机静静置于桌面上,旁边连接着老式CRT显示器、PS/2键盘与鼠标——屏幕中却赫然显示着蓝底白字的图形化桌面界面,图标排列整齐,窗口可拖拽缩放,菜单栏清晰可见。这不是模拟器运行在现代PC上的画面,而是真实由NES主机输出的影像。这一看似违背计算常识的改造,出自硬件爱好者Throaty Mumbo之手,其项目“NESPC”将8位游戏机变成了一个功能完整的复古桌面终端。

NES搭载的是MOS Technology 6502 8位微处理器,主频仅1.79 MHz,内存仅2KB RAM加2KB VRAM,连基本的DOS命令行都难以流畅运行。早期尝试中,Throaty Mumbo曾加载过网络流传的中文版Windows 98 ROM镜像,但该ROM仅包含静态图像界面,如Paint、资源管理器等程序均为截图拼接,无实际功能;另一款基于Linux的NES86项目则因性能严重不足而无法使用。面对原生硬件的极限,他转向了外挂式算力扩展方案。

关键突破在于EverDrive N8 Pro——一款采用Cyclone IV FPGA芯片的NES卡带式设备。它插入NES卡槽后,并非简单替换游戏ROM,而是接管了NES的 cartridge bus(卡带总线),将原本用于读取游戏数据的通道转化为高速数据通路,使NES主机能调用外部FPGA的算力资源。该FPGA内置ARM架构协处理器,可运行复杂指令集,相当于为NES“外挂”了一块微型GPU+CPU组合模块。

在此基础上,Throaty Mumbo集成Next186——一个开源的FPGA软核处理器,能够执行Intel 80186兼容指令集,从而实现x86架构的初步模拟。Next186并非全功能x86 CPU,但足以支撑轻量级操作系统内核与图形界面框架的运行。项目最终构建出一个定制化的图形环境:基于TinyGL的2D渲染引擎、自研窗口管理器、支持USB HID设备的RP2350微控制器桥接电路(用于键盘、鼠标及MIDI输入),以及一个精简的文件系统与命令行接口。

初始版本以命令行为主,演示中运行了tty-tetris与ASCII列车动画等程序,虽受限于NES原始视频输出分辨率(256×240),操作仍保持响应性;后续迭代则实现了真正的图形桌面:窗口可最小化、最大化、拖动,菜单栏含“文件”“程序”“帮助”等选项,图标风格高度复刻Windows 95/98视觉语言。值得注意的是,该系统并未运行真实Windows二进制文件,而是通过逆向工程与重写,重建了其UI逻辑与交互范式,属于“精神续作”而非兼容层。

文章配图

项目代码与固件已全部开源至GitHub,包括RP2350的USB-HID固件、FPGA配置文件及桌面环境源码。Throaty Mumbo在说明文档中强调,此举并非追求实用性能,而是探索“在物理限制下重构计算体验”的可能性——当硬件能力被压缩到极致,软件设计必须回归本质:轻量化、确定性、人机直觉。

这种思路在近年复古计算社区中正逐渐形成共识。类似案例包括用Game Boy运行Linux、ZXSpectrum实现Web浏览器,甚至有人用计算器芯片跑Python解释器。它们共同指向一个命题:计算的本质不在于晶体管数量或GHz数值,而在于如何组织有限资源达成特定交互目标。NESPC项目的价值,正在于它用最朴素的硬件平台,重现了图形用户界面诞生初期的探索精神。

对比之下,2001年发布的Windows XP曾被视为DOS时代的终结者,其NT 5.1内核首次将稳定性和安全性带入消费级市场。但XP的成功建立在奔腾III、256MB内存与AGP显卡的基础之上;而NESPC则反向证明:即使在1985年的硬件躯壳里,只要架构设计得当,仍可孕育出具备现代交互逻辑的系统雏形。

值得玩味的是,这类项目往往由个体开发者推动,而非企业行为。原因在于商业产品需平衡成本、兼容性与用户预期,而个人实验可大胆舍弃向后兼容,专注单一目标。Throaty Mumbo在视频中提到:“我想要的不是‘能跑Windows’,而是‘看起来像、用起来像、感觉像’一个桌面系统。”这种对交互直觉的执着,恰恰是早期GUI设计者——如Xerox PARC与Apple Macintosh团队——所秉持的核心理念。

文章配图

技术实现上,NESPC的难点不在某单一模块,而在系统级协同:FPGA需实时处理视频信号生成与窗口合成;RP2350要低延迟转发USB输入事件;6502主CPU则负责调度与状态维护。三者通过定制协议通信,形成一种“异构计算”雏形——这与今日手机SoC中CPU+GPU+NPU分工模式遥相呼应,只是规模缩小了百万倍。

目前该系统尚无法运行真实应用程序,但已支持基础文件浏览、文本编辑与简单游戏。未来拓展方向包括增加SD卡存储支持、接入CD-ROM驱动模拟(参考素材中提及的CD驱动设想),甚至尝试运行简化版DOSBox子系统。不过开发者明确表示,性能瓶颈仍将存在:Next186软核在FPGA上实测约0.5 MIPS,仅为80186真实芯片的1/10,更远低于奔腾处理器的数百MIPS。

在硬件怀旧风潮持续升温的当下,NESPC提供了一种不同于“复刻整机”的路径:不还原历史,而是用历史平台重新演绎现代概念。它提醒我们,操作系统不仅是代码集合,更是一套人机契约;当契约被拆解为最小可行单元,即便在最简陋的硬件上,也能重建出熟悉的数字家园。

该项目未涉及任何商业发行计划,纯粹作为开源实验存在。其意义不在于替代现有设备,而在于拓宽我们对“计算机”定义的想象边界——一台游戏机,只要接口开放、架构透明,就有可能成为思想实验的载体。