Skip to content
Victor edited this page Aug 14, 2021 · 22 revisions

Video is very simple in the 32x compared to the Genesis VDP. First of all, only a frame buffer is used, so all drawing should be stright foreward, and linear. There has always been talk that the 32x has internal hardware for rotating and scaling, but this isn't true, all is done in software. The slave sh2 usually handles all complex video effects. The 32x video can also be appear on top, or on bottom of the Genesis VDP video, depending on 32x priority levels.

The Frame Buffer

The 32x has two memory sets for displaying graphics. When one memory location is used, graphics are displayed from that location, and no graphics are displayed for the other. These two different locations are called frame buffers, and are 128k bytes each. The 32x selects between them by writing to the VDP Status register, and the frame buffer select can only be changed at any time. When one frame buffer is used, then that frame buffer is displayed on the screen, and the other frame buffer is not displayed, but reads/writes can be made from the frame buffer memory space.

The difference between the frame buffer and the overwrite areas: Frame buffer: writing bytes of zero ignored, writing words of zero okay Overwrite: writing bytes or words of zero ignored

The first 256 WORDS are the line table... well, the first 240 since that's the maximum number of lines the SuperVDP can output (in PAL mode). Each word is an offset for the related line in the frame buffer. It's a WORD offset, not bytes. This means that using the line table for scrolling moves 256-color pixels by two pixels at a time. Because of that, the SuperVDP has a one pixel scroll setting. Note that Sega specifies that lines start at word 256 or higher. Clearly, you cannot start a line at 0 as that's the line table itself. Starting the first line at 256 puts you beyond the line table.

SuperVDP

The SuperVDP fill data is a single word that is repeatedly stored to the frame buffer. Please note that the fill cannot cross a 256 word boundary, and has a max length of 256 words. This makes it rather limited for use. With a little effort, you can use the fill hardware for solid poly raster line drawing... which is probably what Sega meant for the fill hardware. While the SH2 rasterizes the poly, the fill hardware actually draws the solid, single-color raster line. That's great for games like Virtua Racing. You can use it to clear the frame buffer, but you'll need to loop over filling sections of 256 words to fill the entire buffer. That may be the fastest way to clear the buffer, but whether or not it's the BEST way depends on the game. As mentioned before, you might not need to clear the buffer at all.

Another limitation: you cannot use SDRAM and fill at the same time. Only one SH2 can use the filler, MUST run from cart, and not access SDRAM while the fill is in progress. The other SH2 must not access SDRAM during that time as well.

Clone this wiki locally