让 FlapPGA Mario 在浏览器里重新跑起来
2018 年,我用 Verilog 在 Basys 3 FPGA 上做了一个类似 Flappy Bird 的小游戏:FlapPGA Mario。它没有 CPU,画面、碰撞、滚动和音乐都由硬件逻辑完成。关于原项目的设计过程,可以看之前的文章:《FlapPGA Mario - 用 FPGA 编写游戏》。
最近我给它写了一个浏览器版软件模拟器。模拟器直接使用原项目的图像 ROM 和音符数据,并尽量按照 FPGA 版本的状态、时序和画面来还原游戏。现在不需要 FPGA 开发板,打开网页就可以玩了。
在线试玩
操作很简单:按 空格、↑ 或 W,也可以直接点击画面让马里奥跳跃;按 R 重新开始。浏览器会阻止网页自动播放声音,所以第一次按键或点击之后 BGM 才会响起。
如果嵌入画面较小,也可以全屏打开游戏。
软件模拟器保留了原版的 640×480 画面、三根水管、金币、计分和视差滚动,并直接读取 FPGA 工程里的 RGB444 ROM 与三路 BGM 音符表。模拟器和 FPGA 工程的代码都在 GitHub。欢迎来试试能拿多少分 XD