James-F wrote:The overscan you are talking about is actually the frond and back porch which can be made smaller and used for more active pixels.
I disagree.
I think you are missing a 'phase'. Front porch and back ports are part of the horizontal sync pulses during the 'blank/retrace interval', see here: http://www.ni.com/white-paper/3020/en/
If you take the image you posted, yes there's the 'visible area' between front and back porch (but front and back porch should be reversed, I believe. front porch is before the hsync pulse, back porch after the hsync pulse, so front porch happens first after a scanline, and then the back porch. Then you get the colorburst, in NTSC, but VGA doesn't need that).
However, this is the visible area on the CRT. If you use the complete visible area, that is 'maximum overscan': you are drawing the maximum amount of pixels that the CRT can display (part of which will be 'lost' under the bezel of the monitor that covers the edges of the CRT).
However, the default resolutions have a smaller active window inside the visible area. So your standard 320x200, 640x480 etc resolutions aren't using the full visible area.
Therefore, the border is not part of the front/back porch, but is the area between front/back porch and the active display area, so basically the part of the visible area that is not part of the active display.
On CGA and EGA, the entire visible area takes on the background colour. On VGA, there's some extra registers to control how much of this border area should have the background colour, and how much should be black. The reason for this is probably because CGA and EGA make use of standard NTSC signal timing, and the front/back porch are mostly hardwired (you can only change the total hsync pulse width, but not the individual signals that happen inside this sync interval), where VGA has its own signaling, so there is no clear reference for how long a front porch or back porch should be. They may have thought it would be a good idea to keep it programmable.
James-F wrote:I think the game can report 320x200 resolution, have 340x220 active resolution in a 400x300 total pixels.
Something like that, yes. If by 'active resolution' you mean visible area.
James-F wrote:The overscan border in doom/wolf3d is not part of the 320x200 resolution of the game, is active pixels intruding to the porches.
A scanline for Wolf3D would look something like this:
back porch -> delay X pixels -> turn on background colour -> delay Y pixels -> turn on active display area -> delay 320 pixels -> turn off active display area -> delay Y pixels -> turn off background colour -> delay X pixels -> front porch/hsync pulse
The X-pixels thing is something unique to VGA, and is the reason why part of the border is still black. On CGA/EGA that would always be 0 pixels, and the entire visible area would be red (that is real CGA/EGA, not CGA/EGA software on a VGA system).
Here's an example of that on a real CGA system: https://youtu.be/Hq2-eY3OkSo
The scroller is the full 320 pixels width. The rasterbars are done by setting background colour, and therefore are full overscan, and cover the screen from bezel to bezel.