超级任天堂的架构

Rodrigo Copetti 的实用分析

译者:Carryspider

经典版 - 最后更新于:2024年12月17日

可用语言:🇬🇧 - English, 🇪🇸 - Español, 🇧🇷 - Português (Brasil), 🇨🇳 - 简体字, 👋 - 添加翻译


关于此版本

“经典版”是 “现代版” 的替代版本。 它不需要 Javascript、最新的 CSS 或复杂的 HTML 支持就能工作。 它更适合电子书用户、过时的浏览器或使用无障碍工具的读者阅读。另外,电子书用户现在可以从这里查看 电子书版

两个版本内容完全相同, 只是交互式部件被简化为纯 HTML。 如果读者想尝试“完整版”,可以使用切换回原始文章的链接。

和其他文章一样,这篇文章可在 Github 上查看,这样读者可以报告错误或提出修改。这里还有一个 前置阅读材料 可用来帮助理解该系列文章。作者还接受 捐助翻译 以帮助提高现有文章和即将发表的文章的质量。


目录

  1. 相关影像
  2. 快速入门
  3. 中央处理器 (CPU)
    1. 6502的现代化
    2. 新的CPU
    3. 理光添加的硬件
      1. 高速内存访问
      2. 片段故障
    4. (大量的)更多内存
  4. 图形
    1. 设计
      1. 芯片组
      2. 显示模式
    2. 硬件组织
    3. 构造帧
      1. 图块
      2. 背景
      3. 模式
      4. 精灵
      5. 结果
    4. 那个特点
    5. 帧数下降的原因
    6. 方便的视频输出
  5. 音频
    1. 架构
    2. 音高控制
    3. 从 NES 开始的演变
    4. 立体声混淆
  6. 游戏
    1. 卡带配置
      1. 超越传统
  7. 反盗版/锁区
  8. 这就是全部了,伙计们。
  9. Copyright and permissions
  10. 来源 / 继续阅读
  11. 参与贡献

相关影像

型号

Image
SNES(欧版)或者叫SFC(日版)
1990年11月21日于日本,1992年4月11日于欧洲发售
Image
SNES
1991年8月13日于美国发售

主板

Image
主板
显示修订版本号“SNS-RGB-CPU-01”
早期的版本将声音子系统作为子板连接,后来的版本则将两个PPU统一起来
Image
带有重要部件标签的主板

图示

Image
主架构图
总线“A”与“B“是地址总线,8位数据总线沿着地址总线”B“的路径.

快速入门

任天堂似乎设法在不使用昂贵的现成组件的情况下带来了下一代图形和声音。 但有一个问题:新控制台在设计时也考虑到了可扩展性。 在 CPU 发展速度快于光速的世界中,任天堂最终依靠游戏卡带使其游戏机大放异彩。


中央处理器 (CPU)

超级任天堂选择的处理器很特别。 与捆绑成熟的68000的竞争产品不同,SNES 的芯片与其前身相比并没有根本性的突破。 概括地说,NES 采用的是经过改进的6502 CPU,它是70年代末和80年代初计算机中备受推崇的部件。 现在,为了给新的十年(90年代)铺平道路,任天堂采用了更保守(也更便宜)的解决方案:WDC 65C816,这是6502的16 位扩展。

6502的现代化

65C816 CPU源自Western Design Center,特别是来自Bill Mensch,他曾是6502开发团队(在 MOS)和6800开发团队(在摩托罗拉)的成员。 1978年,在离开MOS一年后,Mensch创立了Western Design Center (WDC),这是一家半导体公司,专门生产MOS 6502的克隆产品,并对其进行了极具吸引力的改进(如CMOS设计、额外的操作码、电路修复、新的寻址模式等)

Image
苹果Apple IIGS上的WDC 65C816芯片

