您尚未登录。

楼主 #1 2021-01-25 00:56:28

metro
会员
注册时间: 2019-03-09
已发帖子: 442
积分: 486

有个大胆的想法——用树莓派Pico模拟NES?

Pico镇楼
Pico.jpg
相信这个小玩意大家都知道了,双核Cortex-M0+,时钟频率133MHz(实际上保底可以超频到250MHz+),自带PIO、SIO等一系列有趣的外设,并且拥有2MB SPI Flash(自带16KB的cache)+264KB SRAM的内存.
那么问题来了,已知:

  1. 之前我在Nios II上移植过NES的模拟器,可以跑到20 fps左右(不包含索引色处理的部分,声音暂时也没做),而且当时没有用上汇编优化,(不排除超频的前提下)RP2040的性能应该足以模拟NES了。

  2. RP2040有两个核心,可以像NES一样,一个模拟2A03(CPU+APU),另一个模拟PPU,两者可以同时工作。

  3. RP2040的片上内存达到了264KB,不考虑显示部分的话应该够用了,而且显示部分可以由一个核心直接渲染,不需要把一整帧渲染后的RGB图像存储下来,大大节约了空间。

  4. RP2040支持XIP,可以把Flash直接映射到内存空间,最大支持16MB,足以放下所有的NES游戏并且直接寻址,有cache的话速度应该还不错。

  5. RP2040的PIO可以用来处理输出并且自带FIFO,根据别人的demo来看直接输出VGA应该没啥问题。

  6. RP2040的SIO中的Interpolator应该很适合用来处理音频数据。

感觉经过以上分析,似乎在Pico(RP2040)上跑个NES模拟器是可行的?欢迎大家讨论。

离线

楼主 #6 2021-01-30 01:18:37

metro
会员
注册时间: 2019-03-09
已发帖子: 442
积分: 486

Re: 有个大胆的想法——用树莓派Pico模拟NES?

blade_cheng 说:

而且超频也不仅仅是把主时钟频率提上去就完了,要考虑flash读等待周期吧

一方面,RP2040有SRAM,而且AHB-Lite总线的Crossbar映射是完整的,意味着两个核的访问可以做到互不冲突,可以把关键代码放到SRAM以提升效率;另外,RP2040对于Flash有16KB的Cache,这个Cache应对(简单的)NES游戏来说应该是比较够用的。

离线

楼主 #7 2021-01-30 01:22:52

metro
会员
注册时间: 2019-03-09
已发帖子: 442
积分: 486

Re: 有个大胆的想法——用树莓派Pico模拟NES?

armstrong 说:

我觉得还不如esp32有得玩。

感觉ESP32和RP2040是两种不大一样的玩意,前者的卖点非常突出(互联、性能够用),简单操作就可以做出非常有趣的东西;后者则把料都堆在了提升数字处理性能的地方(虽然部分搭配确实有待商榷,比如神奇的高频双核Cortex-M0+),属于需要细致研究才能做出有意义成品的芯片,但是玩好了可以实现意想不到的效果,可能更适合geek向的应用。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn