第一生活网

Raspberry Pi Pico 获得可播放的 Doom 端口

戴菲初
导读 Doom运行 在 任何东西上,所以他们说。我们已经看到它在妊娠试验、示波器和电子书阅读器上运行。但德克萨斯州编码员Graham Sanderson发

Doom运行 在 任何东西上,所以他们说。我们已经看到它在妊娠试验、示波器和电子书阅读器上运行。但德克萨斯州编码员Graham Sanderson发布的在Raspberry Pi Pico上运行的原始 2.5D 恶魔爆破 FPS 的镜头证明,我们最喜欢的 4 美元微控制器具有“撕裂”其他电路板的能力。

有问题的代码源自Chocolate Doom,这是游戏历史上准确的源端口。然而,从 Pico 中获得准确的 Doom 游戏的问题在于存储。由于板上有 2MB 的闪存,构成原始共享软件 Doom 关卡的 4MB WAD 文件将需要进行显着压缩。哇,Sanderson 在GitHub 上写的关于他的项目的文章非常详细地介绍了这个主题——如果你喜欢可变字节数整数和 Huffman 编码,那么它是一本很好的读物。或者即使你不是,也有很多关于 Doom 如何在那里工作的细节。

他的压缩技术被称为 WHD,代表“一半的数据在哪里?”,并设法将 WAD 文件压缩 57%,并在此过程中重新编码音频。生成的可执行文件适合 Pico 的 256kb RAM 和 34kb 备用,这允许六个保存游戏插槽。

游戏的图形输出为 VGA,适合 90 年代的感觉,分辨率为 1280 x 1024,是现代电视更可能支持的原始分辨率的倍数。幸运的是,这种像素加倍可以通过 pico_scanvideo 库轻松完成,通过将像素值留在引脚上更长的时间以实现水平缩放,并通过在多条扫描线上重复值以实现垂直缩放。

在 Pico 的双核 CPU 忙于渲染游戏的同时,GPIO 引脚用于连接最多四名多人游戏的玩家。桑德森对项目的描述中有更多细节,涵盖诸如显示文本和非 3D 渲染的屏幕部分等主题,以及游戏的独特结束屏幕,以及他对是否或不实现帧缓冲区。

Sanderson 指出,如果您还没有受够 90 年代的恶魔爆破,8MB 版本的 Pico(例如 Pimoroni 的 Tiny 2040和Adafruit 的 Feather RP2040 )也可以运行 Doom II 和 Ultimate Doom。桑德森的 YouTube 频道上有更多视频,非常值得一看。