There was additional fun when XFree86 started showing up in that new Linux thing around 97, roughly around Bo in Debian. Around that time you needed to do some math to figure out the dot clock rate for your CRT. If you got it a little wrong, you'd need to Ctrl-Alt-F1 into a text terminal to try again; more wrong and the deflection coils would buzz louder; really wrong (allegedly) you could burn them out.
I can't recall where, however I remember reading a super-interesting blog post of an old-time linux user complaining about his video card not being able to drive his displays.
He "solved" the issue by lowering the video card refresh rate (60hz -> 30hz) -- iirc.
Can't find that post anymore, but I always wondered if that approach would have allowed me to dive more displays with my integrated intel gpu. I was unable to go further than three 1920x1200 external displays (I had to sacrifice the fourth display, the laptop's built-in display)
You could do a lot with weird modelines in Xfree86.
I had not enough VRAM in a computer to do 16 bit 1024x768 but the difference was tiny. I think it needed a few tiny buffers for the mouse cursor and dragdropped icon, which was advanced 2d hardware acceleration at the time (Onion, belt, ...),and whatever memory was left just did not make it by a hair.
So I wrote a custom modeline to create an absolutely nonstandard videomode. I think the only requirement was that vert and horiz resolution were divisible by 4, so I did 1000 by 752 or something like that.
You had to make sure the dot clock was acceptable, or you could physically damage the CRT. Scary. So I did the calculations and tripple checked everything, then started a custom config with my thumb on the power button. It worked.
I remember setting it up on a 386SX laptop with 3 megs RAM, back in late 93 or so. I could barely get X to load. Massive amounts of swapping. Fortunately I got a 486 a few months later.
Yes, you were misremembering. The 386SX had an MMU. However it had 32-bit internals, like the DX, but 24-bit address space (16 meg limit) and 16-bit memory access.
yes, my original computer was a 486/66 with 4 MB of RAM. It could not run emacs + g++ + X11 and a terminal all at the same time without swapping. Eventually, I upgraded it to 32MB and it "flew". Was a great lesson in swap performance and RAM upgrades.
https://wiki.debian.org/DebianBo