找回密码
 立即注册
查看: 394|回复: 9

移植NES模拟器,就说能不能跑吧

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2026-06-28 19:08:17
已绑定手机

59

主题

399

回帖

1049

积分

金牌会员

积分
1049
发表于 2026-1-29 01:09:35 | 显示全部楼层 |阅读模式
移植了infones到ai8052u,目前只弄了显示部分

速度感人,大概每秒一两帧吧,也许有优化的空间。声音支持估计别想了就。
不得不吐槽keilc251真是一坨,一些语法细节点的处理很有 个性,导致在其他编译器上结果一致的代码在这就会被曲解
在不能打断点调试的情况下层层深入循环printf找bug真是太掉头发了。。。

好歹最后能跑了,fc游戏熟悉的画面终于出来了。
nes文件是以数组的形式存在flash里,当然也可以加SD卡loadram,但意义不大了可能,太慢了几乎不可玩
如果有大佬能抽时间给6502核心部分汇编化一下就好了,能快很多,应该就能玩了
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2026-06-28 19:08:17
已绑定手机

59

主题

399

回帖

1049

积分

金牌会员

积分
1049
发表于 2026-1-29 01:11:49 | 显示全部楼层



卡卡的画面,还有些bug,导致精灵的位置十分抽象。
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2026-06-28 19:08:17
已绑定手机

59

主题

399

回帖

1049

积分

金牌会员

积分
1049
发表于 2026-1-29 01:15:02 | 显示全部楼层
IMG_20260129_011242.jpg
草率的硬件平台,核心板+屏幕。
刷屏是dma(有概率花瓶不知为何,后来改硬件lcm了)
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2026-06-28 19:08:17
已绑定手机

59

主题

399

回帖

1049

积分

金牌会员

积分
1049
发表于 2026-1-29 01:23:24 来自手机 | 显示全部楼层
也可能是infones太菜了。
经测量速度瓶颈不在显示,在模拟的逻辑上。

没想太明白一个大switch和函数指针查表调用哪个快,有熟悉底层的同志能分析一下吗
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:295
  • 最近打卡:2026-07-03 15:36:22
已绑定手机

22

主题

663

回帖

2480

积分

金牌会员

积分
2480
发表于 2026-1-29 08:14:30 | 显示全部楼层
_NC*** 发表于 2026-1-29 01:23
也可能是infones太菜了。
经测量速度瓶颈不在显示,在模拟的逻辑上。

函数指针快
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2026-06-28 19:08:17
已绑定手机

59

主题

399

回帖

1049

积分

金牌会员

积分
1049
发表于 2026-1-30 17:59:27 | 显示全部楼层
优化不动了,,,就这了估计。还是每秒几帧这样的

VID_20260130_175525.mp4

42.12 MB, 下载次数: 4

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:894
  • 最近打卡:2026-07-05 10:26:45
已绑定手机

21

主题

146

回帖

2449

积分

金牌会员

积分
2449
发表于 2026-4-20 21:22:04 | 显示全部楼层
写完用 nestest.nes 查模拟器指令执行是否正确、还有其他测试PPU寻址是否正确的文件(具体网上搜索),错1条指令 游戏都可能会出问题。
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:82
  • 最近打卡:2026-06-28 19:08:17
已绑定手机

59

主题

399

回帖

1049

积分

金牌会员

积分
1049
发表于 2026-4-23 12:06:25 来自手机 | 显示全部楼层
123 发表于 2026-4-20 21:22
写完用 nestest.nes 查模拟器指令执行是否正确、还有其他测试PPU寻址是否正确的文件(具体网上搜索),错1条 ...


我试过一些测试ROM,运行到精灵遮挡那块时候直接就死机了。。我感觉INFONES写的时候有挺多ub,或者说keil c51编译器还是太“不识大体了”。。。
刚开始移植的时候压根跑不了,有个AABS宏里面的类型转换加位运算的操作,按keilC51的逻辑会溢出,但别的编译器处理这块行为都很正常。数据类型强制转换溢出这块感觉keil有点抽象,好几次发现这个怪异的点了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:714
  • 最近打卡:2026-07-02 10:52:53

11

主题

91

回帖

608

积分

高级会员

积分
608
发表于 2026-4-23 18:30:38 | 显示全部楼层
楼主牛逼
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:772
  • 最近打卡:2026-07-05 07:12:58

8

主题

293

回帖

1585

积分

金牌会员

积分
1585
发表于 2026-5-22 16:57:47 | 显示全部楼层
点赞支持!继续努力
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-7-5 17:01 , Processed in 0.076827 second(s), 88 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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