mister_fpga吧 关注:863贴子:5,476
  • 10回复贴,共1

FPGA复古革命

只看楼主收藏回复


当José 'Jotego' Tejada下班回家时,他没有脱掉鞋子,走向沙发休息。相反,他坐在另一张办公桌前继续工作,这一次是他最新的激情:为基于硬件的系统MiSTer创建“内核”。“我每周在这个项目上花费近40个小时,”他说。“在工作日,我可能会投入四个小时,在周末,我会每天创建十二个小时的核心。当我有假期时,我可能会每天在MiSTer上工作十个小时。
他会呻吟吗?恰恰相反:他喜欢它的每一秒。Tejada是众多业余时间帮助我们其他人享受1980年代和1990年代经典游戏的人之一。作为一名设计工程师,Tejada的努力帮助MiSTer成为最终的复古游戏系统。
MiSTer很受欢迎,因为它可以以如此高的精度模拟原始硬件。从8位和16位时代选择一个系统,MiSTer很可能会如此准确地运行它,你几乎不知道它不是原始机器。您可能早上在Amstrad CPC 6128,Commodore 64,ZX Spectrum或BBC Micro上玩游戏,在午餐时涉足SAM Coupé或PMD 85,或者在晚上启动Atari 2600,Game Boy,Neo Geo和Mega Drive等复古游戏机 - 这只是掠过表面。

这种事情并不是独一无二的:例如,在Raspberry Pi 4上安装RetroPie,你就有了一台坚固的仿真机器。您还可以选择经典控制台的迷你重新创建,例如NES和SNES。事实上,仿真长期以来一直是复古游戏社区的主要内容,因为它允许访问历史而无需购买原始硬件。然而,这些方法依赖于软件仿真来使一个计算机系统表现得像另一个计算机系统一样 - MiSTer则不然。相反,它使用现场可编程门阵列(FPGA):一种包含可配置逻辑块的集成电路,允许开发人员直接对芯片进行编程。然后,开发人员可以重新配置这些模块,以便FPGA模仿过去控制台,计算机,手持设备和街机中存在的芯片。当开发人员生成与旧计算机匹配的配置时,它被称为核心。正是这些核心是由世界各地的爱好者创造的。

“简而言之,FPGA只是一大堆逻辑元素,你可以决定如何连接它们,”俄罗斯程序员Alexey “Sorgelig” Melnikov解释说,他是MiSTer项目的创建者。“没有CPU,也没有其他设备。相反,你必须使用基本的OR-AND逻辑和触发器来创建内核,这基本上就是原始芯片的创建方式。
嘿MiSTer
自2017年首次出现以来,MiSTer已经吸引了许多硬件爱好者的想象力,主要是因为它对寻求精度的才华横溢的工程师提出了挑战。很少有游戏会拒绝在MiSTer上运行,因为芯片精确地模仿了原始硬件。正如Tejada指出的那样,MiSTer“可以像你需要的那样准确”。

梅尔尼科夫首先开始考虑什么将成为MiSTer 2015。当时,他开始研究Minimig,这是一种使用FPGA的Amiga 500的开源重新实现,然后转向MIST-工程师Till Harbaum通过复制FPGA上的68000 CPU而不是将其作为单独的芯片来模拟Amiga和Atari ST的成功尝试。“它引起了我的注意,”梅尔尼科夫说。“这就是我学习FPGA编程并开始发现其可能性的方式。
尽管如此,梅尔尼科夫很快就感到沮丧。“当我为MIST开发和移植内核时,在我的任何显示器或电视上获得图像总是很困难的,这些显示器或电视都使用HDMI,”他说。“我不得不使用一些VGA转换器,但没有一个是通用的,它们不会接受所有可能的分辨率。因此,当我淹没在桌子上的电缆和开关中时,我开始思考直接从FPGA板获得HDMI的方法。
正是这种想法导致了MiSTer。与MIST不同,MIST使用基于FPGA的开发板,不仅昂贵而且很难找到,Melnikov认为他的开源项目应该基于批量生产的开发板 - 任何人都可以轻松获得。他认为这不仅会使开发更简单,而且更便宜,他最终选择了Terasic的DE10-Nano,它是围绕英特尔SoC FPGA构建的。这成为MiSTer的主要组成部分。

