Arduino Uno 变身游戏引擎,一口气跑四款经典游戏
开发者 Smashcat 把 ZX Spectrum 版《Manic Miner》的移植代码改造成一套 Arduino Uno 游戏引擎,支持滚动地图、九精灵和双声道 PWM 音频,已能运行四款老游戏。
几年前,开发者 [Smashcat] 把 ZX Spectrum 上的《Manic Miner》移植到了 Arduino Uno 上。Arduino 的内存比原版 Spectrum 还少,要在这样一颗 8 位单片机上完成移植并不轻松。如今,这套移植代码的一部分被整理成了一个通用游戏引擎,让 [Smashcat] 得以把更多游戏搬到 Arduino Uno 上。
引擎能力:滚动地图、九精灵、无帧缓冲
这套引擎可以承载分辨率为 256×256 的 2D 地图并支持卷轴滚动,同屏最多显示九个精灵。画面刷新锁定在 50 FPS,但前提是使用带晶振的正品 Arduino Uno——部分复刻板上的计时芯片精度不足,无法稳定复现视频信号。值得一提的是,视频输出采用无帧缓冲的方式直接生成,两个 PWM 音频通道同样由单片机直接产生。
外部电路相当简单:只需几颗电阻,就能把视频信号接到显示器、把手柄接到主机上,甚至还支持使用 NES 手柄。整块扩展板负责手柄接口、视频信号所需电阻以及扬声器驱动。
目前可玩的游戏
在 Arduino 加上这块扩展板之后,系统目前可以运行以下作品:
- 《Manic Miner》原版移植
- 《Scramble》
- 《Space Invaders》
- 《Pac Man》
引擎及其余代码已发布在 GitHub 上,作者还提供了 WebAssembly 版本,让没有相应硬件的用户也能体验软件的各个部分。
初代 ZX Spectrum 本身也是台很有意思的机器,问世 40 多年后依然在激发这类创作。
讨论
0 条评论