How many times can the NES change scrolling in a frame?

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems. See the NESdev wiki for more information.

Moderator: Moderators

User avatar
Bregalad
Posts: 8055
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Re: How many times can the NES change scrolling in a frame?

Post by Bregalad »

Now instead of a terminology / semantics war
The OP asked for terminology so that's why I answered this :
Marscaleb wrote: By the way, does this technique have a name? Is there some word or term I can use to refer to it without giving examples or explaining in detail how the system is drawing a different part of the background?
Sumez wrote: On top of the "raster effect" being the intended result, in homebrew development, people usually refer to the act of changing scroll values on a specific scanline as "splits". Specifically, horizontal splits.
Split is when the scroll value brutally changes once. It's completely different than a wavy effect where it changes continuously.
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: How many times can the NES change scrolling in a frame?

Post by psycopathicteen »

Something that always gets on my nerves is when people see raster effects on the SNES, they think it's either "mode 7" or the "FX chip".
User avatar
za909
Posts: 248
Joined: Fri Jan 24, 2014 9:05 am
Location: Mijn hart woont al in Nederland

Re: How many times can the NES change scrolling in a frame?

Post by za909 »

psycopathicteen wrote:Something that always gets on my nerves is when people see raster effects on the SNES, they think it's either "mode 7" or the "FX chip".
There seems to be this false myth out there that "the SNES can't do anything special without outside help", but then again, I think the opposite is also true where 3-4 parallax splits in an NES game make people think it's "almost 16-bit".
turboxray
Posts: 348
Joined: Thu Oct 31, 2019 12:56 am

Re: How many times can the NES change scrolling in a frame?

Post by turboxray »

Just came across this thread when searching for a site for someone.. (raster effects related)
koitsu wrote: Mon Apr 08, 2019 5:20 pm
Marscaleb wrote:I think "line scrolling" or "line scroll change" sounds like an appropriate term; if it can get universally adopted.
Please stop this absolute time-wasting borderline-postmodernist pedantry. Seriously dude.

If you told me "line scrolling", I would have no idea what you were talking about without context; because to me, "line scrolling" is a form of smooth text scrolling on classic hardware terminals.
Well, that's your own anecdotal experience. I know of plenty of people that used the term linescrolls, since the 90's. Matter of fact, pretty sure it came from magazines back in the day (8bit,16bit generations). And it's pretty accurate actually.. you're setting the scroll value(s) on per line basis (instead of whole screen, or tile block widths). Raster effects includes linescrolls, and more.
User avatar
olddb
Posts: 188
Joined: Thu Oct 26, 2017 12:29 pm
Contact:

Re: How many times can the NES change scrolling in a frame?

Post by olddb »

How does F-1 Race do the line scrolling being a NROM game?
...
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: How many times can the NES change scrolling in a frame?

Post by tokumaru »

olddb wrote: Thu Apr 09, 2020 4:34 amHow does F-1 Race do the line scrolling being a NROM game?
I haven't checked, but NROM programs can easily make use of sprite 0 hits or even sprite overflows to synchronize with the PPU, and from them on they can use timed code to stay synchronized.
kuja killer
Posts: 130
Joined: Mon May 25, 2009 2:20 pm

Re: How many times can the NES change scrolling in a frame?

Post by kuja killer »

i did this sort of thing for Pyro man level on my Megaman Odyssey romhack. The "wavy water" type stuff. I copied straight from the water level on Sonic CD (i dont remember what the zone/level was called) -- anyway i got it 100% accurate from it.