有一天,苹果公司找到 WDC,要求其设计一种向后兼容的6502变体,可以处理更大量的数据。 于是,WDC 65C816 CPU 于1983年面世。 奇怪的是,苹果在开发使用这种新CPU的计算机过程中经历了许多挫折,直到三年后才发布了Apple IIGS。

Image
最终,Apple IIGS和超级任天堂成为65C816 CPU的仅有的主要采用者

与此同时,任天堂与理光(Ricoh)及其为NES提供的芯片组保持着良好的合作关系。 我没有找到确切的文件来概述理光与WDC之间的关系,但我可以确定的是,在某个时间点,WDC同意将其65C816设计授权给理光[1]。 因此,理光根据超级任天堂的新要求对其进行了定制,并将其命名为理光5A22,专门供应给任天堂。

新的CPU

如前所述,该控制台的主处理器是理光5A22,是65C816的超集。

Image
理光5A22芯片,任天堂称之为“S-CPU”

与具有Apple II软件的向后兼容能力的Apple IIGS不同,超级任天堂与NES游戏不兼容。 平心而论,从处理器的选择来看,SNES最初计划兼容NES游戏的可能性微乎其微,谁知道呢。

接下来,CPU采用了可变时钟速度,在进行寄存器操作时最高可达3.58 MHz,而在访问最慢的总线(即串行/手柄端口)时则低至1.79 MHz

现在,为了正确理解5A22的功能,我们必须首先了解65C816的功能:

看到这里,我不得不承认65C816感觉过于繁琐,而收益却很少。 与摩托罗拉68000等其他产品相比,我们不难得出结论,为什么Apple IIGS最终成为唯一采用65C816的个人电脑。 尽管如此,在这篇文章中,你将看到任天堂和理光如何将这种CPU的局限性转化为改造其游戏库的机会。

理光添加的硬件

65C816是一款通用CPU,于1983年推出,是其1975年祖先的后续产品,具有各种要求和限制。 然而,任天堂计划将其游戏机的寿命延长至整个90年代。 因此,理光必须加大力度去魔改(恕我直言)。

首先要解决的是算术上的限制,65C816没有包含任何乘法或除法的专用指令。 因此,理光增加了16位乘法除法单元,使CPU能够通过硬件(而不是软件)执行这些运算。

现在,您可能会问“这有什么关系”,答案将在我们讨论超级任天堂图形芯片的某些新功能时揭晓(在“图形”部分)。

高速内存访问

第二个挑战是提高数据带宽。 因此,我们增加了两个独占的DMA(直接内存访问),以便在CPU不干预的情况下移动数据(从而提高速度)。 为使这一设计发挥作用,内存区域使用两条不同的地址总线进行引用[6]

当设置DMA时, 数据来源 必须与 传输目标 在不同的总线上。

此外,这两种DMA并不完全相同,其功能也截然不同[7]

最后,系统提供8个通道用于设置DMA传输,因此可以同时调度多达8个独立的传输。

片段故障

该游戏机还具有一种名为“开放总线”的特殊“异常”:如果有指令试图从一个未映射/无效的地址读取数据,则会提供最后读取的值(CPU会将该值存储在一个名为内存数据寄存器MDR的寄存器中),并在不可预测的状态下继续执行。

相比之下,68000 使用向量表来处理异常,因此只要检测到故障,执行就会重定向。

(大量的)更多内存

NES 的内存只有2 KB,但却能显示大量内容,这实在令人惊叹。 超级任天堂现在拥有128 KB 的 SRAM(仍称为 “工作内存”或WRAM)。 这比上一代产品多出6400%的通用内存。

那么,开发人员能用它做什么呢? 可以做任何他们想做的事。 WRAM用于存储游戏的变量信息。 空间越大,可存储和处理的信息就越多(从而节省了卡带上的硬件) 不过,请记住,本文下面的章节将向你展示超级任天堂是一台相当复杂的机器(尽管它的CPU很 “简单”),我倾向于将这台游戏机称为“小型计算机/子系统的集合”。 现在,每个子系统都可能需要中央处理器提供数据。 因此,程序员可能会分配部分WRAM来处理这些信息,从而证明128 KB的必要性。


