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
    +关注

    关注

    1664

    文章

    22502

    浏览量

    639083
  • 芯片
    +关注

    关注

    463

    文章

    54412

    浏览量

    469177
  • asic
    +关注

    关注

    34

    文章

    1277

    浏览量

    124938
  • 任天堂
    +关注

    关注

    0

    文章

    227

    浏览量

    19874

原文标题:SNES FPGA实现

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RF600E与RF600D:编码器与解码器芯片组的卓越之选

    易于使用的解决方案。下面,让我们深入了解这两款芯片组的特点、功能和应用。 文件下载: RF600D.pdf 芯片组概述 RF600E和RF600D是一对易于使用的编码器和解码器IC,旨在从任何无线电/红外发射器 - 接收器
    的头像 发表于 04-14 12:40 176次阅读

    ADE9039 能量计量芯片组:助力多相电表精准计量

    ADE9039 能量计量芯片组:助力多相电表精准计量 在电子工程师的日常工作中,多相电表的设计是一个重要的领域。今天我们要介绍一款优秀的能量计量芯片组——ADE9039,它在多相电表设计中有着出色
    的头像 发表于 04-10 10:00 94次阅读

    三相分流电表隔离式电能计量芯片组 ADE7978/ADE7933/ADE7932详解

    、可靠的解决方案。本文将深入剖析这一芯片组的特性、工作原理、应用场景以及相关技术细节,希望能为电子工程师们在设计三相电能计量系统时提供有价值的参考。 文件下载: ADE7933ARIZ.pdf 产品特性与优势 高精度计量 该芯片组支持分流电流传感器用于三相电能计量,能够在
    的头像 发表于 03-30 16:05 146次阅读

    解读DS90C363与DS90CF364:高带宽FPD链路芯片组的卓越之选

    解读DS90C363与DS90CF364:高带宽FPD链路芯片组的卓越之选 在电子工程师的日常设计工作中,选择合适的芯片组对于实现高效、稳定的系统至关重要。今天我们要深入探讨的是德州仪器(TI
    的头像 发表于 01-04 14:50 418次阅读

    10 - MHz至66 - MHz,10:1 LVDS串行器/解串器芯片组的设计与应用

    10 - MHz至66 - MHz,10:1 LVDS串行器/解串器芯片组的设计与应用 在当今的电子系统设计中,高速数据传输和处理至关重要。TI公司的SN65LV1023A串行器
    的头像 发表于 12-29 15:50 413次阅读

    汽车电子利器:DS90UB901Q/DS902Q芯片组深度解析

    汽车电子利器:DS90UB901Q/DS90UB902Q芯片组深度解析 在汽车电子领域,摄像头系统与主机控制器或电子控制单元(ECU)之间的数据传输至关重要。德州仪器(TI)的DS90UB901Q
    的头像 发表于 12-28 15:50 841次阅读

    汽车级FPD-Link II串行器和解串器芯片组DS90URxxx-Q1技术解析

    汽车级FPD-Link II串行器和解串器芯片组DS90URxxx-Q1技术解析 作为电子工程师,在设计工作中,我们常常会遇到需要高效传输数据的场景,尤其是在汽车电子领域。今天就来和大家深入探讨一下
    的头像 发表于 12-27 14:10 763次阅读

    深入解析DS90URxxx - Q1:高效FPD - Link II串行解串器芯片组

    深入解析DS90URxxx - Q1:高效FPD - Link II串行解串器芯片组 在电子设计领域,数据传输的高效性和稳定性一直是工程师们关注的焦点。DS90URxxx - Q1 5MHz 至
    的头像 发表于 12-26 09:25 631次阅读

    探索DS90UB901Q/DS902Q:汽车应用的理想FPD - Link III芯片组

    探索DS90UB901Q/DS90UB902Q:汽车应用的理想FPD - Link III芯片组 在汽车电子领域,数据传输的高效性、稳定性和可靠性至关重要。DS90UB901Q/DS902Q作为
    的头像 发表于 12-25 17:10 748次阅读

    解析DS92LV042x:高性能Channel Link II serializer和deserializer芯片组

    解析DS92LV042x:高性能Channel Link II serializer和deserializer芯片组 在电子设计领域,数据传输的高效性、稳定性和抗干扰能力一直是工程师们关注的重点
    的头像 发表于 12-24 15:50 406次阅读

    探索DS92LX2121/DS92LX2122:高性能通道链路III芯片组的深度解析

    探索DS92LX2121/DS92LX2122:高性能通道链路III芯片组的深度解析 在当今的电子设计领域,高速数据传输和可靠的通信接口是众多应用的核心需求。德州仪器(TI)的DS92LX2121
    的头像 发表于 12-24 13:55 616次阅读

    探索DS90UR903Q/DS90UR904Q:FPD - Link II芯片组的卓越性能与应用

    探索DS90UR903Q/DS90UR904Q:FPD - Link II芯片组的卓越性能与应用 在电子工程师的日常工作中,选择合适的芯片组对于实现高效、稳定的系统设计至关重要。今天,我们将深入探讨
    的头像 发表于 12-24 10:10 446次阅读

    汽车显示屏利器:DLP5534-Q1芯片组深度解析

    汽车显示屏利器:DLP5534-Q1芯片组深度解析 在汽车电子领域,显示屏技术的发展日新月异。DLP5534-Q1汽车芯片组作为一款专为高性能透明窗口显示投影仪设计的产品,正逐渐成为行业关注的焦点
    的头像 发表于 12-11 14:10 723次阅读

    如何从 Microsoft Visual C++ 应用程序 (CyAPI.h) 访问 CYUSB3014 芯片组的 i2c 接口?

    1. 如何从 Microsoft Visual C++ 应用程序 (CyAPI.h) 访问 CYUSB3014 芯片组的 i2c 接口? 我在定制相机中使用 CYUSB3014。 当我开发我的相机
    发表于 05-19 07:21

    使用CY3014USB芯片组制作了一台相机,视频显示延迟怎么解决?

    我使用 CY3014USB 芯片组制作了一台相机,视频从相机流向计算机,显示屏上显示出精美的图像。 我注意到摄像机前发生的事情和信息在屏幕上更新/流动之间存在延迟。 延迟时间几乎持续 1 秒。 这
    发表于 05-06 09:11