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

[复制链接]
1017|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);
        }
**/
sxy4517 发表于 2022-5-19 15:46 | 显示全部楼层
nes是什么
 楼主| 冒冒mao 发表于 2022-5-19 17:13 | 显示全部楼层
nes模拟器,就是红白机
 楼主| 冒冒mao 发表于 2022-5-19 18:39 | 显示全部楼层
问题已解决,因为原子例程是从外部SRAM加载游戏源码,我是从flash加载。两者有区别。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

45

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部