图片来源:Bryan Keller 的 Dev Blog

近日,一项让Mac OS X直接在Nintendo Wii上运行的移植项目引发关注。与依赖模拟器或先运行其他系统再通过虚拟化启动Mac OS的做法不同,该项目实现了Mac OS X在Wii硬件上的原生运行。

据日本科技媒体Gigazine当地时间4月9日报道,工程师Bryan Keller已成功让2001年发布的Mac OS X“Cheetah”在Wii上启动运行。此前,Wii已被移植运行过Linux、NetBSD和Windows NT等系统,但Mac OS X以原生方式在这款主机上运行的案例并不多见。YouTuber Michael MJD此前也曾在Wii上运行Mac OS 9.2,但采用的仍是虚拟化方案。

Bryan Keller之所以着手这一项目,首先是看中了Wii的硬件基础。Wii搭载的PowerPC 750CL处理器,属于早期Apple G3 iBook所使用的PowerPC 750系列的改进型号,这让他判断该设备具备运行Mac OS X的基本条件。

内存限制是项目推进中的一大难点。Wii仅配备88MB内存,低于Mac OS X Cheetah标称的128MB最低配置要求。不过,在分析系统实际占用后,Bryan Keller认为,即便可用内存不足64MB,系统仍有机会启动。

在软件层面,Darwin的开源属性成为突破口。Bryan Keller通过修改相关代码,先行验证了系统启动的可行性,随后将重点转向引导程序和设备驱动的适配开发。

其中,引导程序基于ppcskel重新编写,负责设备上电后的初始化和系统加载。真正更棘手的问题在于底层硬件架构差异。传统Mac采用PCI架构,而Wii则围绕名为“Hollywood”的自研SoC设计,原有驱动无法直接复用,因此大部分驱动都需要重写。

显示输出适配同样是关键环节。Wii的视频编码器面向模拟电视信号输出进行了优化,帧缓冲需要16位YUV像素数据,而Mac OS X输出的是RGB像素。为解决这一不匹配问题,Bryan Keller采用了双帧缓冲方案,以每秒60次的频率完成色彩格式转换。

目前,这套系统已经支持鼠标和键盘操作,不再只是停留在“能够开机”的演示阶段,而是具备了基本可用性。Bryan Keller表示,项目刚开始时连是否可行都无法确定,但真正跑通之后,成就感非常强。

这一案例表明,即便Wii已是一款老旧主机,依托PowerPC架构基础以及Darwin的开源代码,仍有可能完成出人意料的系统移植。它也说明,这类移植工作的关键并不只是“跑起来”,更在于引导流程、驱动重写以及显示输出转换等底层适配能力。

关键词

#Nintendo Wii #Mac OS X #Cheetah #Darwin #PowerPC 750CL #ppcskel #引导程序 #设备驱动 #双帧缓冲 #虚拟化
版权所有 © DigitalToday。未经授权禁止转载或传播。