Post by Six on Jun 14, 2005 9:25:39 GMT -5
This was in response to some discussion about split screens and video modes on the V2, on CSDB. I thought it might be useful here as well.
"A 1/4th screen logo in the 8bpp mode would be like 16K.
Especially if a split is used to shift into another video mode for a scroller that uses fonts that uses some of the DTV enhancements in the v2 DTV."
This can be tricky. I tried to split the screen between 8bpp and FRED, but it didn't work.
At first I didn't understand why, but upon further investigation, it became clear. It may be possible to do this with some modulo tricks, but it will probably require having some dead lines or glitchy space that you have to cover somehow.
The video counters get their base at the beginning of each frame. There is no way to reset that base inframe. At the beginning of each line, the chip takes that base and calculates the current pixel address based on line#*usage.
For example...If you start with an 8bpp pic at $020000, and use a raster interrupt to switch into FRED mode at screen line $60, you would expect the data displayed in the FRED part of the screen to be from around $023980.
($60-$32=$2e*$140=$3980+our base of $020000= $023980)
It would be logical to expect that it would simply continue at the next address, but it won't.
Because the line address is calculated at the beginning of each line using the CURRENT mode as a reference, and FRED is 40 bytes per line instead of 320, you will actually be displaying data from around $020730, which is smack dab in the middle of your 8bpp logo.
You have to get creative with the modulo to combat this, or simply resign yourself to the machine's limitations and put your 8bpp logo at the bottom 1/4 of the screen because you're lazy, like me ;)
"A 1/4th screen logo in the 8bpp mode would be like 16K.
Especially if a split is used to shift into another video mode for a scroller that uses fonts that uses some of the DTV enhancements in the v2 DTV."
This can be tricky. I tried to split the screen between 8bpp and FRED, but it didn't work.
At first I didn't understand why, but upon further investigation, it became clear. It may be possible to do this with some modulo tricks, but it will probably require having some dead lines or glitchy space that you have to cover somehow.
The video counters get their base at the beginning of each frame. There is no way to reset that base inframe. At the beginning of each line, the chip takes that base and calculates the current pixel address based on line#*usage.
For example...If you start with an 8bpp pic at $020000, and use a raster interrupt to switch into FRED mode at screen line $60, you would expect the data displayed in the FRED part of the screen to be from around $023980.
($60-$32=$2e*$140=$3980+our base of $020000= $023980)
It would be logical to expect that it would simply continue at the next address, but it won't.
Because the line address is calculated at the beginning of each line using the CURRENT mode as a reference, and FRED is 40 bytes per line instead of 320, you will actually be displaying data from around $020730, which is smack dab in the middle of your 8bpp logo.
You have to get creative with the modulo to combat this, or simply resign yourself to the machine's limitations and put your 8bpp logo at the bottom 1/4 of the screen because you're lazy, like me ;)