E X P
本文约 2040 字,4 张图表,正努力加载…
  • 编辑
  • 评论
  • 标题
  • 链接
  • 查错
  • 图文
  • 拼 命 加 载 中 ...

    作为一名Retro Gamer(复古经典游戏玩家),我一直都很喜欢重新在摩登设备上,重温古老但非常好玩的经典游戏(现代游戏我也玩,但大多是守望先锋这样的电竞类网游),比如街机、SFC、GBA等经典主机、掌机上的老游戏,但其实相比玩游戏本身,我可能更多是在折腾“玩模拟游戏的硬件”这件事上,最主要便是安装了模拟器的第一方掌机、或者开源掌机,以及SBC这样的产品,但这些硬件设备本质上,其实都是通过软件模拟的方式实现玩经典游戏的,但到最近,我发现了其实还可以用FPGA开发板来做到硬件级模拟复古游戏机。

    首先这个FPGA,即现场可编程门阵列,个人理解是可灵活定制和修改运行逻辑的集成电路芯片(高人可指教解释更准确的定义),其实PC DIY玩家们,对FPGA最大的印象,应该都是Intel在多年前了收购全球最大的FPGA制造商Altera,用于加大投入到做IoT和AI领域,而FPGA本来也是更多用在工业、生产、机器人等特定行业的设备开发和制造,我们普通消费者平时都不会直接接触到,当然这里不是在讲FPGA是什么和有什么用之类的,而是讲FPGA来硬件模拟复古游戏这件事。

    相比软件模拟,硬件模拟可以做接近于原来真机一样的游戏运行表现。其实在速度上,由于如今电脑、手机,甚至SBC的硬件性能都已经远远高于那些古董级的游戏主机,用来跑软件模拟游戏的帧数还是足够的,但原机是涵括了CPU、内存、显示、音频芯片等在内的整套系统,通过编程代码的形式,来让不同架构、设计的现代化硬件,来模拟旧主机的这些硬件特性,除了会耗费大量的硬件,还会存在游戏兼容性(特别是一些有add-on芯片的游戏),画面显示撕裂或不准确的缺陷问题。

    特别是原机的声音部分,由于各种经典游戏机用了各种特制的音频芯片,现代硬件想要还原原声,需要非常复杂的编程来解决,但开发模拟器的程序员大多都是自己兴趣爱好,一般难以有投入时间精力去作极致的优化开发,能做到没杂音、听个响就很不错了,但这些兼容性、准确性的问题,在FPGA的硬件模拟上就要容易解决很多了,因为FPGA本身可以通过定制编程来复制(replication)原机芯片的运行逻辑,达到与原来相同的效率和效果。

    而且FPGA的硬件模拟,还可以解决用原机或者开源硬件来玩经典游戏的两大问题。第一个是显示输出,因为经典游戏机年代久远,原机用的都是RF、AV、分量那种旧式的模拟信号显示输出,原机需要通过采集卡或者魔改芯片,才能连接到现代采用HDMI数字显示的电视机或者显示器上,这带来一点显示延迟,也不够“原味”,第二就是输入延迟,在软件模拟器,经典游戏机的控制器输入其实都是通过代码转换模拟输入,所以在Raspberry Pi这样的SBC开源硬件上,玩经典游戏会有一定的输入延迟,虽然数字上只是毫秒级,但一些技术高超的硬核,或者童年肌肉记忆深刻的玩家,始终觉得那些控制操作与原机的手感有明显差别。

    所以FPGA硬件模拟游戏机这样的产品,在Retro Gamer圈子里面,一直都是奉为神器,目前实际的商用产品,比较知名的就是Analogue了,他们的Mega SG和Super Nt便是基于FPGA芯片,来硬件模拟回世嘉MD,以及任天堂的SFC两大经典电视主机,实际运行效果获得一众Retro Gamer、老游戏玩家的好评,誉为最佳的模拟游戏主机,但它们售价不菲(190美元),而且也不容易买到(Super Nt已经买不到了)。

    现在还有另外一个选择,便是用FPGA开发板来自己做一台硬件模拟游戏机了。国外有位非常棒的开发者做了个MiSTer项目,可以让一块DE10-Nano开发板,硬件模拟Commodore 64、Apple II、SNEC、Magadrive、GBA等在内超多的古董个人电脑、游戏机,而这块开发板上用的FPGA是来自Intel的Cyclone系列V SE,据说这是与Analogue用的同款,所以从YouTube对这块开发板和MiSTer的测试,评价运行效果非常逼近真机的表现,让人心动。

    当然这块DE10-Nano开发板本意并非是用来做模拟游戏机的,它来自Terasic出品,这其实是一家国内的公司,名为友晶科技,在他们官网便有提供这块开发板销售,但那是非常传统的电邮联系下订单的方式,而在淘宝也是有得卖,价格同样为1170元,但如果可以提供教师证、学生证的话,可以买到便宜不少,只要990元的教育版,虽然也不便宜,但综合考虑的话,这个要比Analogue的主机划算很多,可玩性也更高。

    与大多数人一样,我没学过集成电路、数字编程之类的相关内容,但看过MiSTer的教程介绍,其实折腾起来并不难,因为Mister提供了基本上是plug-and-play的教程,所以软件部分的操作是比较容易,把编程文件镜像拷进去一站MicroSD,再插回开发板里面就行了,而硬件部分除了那块开发板,还可以加上一些扩展子板,包括有SDRAM、RTC、I/O和USB Hub,都开放了PCB图纸给大家自己DIY,其中SDRAM子板是原作者推荐的子板,因为据他介绍,DE10-Nano虽然内置有DDR3内存,但一些经典主机用的是很古老的EDO RAM,用同样比较古老的SDRAM来模拟会效果更好。

    目前我还没有入手这块DE10-Nano开发板,主要是还想研究下SDRAM、I/O子板怎样弄出来,所以还没有实物体验测试一番,这里只是分享有那么一件好玩的事告知给大家,但如果你也对此很感兴趣,可以访问MiSTer在Github上的Wiki页面摸索下,或者在YouTube上也有不少相关的视频可以参考。

    ×
    热门文章
    1Intel高管谈雷电5,带宽将有成倍提升
    2LG公布其4K OLED专业显示器价格,非常大众化的3999欧元
    3AMD可能会推出基于RDNA架构的专用矿卡,以对抗英伟达CMP HX系列
    4华硕笔电配置单泄露RTX 3050 Ti移动显卡信息,将支持光追及配置4GB显存
    5AMD和CAPCOM达成合作为生化危机8优化,将支持光追和Fidelity FX特效
    6英特尔Tiger Lake-H系列处理器完整规格泄露,或许会让不少人大失所望
    7GlobalFoundries今年将投资14亿美元提高产能,有可能提前进行IPO
    8雷蛇发布Anzu智能眼镜,让你把无线音乐挂在耳朵上
    9苹果面临英国反竞争行为调查,或与欧盟调查行动及Epic Games之间的诉讼案有关
    已有 15 条评论,共 35 人参与。
    登录快速注册 后发表评论
    • 游客  2020-08-21 15:24

      游客

      什么专业什么作业
      2020-08-21 11:12
    • 支持(0)  |   反对(0)  |   举报  |   回复
    • 电子信息工程

      支持(0)  |   反对(0)  |   举报  |   回复

      16#

    • 游客  2020-08-21 11:12

      游客

      手上正拿着这块de10写作业,突然就看到这篇文章。。。
      2020-08-20 22:21
    • 支持(1)  |   反对(0)  |   举报  |   回复
    • 什么专业什么作业

      支持(0)  |   反对(0)  |   举报  |   回复

      15#

    • 游客  2020-08-21 09:37

      用ZYNQ岂不更香

      支持(0)  |   反对(0)  |   举报  |   回复

      14#

    • 游客  2020-08-20 22:21

      手上正拿着这块de10写作业,突然就看到这篇文章。。。

      支持(1)  |   反对(0)  |   举报  |   回复

      13#

    • 游客  2020-08-20 21:15

      不知道为什么触发了敏感词
      这东西不好学,难得很,单靠自己能做个俄罗斯方块机就不错了。哪有直接拿安卓搞简单。搞这行的 ...

      支持(1)  |   反对(0)  |   举报  |   回复

      12#

    • 游客  2020-08-20 21:13

      这种方案比安卓无论是硬件成本还是开发难度都高很多,但是无视专利等的话可以做到和真机一样

      支持(2)  |   反对(0)  |   举报  |   回复

      11#

    • 游客  2020-08-20 20:37

      游客

      我还以为要教大家用verilog写代码呢
      2020-08-20 17:23
    • 支持(5)  |   反对(0)  |   举报  |   回复
    • y神会不会?不知道也没有vhdl比Verilog好之类的神论

      支持(4)  |   反对(0)  |   举报  |   回复

      10#

    • 游客  2020-08-20 20:35

      游客

      软件模拟器和原机的手柄手感是真的差很多,不是玄学
      2020-08-20 19:03
    • 支持(4)  |   反对(0)  |   举报  |   回复
    • 没答到点子上

      支持(0)  |   反对(0)  |   举报  |   回复

      9#

    • QQ23870862终极杀人王 2020-08-20 20:05    |  加入黑名单

      掌机开发模板

      支持(0)  |   反对(0)  |   举报  |   回复

      8#

    • 游客  2020-08-20 19:03

      游客

      文风里隐约有点玄学的味道
      2020-08-20 17:34
    • 支持(3)  |   反对(0)  |   举报  |   回复
    • 软件模拟器和原机的手柄手感是真的差很多,不是玄学

      支持(4)  |   反对(0)  |   举报  |   回复

      6#

    • 游客  2020-08-20 18:26

      游客

      我还以为要教大家用verilog写代码呢
      2020-08-20 17:23
    • 支持(5)  |   反对(0)  |   举报  |   回复
    • 写出来东西不少吧,不如教大家在Android上跑模拟器玩

      支持(0)  |   反对(0)  |   举报  |   回复

      5#

    • Elwin一代宗师 2020-08-20 18:13    |  加入黑名单

      fermi和hd5000之前的显卡都有s端子接口,输出格式从来就不是问题。这东西问题从来都是在软件上,在驱动上。slot1和soket370虽然少了,但并不是买不到

      支持(0)  |   反对(0)  |   举报  |   回复

      4#

    • 游客  2020-08-20 17:34

      文风里隐约有点玄学的味道

      支持(3)  |   反对(0)  |   举报  |   回复

      3#

    • 编辑 2020-08-20 17:27    |  加入黑名单

      游客

      我还以为要教大家用verilog写代码呢
      2020-08-20 17:23
    • 支持(5)  |   反对(0)  |   举报  |   回复
    • 那方面我这个外行人可不行。

      支持(0)  |   反对(0)  |   举报  |   回复

      2#

    • 游客  2020-08-20 17:23

      我还以为要教大家用verilog写代码呢

      支持(5)  |   反对(0)  |   举报  |   回复

      1#

    登录 后发表评论,若无帐号可 快速注册 ,请留意 评论奖罚说明
    为你推荐