找回密码
 立即注册
查看: 280|回复: 8

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

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2026-04-23 12:06:25
已绑定手机

57

主题

397

回帖

1034

积分

金牌会员

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

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

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

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2026-04-23 12:06:25
已绑定手机

57

主题

397

回帖

1034

积分

金牌会员

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



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

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2026-04-23 12:06:25
已绑定手机

57

主题

397

回帖

1034

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2026-04-23 12:06:25
已绑定手机

57

主题

397

回帖

1034

积分

金牌会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:273
  • 最近打卡:2026-05-09 08:18:47
已绑定手机

22

主题

643

回帖

2396

积分

金牌会员

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

函数指针快
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2026-04-23 12:06:25
已绑定手机

57

主题

397

回帖

1034

积分

金牌会员

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

VID_20260130_175525.mp4

42.12 MB, 下载次数: 1

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

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:839
  • 最近打卡:2026-05-10 09:12:52
已绑定手机

24

主题

147

回帖

2283

积分

金牌会员

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

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2026-04-23 12:06:25
已绑定手机

57

主题

397

回帖

1034

积分

金牌会员

积分
1034
发表于 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
  • 打卡总天数:684
  • 最近打卡:2026-05-09 09:56:55

11

主题

91

回帖

549

积分

高级会员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-11 05:56 , Processed in 0.109072 second(s), 83 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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