图形

说了这么多,让我告诉你们,这款游戏机的图形子系统是真正的工程杰作。 在CPU如此有限的情况下,我们可以想象,SNES绝不可能与采用“32位”摩托罗拉68000的竞争对手相提并论。 然而,任天堂和理光的工程师们设法找到了巧妙的技巧,利用CRT显示器的行为方式,从而在不需要昂贵的先进组件的情况下扩展了这款游戏机的功能

无论如何,在我们深入探讨之前,我强烈建议您先阅读NES的文章,因为它介绍了一些有用的概念,我们将在这里重新讨论这些概念。

设计

与同时代的其他游戏机一样,超级任天堂使用2D图块(8 x 8像素)绘制图形。 NES 最初是通过捆绑标志性的“图像处理单元”(PPU)来实现这一功能的,该单元与CRT屏幕同步传输图像。 超级任天堂紧随其后,但它现在采用了更复杂的技术,以获得更丰富的效果。

芯片组

超级任天堂内置两块不同的PPU芯片,构成图形子系统,合并后称为超级PPU或“S-PPU”。

Image
这两个PPU芯片

这两个PPU被设计用于实现不同的功能[8]

从编程角度看,这种分离是多余的,因为两个芯片实际上被视为一体。

显示模式

系统以~60 Hz(NTSC)[9]输出256x224像素的标准分辨率[9]。 欧洲PAL制式则以约~50 Hz的频率输出256×240像素(以符合 PAL 制式规格)。 尽管如此,大多数游戏并不使用额外的像素,而是显示“letterbox”(黑线)。

现在,棘手的问题来了,传统电视的宽高比是 4:3。 但如果你算一下,会发现超级任天堂的输出分辨率长宽比为8:7。 因此,将图像传输到电视上后,它看起来会被水平拉伸,就好像是一个292x224像素的画面(NTSC制式) [10]。 换一种说法,可以说超级任天堂上的像素长宽比是8:7,而不是 “完美的正方形”。

Image
分辨率为256x224像素的渲染帧。 这就是游戏机发送到电视上的图像。
Image
从电视机上看到的拉伸画面(分辨率明显为292x224像素)
星之卡比3(Kirby’s Dream Land 3) (1997)

有些游戏(如塞尔达传说:众神的三角力量(The Legend of Zelda: A Link to the Past))会考虑到这一因素,因此在设计时会明确将形状压扁,这样经过电视拉伸后看起来就正确了。 但这只是一个特例,因为大多数游戏都没有采取额外的措施来考虑这一因素。

硬件组织

Image
S-PPU的内存架构.

由于成本和性能原因,图形数据分布在三个内存区域:

构造帧

现在让我们看看如何在游戏机上渲染画面,然后在电视上显示。 我们将以超级马里奥世界为例进行演示。

图块

Image
一些在 VRAM 中找到的16x16 图块.

与前代产品一样,S-PPU使用图块来构建复杂的图形。 不过,与最初的PPU相比,S-PPU有了重大改进:

背景

Image
背景图层 1 (BG1)。
Image
背景图层 2 (BG2)。
Image
背景图层3 (BG3)。
VRAM中的背景映射
Image
渲染背景图层 1 (BG1)。
Image
渲染背景图层 2 (BG2)。
Image
渲染背景图层 3 (BG3)。
Image
渲染背景图层的组合。
应用选区和透明度后渲染的背景图层

超级任天堂可以生成多达四个不同的背景层。 通过使用8x8或16x16图块,区块由32x32像素(2x2 图块)构成。 尽管如此,每个背景图层的大小最多可达到1024x1024像素(32x32的图块)。 VRAM 中配置这些图层的区域称为 图块映射区(Tilemap) 并且这一部分的结构是表格(内存中的连续数值)。

