weixin_39900437
weixin_39900437
2020-11-22 00:08

Rework interrupt scheduling

I didn't realized it at first but https://github.com/mupen64plus/mupen64plus-core/pull/701 is breaking the new dynarec very badly.

The main limitation is that the number of cycles between current cycle count and next interrupt event cannot exceed 2^31

I reworked interrupt scheduling a bit:

  • cp0_next_interrupt is now a negative number representing the number of cycles left until next interrupt is taken. Next interrupt is taken whether cp0_next_interrupt value is positive or null

  • Special interrupt is now a fake interrupt which porpose is to ensure the number of cycles between current cycle count and next interrupt will never exceed 2^31

I still need to fix both dynarecs. In the meantime this PR needs to be tested to see if there's no regression

该提问来源于开源项目:mupen64plus/mupen64plus-core

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

22条回答

为你推荐

换一换