0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA DIY一个NES游戏机

OpenFPGA 来源:OpenFPGA 2023-12-27 09:27 次阅读

现在回忆起小时候,总觉得那时候日子特别美好。

儿时的我们虽然没有手机,但是却一点也不会无聊。

尤其是和小伙伴们一起偷偷地玩游戏机。

后来随着电脑和手机的普及,童年记忆里的老物件,也因为停产而逐渐远去。

儿时的游戏离我们原来越远,渐渐消失在我们生活中。

为了找回童年的美好,今天我们动手做一台NES游戏机。

硬件模拟好在哪?

一般来说现在想玩老游戏有三种方法。

第一种方法是在二手市场淘换当年的原机原卡带,但是非常稀缺、价格昂贵,品相难以保证。

年代久远的游戏机只能输出模拟视频信号,需要更换芯片或用采集卡才能连接现代的数字显示器,会带来显示延迟。

第二种方法是软件模拟,虽然硬件性能今非昔比,手机上都可运行许多模拟器,但有兼容性问题,不是所有游戏都能稳定运行。

使用软件模拟还会出现操作输入延迟,和声音延迟。

对高难度的动作游戏来说,虽然延迟只有毫秒级别,但还是能感觉到手感不同,老游戏难度普遍又高,输入延迟使一些高级技巧难以操作。

△经典超难红白机游戏《魔界村》

对于音游来说,那就根本没法玩了。

△GBA上的音游《节奏天国》

现在市面上有一些基于树莓派等环境的开源游戏机,任天堂、世嘉等也不断地推出官方迷你复刻版。

但这些本质上还是使用现代硬件架构的软件模拟,不能解决软件模拟带来的问题。如任天堂迷你FC实际上是在ARM架构上运行Linux系统。

068b04f8-a450-11ee-8b88-92fbcf53809c.jpg

第三种方法就是使用FPGA硬件模拟。

FPGA的全称是现场可编程门阵列,通过直接对芯片中的模块和逻辑单元编程来模拟老游戏机硬件的运行方式。

0699d6ea-a450-11ee-8b88-92fbcf53809c.png

软件模拟器是用CPU做通用计算,按顺序执行代码,需要比被模拟的硬件运行频率快许多倍的CPU才能达到原硬件的运行速度。

FPGA通过编程重组生成专用电路,相当于“可变形的硬件”。

可以让被模拟硬件的不同芯片同时工作,耗费的资源更少,同时解决延迟问题。

还可以模拟大型游戏卡带中特制的增强芯片,解决游戏兼容性问题。

06b30ee4-a450-11ee-8b88-92fbcf53809c.png

△SFC星际火狐中的增强芯片负责渲染3D多边形

以及模拟老机种的音频芯片输出原汁原味的游戏音效。

此外,在测试中GameGirl输出的画面比原机清晰度更高,色彩也更鲜明。

NES FC 小霸王 。。。傻傻分不清楚

查看《万字长文带你回顾电子游戏的七十多年历史(完整版)》主条目:第三代视频游戏机

总结一下,美国叫NES,日本叫FC,中国叫小霸王(山寨),其实都是任天堂和SEGA8位游戏机。

硬件介绍

GameGirl核心板+扩展板

FPGA核心板

EP4ce22f17

SDRAM:HY57V561620 32MB

06eb7edc-a450-11ee-8b88-92fbcf53809c.png

扩展板

AT91SAM7S256

