文章目錄
- 前言
- raspberry pi pico NES模擬器
- 制作程序
- 硬體準備
- 制作思路
- 實作思路
- 搭建開發環境
Raspberry pi pico NES模擬器運行坦克大戰游戲示例
前言

在國內因為外觀被稱為紅白機的任天堂FC(歐美版叫NES),或者說Famicom(典型的日式英語縮寫),小時候我們都喜歡玩FC,現在仍有很多人想做出屬于自己的游戲機(模擬器),而nes模擬器正是不二之選,通過制作模擬器我們能學習到關于軟硬體各方面的知識,可謂是很多程式員走向編程開發道路上不可缺少的一環,
raspberry pi pico NES模擬器

制作程序
硬體準備
- Raspberry pi pico 購買地址
- Micro SD卡模塊(SPI協議) 購買地址
- 2.2寸ILI9341顯示屏(SPI介面240x320解析度) 購買地址
- PCF8574 I/O拓展模塊(I2C介面) 購買地址
- 杜邦線、面包線 購買地址
- 按鍵(上、下、左、右、A、B、select、start) 購買地址
制作思路
FC使用一顆理光制造的8位2A03 NMOS處理器(基于6502中央處理器,但是缺乏BCD模式),PAL制式機型運行頻率為1.773447MHz,NTSC制式機型運行頻率為1.7897725MHz,主記憶體和顯示記憶體為2KB,
而Raspberry pi pico搭載RP2040,其擁有雙核 Arm Cortex-M0+ 處理器,264KB的SRAM和2MB的板載閃存,支持高達16MB的片外Flash,
我們完全可以使用pico模擬出FC游戲機的效果,
實作思路
作為游戲機我們比較關心的是顯示設備的問題,FC使用理光開發的影像控制器(PPU),有 2KB 的視頻記憶體,調色盤可顯示 48 色及 5 個灰階,一個畫面可顯示 64 個角色(sprites) ,角色格式為 8x8 或 8x16 個像素,一條掃描線最多顯示 8 個角色,雖然可以超過此限制,但是會造成角色閃爍,背景僅能顯示一個卷軸,畫面解析度為 256x240 ,但因為 NTSC 系統的限制,不能顯示頂部及底部的 8 條掃描線,所以解析度剩下 256x224,
所以我們使用2.2寸(240x320)的顯示屏就足夠了,
那么,接下來是存盤設備的問題,存盤設備我使用sd卡存盤、訪問nes游戲檔案,
最后就是游戲手柄部分,FC的游戲手柄有8個按鈕(上、下、左、右、A、B、select、start),也就是說我們要處理8種按鍵事件,雖然說pico有26個多功能GPIO引腳,但是為每個按鍵都分配一個GPIO引腳仍然是一個不小的開銷,使用PCF8574模塊我們只需要使用兩個引腳即可獲得所有按鍵的狀態,
搭建開發環境
本節介紹到完畢,下一篇文章我們開始搭建 raspberry pi pico 的開發環境,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273359.html
標籤:其他
上一篇:洛谷P7480 四月賽 Reboot from Blue
下一篇:正式入坑
