noshutdown wrote on 2025-02-18, 03:47:
many of you may have been aware of a 360x480x256c mode, which seems odd but may have been derived from 720x400x16c text mode, using 28mhz crystal, and fits within 256kb of ram(each page takes ~170kb so no pageflip for 256kb ram). i think cirrus5320 is the only card with 256kb max that mentioned it in the datasheet, but vgamuseum benchmark showed that many cards with 256kb max could run quake in this mode.
The 360x480x256c mode works on every VGA-compatible card with any kind of VGA or SVGA monitor. Deriving it from the text mode is possible, but would require re-programming the vertical cycle from 400 to 480 lines. I'd rather derive it from the 640x480 graphics mode, changing the clock to 28MHz and re-programming the horizontal cycle to 720 pixels, and then switch from 16 colors to 256 colors. In the end, the amount of re-programming the card is very similar, and some software may have opted to initialize this mode completely without BIOS assistance by setting up all registers manually.
The biggest issue with all 256-color modes above 320x200 is the organization of video memory. The EGA/VGA technology uses very intricate hacks to map an 8-bit host bus (EGA was designed for the XT!) to a 32-bit memory bus, making the whole 64K words (of 32 bits each) visible in the 64K EGA map at A000-AFFF. The 320x200x256 mode on the VGA card is very convenient by (a) providing a flat view on the 64000 bytes of video memory actually used for that mode and (b) easily allow 16-bit and 32-bit data transfers on wider busses than the XT bus. The downside is that this mode does not allow page flipping, as only 64KB of video memory is visible - and that's where the complicated hacks come in. You can disable the "just show me a flat view of 64KB" mode and return to the EGA memory view to access all memory. This way to access the full video memory in 256-color mode is commonly called "Mode X". Whether "Mode X" also specifies a certain resolution, or just the memory access mode depends on who you ask. If "Mode X" is associated with a specific resolution (IIRC 320x200 with page-flipping or 320x240), you often also find the name "Mode Y" for a different resolution (360x480?). Some operations are faster in Mode-X-type modes, especially drawing long horizontal lines of a fixed color (and by extension drawing rectangles, and by further extension clearing the screen), as well as copying data inside video memory. "Accelerated" copying data inside video memory was very interesting on 8-bit EGA cards, but usually is worse than just re-copying from system memory on modern 16-bit cards (CL-GD542x, TVGA-8900D, ET4000). On the other hand, just drawing bitmaps is more complicated on that mode, and Mode X is very unfriendly to 16-bit or 32-bit video memory access, so Mode X typically is slow.
So for SVGA cards with banking and flat-memory 256-color modes, providing even the standard VGA tweaked like 320x240 or 360x480 as VESA modes would have made a lot of sense. IIRC Quake 1 is very happy to use them on VESA-2.0-capable cards that provides them, and they are usually faster than the Mode-X based variants of those resolutions.
noshutdown wrote on 2025-02-18, 03:47:
this led me to several low resolution vesa modes that could have been useful(rather than 360x480x256c with odd aspect ratio), all used in quake2 as standard, why weren't they developed by vga chip vendors early?
SuperVGA cards just competed on the resolutions they could run Windows 3.1 or AutoCAD on, not on gaming modes. People didn't care about low-res Super-VGA modes when VESA modes were specified. They started to care slightly when high-color and true-color arrived, because early cards could only handle them at low resolution. So we face the usual chicken-and-egg issue here: Hardware didn't provide low-res 256-color modes, so no software was developed for them. OTOH, as there was no software demand, VGA vendors didn't care about implementing them in their BIOS.
noshutdown wrote on 2025-02-18, 03:47:
can be derived from 1024x768x16c mode using 45 or 65mhz crystal.
con: slower, 1024x768x16c crystals only started to appear on 512kb cards.
I've seen a couple of SVGA cards that had a 44.9 crystal at 256KB, and did 1024x768 at 4 colors with it.