超級任天堂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芯片,下面就按照組成一個一個介紹。
下圖是整機的框圖:
整機的總線互聯如下:
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之父久多良木負責設計的,所以說索尼大法好可不是白叫的。
聲優芯片和整機總線如下圖所示:
擴展芯片
數字信號處理器
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
+關注
關注
1630文章
21759瀏覽量
604326 -
芯片
+關注
關注
456文章
50958瀏覽量
424794 -
asic
+關注
關注
34文章
1204瀏覽量
120563 -
任天堂
+關注
關注
0文章
226瀏覽量
19070
原文標題:SNES FPGA實現
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論