Ai MCU能跑NES吗
自己弄游戏太慢了,移植也太麻烦了,要是能运行个模拟器直接跑人家的rom那该多好啊。眼下nes大家玩的挺多,可惜都是stm32什么的,51能跑跑就好了,一劳永逸啊
刚找了个开源nes在电脑上编译一下估计了估计,主循环要是能到100000次每秒还是有希望的。
有人试过吗?
这个有点抽象极有可能会被笑话
{:4_167:},
想笑我的就当我上面说的是喝多了罢
来来来,喝完这杯。
还有{:4_230:}{:4_230:}{:4_230:} 其实还真能。但也只是能。。。发完贴之后我大概就去移植了几个试了试😅
本来我看要是没人搭理这个贴就不放结果了。。
首先是smolnes,这个是我原来在电脑上玩过的一个,代码很精简,单文件,显示部分是喜闻乐见的SDL。支持mapper比较少但玩马里奥大叔足够。这个当时用了AI8051U,因为是单文件移植超级简单,ROM取模放程序里,编译出来总共才50多K。结果,能运行但也太慢了。大概等二三十秒能拉窗帘刷出画面,肉眼可见马里奥大叔搁那变色的那种
好吧还反色了~_~
然后是INFONES(经典),这个RAM和ROM占的比较大,优化一下128K+32K理论能跑。但是我发帖问HDATA和超64K编程的问题就是在搞这个时候。然而不知为什么在电脑上好好的程序移植完去咋跑不了,纯黑屏。把画线函数给改了发现他确实在刷扫描线,但这个速度不比刚才那个好到哪去。
总之还是等8052吧。 _NCY_ 发表于 2025-8-16 06:13
其实还真能。但也只是能。。。发完贴之后我大概就去移植了几个试了试😅
本来我看要是没人搭理这个贴就不放 ...
加油,期待你的好消息{:4_175:} C_wolf 发表于 2025-8-16 10:59
加油,期待你的好消息
鸽了已经,不弄了😅
我还等着STC的好消息呢,8052! 前阵子研究过拿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依然绝对是件挑战平台极限的事,极其难以实现.
我感觉INFONES其实有戏可能我没有移植好。。。为了砍RAM改了不少东西可能哪给弄岔劈了
INFONES理论上应该是比SMOLENES快的。SMOLENES的速度制约项在于里面有个递归函数MEM,就会让它很慢。
页:
[1]