日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

raspberry pi pico|在raspberry pi pico上玩nes游戏(1)(开源树莓派pico NES模拟器)-效果演示及介绍

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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模拟器)-效果演示及介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。