raspberry pi pico|爷青回!在raspberry pi pico上玩nes游戏(开源pico NES模拟器)

前言

在这里插入图片描述

在国内因为外观被称为红白机的任天堂FC(欧美版叫NES),或者说Famicom(典型的日式英语缩写),小时候我们都喜欢玩FC,现在仍有很多人想做出属于自己的游戏机(模拟器),而nes模拟器正是不二之选,通过制作模拟器我们能学习到关于软硬件各方面的知识,可谓是很多程序员走向编程开发道路上不可缺少的一环。

raspberry pi pico 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模块我们只需要使用两个引脚即可获得所有按键的状态。

源码

源码将会有详细的视频教程讲解,点击这里访问教程发布地址
待续…

猜你喜欢

转载自blog.csdn.net/qq_35181236/article/details/115447946