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

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

3天内不再提示

童年修复系列-SNES芯片组介绍及FPGA实现

OpenFPGA 来源:OpenFPGA 作者: 碎碎思 2021-10-12 14:43 次阅读

超级任天堂1990年11月21日在日本开始发售,北美于1991年8月13日发售,欧洲于1992年4月11日发售。

超级任天堂,简称超任,是任天堂公司开发的家用游戏机。英文名称Super Famicom,简写SFC;在欧美洲销售的产品名为Super Nintendo Entertainment System,简写SNES。超级任天堂是任天堂红白机的后继机种。由于芯片组的复杂,中国鲜有“复制品”出现。

所以今天就来聊一聊SNES的芯片组及其特殊性,同时带来FPGA实现SNES的开源方案。

SNES和现今的PC芯片组很相似-CPU+显卡+声卡组成,同时SNES为了处理复杂的运算增加了一颗DSP芯片,下面就按照组成一个一个介绍。

下图是整机的框图:

c547de7e-2b09-11ec-82a8-dac502259ad0.png

整机的总线互联如下:

c5aa3bdc-2b09-11ec-82a8-dac502259ad0.png

CPU总线使用的是从6502继承过来的类ISA总线。

CPU

SNES 的 CPU (中央处理单元)是基于 65c816 的处理器-5A22《一块带给无数人年少欢乐的CPU,别说你没用过它》。虽然它的时钟速度大约为 21 MHz,但它的有效速度要低得多:3.58 MHz 用于快速访问(即 2100-00-4000-00 到 $3F 中的硬件寄存器 )。这种变速模式来源于6502有一个叫做“ZERO-PAGE”的寻址模式,但是进行了进一步扩展。

它是一个带有 24 位总线的 16 位处理器(16 位数据指针和 8 位组指针)。支持16MB的寻址空间。它有一个计算器和两个寄存器,可以在8位或16位模式之间切换。

然而,它具有许多寻址模式。它使用可变宽度指令。单个指令的宽度可以根据某些寄存器的长度而变化。

PPU

SNES有两个特制的图像处理器,主要运行于256×224的分辨率,最高支持512x448的分辨率,最大发色数32768色,最大同屏幕显示256色,最大活动块数为128个,并支持缩放、回旋、马赛克、半透明、窗口、光栅等特效。

声优芯片

辅助CPU采用一颗SPC700(索尼推出),是一个8位的CPU核心,很接近6502,但有一些不同的寻址模式和复数/分割指令,与一个定制的数字声音信号处理器共同集成在一个模块中。

SPC700和65c816通过一个4路双向通道(8位I/O端口)通讯。SPC700有自己独立的64K内存,可以用来存储声音采样或者从65c816下载的程序。CPU有一个内建的64K ROM开机码,用来通过65c816从游戏ROM里加载更多的复杂程序或者采样数据。这个ROM可以被关闭,以存储开机码的64K RAM来代替它的工作。

声音数字信号处理器(Sound DSP)只能播放压缩的声音采样。这种使用一固定比率的压缩算法,可以将16个16位声音采样压缩成8字节加一字节标题的形式。一个采样的最小单位是一个区块,区块的标题字节包含一个移位和一个过滤值(算法解压信息),再加上一个最后区块标记和一个循环标记。循环标记仅仅在最后区块标记存在时才使用。

在同一时间内,最多允许有8个声音通道同时播放声音采样,每个声音通道都有单独的左右声道音量和频率的调节。每个通道都可以定义一个硬件音量调节,并各自设置其回声效果,不过复合的回声效果必须受制于一个8路的FIR声音分流器。

一个通道的声音输出可以用来调整在数字序列上的下一个声音通道的频率。DSP也有一个白噪音源,可以播放一个替代采样数据的声音通道。所有的8个音源连同回声数据最后都混合到一个双通道的主音量控制下。DSP有3个间隔定事器,头两个运行在8KHz下,最后一个是64KHz。游戏通常只使用三个中的一个来输出一个恒定的音乐回放频率。

顺便一提SNES的声音处理芯片SPC700是PS之父久多良木负责设计的,所以说索尼大法好可不是白叫的。

声优芯片和整机总线如下图所示:

c6e89034-2b09-11ec-82a8-dac502259ad0.png

扩展芯片

数字信号处理器

SNES 的 S-DSP (数字信号处理器)用于向扬声器输出数据。产生的声音以 32 KHz 运行。S-DSP 使用比特率降低将所需的大小减少到原始大小的 9/16。S-DSP 是「自带鬼畜」,你输入一个PCM格式的音源进去,比如把FA乐器输入进去,然后往sound chip的寄存器里写入你要的包络,音调之类的,sound chip上的协处理器就会帮你处理输出,其实就和做音乐用的合成器播放软音源差不多。

DSP-1

DSP-1是一种主要用于数学和伪 3D 投影的芯片。这通常使用model 7。这是其中最常用的芯片。它也适用于 2D 旋转等。

SA-1

SA-1是 CPU 的更快版本,但在访问方面存在一些差异。它带有“I-RAM”和“BW-RAM”。它通常以大约 11 MHz 的速度运行,当访问与 CPU 相同的东西时,它的速度为 5 MHz。

GSU

GSU是著名的 SuperFX 芯片的技术名称。GSU 可用于绘制颜色。它在很多方面都比 SNES 的 CPU 更强大。它是一个伪RISC。它可用于绘制许多事物,例如精灵和对象的旋转或制作伪 3D 效果。

CX4是 Capcom 使用的芯片,它在三角和图形方面非常强大。它可以绘制线条、波浪和 3D 线框,旋转精灵并进行三角计算等。应用到的游戏包括:洛克人X2,洛克人X3 等卡普空街机移植作品。

