基于FPGA DIY一个NES游戏机

现在回忆起小时候,总觉得那时候日子特别美好。
儿时的我们虽然没有手机,但是却一点也不会无聊。
尤其是和小伙伴们一起偷偷地玩游戏机。
后来随着电脑和手机的普及,童年记忆里的老物件,也因为停产而逐渐远去。
儿时的游戏离我们原来越远,渐渐消失在我们生活中。
为了找回童年的美好,今天我们动手做一台nes游戏机。
硬件模拟好在哪?
一般来说现在想玩老游戏有三种方法。
第一种方法是在二手市场淘换当年的原机原卡带,但是非常稀缺、价格昂贵,品相难以保证。
年代久远的游戏机只能输出模拟视频信号,需要更换芯片或用采集卡才能连接现代的数字显示器,会带来显示延迟。
第二种方法是软件模拟,虽然硬件性能今非昔比,手机上都可运行许多模拟器,但有兼容性问题,不是所有游戏都能稳定运行。
使用软件模拟还会出现操作输入延迟,和声音延迟。
对高难度的动作游戏来说,虽然延迟只有毫秒级别,但还是能感觉到手感不同,老游戏难度普遍又高,输入延迟使一些高级技巧难以操作。
△经典超难红白机游戏《魔界村》
对于音游来说,那就根本没法玩了。
△gba上的音游《节奏天国》
现在市面上有一些基于树莓派等环境的开源游戏机,任天堂、世嘉等也不断地推出官方迷你复刻版。
但这些本质上还是使用现代硬件架构的软件模拟,不能解决软件模拟带来的问题。如任天堂迷你fc实际上是在arm架构上运行linux系统。
第三种方法就是使用fpga硬件模拟。
fpga的全称是现场可编程门阵列,通过直接对芯片中的模块和逻辑单元编程来模拟老游戏机硬件的运行方式。
软件模拟器是用cpu做通用计算,按顺序执行代码,需要比被模拟的硬件运行频率快许多倍的cpu才能达到原硬件的运行速度。
fpga通过编程重组生成专用电路,相当于“可变形的硬件”。
可以让被模拟硬件的不同芯片同时工作,耗费的资源更少,同时解决延迟问题。
还可以模拟大型游戏卡带中特制的增强芯片,解决游戏兼容性问题。
△sfc星际火狐中的增强芯片负责渲染3d多边形
以及模拟老机种的音频芯片输出原汁原味的游戏音效。
此外,在测试中gamegirl输出的画面比原机清晰度更高,色彩也更鲜明。
nes fc 小霸王 。。。傻傻分不清楚
查看《万字长文带你回顾电子游戏的七十多年历史(完整版)》主条目:第三代视频游戏机
总结一下,美国叫nes,日本叫fc,中国叫小霸王(山寨),其实都是任天堂和sega8位游戏机。
硬件介绍
gamegirl核心板+扩展板
fpga核心板
ep4ce22f17
sdram:hy57v561620 32mb
扩展板
at91sam7s256
max1304(spi转usb)
实物如下:
治好你的颈椎病
程序
https://github.com/suisuisi/gamegirl/tree/master/corecpu/nes
下载下来使用quartus ii进行编译,编译选项注意下面截图勾选:
编译后会产生.rbf文件:
sd卡准备
将上述文件拷贝到sd卡根目录下,并重新命名为core.rbf。
在sd卡上创建nes文件夹,将自己喜欢的游侠放到该目录下,支持.nes .nsf .bin等扩展文件名。


G.fast:让高速网络部署更高速
5G智慧灯杆网关,“多面”促进智慧城市数字化转型
电池管理技术的前世今生
工地安装好噪声扬尘监测仪,利人利己
伺服电机的选型比较
基于FPGA DIY一个NES游戏机
关于怎么测试cpu是否损坏
UONI A1 Pro全能新物种发布,1小时预订销售破800万,呈爆发式增长
高低温湿热试验箱的使用过程中应注意什么
并非9月21日 消息称苹果9月12日发布新一代iPhone
晶体管和场效应管的区别
智慧园区系统为园区内的安全设备管控提供了重大帮助
Google在其Google Meet视频聊天服务中添加了一项新功能
大屏智能电视推荐
荣耀8XMax上手 为影音而生
一个简单的PCI总线INTx中断实现流程
从FPGA工程师到CEO,你准备好了吗?
Elon Musk的Model 3的价格不仅仅是3.5万美金那么简单
优化DS2715电池充电器的负载切换功能
华为正式上架AI全彩摄像头2K版