现在回忆起小时候,总觉得那时候日子特别美好。
儿时的我们虽然没有手机,但是却一点也不会无聊。
尤其是和小伙伴们一起偷偷地玩游戏机。
后来随着电脑和手机的普及,童年记忆里的老物件,也因为停产而逐渐远去。
儿时的游戏离我们原来越远,渐渐消失在我们生活中。
为了找回童年的美好,今天我们动手做一台NES游戏机。
硬件模拟好在哪?
一般来说现在想玩老游戏有三种方法。
第一种方法是在二手市场淘换当年的原机原卡带,但是非常稀缺、价格昂贵,品相难以保证。
年代久远的游戏机只能输出模拟视频信号,需要更换芯片或用采集卡才能连接现代的数字显示器,会带来显示延迟。
第二种方法是软件模拟,虽然硬件性能今非昔比,手机上都可运行许多模拟器,但有兼容性问题,不是所有游戏都能稳定运行。
使用软件模拟还会出现操作输入延迟,和声音延迟。
对高难度的动作游戏来说,虽然延迟只有毫秒级别,但还是能感觉到手感不同,老游戏难度普遍又高,输入延迟使一些高级技巧难以操作。
对于音游来说,那就根本没法玩了。
现在市面上有一些基于树莓派等环境的开源游戏机,任天堂、世嘉等也不断地推出官方迷你复刻版。
但这些本质上还是使用现代硬件架构的软件模拟,不能解决软件模拟带来的问题。如任天堂迷你FC实际上是在ARM架构上运行Linux系统。
第三种方法就是使用FPGA硬件模拟。
FPGA的全称是现场可编程门阵列,通过直接对芯片中的模块和逻辑单元编程来模拟老游戏机硬件的运行方式。
软件模拟器是用CPU做通用计算,按顺序执行代码,需要比被模拟的硬件运行频率快许多倍的CPU才能达到原硬件的运行速度。
FPGA通过编程重组生成专用电路,相当于“可变形的硬件”。
可以让被模拟硬件的不同芯片同时工作,耗费的资源更少,同时解决延迟问题。
还可以模拟大型游戏卡带中特制的增强芯片,解决游戏兼容性问题。
以及模拟老机种的音频芯片输出原汁原味的游戏音效。
此外,在测试中GameGirl输出的画面比原机清晰度更高,色彩也更鲜明。
NES FC 小霸王 。。。傻傻分不清楚
查看《万字长文带你回顾电子游戏的七十多年历史(完整版)》主条目:第三代视频游戏机
总结一下,美国叫NES,日本叫FC,中国叫小霸王(山寨),其实都是任天堂和SEGA8位游戏机。
硬件介绍
GameGirl核心板+扩展板
FPGA核心板
EP4ce22f17
SDRAM:HY57V561620 32MB
扩展板
AT91SAM7S256
MAX1304(SPI转USB)
实物如下:
程序
/suisuisi/gamegirl/tree/master/CoreCPU/nes
下载下来使用Quartus II进行编译,编译选项注意下面截图勾选:
编译后会产生.RBF文件:
SD卡准备
将上述文件拷贝到SD卡根目录下,并重新命名为core.rbf。
在SD卡上创建nes文件夹,将自己喜欢的游侠放到该目录下,支持.nes .nsf .bin等扩展文件名。
视频
NOW现在行动!
学习Xilinx FPGA最好的资料其实就是官方手册,下表总结了部分手册的主要介绍内容,关注我,持续更新中......
推荐阅读
【Vivado那些事】如何查找官网例程及如何使用官网例程
【Vivado使用误区与进阶】总结篇
【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
SystemVerilog数字系统设计_夏宇闻 PDF
图书推荐|ARM Cortex-M0 全可编程SoC原理及实现
简谈:如何学习FPGA
1202年了,还在使用虚拟机吗?Win10安装Ubuntu子系统及图形化界面详细教程
Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目
AD936x+ZYNQ搭建收音机(一)
AD936x+ZYNQ搭建OpenWIFI
无招胜有招-Vivado非工程模式下的详细设计
面试中经常会遇到的FPGA基本概念,你会几个?
Vivado ML(机器学习) 尝鲜
推荐一些可以获取免费的国外的原版书籍(电子版)网站
【Vivado那些事】FPGA的配置方式
FPGA 的重构
浅析FPGA局部动态可重构技术
ISP(图像信号处理)算法概述、工作原理、架构、处理流程
国产CPU概括
从电子游戏历史看IC发展的助推剂
80年代电子游戏及电脑游戏的发展历史
PCIe总线的基础知识
万字长文带你回顾电子游戏的七十多年历史(完整版)
FPGA中异步复位,同步释放的理解
OpenFPGA系列文章总结
用Verilog设计一个16 位 RISC 处理器
介绍一些新手入门FPGA的优秀网站(新增)
Verilog数字系统基础设计-CRC
FPGA 的布局规划艺术
Verilog数字系统基础设计-奇偶校验
建立和保持时间及时序简单理解
(Xilinx)FPGA中LVDS差分高速传输的实现
Xilinx Multiboot实例演示
高速串行通信常用的编码方式-8b/10b编码/解码
Verilog计时(微秒、毫秒和秒)脉冲的产生及同步整形电路
再说System Verilog 与 Verilog 的关系
图书推荐|一本图像/视频处理的强大工具书
Verilog HDL-同步技术
再说System Verilog 与 Verilog 的关系
数模混合信号建模语言Verilog-AMS
数字系统重要指标-吞吐率和时延
Verilog数字系统基础设计-数据转换器
【Vivado那些事儿】强制修改打开Vivado工程使用的Vivado版本