打印
[STM32F1]

基于正点的F4nes例程做移植时黑屏,求助!!

[复制链接]
816|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冒冒mao|  楼主 | 2022-5-18 18:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
希望有移植过的高人来指点一下。
用正点原子F4的nes例程做移植到F1的时候,bg_enabled()和spr_enabled()一直为0导致刷新屏幕的都是背景色,进不去这个if:
uint32 spr_enabled(void)    { return ppu->LowRegs[1] & 0x10; }
uint32 bg_enabled(void)     { return ppu->LowRegs[1] & 0x08; }

if(spr_enabled() || bg_enabled())
  {
    LOOPY_SCANLINE_START(ppu->loopy_v, ppu->loopy_t);
    if(bg_enabled())
    {
      // draw background画背景
      render_bg(buf);
    }
    else
    {
      // clear out solid buffer清除固体缓冲区
     memset(ppu->solid_buf, 0x00, sizeof(ppu->solid_buf));
    }

    if(spr_enabled())
    {
      // draw sprites绘制精灵
      render_spr(buf);
    }

    LOOPY_NEXT_LINE(ppu->loopy_v);
  }
那么在原子nes的例程中,spr_enabled() 和bg_enabled()什么时候会被更改呢?
求解!!!!!!!

使用特权

评论回复
沙发
xuanhuanzi| | 2022-5-18 20:31 | 只看该作者
没移植过这个,看看有没有大佬搞过。

使用特权

评论回复
板凳
冒冒mao|  楼主 | 2022-5-18 20:53 | 只看该作者
自顶!!搞过的大佬快来啊。

使用特权

评论回复
地板
冒冒mao|  楼主 | 2022-5-18 21:45 | 只看该作者
我在查错的时候有一个疑惑,以下代码不注释掉运**住,不刷新屏幕(虽然还是黑屏),这段代码什么意思?
/**
        NES_Mapper->VSync();  
        // LINES 242-261
        for(NES_scanline=241;NES_scanline<262;NES_scanline++)
        {
                run6502(113*256);
                NES_Mapper->HSync(NES_scanline);
        }
**/

使用特权

评论回复
5
sxy4517| | 2022-5-19 15:46 | 只看该作者
nes是什么

使用特权

评论回复
6
冒冒mao|  楼主 | 2022-5-19 17:13 | 只看该作者
nes模拟器,就是红白机

使用特权

评论回复
7
冒冒mao|  楼主 | 2022-5-19 18:39 | 只看该作者
问题已解决,因为原子例程是从外部SRAM加载游戏源码,我是从flash加载。两者有区别。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

45

帖子

0

粉丝