Tilemap 中的每个条目都包含下列属性:

一如既往,这些平面是可滚动的,但可用功能的数量(颜色、层数、独立滚动区域和选区大小)将取决于S-PPU上激活的背景模式,这就引出了下一部分…

模式

S-PPU提供了许多背景操作,但这些操作不能任意选择。 相反,有八种背景模式可供选择,每种模式提供不同的功能[11]

如您所见,程序员现在可以选择所选区域的颜色、层数、效果或分辨率的优先级。

精灵

Image
渲染的Sprite图层.

内存中一个名为对象属性内存(OAM)的区域存储了一个表,其中最多可引用128个具有这些属性的精灵[12]

S-PPU每扫描线最多可绘制32个精灵,如果溢出,S-PPU只会丢弃优先级最低的精灵。

结果

Image
嗒哒——!

S-PPU在绘制每条扫描线时,首先处理每一层的相应部分,然后将它们混合在一起。

NES游戏的主要限制之一是只能在垂直消隐(V-Blank)期间更新图形。 显像管的光束从起点返回的那一刻提供了一个合理的时间帧,可以在不破坏图像的情况下重新调整一些图块。

现在,得益于SNES的新功能,这一限制有了不同的意义。

因为新的DMA/HDMA单元现在可以让程序员在不等待垂直扫描(V-Scan)[13]的情况下执行内存传输,游戏现在可以更新图块、颜色和寄存器,而无需等待整个画面绘制完成。 事实上,我们可以做得更多: 由于游戏现在可以在帧中改变S-PPU设置,这就意味着可以在同一帧的不同阶段激活不同的背景模式,为新颖的游戏设计打开了大门!

那个特点

说实话,我还没有提到这个控制台最重要的特性…

Image
已渲染的背景层
Image
已分配的背景图
Image
屏幕上显示的已渲染的一帧
扫描线的第一部分使用另一种模式来模拟距离,模式7则从第二部分开始(这要归功于HDMA)。
零式赛车(F-Zero)(1990).

介绍一下模式7,这是另一种背景模式,但这次的工作方式完全不同。 虽然它只能渲染一个8bpp的背景层,但却能在该平面上应用以下仿射变换[14]

S-PPU由旋转矩阵控制,以改变该模式的参数。 这里就不多讲线性代数了,但根据所需的效果,CPU必须执行一些三角函数(正弦和余弦),以相应地填充该表的条目。 对于65C816来说,即使使用定点精度,这也是非常昂贵的。 因此,理光在5A22中增加了乘法和除法寄存器,以卸载一些周期。

顺便提一下,请注意变换列表中没有提到透视,而这正是您在示例游戏(F-Zero)中所看到的。 这是通过在每次调用HDMA时改变旋转矩阵来实现的,在此过程中产生了伪三维效果。 这应该能让你对S-PPU的实用性有所了解!

最后,由于需要进行大量计算,内存映射发生了变化,以优化两个PPU的流水线,第一个PPU处理图块映射(图块被引用处),而另一个PPU则获取图块集(图块被存储处)。

帧数下降的原因

还有一个话题,你有没有想过游戏卡顿的原因? 当调用垂直消隐中断允许图形更新时,有时游戏仍在执行一些繁重的代码,并跳过了垂直消隐窗口,直到下一次调用垂直消隐时图形才能更新,由于帧没有更新,这就表现为帧速率下降。

这种情况也可能反过来发生,垂直消隐期间的大量处理将使PPU无法输出视频信号(因为总线被阻塞)。 因此,在扫描过程中会出现黑线,不过由于帧每秒更新50或60次,这种情况几乎不会引起注意。

方便的视频输出

如果游戏机不能通过双方都能理解的媒介将图像传送到电视上,那么上述所有进步都将是徒劳的。 随着超级任天堂的推出,该公司首次推出了一种名为“多路输出”通用但专有的连接方式,它可以同时传输多种类型的信号,包括复合信号S-VideoRGB[15]

