(Just trying to figure out how the four-screen stuff in some games was done. And why <lol> )
It has to do with the VDC and the VCE.
The VCE has a fixed NTSC frame. 262 or 263 scanlines (depends on the filter bit you select) and fixed 15.7khz hsync. The VCE provides both the vsync and hsync triggers for the VDC, but originally the VDC can be setup to build out all sorts of resolutions. But as is, it's running in slave mode. There are VDC regs to change this, but you'll get screen roll since it won't read VCE timings anymore and thus out of sync.
Even though the VDC is running in slave mode, you still have to define a 'VDC' frame inside the VCE frame work.
HSW = horizontal sync pulse width (in VDC pixel clocks)
HDS = horizontal display start ( offset to the active part of scanline for BG/SPRITE output)
HDW = the width of the active VDC displayable part of the scanline
HDE = the ending gap between HDW and HSW.
So it works like this: HSW is a period where the VDC waits (does nothing) for the hsync trigger from the VCE. Once the trigger is initiated from the VCE, the VDC immediately leaves HSW state and goes into HDS phase. So you can put a large number in HSW and it shouldn't effect the active displacement of the visible VDC data on the scanline (bg/sprite). If for some reason the VDC doesn't get a trigger from the external device (VCE) by the time HSW ends, it automatically goes to HDS phase. Like wise, if the VDC gets an hsync trigger from the VCE anywhere else in the scanline position, it will end the display of the scanline and start a new one.
Thus, you can have more than 1 VDC active scanline per 'VCE' scanline. But don't forget, the RCR counter also gets incremented. Thankfully the VDC can be setup for up to a total of 512 scanlines, so you have enough logic to display 480 scanlines. The vertical height of the frame works in the same way. If the VDC ends the frame height earlier than the VCE defines, It'll start to draw the next frame on the same window until the VCE comes along and forces the VDC current state to end the frame (vsync).
Most games set the horizontal resolution of the VCE to 10.74mhz dot clock but with the standard 5.37mhz dot clock frame settings on the VCE, to get the famous 4 screen mode. But you don't need to do that. I mean, you have to rely on the VCE higher dot clock setting to setup all sorts of combinations on the VDC output. You could change the resolution of the VCE mid scanline too, but that's more complicated as you then need to sync the CPU exactly with the VDC (even 1 cpu cycle jitter will be noticed). The only way I know of doing that is to get the VDC to stall the CPU. During sometime in hblank of the VDC, it's processing sprite data and fetching from vram. If the cpu writes more than the 1 WORD fifo, the VDC stalls the CPU. It gets pretty complicated to setup (I've only generalized the details).
There's also something else to make note on; the VDC doesn't take the whole scanline to fetch and setup the sprites for the next scanline (like the Genesis and SNES do). It does ALL of it in the hblank time of the scanline. That's pretty damn impressive in itself, but that's not the point. The point is, if you start to shorten that time/window - the VDC won't process all the sprites for that scanline. It'll start dropping them in pairs (IIRC, not single 16x16 cells). Just something to keep in mind if you plan on doing dual VDC scanline setup.
The other thing to make note of, is that the SATB entries apply to both 'scanlines' on the VCE scanline. So you can't change any X/Y positions between scanlines (only when SATB dma happens in vblank do they get changed). The way around this is to have every other 'row' of sprite pixels as transparent (all 00's). Use even Y coords for the right side and off Y coords for the left side. That way right side sprites won't show on the left side and vice versa (I've messed around with this quite a bit). The down side is that you still have to deal the 256 sprite pixel limit over both windows (this becomes more clear once you start messing with this).
(Please forgive any typos. Don't have time to go over the post at the moment)