This page is a mirror of Tepples' nesdev forum mirror (URL TBD).
Last updated on Oct-18-2019 Download

Mid frame vertical scroll artificacts

Mid frame vertical scroll artificacts
by on (#55629)
I have been testing how to do some mid-frame vertical scrolling while using the MMC3 IRQ today since some part of the MM9 demo (robo master presentation for example) will require it. So I had to understand how it work since I will need it sooner or later.

I was able to make it work to some satisfying results by hard coding a few tests here and there but there is one thing left, this:

Image

I guess I already know my answer but is there a way to remove that glitchy line? Since so many commercial games have it, the answer must be no. I would like to know what cause it in the first place?

by on (#55630)
The glitches are caused by you writing too early or too late. They can be reducted if you add a couple of nops before writing to $2006, go with trial and error and see what looks best.

[self publicity]
Look at this for more info.
[/self publicity]

by on (#55631)
Facepalm :oops: I forgot about that document! That's true, you made one. I will give it a look. I wanted to wikify it but never had the chance of doing so.

Edit:

The nop did help. I wouldn't consider 38 "a few nop" but it does work for now on most accurate emulator. I need to test it on hardware though. I may consider to use it to scroll the map since it's not as complicated as I thought. The only problem is to integrate it properly in my current system.

Edit2:

By the way, the same mid frame vertical scrolling effect by IRQ can be reproduced on an MMC5/VRCIV/VI etc or is it limited to the MMC3?

by on (#55633)
Banshaku wrote:
By the way, the same mid frame vertical scrolling effect by IRQ can be reproduced on an MMC5/VRCIV/VI etc or is it limited to the MMC3?

It works on anything with a scanline counter or a CPU counter, although it's a bit trickier to use the VRCs' CPU counters on a PAL NES because their divisor is designed for NTSC.

by on (#55635)
tepples wrote:
It works on anything with a scanline counter or a CPU counter, although it's a bit trickier to use the VRCs' CPU counters on a PAL NES because their divisor is designed for NTSC.


Great, this is what I was hoping. It could be useful later if I do decide to make more stages (one require some very special timing that could only be done on MMC5).

I tested on hardware and there was no artifact. The split was not 100%, maybe I wrote 1 raster too late or something. If I cannot fix it, you don't have much time to see that issue well so it's better than the artifact. Good, I can use it to scroll the screen. That annoying missing metatile row is not an issue anymore.

Thanks everyone for the information.