找回密码
 立即注册
查看: 208|回复: 6

Ai MCU能跑NES吗

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:48
  • 最近打卡:2025-08-21 22:43:07
已绑定手机

49

主题

341

回帖

1238

积分

金牌会员

积分
1238
发表于 2025-7-13 22:10:29 来自手机 | 显示全部楼层 |阅读模式
自己弄游戏太慢了,移植也太麻烦了,要是能运行个模拟器直接跑人家的rom那该多好啊。
眼下nes大家玩的挺多,可惜都是stm32什么的,51能跑跑就好了,一劳永逸啊


刚找了个开源nes在电脑上编译一下估计了估计,主循环要是能到100000次每秒还是有希望的。
有人试过吗?
这个有点抽象极有可能会被笑话


想笑我的就当我上面说的是喝多了罢
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:303
  • 最近打卡:2025-08-23 00:13:14
已绑定手机

13

主题

190

回帖

1841

积分

金牌会员

积分
1841
发表于 2025-8-15 14:32:10 | 显示全部楼层
来来来,喝完这杯。

还有
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:48
  • 最近打卡:2025-08-21 22:43:07
已绑定手机

49

主题

341

回帖

1238

积分

金牌会员

积分
1238
发表于 2025-8-16 06:13:13 来自手机 | 显示全部楼层
其实还真能。但也只是能。。。发完贴之后我大概就去移植了几个试了试😅
本来我看要是没人搭理这个贴就不放结果了。。

首先是smolnes,这个是我原来在电脑上玩过的一个,代码很精简,单文件,显示部分是喜闻乐见的SDL。支持mapper比较少但玩马里奥大叔足够。这个当时用了AI8051U,因为是单文件移植超级简单,ROM取模放程序里,编译出来总共才50多K。结果,能运行但也太慢了。大概等二三十秒能拉窗帘刷出画面,肉眼可见马里奥大叔搁那变色的那种 IMG_20250720_154740.jpg
好吧还反色了~_~

然后是INFONES(经典),这个RAM和ROM占的比较大,优化一下128K+32K理论能跑。但是我发帖问HDATA和超64K编程的问题就是在搞这个时候。然而不知为什么在电脑上好好的程序移植完去咋跑不了,纯黑屏。把画线函数给改了发现他确实在刷扫描线,但这个速度不比刚才那个好到哪去。

总之还是等8052吧。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:303
  • 最近打卡:2025-08-23 00:13:14
已绑定手机

13

主题

190

回帖

1841

积分

金牌会员

积分
1841
发表于 2025-8-16 10:59:31 来自手机 | 显示全部楼层
_NCY_ 发表于 2025-8-16 06:13
其实还真能。但也只是能。。。发完贴之后我大概就去移植了几个试了试😅
本来我看要是没人搭理这个贴就不放 ...

加油,期待你的好消息
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:48
  • 最近打卡:2025-08-21 22:43:07
已绑定手机

49

主题

341

回帖

1238

积分

金牌会员

积分
1238
发表于 7 天前 来自手机 | 显示全部楼层
C_wolf 发表于 2025-8-16 10:59
加油,期待你的好消息

鸽了已经,不弄了😅
我还等着STC的好消息呢,8052!
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-08-20 15:52:26

0

主题

4

回帖

36

积分

新手上路

积分
36
发表于 4 天前 | 显示全部楼层
前阵子研究过拿251跑全功能全速NES模拟的问题.....

6502+PPU+APU模拟
这三部分里6502及PPU都需要高速高时序模拟,因此要把8052跑在几乎极限频率附近(如40~44*1.79Mhz)以尽可能降低CPU占用来实现调度流程.
模拟6502CPU时需要对其所有汇编进行精细优化,对不同机器周期的6502汇编使用不同的延时,以节省251定时器中断的开销,
模拟PPU还需要占用DMA实现刷屏(推荐使用320*240的屏),否则如果对常见视频总线进行数据输出对cpu的开销可能更大.
模拟APU需要占用掉绝大部分定时器(用来模拟APU的5通道合成器,每个合成器通道需要最少2个定时器),虽然APU优化后开销不大,但很占用资源

然后是最致命的是可变的mapper和搬运游戏code问题,有以下难点:
①norfalsh寻指时间太慢,对cpu开销太大完全不可使用,tf卡更是想都不要想;
②只有很小的游戏code才能放在mcuflash里跑,nes后期的常见游戏动辄256K-1M根本放不进MCU里更别提模拟了;
③51核原生很难从RAM区跑代码,可变的mapper搭建起来难度相当高.

感觉最优的解法是挂个实体卡带,数据走并口提升读取速率降低CPU的开销.....但现在实体卡带不便宜就是了.....不过哪怕用了实体卡,在stc上模拟NES依然绝对是件挑战平台极限的事,极其难以实现.
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:48
  • 最近打卡:2025-08-21 22:43:07
已绑定手机

49

主题

341

回帖

1238

积分

金牌会员

积分
1238
发表于 3 天前 来自手机 | 显示全部楼层
我感觉INFONES其实有戏可能我没有移植好。。。为了砍RAM改了不少东西可能哪给弄岔劈了

INFONES理论上应该是比SMOLENES快的。SMOLENES的速度制约项在于里面有个递归函数MEM,就会让它很慢。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-24 02:30 , Processed in 0.135724 second(s), 80 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表