FC模拟器开发日志

来源:互联网 发布:java包有什么用 编辑:程序博客网 时间:2024/04/30 08:46
/------------------------------------------------------------------------------------------\|---------------------------------------= CatfoOD =----------------------------------------||-----| c++ project                 |------------------------------------------------------||-----| yanming-sohu@sohu.com       |------------------------------------------------------||-----| FC 模拟器                   |------------------------------------------------------||-----| https://github.com/yanmingsohu/FC-emulator |---------------------------------------|\------------------------------------------------------------------------------------------/---------- 需要优化PPU渲染算法; 完成apu; 修正PPU背景色(0调色板)和精灵绘制(垂直翻转有问题);           完成mapper19 mapper1 cpu brk指令有疑问;            有时 NES CPU Test by Kevin Horton 不能运行,有时切换ROM会出错;2011-11-22 完成Mapper4,吞噬天地2,快打旋风,魂斗罗2; IRQ中断时机仍然有问题.2011-11-21 修正NMI中断错误;2011-11-20 完成Mapper2,赤色要塞.2011-11-19 重构PPU绘制代码,准备优化;修正精灵显示错误.2011-11-18 修改调试面板刷新方式, 修正写PPU:2007错误, 修正8x16精灵的错误显示2011-11-17 重构部分难看的代码, 制作一个WinUI框架2011-11-16 精确限速2011-11-15 优化背景卷轴的显示速度,使用D3D9的顶点绘制图像.2011-11-14 经测试PPU对显存的读取/写入无错(写入后立即读取并对比),怀疑CPU逻辑错误.           使用"NES CPU Test by Kevin Horton.nes"测试cpu出现错误.            读取4016/4017时,只读取第一位(忽略其他位);PHP入栈第5位为1;           修正LDX[B6]指令使用了错误的寻址法;           !!!!!!!! 哈哈哈哈, 超级玛丽能玩啦~~.           http://www.qmtpro.com/~nes/ 提到了NES 2.0 ROMs ??!!           能玩Mapper23的游戏(魂斗罗1).精灵的显示还是有问题           能玩Mapper3的游戏(俄罗斯方块)2011-11-11 应该利用ppu内存定址规律重写渲染算法以提高效率(PPU的内存设计太惊人了)           NES_Test_Cart 测试通过,但是'超级玛丽'还是运行不了.2011-11-10 修正$2005/$2006端口定义,写入不是字节对齐的2011-11-09 递交到git@github.com:yanmingsohu/FC-emulator.git,开放源码,并继续开发           源码浏览:https://github.com/yanmingsohu/FC-emulator2011-11-03 搁浅搁浅我受不了了!!!!2011-10-12 cpu指令周期有问题, cpu/ppu同步时钟有问题, 电源启动时的默认调色板,            读取2004时精灵地址不能增加??, 2011-09-21 对8x16精灵的正确显示2011-09-19 很奇怪PPU应该在一帧结束时发送NMI,同时VBL=0?在一帧开始时VBL=1?2011-09-16 修正透明色显示,mapper23字库载入时出错2011-09-15 DMA的起始地址从端口2003写入2011-09-14 blargg(http://www.slack.net/~ant/nes-tests/)写了17套测试!!有着落了!!你就是上帝           原来cpu可以执行到<0x8000地址处的,现在可以玩<大赛车>啦!!就是有点花屏:L,           修正cpu::TNN系列指令错误2011-09-13 完成了cpu,ppu同步,仍然有问题,游戏启动的状态不稳定,恐怕有未初始化的变量2011-09-10 完成Mapper4,因为使用virtual function导致显存访问变慢了...2011-09-09 各种修正ppu+cpu同步,可是.可是.可是...重写MMC架构2011-09-06 修正cpu指令周期,加入寻址周期,似乎ppu+cpu同步的还有问题           当PPU指针超过0x3FFF,则 指针值-=0x40002011-09-05 修正4个PPU寻址错误,太刺激了           第一次读2007端口无效(0-0x3EFF),但是如果写入后,读则有效(fxxk)           第一次读之后写数据则PPU指针指向下一个位置再写入(另一个怪癖,没一个文档写出来)           怪癖的原因是每次PPU返回的值总是上一次读取2007得到得值2011-09-04 偶不明白,为何JMP时PC--,再JSR时PC++,多这一步目地何在(可以据此判断是jmp进行的跳转?)           所有CPU指令测试通过(为何BRK指令需要PC++),开始修正PPU,能正常玩《大金刚1》2011-09-03 修正按键映射错误,修正画背景函数,修正精灵碰撞算法,找到一个测试系统的rom!!测试出           cpu指令有错误:ADC,SBC,CMP,CPX,CPY,JMP()?,JSR,BRK(R?),RTS?2011-08-31 优化windows平台图形相关代码2011-08-22 原来是减法(sbc)指令减数与被减数写反了..然后发现了另一个神秘的错误..2011-08-21 ...没有进展2011-08-20 控制器模块,(-_-!到底是哪一个cpu指令写的不对了....折磨呀)2011-08-19 使用DirectDraw加速视频显示(真快哦)2011-08-18 研究DirectX视频加速,背景能正确显示,似乎还有cpu指令有问题...2011-08-17 早晨发现昨晚递交失败了。。cpu指令有问题,or竟然实现为and...,设计了一个cpu调试器           开始一条一条调试指令,使用的Rom是F1大赛车::哈哈已经可以正确显示背景的一半了~~2011-08-16 各种调试,寻找问题2011-08-15 cpu指令有问题,向无效的地址写入数据2011-08-14 绘制。。。。混乱的显示,完全不对,要崩溃了2011-08-13 能把字库显示出来了2011-08-12 开始做PPU2011-08-11 把内存切换器写完了,貌似cpu命令已经写完了(一堆bug)2011-08-10 不停的看各种资料2011-08-09 重写了nes文件的读取,一些cpu命令2011-08-08 重写了寻址方法,实现了几个cpu命令2011-08-05 制作cpu命令框架,命令的空实现2011-08-04 加入GIT控制,完成ram,完成cpu框架,能读取nes文件2011-08-01 好像是这天开始写的(完全是自不量力的项目呀。。。)