Arduino Uno 变身游戏引擎,一口气跑四款经典游戏

开发者 Smashcat 把 ZX Spectrum 版《Manic Miner》的移植代码改造成一套 Arduino Uno 游戏引擎,支持滚动地图、九精灵和双声道 PWM 音频,已能运行四款老游戏。

几年前,开发者 [Smashcat] 把 ZX Spectrum 上的《Manic Miner》移植到了 Arduino Uno 上。Arduino 的内存比原版 Spectrum 还少,要在这样一颗 8 位单片机上完成移植并不轻松。如今,这套移植代码的一部分被整理成了一个通用游戏引擎,让 [Smashcat] 得以把更多游戏搬到 Arduino Uno 上。

Arduino Uno 运行 ZX Spectrum 游戏

引擎能力:滚动地图、九精灵、无帧缓冲

这套引擎可以承载分辨率为 256×256 的 2D 地图并支持卷轴滚动,同屏最多显示九个精灵。画面刷新锁定在 50 FPS,但前提是使用带晶振的正品 Arduino Uno——部分复刻板上的计时芯片精度不足,无法稳定复现视频信号。值得一提的是,视频输出采用无帧缓冲的方式直接生成,两个 PWM 音频通道同样由单片机直接产生。

外部电路相当简单:只需几颗电阻,就能把视频信号接到显示器、把手柄接到主机上,甚至还支持使用 NES 手柄。整块扩展板负责手柄接口、视频信号所需电阻以及扬声器驱动。

目前可玩的游戏

在 Arduino 加上这块扩展板之后,系统目前可以运行以下作品:

  • 《Manic Miner》原版移植
  • 《Scramble》
  • 《Space Invaders》
  • 《Pac Man》

引擎及其余代码已发布在 GitHub 上,作者还提供了 WebAssembly 版本,让没有相应硬件的用户也能体验软件的各个部分。

初代 ZX Spectrum 本身也是台很有意思的机器,问世 40 多年后依然在激发这类创作。

收录于

讨论

0 条评论

同分类推荐

复古游戏