“我的想法是调整现有的开发板,”Melnikov说。“但是当DE10-Nano问世时,我正处于适应另一个Terasic板的最后阶段。这是我想要的确切尺寸,尽管它是Arm和FPGA一起的混合芯片,这对我来说是一个全新的野兽。我花了一些时间来适应它,但我能够在2017年年中推出MiSTer。
同年6月,Melnikov在GitHub上解释了MiSTer对MIST板的改进 - 特别是DE10-Nano板是针对教育市场的,这意味着它得到了包括ISSI,Silicon Labs和Panasonic在内的许多公司的补贴。
该板售价约为130美元,包括一个运行在800MHz和1GB RAM的Arm Cortex-A9双核CPU。“由于FPGA更大,可以创建更大的系统,”Melnikov于2017年6月在GitHub上写道。“MiSTer将原始视频分辨率扩展到标准HDMI分辨率(通常为1280×720p60),因此您无需寻找一些具有VGA输入的古老显示器,支持非标准分辨率和帧速率。
没过多久,好奇的游戏玩家就抓住了这个概念,但Melnikov说,把这个项目变成一个工作系统并不容易。“DE10-Nano是一种混合体,具有许多内部设备,因此我很难使其稳定,”他说。“即使将Linux作为输入和存储的后端,它也不能作为需要安全关闭和安全重启的普通计算机。MiSTer 已准备好进行突然重置或断电,这是一个挑战。
伟大的任务
在过去的五年中,MiSTer项目不断发展,定期创建和增强新内核。有一个蓬勃发展的Facebook小组,Melnikov和其他开发人员都很活跃,创作者建立了几个Patreon帐户来支持他们的工作。例如,Tejada有近3000名支持者每月至少捐赠2.50英镑。总和可以堆积起来,但仍然:它仍然是爱的劳动。没有人创造核心来致富,也没有人能真正低估他们投入了多少工作。更重要的是,如果有任何压力,那么它通常是自己造成的。

正如Tejada所说,MiSTer社区是一个支持性的社区:人们不会破解鞭子或提出不合理的要求。“关于开源项目的一件事是,你有对你很好的客户,”Tejada笑着说。“在其他工作中,你可以有一个要求很高的客户,所以这不是一项有益的任务。但在这里,你会让人们对你的所作所为表示感谢,这真的给了你一个动力。你最终会做出积极的反应,它激励你去交付。至于钱,它向很多人证明了这一点。我想我的家人会抱怨很多,如果我在没有赚钱的情况下工作。
创建内核
Tejada是MiSTer社区的重要成员,甚至他也很难量化他投入了多少工作。“我不确定我到底创建了多少个内核,”他承认,“但数量很多!”Tejada的GitHub仅在过去一年中就显示了2323项贡献,他的工作主要集中在街机核心上。事实上,正是他对雅马哈YM2151声音芯片的热情,这是Ghosts 'n Goblins街机PCB板的一部分,首先将他带入了MiSTer世界。
至于制造这些内核所需的时间,它可能会有所不同。根据Tejada的说法,一些核心可以在一周到十天内创建,而其他核心则需要更长的时间。正如另一位开发人员 Robert Peip 告诉我们的那样:“这取决于组件、复杂性、可用文档和现有仿真器。从原始控制台中获取每一点信息将需要很多年的时间,因此FPGA内核从自制和仿真器开发人员所做的研究中获得了巨大的利润。
正如Tejada所解释的那样,制作内核可能是一项困难而耗时的工作。“有些系统很硬,需要很多时间,而且有很多半工作的核心已经被遗弃了,”他说。“我已经恢复了其中一些,随着越来越多的人来到这个项目并开始提供帮助,他们也帮助改进了现有的内核。但基本上,许多核心并没有真正完成。它们仍在开发中,仍在改进中。总有改进的余地。
当系统具有许多变体时,可能会出现进一步的复杂情况。“一些系统,人们认为是一台机器,在其生产运行过程中可能有许多不同的变化,这导致了很小的硬件差异,”Tejada解释说。“这可能意味着不得不花几个月的时间在它们上面。对于像我这样的人来说,这可能需要更长的时间。我通常会在复古系统之间来回切换以提供不断的更新,如果我一次专注于一个系统,那么也许几个月我都不会发布任何东西。

