Understanding the VDP's scrolling capabilities.
Posted: Wed Mar 31, 2010 6:19 pm
I am perusing through every technical document I can find for the Genesis presently. I thought that TmEE co. had told me a couple of years ago that the Genesis/MD VDP had specific scrolling capabilities within its own processing ability (read: not CPU intensive). In researching the Genesis VDP I have found Charles MacDonald's "Sega Genesis VDP documentation Version 1.5f (genvdp.txt)" most helpful.
In this document, under sections "Horizontal Scrolling" and "Priority" MacDonald makes some interesting points that appear to be native to the VDP itself. The "Horizontal Scrolling" section implies that the VDP handles locally whether either background A or B is scrolled full screen, split at the first 8 lines and then full screen, individual 8 line rows, or individual lines. If this is the case, it also implies that the 68000 is impacted by the effect of "parallax" very little or not at all.
Similarly, under "Priority", MacDonald states plainly:
"The VDP manages a fairly complex system of priorities between the two
background layers and sprites. The basic ordering is:
(back) (front)
A > B > C > D > E' > F' > G'
' = Denotes high priority
A = Backdrop color
B = Low priority plane B
C = Low priority plane A
D = Low priority sprites
E = High priority plane B
F = High priority plane A
G = High priority sprites"
This implies a minimum of four planes that might be placed above one another by a skilled game designer. This would be significant, as the Genesis is known to have produced more than eight independently scrolling backgrounds, called "fake" parallax by those who do not consider the effect significant.
If I am reading MacDonald's document correctly, this means that the Genesis, in actuality, could produce a minimum of four independently scrolling *and* overlapping background planes, which were quite ingeniously seen only by VRAM as two and handled locally by the much maligned Genesis/MD VDP.
In the history of video games, this makes sense of the fact that more Genesis games use multi-scrolling backgrounds than SNES or TG16 games do. Despite their available CPU capabilities, or technical background layers, no system but the Genesis displays as many scrolling layers, by at least a factor of 2, as top Genesis software.
Premise: If the effect was hard coded and available, developers would have "naturally" been inclined to test it and enable it in production software. If the effect required hand coding and optimization, the effect would have played second or third fiddle to effects that were hard coded into the hardware.
So: TG16 and SNES games display fewer background scrolling layers, and more colors than comparable Genesis software. (Premise broken, SNES PPU's HDMA does the same thing as the VDP)
Example games with the effect:
Sonic 2, Aquatic Ruin, 10 scrolls plus palette swap line for water.
Layer A is the player ground and palette swap line.
Layer B is the foreground foliage (can see layer A through leaves)
Layer B is also split into 9 scrolls behind Layer A
Over half of the layers scroll at independent speeds smoothly
Some of the scrolls in the foliage behind layer A scroll every other frame.
Ranger X, First Level, 7 scrolls
Layer A is the player ground
Layer A is is the mid range background including:
1 Hillside scroll behind brick wall
2 Ruins Wall at base of mountain range (every 2-3 frames)
3 Mountain Range with city being bombed (every 2-3 frames)
Layer B is large bricks in front of player ground
Layer B is brick wall behind player ground
Layer B is far background with mountain range and sunset
Lightening Force L1 4-6 scrolls on screen including line scroll water as 1
Layer A is multiple cloud scrolls in front and behind Layer B clouds
Layer A is Rocks in foreground at bottom of playfield
Layer A is clouds scroll in front of Layer B mountain range at center
Layer A is clouds scroll behind Layer B mountain range at center
Layer B is multiple cloud scrolls overlapped with Layer A clouds at top
Layer B is mountain range at center
Layer B is line scroll water at bottom behind Layer A rocks
Shinobi III L1 5 Scrolls sprites connect trunks in 4th with tree tops
Layer A is player ground which doubles for foreground tree cover at top
Layer B is 4 scrolls:
Grass behind player ground
Grass with dirt patches behind scroll 1
Grass with tree trunks behind scroll 2 and tree cover at top of screen
Far background forest
Redzone
Redzone mixes sprites with Layer A & B to complete the rotating ground effect, the FMV in the intro, and the "high color" title screen. It seems like no image is complete without all layers on.
Batman & Robin L1 just two layers with line scrolling in both
Layer B is linescrolled building and player ground
Layer A is line scrolled smoke/fog and overlayed "shadow/Hilight"
Shadow/Hilight effect darkens entire layer B
MUSHA Intro 6-7 scrolls on screen at once
Layer A is characters and objects
Layer B is 5 mountain range scrolls
Layer B is far background (doubles as reflection on glasses)
For Ristar L1 I count 10 eight line scrolls plus one line scroll
Layer A is player ground
Layer B is the following scrolls:
Green leaves behind player ground
Purple foliage behind green leaves scroll
Pastel treeline with linescrolling water
Pink mountain range
Far background mountain range
Clouds bottom layer top
Cloud middle layer top
Clouds top layer top
Bimini Run - one background is eight line scrolls to the horizon
Waves animate to appear like scaling
Only one layer represents the waves
The waves change palettes to indicate water depth near islands
Animated sprite transitions are as smooth as they come
Rings of Power: 9 cloud layers forced scrolled, 1 far forest, play ground
No testing on A/B layers yet.
To be analyzed:
Contra HardCorps
Castlevania Bloodlines
Formula 1 (Domark)
Kawasaki Superbike
Mickey Mania
Newman Haas IndyCar
Road Rash
Sonic 3D Blast
Street Racer (E)
Toy Story
In this document, under sections "Horizontal Scrolling" and "Priority" MacDonald makes some interesting points that appear to be native to the VDP itself. The "Horizontal Scrolling" section implies that the VDP handles locally whether either background A or B is scrolled full screen, split at the first 8 lines and then full screen, individual 8 line rows, or individual lines. If this is the case, it also implies that the 68000 is impacted by the effect of "parallax" very little or not at all.
Similarly, under "Priority", MacDonald states plainly:
"The VDP manages a fairly complex system of priorities between the two
background layers and sprites. The basic ordering is:
(back) (front)
A > B > C > D > E' > F' > G'
' = Denotes high priority
A = Backdrop color
B = Low priority plane B
C = Low priority plane A
D = Low priority sprites
E = High priority plane B
F = High priority plane A
G = High priority sprites"
This implies a minimum of four planes that might be placed above one another by a skilled game designer. This would be significant, as the Genesis is known to have produced more than eight independently scrolling backgrounds, called "fake" parallax by those who do not consider the effect significant.
If I am reading MacDonald's document correctly, this means that the Genesis, in actuality, could produce a minimum of four independently scrolling *and* overlapping background planes, which were quite ingeniously seen only by VRAM as two and handled locally by the much maligned Genesis/MD VDP.
In the history of video games, this makes sense of the fact that more Genesis games use multi-scrolling backgrounds than SNES or TG16 games do. Despite their available CPU capabilities, or technical background layers, no system but the Genesis displays as many scrolling layers, by at least a factor of 2, as top Genesis software.
Premise: If the effect was hard coded and available, developers would have "naturally" been inclined to test it and enable it in production software. If the effect required hand coding and optimization, the effect would have played second or third fiddle to effects that were hard coded into the hardware.
So: TG16 and SNES games display fewer background scrolling layers, and more colors than comparable Genesis software. (Premise broken, SNES PPU's HDMA does the same thing as the VDP)
Example games with the effect:
Sonic 2, Aquatic Ruin, 10 scrolls plus palette swap line for water.
Layer A is the player ground and palette swap line.
Layer B is the foreground foliage (can see layer A through leaves)
Layer B is also split into 9 scrolls behind Layer A
Over half of the layers scroll at independent speeds smoothly
Some of the scrolls in the foliage behind layer A scroll every other frame.
Ranger X, First Level, 7 scrolls
Layer A is the player ground
Layer A is is the mid range background including:
1 Hillside scroll behind brick wall
2 Ruins Wall at base of mountain range (every 2-3 frames)
3 Mountain Range with city being bombed (every 2-3 frames)
Layer B is large bricks in front of player ground
Layer B is brick wall behind player ground
Layer B is far background with mountain range and sunset
Lightening Force L1 4-6 scrolls on screen including line scroll water as 1
Layer A is multiple cloud scrolls in front and behind Layer B clouds
Layer A is Rocks in foreground at bottom of playfield
Layer A is clouds scroll in front of Layer B mountain range at center
Layer A is clouds scroll behind Layer B mountain range at center
Layer B is multiple cloud scrolls overlapped with Layer A clouds at top
Layer B is mountain range at center
Layer B is line scroll water at bottom behind Layer A rocks
Shinobi III L1 5 Scrolls sprites connect trunks in 4th with tree tops
Layer A is player ground which doubles for foreground tree cover at top
Layer B is 4 scrolls:
Grass behind player ground
Grass with dirt patches behind scroll 1
Grass with tree trunks behind scroll 2 and tree cover at top of screen
Far background forest
Redzone
Redzone mixes sprites with Layer A & B to complete the rotating ground effect, the FMV in the intro, and the "high color" title screen. It seems like no image is complete without all layers on.
Batman & Robin L1 just two layers with line scrolling in both
Layer B is linescrolled building and player ground
Layer A is line scrolled smoke/fog and overlayed "shadow/Hilight"
Shadow/Hilight effect darkens entire layer B
MUSHA Intro 6-7 scrolls on screen at once
Layer A is characters and objects
Layer B is 5 mountain range scrolls
Layer B is far background (doubles as reflection on glasses)
For Ristar L1 I count 10 eight line scrolls plus one line scroll
Layer A is player ground
Layer B is the following scrolls:
Green leaves behind player ground
Purple foliage behind green leaves scroll
Pastel treeline with linescrolling water
Pink mountain range
Far background mountain range
Clouds bottom layer top
Cloud middle layer top
Clouds top layer top
Bimini Run - one background is eight line scrolls to the horizon
Waves animate to appear like scaling
Only one layer represents the waves
The waves change palettes to indicate water depth near islands
Animated sprite transitions are as smooth as they come
Rings of Power: 9 cloud layers forced scrolled, 1 far forest, play ground
No testing on A/B layers yet.
To be analyzed:
Contra HardCorps
Castlevania Bloodlines
Formula 1 (Domark)
Kawasaki Superbike
Mickey Mania
Newman Haas IndyCar
Road Rash
Sonic 3D Blast
Street Racer (E)
Toy Story