Here are some pictures of the undocumented VDP register at $C0001C in action. The layout of this 16-bit, write-only register is:
MSB LSB -gfe ---d cba- ----The description of the seven control bits (A through G) can be found here: To test the function of each bit, I used two 6-button controllers in tandem. While not shown here, the pictures are named on the button combinations used, which is:
MSB LSB -gfe ---d cba- ---- MXYZ SACB MXYZ SABC <- Buttons used Pad #2 Pad #1I may update this page in the future with results from mode 4, but I need to work on that more.
Default image, no bits set. The white dots at the bottom are palette flicker caused by reloading CRAM during VBlank, as some of the bits cause CRAM to corrupt over time when set.
All layers off. The vertical stripes are caused by interference, which to my knowledge is because the Genesis doesn't have a very good RGB to composite video converter in it. The problem is much more severe in this mode (320 pixels) than in the lower resolution 256 pixel mode. You can adjust the amount of interference somewhat through VDP register $0C.
DCB = 010
High priority plane B tiles are filled
with a solid blue color and the white strips are palette flicker.
(which go all the way down the screen) Plane A and B are off, but the
outline of the high priority plane A tiles can be seen printed in the
regular intensity backdrop color. Also, where the shadow/hilight
operators in the column of 5 sprites overlap the background, the
background pixels can be seen, but in the wrong colors.
DCB = 011
Both background planes are off, and now sprites have an outline in
some color taken from CRAM, but it isn't the backdrop color. Notice
that it is the same as what the high priority plane B tiles are colored
in with, in the previous picture.
DCB = 100
Sprites off, but they are drawn in the regular intensity backdrop color.
Notice the garbage in the overscan area is affected by H scrolling from plane A,
and is printed in 16-pixel columns.
The garbage printed in the sides is much different from what's printed
in the top and bottom border areas.
DCB = 101
Not only does this setting disable plane B and sprites, but it seems
to disable shadow/hilight processing too.
DCB = 110
This setting makes it look like all the planes have been logically OR'd together.
DCB = 111
Sprites and plane A disabled, plane B enabled.
Notice that shadow/hilight processing has been disabled too.
The first column has the wrong scroll value, it actually cannot be
controlled in the 2-cell V scroll mode. Most all games end up masking
this column to compensate, but some games (Shadow of the Beast) do not.
GFE = 111
The sprite disable bits in action.
They all have the same results, even when combined.
A = 1
The entire playfield is filled with garbage. Sprites are visible but
use the same invalid patterns. Notice how the background data repeats,
as if the virtual screen size was too big. (like 128 or more columns)
AD = 11
Almost the same as above, but this setting shows graphics data in the
entire display, except for the horizontal and vertical blanking periods.