似乎是为了强调潜在的时间尺度,Peip正在开发PlayStation核心:许多人认为在MiSTer上是不可能的。迄今为止,大多数核心都是针对8位和16位机器以及Capcom CPS1和CPS2等街机系统(“我的大多数支持者最喜欢CPS核心,当我开始做它们时,我的订户有了很大的提升,”Tejada说)。他认为,Peip的PSone项目将花费一年时间。“Atari Lynx的工作是两个月,”他补充道,作为比较。“PlayStation的最大挑战是不同部分的数量及其复杂性,”Peip说。“我已经花在PlayStation的CD子系统上的时间超过了我在整个WonderSwan核心上花费的时间。但好消息是,路上没有阻碍者。虽然这项工作仍然需要相当长的时间,但我没有看到任何可能使MiSTer上的项目无法实现的东西。
保存过去
虽然仿真仍然是一个灰色地带——部分原因是它依赖于ROM的使用——但核心创作者认为他们正在把游戏做成一项重要的服务。正如Peip所说,有一个保留论点:“随着旧硬件的重建,你有机会为这么多现有的软件和这么多的游戏赋予新的生命。如果你重建一个可以运行数百甚至数千个游戏的系统,那么你所做的工作所获得的奖励是非常高的。

构建核心并不总是关于精确复制旧系统。例如,游戏玩家可能想要使在MiSTer上玩游戏的功能更加愉快:Peip的Game Boy核心包括分屏支持,他还致力于快进和保存状态功能。它们是原始系统上不可用的那种东西,但通常是软件仿真器的标准配置。“我只是喜欢在真实硬件之上开发很酷的功能,”Peip解释说。“因此,我为NES核心制作了保存状态,因为它经常被请求,Game Boy和Game Boy Advance的分屏核心也是如此,其中两个玩家可以在一个MiSTer上的两个链接核心上玩游戏。我为Game Boy Advance提供了高分辨率渲染。这些功能非常有趣,做一些以前从未做过的事情是非常激励人的。

与此同时,Tejada并不总是对这样的事情着迷。“一个持续的挑战是决定可以包含哪些功能,因为用户基本上想要一切而不考虑后果,”他说。“我必须实现和支持许多我不使用甚至不喜欢的功能。
然而,所有正在做的工作都具有持久的价值,不仅对于游戏,而且对硬件本身也是如此。开发人员正在用HDL(硬件描述语言)创建内核,有效地记录复古系统的原理图,并为后代保留它们。随着机器老化和故障,旧媒体崩溃以及几代人的流逝,这变得越来越重要。当然,软件仿真也在做同样的事情,很少有MiSTer开发人员站在哪一个是最好的方法上。人们普遍认为,两者都可以很容易地并排坐在一起,并且将在未来很长一段时间内发挥作用。
“从纯粹的精度角度来看,软件仿真器可以和FPGA内核一样好,”Peip说。“问题出在你想要实现的速度上。为了获得可玩的速度,软件仿真器开发人员通常不得不在某个时候牺牲准确性,除非被仿真的硬件非常旧。在FPGA中,我们可以随心所欲地并行做很多事情,所以这不是问题。
Tejada同意了。“软件仿真的优势在于能够拥有一台笔记本电脑或手机,上面有很多系统。其中一些可能有不准确之处,但它们仍然可以被享受,“他说。“然而,从保存的角度来看,FPGA可以兑现准确性的承诺,这对我来说很重要。这就是我喜欢创建内核的原因。我只是希望我有更多的时间在他们身上玩游戏......


IP属地:江苏1楼2022-07-21 17:14回复
    图一是山脊赛车啊。


    IP属地:河北来自Android客户端2楼2022-07-21 18:57
    回复
      JT大神让我们能畅玩cps系列基板游戏。


      IP属地:广东来自Android客户端3楼2022-07-21 19:28
      回复
        mister应该用i7 12700 rtx3070这样的平台来实现。这样能全速高性能发挥游戏机的表现,开发者的付出就放在那么弱的平台上可惜了。


        IP属地:北京来自Android客户端4楼2022-07-22 09:07
        收起回复
          前两天看了油管视频,out run 还有一个纵版射击还有可纳米的忍着神龟快完成了。


          IP属地:河北来自Android客户端5楼2022-07-30 15:08
          收起回复