So the IRQ runs about 30 to 40 times a frame. Something like that. yea it's extremely cpu-heavy. Takes just a little less than 1 full scanline for the IRQ code. (about 320 or 330 of 341 ppu pixels of a scanline).
It looks very glitchy in all "non-fceux" emulators though. :( Just fine in fceux.

https://www.mediafire.com/file/sch8pm12 ... n.avi/file
User avatar
olddb
Posts: 188
Joined: Thu Oct 26, 2017 12:29 pm
Contact:

Re: How many times can the NES change scrolling in a frame?

Post by olddb »

So apparently you can use the APU timer too? Any commercial game that uses this?
...
User avatar
Dwedit
Posts: 4922
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Re: How many times can the NES change scrolling in a frame?

Post by Dwedit »

Fire Hawk and Mig Soviet Fighter use the APU DMC channel IRQ as a timer for splitting the screen.

Time Lord uses the DMC IRQ in a much less precise way to force it to start checking for sprite 0, allowing for higher CPU usage in the game loop without missing the sprite 0 hit.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: How many times can the NES change scrolling in a frame?

Post by tokumaru »

DMC IRQs are full of catches when used for raster effects, though. The APU doesn't start playing samples immediately when you tell it to, it has a whole pipeline of sample fetching and playing which results in IRQs *NOT* firing a constant number of cycles after the CPU requests the playback of a sample of a specific size at a specific rate.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: How many times can the NES change scrolling in a frame?

Post by lidnariq »

turboxray wrote: Thu Apr 09, 2020 2:55 am I know of plenty of people that used the term linescrolls, since the 90's. Matter of fact, pretty sure it came from magazines back in the day (8bit,16bit generations). And it's pretty accurate actually.. you're setting the scroll value(s) on per line basis (instead of whole screen, or tile block widths). Raster effects includes linescrolls, and more.
As near as I can tell, "linescrolling" in this way appears to be a sega-ism, and searching around finds at least a couple instances of people incorrectly believing that certain non-sega platforms are incapable of performing multiple scroll change raster effects across multiple adjacent scanlines. I have to assume this happens specifically because no-one else uses that term, and we come back to my earlier point: If most people you're talking to don't already know the term, it doesn't matter if some subgroup already had a term for it; the only utility of such a term is if you don't have to explain it.

And your point, that "linescrolling" means a specific thing in one community+context, does not in any way invalidate Koitsu's point (namely that it implies a very different thing in a different, older, but still electronics related community+context)
Pokun
Posts: 2675
Joined: Tue May 28, 2013 5:49 am
Location: Hokkaido, Japan

Re: How many times can the NES change scrolling in a frame?

Post by Pokun »

BTW what is this older context of hardware text terminals? Googling only turns up either the Sega variant or scrolling of lines of text, smooth or not. In other words plain old normal scrolling.
User avatar
mikejmoffitt
Posts: 1353
Joined: Sun May 27, 2012 8:43 pm

Re: How many times can the NES change scrolling in a frame?

Post by mikejmoffitt »

"Line scroll" was standard in lots of arcade hardware, and Sega used it in the Megadrive because some arcade hardware design philosophy found its way into the Megadrive VDP, where scroll offsets per line, cell, or plane are first-class features.

However, "raster effects" is the common western term, so if you want people to understand you on a forum like this, just say "raster effects" - even if there's an argument that "line scroll" is a better term.
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Re: How many times can the NES change scrolling in a frame?

Post by Memblers »

Pokun wrote: Fri Apr 10, 2020 9:04 am BTW what is this older context of hardware text terminals? Googling only turns up either the Sega variant or scrolling of lines of text, smooth or not. In other words plain old normal scrolling.
I guess either way it's a TV scanline, or a line of text. Terminals have some useful scrolling features though. You can set a scroll region to do split-screen scrolling, gives you a fixed area on the top and/or bottom. There's an origin setting that can keep the cursor within the scrolling region.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: How many times can the NES change scrolling in a frame?

Post by lidnariq »

Pokun wrote: Fri Apr 10, 2020 9:04 am BTW what is this older context of hardware text terminals? Googling only turns up either the Sega variant or scrolling of lines of text, smooth or not. In other words plain old normal scrolling.
My hunch is that Koitsu was either referring to what the VT102 / VT220 manual calls "soft" (i.e. one scanline per vsync) vs "jump" (i.e. one character cell per vsync) scrolling. ( https://vt100.net/docs/vt102-ug/chapter3.html#S3.6.3.1 or https://vt100.net/docs/vt220-rm/chapter4.html#S4.6.11), because this concerns how lines scroll.

He might also have been referring to configuring the top and bottom "margins" ( https://vt100.net/docs/vt220-rm/chapter4.html#S4.13 or https://vt100.net/docs/vt102-ug/chapter5.html#S5.5.2.4 ), which allows scrolling of only a specifically subset of lines on-screen, because this concerns which lines scroll.
mikejmoffitt wrote: Fri Apr 10, 2020 11:05 am "Line scroll" was standard in lots of arcade hardware, and Sega used it in the Megadrive because some arcade hardware design philosophy found its way into the Megadrive VDP, where scroll offsets per line, cell, or plane are first-class features.
I wonder if, pedantically, narrowly, "line scroll" specifically meant "first-class scroll offset per scanline", and not DMA (i.e. SNES or Amiga) nor IRQ (everything else).
Post Reply