任天堂随游戏机附赠了一条“多路输出转复合接口”电缆,因为这在当时几乎是电视机的通用规格。 但在欧洲,SCART端口也非常流行,因为许多机顶盒和录像机都依赖它。 SCART端口的一大优点是可以传输多种类型的信号,这使得AV设备可以使用最理想的信号类型,而不会遇到兼容性问题。 据我所知,当时只有法国消费者获得了官方提供的SCART电缆,该电缆利用了超级任天堂的RGB针脚[16]

尽管如此,任天堂还是修改了其PAL制式游戏机的引脚布局,以符合SCART协议,并将 “复合同步”引脚换成了12V引脚(告诉电视机设置4:3宽高比)。 因此,尽管多路输出是“通用”的,但由此产生的RGB电缆(如果有的话)却是因地区而异的。

我认为,多路输出的真正优势是在当代开始显现的,因为它允许用户在修改游戏机内部结构的情况下,向最先进的电视机输出RGB信号。 不过,与复合视频和S-Video不同,RGB需要额外的“同步”信号。 为此,可以将电缆连接起来,从复合端口或S-Video捕捉同步信号;或者使用称为 “复合同”的专用同步线,以获得最佳效果。 但如上段所述,只有NTSC制式游戏机才使用后者。


音频

与图形处理能力一样,这款游戏机的音频部分也经历了重大革新。 我甚至可以说,它提供了同代产品中最先进的合成技术。

架构

有些公司与雅马哈合作,有些公司则自行设计解决方案。 任天堂与索尼(索尼是一家电子产品集团,也是_随身听(Walkman)_的发明者)合作,由索尼为其提供先进的合成器。 于是,索尼为他们提供了两个处理器:一个是可以对采样进行排序和混合的DSP,另一个是驱动DSP的CPU。

因此,该游戏机的音频子系统由以下部分组成:

该程序块与主 CPU 并行运行。 当游戏机启动时,SPC700 会启动一个64字节的内部ROM,将其设置为接收来自主CPU的命令[18]。 之后,游戏机将处于空闲状态。

旋律使用的通道
出于演示目的,对鼓进行了区分
所有音频通道。
星际火狐(StarFox)(1993)

要让 S-SMP 开始执行有用的工作,它需要加载一种称为声音驱动程序的程序。 后者指示芯片如何处理主CPU发送到PSRAM的原始音频数据,以及如何命令S-DSP。

正如您所看到的,与上一代产品相比,声音子系统是一个巨大的进步,但其编程难度也很大。 任天堂提供的文档中包含了许多令人费解的解释,而且完全跳过了重要的功能,因此程序员必须自己进行研究。

因此,市场上出现了大量不同的音效驱动程序[19],其中一些最终发现了令人印象深刻的功能。

音高控制

音高弯曲可以使用相同的采样产生不同的音符。 S-SMP 包含一个有用的弯音器,可以平滑地改变音高。 请看这个从地球冒险2(Mother 2/Earthbound)中提取的通道,两个例子都来自原声带,不过第一个例子的音高控制被禁用了。

无音高弯曲
启用音高弯曲

从 NES 开始的演变

为了展示从NES到SNES声音的演变,这里有两段配乐,一段来自NES游戏,另一段来自其SNES续集。 两款游戏都使用了相同的乐谱:

地球冒险(Mother) (1989).
地球冒险2(Mother 2/Earthbound)(1994)

旋律使用的通道
出于演示目的,对鼓进行了区分
所有音频通道。
星之卡比3(Kirby’s Dream Land 3) (1997)

这是一首乐器更为丰富的乐曲,充分发挥了音高弯曲、回声和包络的优势。

这些技术的结合使得音乐总共只需要五个通道,而另外三个通道则留给了音效。

