超級任天堂
维基百科,自由的百科全书
超級任天堂,簡稱超任,是日本任天堂公司開發的一種家用遊戲機。英文名称Super Family Computer或Super Famicom,简写为SFC,在欧洲和美洲地区销售的产品被命名为Super Nintendo Entertainment System,简写为SNES。 超级任天堂是任天堂的FC的后继机种,于1990年11月21日开始发售。
目录 |
[编辑] 规格
[编辑] 主机
- 一枚主频为3.58MHz的65c816 CPU。
- 一枚内建数字声音信号处理器、主频为2.48MHz的的SPC700 CPU核心。
- 两个特制的图象处理器,可以支持最高512x478的分辨率,最大发色数32768色,最大同屏幕显示256色,最大活动块数为128个,并支持缩放,回旋、马赛克、半透明、窗口、光栅等特效。
- 128KB工作内存,, 64KB声音处理器内存和64KB显存。
[编辑] 卡带
- 超过6MB的ROM,包括程序代码、图象和声音数据。
- 用来保存记录的静态RAM(S-RAM),使用电池维持。
- 10.5/21MHz RISC CPU (Super FX)用来在游戏中实现3D或其他特效。
- 一个数学核心处理器(DSP1) 用于处理一些包含大量物理计算的游戏(Pilot Wings),或者作为保护装置(Mario Kart)。
- 其他用来提高游戏运行速度、增强图象效果或者对ROM中数据进行保护的定制芯片。
[编辑] 附加配備
- 五人游戏接口,如果游戏支持,最多可以让五个人同时娱乐。
- 二键的鼠标,最初用来支持一个绘图游戏。
- 步枪外型的光線槍,可以直指屏幕射击,大约有10个游戏支持。
- GameBoy转接卡,可以让用户在SFC上玩彩色的GameBoy游戏。
[编辑] 硬體細節
[编辑] 主cpu
主cpu採用65c816,是一枚8/16位的CPU,是基于6502改进而来的,它有一个可以如同6502一样运行的-{A|zh-cn:仿真;zh-tw:模擬}-模式。毫无疑问,任天堂曾经期望让SFC-{A|zh-cn:兼容;zh-tw:相容}-FC的游戏,但是失败了。
这枚CPU有-{A|zh-cn:24位;zh-tw:24位元}-的-{A|zh-cn:地址总线;zh-tw:位址匯流排}-和-{A|zh-cn:8位;zh-tw:8位元}-的-{A|zh-cn:数据总线;zh-tw:資料匯流排}-,支持16MB的-{A|zh-cn:寻址;zh-tw:定址}-空间。它有一个计算器和两个-{A|zh-cn:寄存器;zh-tw:暫存器}-,可以在8位或-{A|zh-cn:16位;zh-tw:16位元}-模式之间切换。
地址空间被分割成256块,每块大小为64KB,另外也有一种寻址模式可以把整个地址空间视为一个连续的区块。0号块是栈专用的,一些寻址模式、中断和复位向量都存放在这里,栈的指针宽度为16位。
6502有一个叫做“ZERO-PAGE”的寻址模式,可以让1字节长度的地址在指令中直接指定内存的最初256字节,这样可以让一些双字节的指令提高运行速度。65c816扩展了这个模式,可以通过16位直接页寄存器转到0号块的任何部分。
还有一些能将块指定为资料库寄存器的其他寻址模式,能起到缩短代码长度并加快运行速度的作用。
在同一时间内,代码通常只在一个单独的块中运行。当前的块编号储存于一个8位的可编程块寄存器中。有一些能让呼叫其他块中子程序或者直接跳到其他块里的代码的命令。
65c816的运行速度是3.58MHz,不过当CPU尝试读写其他硬件时,这些硬件能临时将CPU的速度降到2.58MHz甚至1.56MHz。实际上,卡带里的程序常常是高速和低速ROM的混合体,低速的ROM只能在2.58MHz的速度下被访问。
65c816能对128K的工作内存和在卡带中可能存在的其他内存直接响应,而显存和声音内存则不行。
[编辑] 輔助cpu
輔助cpu採用一顆SPC700,是一个-{A|zh-cn:8位;zh-tw:8位元}-的CPU核心,很接近6502,但有一些不同的-{A|zh-cn:寻址;zh-tw:定址}-模式和复数/分割指令,与一个定制的数字声音信号处理器共同整合在一个-{A|zh-cn:模块;zh-tw:模組}-中。
SPC700和65c816通过一个4路双向通道(8位I/O端口)通讯。SPC700有自己独立的64K内存,可以用来-{A|zh-cn:存储;zh-tw:儲存}-声音-{A|zh-cn:采样;zh-tw:取樣}-或者从65c816下载的-{A|zh-cn:程序;zh-tw:程式}-。
CPU有一个内建的64K ROM开机码,用来通过65c816从游戏ROM里载入更多的复杂程序或者采样数据。这个ROM可以被关闭,以存储开机码的64K RAM来代替它的工作。
声音-{A|zh-cn:数字信号处理器;zh-tw:數位訊號處理器}-(Sound DSP)只能播放压缩的声音-{A|zh-cn:采样;zh-tw:取樣}-。这种使用一固定比率的压缩算法,可以将16个-{A|zh-cn:16位;zh-tw:16位元}-声音采样压缩成8字节加一字节标题的形式。一个采样的最小单位是一个区块,区块的标题字节包含一个移位和一个过滤值(算法解压信息),再加上一个最后区块标记和一个循环标记。循环标记仅仅在最后区块标记存在时才使用。
在同一时间内,最多允许有8个-{A|zh-cn:声音通道;zh-tw:音軌}-同时播放声音-{A|zh-cn:采样;zh-tw:取樣}-,每个声音通道都有单独的左右声道音量和频率的调节。每个通道都可以定义一个-{A|zh-cn:硬件;zh-tw:硬體}-音量调节,并各自設定其-{A|zh-cn:回声;zh-tw:迴響}-效果,不過复合的-{A|zh-cn:回声;zh-tw:迴響}-效果必须受制于一个8路的FIR声音分流器。一个通道的声音输出可以用来调整在数字序列上的下一个声音通道的频率。
DSP也有一个白噪音源,可以播放一个替代采样数据的声音通道。所有的8个音源连同回声数据最后都混合到一个双通道的主音量控制下。
DSP有3个间隔定事器,头两个运行在8KHz下,最后一个是64KHz。游戏通常只使用三个中的一个来输出一个恒定的音乐回放频率。
[编辑] 中断
65c816提供了两个外部中断源:可以被屏蔽的IRQ,还有不能屏蔽的NMI。
IRQ线路连接到图形芯片的一个输出上,扫描线的开始、扫描线的中间某个特定位置或者每个扫描线的某个特定位置都可以被定义为发出这个IRQ。IRQ线路也可以连接到卡带上,卡带里诸如Super FX芯片、SA-1芯片等等都可以发出中断。
NMI线路可以连接到图形芯片的另一个输出上,垂直空白期开始时可以被定义为发出中断。
SPC700芯片也可以发出中断,但是并没有被用到,很可能是物理部分没有连接的缘故。
[编辑] -{A|zh-cn:手柄;zh-tw:手把}-定义
歷代-{zh-tw:電視遊樂器; zh-cn:遊戏机}- |
---|
第一世代 |
Coleco Telstar | Magnavox Odyssey | Pong |
第二世代早期 |
Atari 2600 | Fairchild Channel F | Intellivision | Magnavox Odyssey² |
第二世代晚期 |
Atari 5200 | ColecoVision | SG-1000 | Vectrex |
第三世代 |
Atari 7800 | Master System | NES/Famicom/FC |
第四世代 |
Mega Drive/Genesis | Neo-Geo | PC-Engine/TurboGrafx-16 | SNES/Super Famicom/超級任天堂 |
第五世代 |
3DO | Jaguar | Nintendo 64 | PlayStation | Sega Saturn |
第六世代 |
Dreamcast | PlayStation 2 | GameCube | Xbox |
第七世代 |
Xbox 360 | Wii | PlayStation 3 |
SFC-{A|zh-cn:手柄;zh-tw:手把}-的数据在主机和-{A|zh-cn:手柄;zh-tw:手把}-之间连续传输,游戏可以选择其中某一个位元来读取,或者由主机里一个定制的芯片来自动读取手柄里每个帧的制,而让游戏来读储存在寄存器里的值。
SFC的手柄有一方向键和8功能键,分别是A、B、X、Y、L、R、选择和开始。
[编辑] 调色板
SFC有一个256块的15位色调色板,允许在同画面上显示32768色中的256色。不过游戏可以在某一帧中改变色块,再加上硬件的色彩值追加/减少和整体亮度调节,可以很容易地将屏幕上的色彩增加到数千之多。
[编辑] 色块
SFC全部的图象数据都是由色块构成的,一个色块由8×8的像素组成,每个像素则占用2、4或者8位,允许由4、16或者256色构成。
详细地说,SFC的硬件本身是按平面格式存储色块数据的,一个像素的头一位数据存储在一起,第二位数据存储在一起,依次类推,就象一个1位的8×8纵深像素区块序列一样。
如果色块被用在背景数据里的话,每个色块都将关联一个3位的调色板起始数据地址。程序员可以从系统调色板里选择每个色块的色彩。活动块只能使用4位深度(16色)的色块,但每个活动块都有自己的调色板起始地址。