SDD-1

数据解压芯片,解压使用 ASIC 无算压缩算法压制的数据,它活跃在 SFC 主 CPU 和 ROM之间,负责透明实时数据解压工作,针对一些资源太大的游戏,为了节省卡带空间成本而引入了该芯片,使用游戏包括:星之海洋,街霸 Alpha 2 等。

SNES FPGA实现

硬件

还是GameGirl硬件

开源地址:

https://github.com/suisuisi/gamegirl/tree/master/Hardware

编辑:jq

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

    关注

    1602

    文章

    21302

    浏览量

    593109
  • 芯片
    +关注

    关注

    446

    文章

    47746

    浏览量

    409043
  • asic
    +关注

    关注

    34

    文章

    1150

    浏览量

    119255
  • 任天堂
    +关注

    关注

    0

    文章

    209

    浏览量

    18027

原文标题:SNES FPGA实现

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

收藏 人收藏

    评论

    相关推荐

    FPGA芯片你了解多少?

    的缺点。 FPGA和CPU、GPU、ASIC的芯片等核心区别是其底层逻辑运算单元的连线及逻辑布局未固化,用户可通过 EDA 软件对逻辑单元和开关阵列编程,进行功能配置,从而去实现特定功能的集成电路
    发表于 04-17 11:13

    fpga芯片的简单介绍

    FPGA(Field Programmable Gate Array,现场可编程门阵列)芯片是一种可以通过用户在现场进行编程来定制其逻辑功能的集成电路。FPGA芯片因其高度的灵活性和可
    的头像 发表于 03-26 16:01 238次阅读

    fpga芯片架构介绍

    FPGA(现场可编程门阵列)芯片架构是一种高度灵活和可编程的集成电路架构,它以其独特的结构和功能,在现代电子系统中扮演着至关重要的角色。FPGA芯片架构的核心在于其可编程性和高度的并行
    的头像 发表于 03-15 14:56 212次阅读

    fpga芯片命名规则 fpga芯片的管脚如何分配

    fpga芯片命名规则 FPGA芯片的命名规则因制造商和系列产品而异,但通常遵循一定的规律和格式。以下是一般情况下
    的头像 发表于 03-14 16:54 407次阅读

    Intel fpga芯片系列有哪些

    Intel FPGA芯片系列主要包括以下几种。
    的头像 发表于 03-14 16:28 230次阅读

    Xilinx fpga芯片系列有哪些

    Xilinx FPGA芯片拥有多个系列和型号,以满足不同应用领域的需求。以下是一些主要的Xilinx FPGA芯片
    的头像 发表于 03-14 16:24 740次阅读

    fpga芯片系列介绍

    FPGA芯片系列众多,不同厂商会推出各具特色的产品系列以满足不同的应用需求。以下是一些主要的FPGA芯片
    的头像 发表于 03-14 16:15 292次阅读

    国产FPGA介绍-紫光同创

    高性能FPGA芯片Titan系列,采用40nm工艺,可编程逻辑资源最高达18万个,已广泛应用于通信、信息安全等领域。 Titan系列高端FPGA
    发表于 01-24 10:45

    简述Xilinx 7系列FPGA芯片相关知识

    Xilinx 7系列 芯片 应用非常广泛,具有成本低、性能强悍、成熟稳定的特点,目前Xilinx( AMD )已延长该系列芯片的生命周期至少到2035年。 本文主要
    的头像 发表于 11-28 10:20 476次阅读
    简述Xilinx 7<b class='flag-5'>系列</b><b class='flag-5'>FPGA</b><b class='flag-5'>芯片</b>相关知识

    英特尔® 3010 芯片组特点介绍

    电子发烧友网站提供《英特尔® 3010 芯片组特点介绍.pdf》资料免费下载
    发表于 11-14 14:42 0次下载
    英特尔® 3010 <b class='flag-5'>芯片组</b>特点<b class='flag-5'>介绍</b>

    ASR6505基于STM 8位MCU的无线通信芯片组

    ASR6505是一种通用的LoRa无线通信芯片组,集成了LoRa无线电收发器、LoRa调制解调器和一个8位CISC MCUASR6505是基于STM 8位MCU与SX1262 的SiP芯片,相对于
    发表于 08-30 15:34

    兆芯CPU+GPU+芯片组技术路线

    ”CPU“ 和“芯片组”分立模式,系统瓶颈在两者之间的主板总线, SOC变片外为片内、解决了这- -瓶颈;
    发表于 07-15 15:23 558次阅读
    兆芯CPU+GPU+<b class='flag-5'>芯片组</b>技术路线

    RDDRONE-BMS772电池平衡,芯片组是内置FET还是只是驱动器?

    最近在研究一个无人机电池管理系统,RDDRONE-BMS772。文档中关于电池平衡的内容不清楚——芯片组是内置 FET 还是只是驱动器?
    发表于 06-01 07:23

    基于STM 8位MCU的LoRa无线通信芯片组

    ASR6505是基于STM 8位MCU的无线通信芯片组 ASR6505是一种通用的LoRa无线通信芯片组,集成了LoRa无线电收发器、LoRa调制解调器和一个8位CISC MCU ASR6505
    发表于 05-31 10:04

    Intel和Xilinx的FPGA系列芯片命名规则

    Altera FPGA产品系列也备受欢迎,主要的FPGA系列产品有:Cyclone、MAXII、Arria、Stratix、Agilex,其中应用广泛的消费级
    发表于 05-26 14:44 796次阅读
    Intel和Xilinx的<b class='flag-5'>FPGA</b><b class='flag-5'>系列</b><b class='flag-5'>芯片</b>命名规则