MAX1304(SPI转USB

07040aba-a450-11ee-8b88-92fbcf53809c.png

实物如下:

071f775a-a450-11ee-8b88-92fbcf53809c.jpg

治好你的颈椎病

程序

https://github.com/suisuisi/gamegirl/tree/master/CoreCPU/nes

下载下来使用Quartus II进行编译,编译选项注意下面截图勾选:

072ca146-a450-11ee-8b88-92fbcf53809c.png

编译后会产生.RBF文件:

073976be-a450-11ee-8b88-92fbcf53809c.png

SD卡准备

将上述文件拷贝到SD卡根目录下,并重新命名为core.rbf。

在SD卡上创建nes文件夹,将自己喜欢的游侠放到该目录下,支持.nes .nsf .bin等扩展文件名。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21328

    浏览量

    593251
  • 游戏机
    +关注

    关注

    9

    文章

    284

    浏览量

    33066
  • 树莓派
    +关注

    关注

    113

    文章

    1640

    浏览量

    104751

原文标题:【开源】我们和童年的距离,就是一台游戏机-用FPGA DIY一个NES游戏机

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    nes游戏机diy

    游戏机
    lkad
    发布于 :2023年05月24日 21:56:00

    基于FPGA“乒乓球比赛游戏机”的设计

    基于FPGA“乒乓球比赛游戏机”的设计
    发表于 08-17 11:45

    用BeagleBone Black做的掌上游戏机

    5游戏机机壳内总共搭载了5模拟器(即NES,SNES,GBA,Genesis和Famicom)。最厉害的模拟
    发表于 07-04 14:42

    用BeagleBone Black做的掌上游戏机

    造的Retron 5游戏机机壳内总共搭载了5模拟器(即NES,SNES,GBA,Genesis和Famicom)。最厉害的模拟
    发表于 10-21 17:36

    赚人气,用STM32F407做个NES游戏机玩玩

    ` 本帖最后由 JACK847070222 于 2015-11-18 11:36 编辑 上家单位很闲,无聊画了NES游戏机,自己玩玩,可实现功能:播放音乐,显示图片,玩
    发表于 11-18 11:29

    复刻FC游戏机

    `我想大家小时候都玩过小霸王的插卡游戏机。每逢周末叫上小伙伴,副手柄玩的不亦乐乎。这个卡带玩完了,就和别人换卡带,或者自己攒钱买卡带。像魂斗罗和超级玛丽都是经典的任务角色。现在随着软件和硬件技术
    发表于 10-29 21:54

    基于DragonBoard 410c的模拟魂斗罗游戏机

    .简介博主喜欢玩各类游戏,尤其是手游!由于手机便携性,现在手游玩得特别多(尤其是王者“农药”之流哈)。但是,习惯玩PC或者专业游戏机的发烧友都会觉得手机操作不太顺手,毕竟触摸屏的手感跟物理软键
    发表于 09-25 16:37

    简单的DIY台MINI游戏机

    本文详细的描述下整个DIY的过程方便想自己上手的小伙伴可以轻松的搞出来。01先说说这个游戏机的方案,这个游戏机的主板其实就是arduino-Leonardo的简化版,除了将USB、六
    发表于 08-25 11:12

    如何采用VHDL和FPGA设计款乒乓球比赛游戏机

    采用VHDL语言编程,基于FPGA成功设计了款乒乓球比赛游戏机,通过仿真验证可知,结果满足设计需求,系统具有发球权控制、自动计分、犯规提示等多种功能,能有效模拟实际乒乓球比赛。
    发表于 05-06 07:08

    stm32游戏机模拟器

    stm32游戏机模拟器,2020年科协招新需要出训练题,让新生了解一下单片机,所以我这边打算出游戏机的题,让新生用单片实现
    发表于 07-14 06:18

    ESP32 NES模拟器教程

    文章目录前言ESP32 NES模拟器效果图项目介绍源码、硬件获取视频教程 ESP32|爷青回!ESP32(单片) NES模拟器前言小时候我们都喜欢玩FC,现在仍有很多人想做出属于自己的游戏机
    发表于 01-12 08:20

    attiny85/13游戏机

    ,只有2按钮。虽然通过电阻及ADC可以实现多个按钮,但我觉得2按钮足够玩些简单的游戏了。比如小恐龙跳仙人掌,甚至只需要1按钮就可以操
    发表于 03-29 15:33

    【ROC-RK3568-PC开发板试用体验】基于ROC-RK3568-PC的掌上游戏机

    了(没钱)。刚好在测评ROC-RK3568-PC开发板,那么就送媳妇游戏机吧(其实是自己想玩),美其名曰媳妇你看我熬夜测评板子是在给你准备礼物呢,保证媳妇感动的想打人。准备安装必要的依赖apt
    发表于 09-10 16:16

    【HD-G2UL-EVM开发板体验】掌上游戏机之三 —— NES游戏模拟器移植

    192.168.1.101 5004 /dev/input/event1 中国象棋 总结至此我们完成NES游戏模拟器的移植,实现了掌上游戏机的项目。后面会继续优化体验,再出
    发表于 12-22 16:01

    使用Arduino(Arduboy)DIY手持游戏机

    电子发烧友网站提供《使用Arduino(Arduboy)DIY手持游戏机.zip》资料免费下载
    发表于 11-10 09:25 0次下载
    使用Arduino(Arduboy)<b class='flag-5'>DIY</b>手持<b class='flag-5'>游戏机</b>