内容目录
背景
花了一点时间实现dmc ,但出现一些问题
问题
- 哪些nes 游戏 有dmc 管道,无法测试
- 声音不对
nes 哪些游戏支持
通过AI ,给了一些,但大部分都是错误的,我最终找到 Legend of Zelda (塞尔达传说),你关闭所有声道,只留下dmc的,然后你发射武器时候就一下声音
声音不对
我把代码丢给国内AI模式,虽然发现一些问题,但问题还是没有解决,我后面思考可能是频率不对,但我不知道具体哪里错了,我于是随便丢给copilot,他貌似有我以前上下文,他里面一条说dmc 返回 Rate index 返回cpu cycle,有可能你程序用apu tick, 2 cpu cycle = apu tick,正好验证我之前猜想,我的代码处理apu 基本都是tick 里面,所以 rate index,我要除以2 转换tick就可以了
补充
- 塞尔达传说是 mapper 1,我开始没有实现,直接用AI直接生成一个mapper 1
- 我自己没有实现电池逻辑(存放游戏进程和一些代码逻辑),我开始没有实现导致进入一个未知代码逻辑,然后死循环了,我开始不知道这一点,一直加日志,跟踪代码执行,通过 fceux 调试跟踪几处异常点,结果电池存放部分代码,而我没有实现,所以跑不到这个代码,导致跳转代码,导致异常
总结
- 自己实现nes ,你会遇到各种问题,你之前实现可能有问题或者漏实现,导致游戏出现一些异常
- 如果要AI 生成完整NES 模拟器,从目前测试AI来说,基本不可能,所以AI 对于很多复杂逻辑项目,根本不行,但用来辅助理解逻辑非常有用的