Scali wrote:That's one way to look at it. The other way (the one I generally use) is that it's a dumbed-down version of VGA. It supports VGA […]
Show full quote
TheGreatCodeholio wrote:From what little I've gathered, MCGA is a weird superset of CGA hardware that can also do 640x480 monochrome and 320x200 256-color graphics modes.
That's one way to look at it. The other way (the one I generally use) is that it's a dumbed-down version of VGA. It supports VGA monitors, and the 640x480 and 320x200 modes that VGA offers, and the VGA palette.
However, it lacks the 'fancy' stuff that was introduced with EGA and VGA, so it has no hardware scrolling, no ALU, etc. So it basically acts much like CGA did: little more than a dumb framebuffer. As such, it is neither EGA- nor VGA-compatible (and has only limited BIOS-level CGA compatibility, like EGA/VGA do).
Many games support 'MCGA/VGA', because MCGA is a nice 'lowest common denominator' between the two: any MCGA code also works on any VGA-compatible hardware. Most PC games from that era didn't use any fancy scrolling, ALU or other trickery.
If it was just VGA with missing features, I'd call it that.
According to the PS/2 and VGA graphics book I have (the only one I have that even documents some of the MCGA registers!) the register set is more CGA-like than VGA. It has the VGA-like DAC registers (if fractint source code is correct), but also has CGA compatible CRTC registers with additional registers specific to the MCGA, and it has a "mode" register that is like CGA. There are also references to hardware state that suggests it counts scanlines including the top/bottom of the hardware cursor as if 200-line CGA and then it doubles the scanlines in hardware. The description implies that it only has 64KB of video RAM, and that video memory is mapped to B8000-BFFFF like CGA with B0000-B7FFF holding the character generator RAM in text modes (though in a very strange format).
Having the actual hardware on hand would verify this is true, as well as fill out all the details of MCGA since even the book has holes in it's documentation.
DOSBox-X project: more emulation better accuracy.
DOSLIB and DOSLIB2: Learn how to tinker and hack hardware and software from DOS.