立体声混淆

DSP的音量控制是以有符号的8位数值[20]为单位组织的,这意味着音量可以设置为负值但等等,如果“0”表示静音,那么“-1”这样的数字会有什么作用呢? 嗯,它会对信号进行反相

这特别适用于营造特殊的环绕效果,通过设置立体声通道输出失相立体声(一个通道输出正常信号,另一个通道输出相同信号但反相)来实现。

不幸的是,滥用这一功能会导致非常不愉快的结果(例如,感觉音乐是从你的脑海中传出的),因此你会发现大多数SNES模拟器都完全跳过了这一设置。

此外,失相立体声在单声道设备上会被抵消,因此这些游戏必须包含一个立体声/单声道选择器,以避免自己的配乐失真。


游戏

说白了,主程序是用普通65816汇编语言编写的,音乐驱动程序是用SPC700汇编语言编写的。 恐怕你无法在21世纪的设备上找到这些商品。

不过,任天堂、Intelligent Systems和理光分发了一些工具,使程序员过的更加轻松,这些工具包括 [21]

奇怪的是,Argonaut Software、Accolade、SN Systems 等多家游戏工作室也开发了自己的内部设备,提供了比官方产品更多的功能(如内存编辑器、软盘读取器、作为 ISA 子板的开发套件等)[22]

卡带配置

与NES相对简单的映射模式相比,在访问卡带时,其机制变得更加扑朔迷离。 尽管如此,我还是觉得很有意思,尤其是在了解如何扩展方面。

65C816使用24位地址总线,因此最多可访问16 MB的数据。 不过,由于该主机的设计方式,部分地址空间被内存映射组件占用。 此外,65C816只有16根地址线,然后与一个内部寄存器组合成24位地址。 这就好比安装了一个内部映射器,需要通过内存地址组切换来访问地址总线边界以外的额外数据。 如果你阅读过同世代的其他游戏机的文章,你会发现这种方法有些熟悉。

Image
采用不同配置设计的卡带电路板示例[23]
从上到下依次为:LoROM(带电池供电SRAM的双ROM)、LoROM(带电池供电SRAM的单ROM)和 LoROM(单ROM)

尽管如此,在设计盒式磁带时,ROM和CPU之间的地址引脚有多种电气连接方式。 每种方式都能以不同的方式利用内存地址库切换。 有两种基本模式可以访问多达4 MB的ROM64 KB的SRAM[24],它们是这样工作的:

在这两种情况下,ROM空间的很大一部分被镜像到CPU地址空间的剩余区域,但有趣的是:一半空间的读取频率约为~2.68 MHz,而另一半空间的读取频率可达3.58 MHz。 这只有在ROM芯片支持更高速度且CPU的FastROM标志被启用时才会发生[25]

我还没有提到的一点是,捆绑SRAM的卡带还需要内置一个MAD-1(或类似的)芯片,用于执行地址解码。 这对于正确锁存ROM和SRAM芯片之间的选择引脚尤为重要[26]

超越传统

现在,如果程序员需要更多空间,LoROM和HiROM的衍生型号就可以派上用场了。 例如,通常被称为ExHiROMExLoROM的两种变体通过减少镜像区域来扩展ROM的寻址空间。 两者都能访问~7.9 MB的ROM

Image
星际火狐(1993)使用Super FX GSU芯片渲染3D表面(S-PPU只能看到由_不规则_图块组成的背景层)。

另外,最重要的是,LoROM和HiROM也可用于在卡带中安装增强芯片。 这些额外的处理器可以扩展游戏机的功能。 下面举几个新配置的例子:

很难忽视这项工程设计对90年代游戏的影响,许多游戏在不需要扩展模块的情况下就能超越这款游戏机的预期。 可以说,这让任天堂推出这款游戏机后续机型的计划变得复杂起来(这也解释了为什么星际火狐2等先进的游戏被取消)。


