最近正在寫一個NES模擬器,瞭解了一些NES的原理
NES的CPU是定製的MOS6502,閹割了十進位制模式 (BCD碼),加入了偽聲音處理器(pAPU),成品叫2A03.
2A03是一個8位CPU,有A,X,Y,S,P 5個8位暫存器,累加器A用於加減運算,X,Y用於定址,S是棧暫存器,P是狀態暫存器.
2A03的地址線是16位的,有2KB的記憶體,可以直接訪問卡帶(PRG-ROM和PRG-RAM).
卡帶具有換頁的功能,也就是說雖然呈現給CPU的ROM/RAM只有32KB,但是可以透過換頁切換這32KB,因此理論上可以做到無限的可訪問儲存空間
圖靈機要求無限的紙帶,透過卡帶可以提供無限的空間,而6502的指令集又是圖靈完備的,因此理論上可以在NES上只用CPU模擬更加先進的主機.
而NES的影象處理器則不可能有擴充套件空間了,詳見真把你打了:滿屏的遊戲性,滿屏的情懷,淺談FC的影象顯示技術,因此需要卡帶自帶影象處理器才能輸出更高畫質的影象,否則CPU即使算出來畫面也不能顯示出4K效果.
最近正在寫一個NES模擬器,瞭解了一些NES的原理
NES的CPU是定製的MOS6502,閹割了十進位制模式 (BCD碼),加入了偽聲音處理器(pAPU),成品叫2A03.
2A03是一個8位CPU,有A,X,Y,S,P 5個8位暫存器,累加器A用於加減運算,X,Y用於定址,S是棧暫存器,P是狀態暫存器.
2A03的地址線是16位的,有2KB的記憶體,可以直接訪問卡帶(PRG-ROM和PRG-RAM).
卡帶具有換頁的功能,也就是說雖然呈現給CPU的ROM/RAM只有32KB,但是可以透過換頁切換這32KB,因此理論上可以做到無限的可訪問儲存空間
圖靈機要求無限的紙帶,透過卡帶可以提供無限的空間,而6502的指令集又是圖靈完備的,因此理論上可以在NES上只用CPU模擬更加先進的主機.
而NES的影象處理器則不可能有擴充套件空間了,詳見真把你打了:滿屏的遊戲性,滿屏的情懷,淺談FC的影象顯示技術,因此需要卡帶自帶影象處理器才能輸出更高畫質的影象,否則CPU即使算出來畫面也不能顯示出4K效果.