raspberry pi pico|在raspberry pi pico上玩nes游戏(1)(开源树莓派pico NES模拟器)-效果演示及介绍
文章目錄
- 前言
- raspberry pi pico NES模擬器
- 效果圖
- 功能介紹
- 制作過程
- 硬件準備
- 制作思路
- 實現思路
- 搭建開發環境
- 獲取源碼
raspberry pi pico|【項目一】找回童年!Raspberry pi pico NES模擬器
前言
在國內因為外觀被稱為紅白機的任天堂FC(歐美版叫NES),或者說Famicom(典型的日式英語縮寫),小時候我們都喜歡玩FC,現在仍有很多人想做出屬于自己的游戲機(模擬器),而nes模擬器正是不二之選,通過制作模擬器我們能學習到關于軟硬件各方面的知識,可謂是很多程序員走向編程開發道路上不可缺少的一環。
raspberry pi pico NES模擬器
效果圖
功能介紹
- 通過 SPI sd卡模塊 從外掛的micro sd 卡(SPI)中加載游戲文件(Fat文件系統)
- 2.2寸ILI9341顯示屏 (SPI接口240x320分辨率)顯示游戲圖象
- 支持開機動畫、菜單選擇游戲運行
- 支持音頻輸出(I2S),使用 CJMCUTRRS 3.5mm音頻座模塊 輸出音頻更方便!
- 支持 PCF8574 I/O 拓展模塊(I2C接口)控制游戲,拓展的8個I/O引腳用于游戲按鍵(上、下、左、右、A、B、select、start)
- 支持使用 國內7針、9針NES游戲手柄 控制游戲
- 支持 國內MicroUSB接口的NES游戲手柄 控制游戲
課程用到的開發板及硬件:https://item.taobao.com/item.htm?id=642291784020
項目使用 VScode+platformio插件開發,以上功能均可在 ./platformio.ini 文件裁剪。
- 上圖中綠色的大按鈕用于讓板子快速進入燒錄模式(不需要插拔數據線),詳細講解請閱讀這篇文章:Raspberry pi pico|為Raspberry Pi Pico添加重置按鈕(pico燒錄程序不再插拔數據線!)
制作過程
硬件準備
- Raspberry pi pico 購買地址
- Micro SD卡模塊(SPI協議) 購買地址 和 任意TF卡
- 2.2寸ILI9341顯示屏(SPI接口240x320分辨率) 購買地址
- 國內MicroUSB、7針、9針接口的游戲手柄 或者 PCF8574 I/O 拓展模塊(I2C接口) 購買地址
- 杜邦線、面包線 購買地址
- 按鍵(上、下、左、右、A、B、select、start) 購買地址 (如果使用 NES 游戲手柄則不需要按鍵)
制作思路
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 的開發環境:
raspberry pi pico|爺青回!在raspberry pi pico上玩nes游戲(2)(開源pico NES模擬器)-搭建開發環境
獲取源碼
倉庫地址: https://gitee.com/weidongshan/rpi_pico_100ask_infones.git
總結
以上是生活随笔為你收集整理的raspberry pi pico|在raspberry pi pico上玩nes游戏(1)(开源树莓派pico NES模拟器)-效果演示及介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Avast显示Win32:Evo-gen
- 下一篇: Nagios监控软件源码安装