反盗版/锁区

随着超级任天堂的问世,任天堂再次成为游戏发行的唯一权威。 因此,为了执行公司的规定,工程师们设计了三个不同的层次来保护卡带,防止第三方分销(进而规避任天堂的版税)。

首先,不同地区的卡带外部形状不同,因此无法安装在不同地区的游戏机上。 尽管如此,任何人都可以通过使用第三方转接器轻松解决这个问题。

其次,这款游戏机和NES一样,仍然采用了10NES保护系统来锁定非授权经销商。 尽管如此,CIC芯片最终还是被克隆了。

作为最后一层(也是为防止盗版而专门制作的),游戏还包括一连串的盗版检查,如:

  1. 比较SRAM的大小(盗版游戏通常包含较大的SRAM块,以适应任何类型的游戏)。
  2. 对代码进行一系列校验,以检查之前的比较是否被删除。 这些校验分散在游戏的不同阶段,因此很难找到。

这可以通过手动删除这些例程来消除,但要找到所有这些例程自然需要大量时间。 毕竟,它们散落在游戏中只会让玩家不爽(并最终让他们购买正版)。 实话实说,你会发现互联网上的大多数ROM都已删除了所有盗版检查。


这就是全部了,伙计们。

Image
我改装的SNES,装有美版卡带。
那款游戏只在美国发行。 幸运的是,一个小伙子在格拉斯哥卖这款游戏!

参与贡献

这篇文章是 游戏主机架构 系列的一部分。如果您觉得我的文章很有趣,请考虑捐赠。您的资助将用于购买工具和资源,以帮助我提高现有文章和即将发表的文章的质量。

Donate with PayPal
Become a Patreon

你也可以购买英语版本的电子书。我会将获得的利润视为捐赠。

Image

在这里追踪本文所需工具和最新购置情况:

Interesting hardware to get (ordered by priority)

Acquired tools used

或者,您可以通过 建议更改添加翻译 来提供帮助。


Copyright and permissions

This work is licensed under a Creative Commons Attribution 4.0 International License. You may use it for your work at no cost, even for commercial purposes. But you have to respect the license and reference the article properly. Please take a look at the following guidelines and permissions:

Article information and referencing

For any referencing style, you can use the following information:

For instance, to use with BibTeX:

@misc{copetti-snes,
    url = {https://classic.copetti.org/writings/consoles/super-nintendo/},
    title = {Super Nintendo Architecture - A Practical Analysis},
    author = {Rodrigo Copetti},
    year = {2019}
}

or a IEEE style citation:

[1]R. Copetti, "Super Nintendo Architecture - A Practical Analysis", Copetti.org, 2019. [Online]. Available: https://classic.copetti.org/writings/consoles/super-nintendo/. [Accessed: day- month- year].

Special use in multimedia (Youtube, Twitch, etc)

I only ask that you at least state the author’s name, the title of the article and the URL of the article, using any style of choice.

You don’t have to include all the information in the same place if it’s not feasible. For instance, if you use the article’s imagery in a Youtube video, you may state either the author’s name or URL of the article at the bottom of the image, and then include the complete reference in the video description. In other words, for any resource used from this website, let your viewers know where it originates from.

This is a very nice example because the channel shows this website directly and their viewers know where to find it. In fact, I was so impressed with their content and commentary that I gave them an interview 🙂.

Appreciated additions

If this article has significantly contributed to your work, I would appreciate it if you could dedicate an acknowledgement section, just like I do with the people and communities that helped me.

This is of course optional and beyond the requirements of the CC license, but I think it’s a nice detail that makes us, the random authors on the net, feel part of something bigger.

Third-party publishing

If you are interested in publishing this article on a third-party website, please get in touch.

If you have translated an article and wish to publish it on a third-party website, I tend to be open about it, but please contact me first.


来源 / 继续阅读

音频

CPU

游戏

图形

影像