OK, I've got my scrolling up and working, but I have an odd issue where my sprite DMA is causing my status bar to be 16 lines too large, but only on Nintenulator and Nestopia, not Jnes or FCEUX.
If comment out my sprite DMA lines, then the scrolling and top status bar are correct under all 4 emulators.
Is there anything special I have to do before I sprite DMA. I've tried doing the DMA right after vsync, and even inside the NMI interrupt, but still no luck.
Any ideas?
Sprite DMA & MMC interrupt wierdness
Moderator: Moderators
Thanks for the advice dw, I figured out what the issue is:
So it seems like I was breaking the MMC3 rule of using 8x16 sprites from character set 0 instead of solely character set 1! Wierdly enough, it seems to have the of delaying when the IRQ gets set by around 16 lines in some emulators (wonder if the real HW does this too?)
By setting all the index values of all the sprites to an odd number, it fixed the issue!
So it seems like I was breaking the MMC3 rule of using 8x16 sprites from character set 0 instead of solely character set 1! Wierdly enough, it seems to have the of delaying when the IRQ gets set by around 16 lines in some emulators (wonder if the real HW does this too?)
By setting all the index values of all the sprites to an odd number, it fixed the issue!