VOGONS


First post, by nezwick

User metadata
Rank Newbie
Rank
Newbie

I have acquired an Acer 1120SX PC and it is the first 386 in my collection. And let me tell you, it has been an adventure! I have so far "hackulated" the Dallas RTC to install a CR2032, installed DOS 6.22 and WFW 3.11, and I do have networking working and sound at least partially working.

The last major piece of the puzzle is a driver for the onboard video card. It's not an ISA card, but rather it's connected to the motherboard with a proprietary interface and may have been a factory option. The number on the chip is Acer M3125. I have found a few mentions of the card on the internet (and here at Vogons) but nowhere seems to have drivers for it.

This picture (credit to The Retro Web) is identical to the board I'm working with. The VGA board is at the bottom. Interestingly enough, my 1120SX motherboard has all those little green wires added onto it as well. I thought they were "repairs" made a long time ago, but it looks like they were done at the factory? Either way, a new concept to me.

1120sx-5fc0cefe3603f074384560.jpg

My goal here is to be able to use all the colors and resolutions in Windows. Right now I seem to be limited to 16 colors, or whatever default is, with the built-in Windows VGA driver. I also would LOVE to set the refresh rate to 72, 75, or 85 Hz, but there seems to be no way to change that in Windows.

Any help is much appreciated.

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 1 of 24, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

How much video RAM is there?
I suspect 256 KB, so don't expect much more than plain VGA.
800 x 600 x 16 might work, though - try the "Super VGA (800x600, 16 colors)" driver provided with Windows.

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 2 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie

Yes, HWiNFO reports 256 kb of video memory. It just identifies it as "Color VGA" and can't pull any other info.

Thank you for your suggestion. Here's what happens.

Super VGA (640x480, 16 colors):
This Windows 3.1 SuperVGA display driver does not support
your video adapter. Please contact the video adapter's manufacturer
for the correct driver. In the meantime, use Windows Setup to select
a different display type, such as VGA.

Super VGA (800x600, 16 colors) and also the same for (640x480, 256 colors):
An error occurred while trying to initialize the video adapter.

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 3 of 24, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

You can try this to find if the BIOS supports any modes above VGA:
SNOOP.EXE: (S)VGA adapter info tool and CRT Terminator config utility

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 4 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie

That looks like a neat utility. I'll give it a run tonight and report back the results!

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 5 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie

Well I tried running SNOOP and I can't get it to work. It starts, the screen flashes a few times, and then nothing. After a few minutes I have to CTRL+ALT+DEL to reset the PC.

I tried connecting a newer monitor, thinking maybe the program is trying to test some modes/resolutions that the retro monitor does not support, but got the same result.

Is there a minimum memory requirement for SNOOP? This PC only has 2 megabytes of RAM. I have another 2 mb on order so I'll soon have a total of 4. WIndows 3.11 does not run correctly on just 2 mb.

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 6 of 24, by Babasha

User metadata
Rank Oldbie
Rank
Oldbie

Try UniVBE for DOS - it supports wide array of early videocards and gives info about it (can change the standard refresh rates and adjust geometry on CRT monitors)

Need help? Begin with photo and model of your hardware 😉

Reply 7 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie
Babasha wrote on 2024-03-21, 13:17:

Try UniVBE for DOS - it supports wide array of early videocards and gives info about it (can change the standard refresh rates and adjust geometry on CRT monitors)

I will check that out!

On a semi-related tangent, I've definitely used the SciTech Display Doctor utility before! I worked on a project a long time ago where I needed to have Windows 95 running in a VirtualBox VM. SciTech Display Doctor was the only way I could figure out how to get the display driver working in the VM.

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 8 of 24, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
nezwick wrote on 2024-03-21, 12:35:

Well I tried running SNOOP and I can't get it to work. It starts, the screen flashes a few times, and then nothing. After a few minutes I have to CTRL+ALT+DEL to reset the PC.

SNOOP indeed seems to do more than is necessary here.

I've quickly coded something simpler, hopefully more compatible - see the attachment.
To see results, redirect the output to a file, eg.:

trymodes > tmpfile.txt

If the last mode set is 19, then it's a plain VGA, at least at the BIOS level.
But if there's something beyond, it may be worthy of further investigation...

Attachments

  • Filename
    trymodes.zip
    File size
    2.66 KiB
    Downloads
    26 downloads
    File license
    Public domain

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 9 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie

Appreciate it! Here is the output from trymodes:


Setting mode 0... OK
Setting mode 1... OK
Setting mode 2... OK
Setting mode 3... OK
Setting mode 4... OK
Setting mode 5... OK
Setting mode 6... OK
Setting mode 7... OK
Setting mode 8... wrong, mode is 7
Setting mode 9... wrong, mode is 7
Setting mode 10... wrong, mode is 7
Setting mode 11... wrong, mode is 7
Setting mode 12... wrong, mode is 7
Setting mode 13... OK
Setting mode 14... OK
Setting mode 15... OK
Setting mode 16... OK
Setting mode 17... OK
Setting mode 18... OK
Setting mode 19... OK
Setting mode 20... wrong, mode is 19
Setting mode 21... wrong, mode is 19
Setting mode 22... wrong, mode is 19
Setting mode 23... wrong, mode is 19
Setting mode 24... OK
Setting mode 25... OK
Setting mode 26... wrong, mode is 25
Setting mode 27... wrong, mode is 25
Setting mode 28... wrong, mode is 25
Setting mode 29... wrong, mode is 25
Setting mode 30... wrong, mode is 25
Setting mode 31... wrong, mode is 25
Setting mode 32... wrong, mode is 25
Setting mode 33... OK
Setting mode 34... wrong, mode is 33
Setting mode 35... OK
Setting mode 36... OK
Setting mode 37... wrong, mode is 36
Setting mode 38... OK
Setting mode 39... wrong, mode is 38
Setting mode 40... OK
Setting mode 41... wrong, mode is 40
Setting mode 42... wrong, mode is 40
Setting mode 43... wrong, mode is 40
Setting mode 44... wrong, mode is 40
Setting mode 45... wrong, mode is 40
Setting mode 46... wrong, mode is 40
Setting mode 47... wrong, mode is 40
Setting mode 48... wrong, mode is 40
Setting mode 49... wrong, mode is 40
Setting mode 50... wrong, mode is 40
Setting mode 51... wrong, mode is 40
Setting mode 52... wrong, mode is 40
Setting mode 53... wrong, mode is 40
Setting mode 54... wrong, mode is 40
Setting mode 55... wrong, mode is 40
Setting mode 56... wrong, mode is 40
Setting mode 57... wrong, mode is 40
Setting mode 58... wrong, mode is 40
Setting mode 59... wrong, mode is 40
Setting mode 60... wrong, mode is 40
Setting mode 61... wrong, mode is 40
Setting mode 62... wrong, mode is 40
Setting mode 63... wrong, mode is 40
Setting mode 64... wrong, mode is 40
Setting mode 65... wrong, mode is 40
Setting mode 66... wrong, mode is 40
Setting mode 67... wrong, mode is 40
Setting mode 68... wrong, mode is 40
Setting mode 69... wrong, mode is 40
Setting mode 70... wrong, mode is 40
Setting mode 71... wrong, mode is 40
Setting mode 72... wrong, mode is 40
Setting mode 73... wrong, mode is 40
Setting mode 74... wrong, mode is 40
Setting mode 75... wrong, mode is 40
Setting mode 76... wrong, mode is 40
Setting mode 77... wrong, mode is 40
Setting mode 78... wrong, mode is 40
Setting mode 79... wrong, mode is 40
Setting mode 80... wrong, mode is 40
Setting mode 81... wrong, mode is 40
Setting mode 82... wrong, mode is 40
Setting mode 83... wrong, mode is 40
Setting mode 84... wrong, mode is 40
Setting mode 85... wrong, mode is 40
Setting mode 86... wrong, mode is 40
Setting mode 87... wrong, mode is 40
Setting mode 88... wrong, mode is 40
Setting mode 89... wrong, mode is 40
Setting mode 90... wrong, mode is 40
Setting mode 91... wrong, mode is 40
Setting mode 92... wrong, mode is 40
Setting mode 93... wrong, mode is 40
Setting mode 94... wrong, mode is 40
Setting mode 95... wrong, mode is 40
Setting mode 96... wrong, mode is 40
Setting mode 97... wrong, mode is 40
Setting mode 98... wrong, mode is 40
Setting mode 99... wrong, mode is 40
Setting mode 100... wrong, mode is 40
Setting mode 101... wrong, mode is 40
Setting mode 102... wrong, mode is 40
Setting mode 103... wrong, mode is 40
Setting mode 104... wrong, mode is 40
Setting mode 105... wrong, mode is 40
Setting mode 106... wrong, mode is 40
Setting mode 107... wrong, mode is 40
Setting mode 108... wrong, mode is 40
Setting mode 109... wrong, mode is 40
Setting mode 110... wrong, mode is 40
Setting mode 111... wrong, mode is 40
Setting mode 112... wrong, mode is 40
Setting mode 113... wrong, mode is 40
Setting mode 114... wrong, mode is 40
Setting mode 115... wrong, mode is 40
Setting mode 116... wrong, mode is 40
Setting mode 117... wrong, mode is 40
Setting mode 118... wrong, mode is 40
Setting mode 119... wrong, mode is 40
Setting mode 120... wrong, mode is 40
Setting mode 121... wrong, mode is 40
Setting mode 122... wrong, mode is 40
Setting mode 123... wrong, mode is 40
Setting mode 124... wrong, mode is 40
Setting mode 125... wrong, mode is 40
Setting mode 126... wrong, mode is 40
Setting mode 127... wrong, mode is 40

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 10 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie
Babasha wrote on 2024-03-21, 13:17:

Try UniVBE for DOS - it supports wide array of early videocards and gives info about it (can change the standard refresh rates and adjust geometry on CRT monitors)

UNIVBE just reports the following:

Supported video card not detected - installation aborted.

And when I try the "force" switch, nothing from Acer is listed in the list of supported "forcible" cards anyway. Looks like this might be a dead end.

THEN I found a utility called VINFO.EXE, but when I tried to run that, it says "not enough memory".

So another scenario where the low amount of RAM haunts this project. My additional 2 megabytes should arrive tomorrow.

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 11 of 24, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
nezwick wrote on 2024-03-21, 23:20:
Setting mode 24... OK Setting mode 25... OK Setting mode 33... OK Setting mode 35... OK Setting mode 36... OK Setting mode 38... […]
Show full quote

Setting mode 24... OK
Setting mode 25... OK
Setting mode 33... OK
Setting mode 35... OK
Setting mode 36... OK
Setting mode 38... OK
Setting mode 40... OK

So it isn't a plain VGA after all...
But what are those extra modes? Text or graphics?
BIOS probably can't tell, and I don't want to touch any registers...
So, run the attached program, and watch the blinking cursor: if it's there, it must be text mode.

Also, can your monitor display info like HSYNC/VSYNC frequencies of the input signal?
I suspect the card can do 800 x 600 x 16, at 35.1 kHz HSYNC and 56 Hz VSYNC.
All we need is to find that mode's number, and pass it to the "Super VGA (800x600, 16 colors)" Windows driver, instead of the "106":

- Super VGA VESA Mode 6Ah

Some Super VGA adapters support higher monitor-refresh rates at
800x600 resolution with a special VESA mode. If both your video
adapter and monitor support a higher refresh rate and if you are
using the Super VGA driver, you may be able to get better video
results by including the following setting in the [display] section
of the SYSTEM.INI file:

svgamode=106

If you encounter problems using this mode, delete this setting from
the SYSTEM.INI file, and then restart Windows.

Attachments

  • Filename
    trymode2.zip
    File size
    2.72 KiB
    Downloads
    23 downloads
    File license
    Public domain

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 12 of 24, by Jo22

User metadata
Rank l33t++
Rank
l33t++

NSSI can test for hidden video modes, too. Not sure if its being helpful, though. 🙁

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 13 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie

So I ran TRYMODE2 this morning, and here's what happened.

It flips through all the modes as expected, and the first few I can see on the screen, but then the screen just goes to "sleep" like it's no longer receiving a signal. At no point in the process do I see a blinking cursor though.

I tried it on the "retro" CRT (analog controls, no OSD menu) a "newer" CRT (with OSD menu), as well as an LCD. The TRYMODE2 cycles through the modes way too fast for me to use the monitor menu to observe each resolution or refresh rate.

Not exactly sure what else to do next.

I did run NSSI, per Jo22's suggestion, and here are some screenshots of that.

IMG_0731.JPEG
Filename
IMG_0731.JPEG
File size
953.66 KiB
Views
897 views
File license
Fair use/fair dealing exception
IMG_0732.JPEG
Filename
IMG_0732.JPEG
File size
1007.37 KiB
Views
897 views
File license
Fair use/fair dealing exception
IMG_0733.JPEG
Filename
IMG_0733.JPEG
File size
997.94 KiB
Views
897 views
File license
Fair use/fair dealing exception
IMG_0734.JPEG
Filename
IMG_0734.JPEG
File size
1.05 MiB
Views
897 views
File license
Fair use/fair dealing exception

And here you will see the LCD monitor informs us that the resolution being used here is 720x400 @ 70 Hz. I've never seen that resolution before. It's not like a normal 640x480 or 800x600.

IMG_0735.JPEG
Filename
IMG_0735.JPEG
File size
1.12 MiB
Views
897 views
File license
Fair use/fair dealing exception

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 14 of 24, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie
nezwick wrote on 2024-03-22, 15:19:

And here you will see the LCD monitor informs us that the resolution being used here is 720x400 @ 70 Hz. I've never seen that resolution before. It's not like a normal 640x480 or 800x600.

That's VGA text mode.
VGA uses a 9x16 pixel font with 80x25 characters:

9 x 80 = 720
16 x 25 = 400

Reply 15 of 24, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
nezwick wrote on 2024-03-22, 15:19:

So I ran TRYMODE2 this morning, and here's what happened.

It flips through all the modes as expected, and the first few I can see on the screen, but then the screen just goes to "sleep" like it's no longer receiving a signal. At no point in the process do I see a blinking cursor though.

I tried it on the "retro" CRT (analog controls, no OSD menu) a "newer" CRT (with OSD menu), as well as an LCD. The TRYMODE2 cycles through the modes way too fast for me to use the monitor menu to observe each resolution or refresh rate.

Strange...
Modes 0 to 19 are standard VGA, should work without problems.
0, 1, 2, 3, 7 are text modes - the blinking cursor should be visible.
And TRYMODE2 is supposed to wait for the Enter key on any mode that's successfully set.
You're running TRYMODE2 normally, without any redirection, right?

I did run NSSI, per Jo22's suggestion, and here are some screenshots of that.

Nothing new, it lists modes 18h..28h, same as 24..40.

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 16 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie
Grzyb wrote on 2024-03-22, 16:44:

And TRYMODE2 is supposed to wait for the Enter key on any mode that's successfully set.
You're running TRYMODE2 normally, without any redirection, right?

My stupid mistake - I was not actually running TRYMODE2.EXE. I wrote it to a diskette and then never moved that disk to the other PC - so I was still running the first program TRYMODES. It really pays to pay attention to what I'm doing!

TRYMODE2 does work the way you said it would. Here are my results. Blinking cursor YES/NO

Mode 0 YES 720x400 70Hz
Mode 1 YES 720x400 70Hz
Mode 2 YES 720x400 70Hz
Mode 3 YES 720x400 70Hz
Mode 4 NO 720x400 70Hz
Mode 5 NO 720x400 70Hz
Mode 6 NO 720x400 70Hz
Mode 7 YES 720x400 70Hz
Mode 13 NO 720x400 70Hz
Mode 14 NO 720x400 70Hz
Mode 15 NO 720x350 70HZ
Mode 16 NO 720x350 70Hz
Mode 17 NO 640x480 60Hz
Mode 18 NO 640x480 60 Hz
Mode 19 NO 720x400 70Hz

The next few are completely garbled/ unreadable on the screen

Mode 35 NO 800x600 56Hz

A few more unreadable and then the program exits

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 17 of 24, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
nezwick wrote on 2024-03-22, 19:00:

Mode 35 NO 800x600 56Hz

This must be what we're looking for.
Now, select "Super VGA (800x600, 16 colors)" in Windows, and add:

svgamode=35

to the [display] section of SYSTEM.INI

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 18 of 24, by nezwick

User metadata
Rank Newbie
Rank
Newbie

Well I think I have reached the end of the line for this project. It has become clear that the hardware is absolutely not capable of doing what I want it to do. But I want to thank you all for all your help, Gryzb especially - I learned a ton here.

See, all throughout this discussion I thought that the "16" in 640x480x16 meant 16-bit color, not *literally sixteen* colors. I had never heard of such a thing as only 16 colors, aside from like the default mode on Win9x when the video driver is missing.

The higher resolution isn't as important, since 640x480 in Windows 3.11 looks fine, but I was trying to achieve a normal looking set of colors plus a higher refresh rate like 70 or 72. Clearly this graphics chip is not capable of ANY of that.

Then, I found a Trident TVGA9000i graphics card w/ 512k of memory in my parts stash and installed it in the machine. It is from 1994 (with the computer being from 1991) so I expected 3 years of progress to mean a lot more capabilities. This card is slightly better, but it seems to have basically the same type of limitations. Even with legitimate Trident drivers installed, the colors are still not satisfactory. According to the datasheet for this card, it can still only do 256 colors maximum. It's classified as a "budget" type graphics adapter and I guess that's true.

So now I wonder, what type of graphics card do I need to get in order to get the normal 16- or 32-bit color modes in Windows? Was that a luxury back in those days that required an expensive high-end card?

Obviously this project is "before my time" so I'm having a bit of a hard time grasping some of the restrictions of this older hardware. I more-or-less got "into computers" when the average graphics card was around 64 megabytes and AGP. It is clear that I definitely took things like 800x600, 1024x768, and 32 bit color for granted.

XP: A64 3000+ S754 / 2GB DDR / 500GB SATA / Audigy1
2K: AXP 1700+ @ 1.61 / 1GB DDR / 120GB IDE / X800XL / Audigy 2ZS
98SE: P3 500 / 512MB SDR / 120GB IDE / V3 3000 AGP / Vortex2
95: P200 MMX / 32MB SDR / 3.2GB IDE
DOS/3.11: Acer 1120SX, 386SX-20

Reply 19 of 24, by darry

User metadata
Rank l33t++
Rank
l33t++

So now I wonder, what type of graphics card do I need to get in order to get the normal 16- or 32-bit color modes in Windows? Was that a luxury back in those days that required an expensive high-end card?

The short answer to the second question is yes. Until the mid 1990s or so.

VGA did 256 colors only in 320x200.
Early SVGA of the affordable variety did 256 colors in higher resolutions.

If you want to have an idea of what even a card with a 15-bit DAC (32768 colors) cost in the early 90s, you can check old computer magazine ads in Google book search or Archive.org .

Additionally, considering the performance and relative market segment of a 386SX machine with onboard graphics, support for anything more than 256 colors was unlikely, AFAIK.

A late vintage ISA SVGA card with 24/32 bit color support could be added to this system, but keep in mind that a 20MHz 386SX won't be that fast at 640x480 in 8-bit (256 colors). 16-bit (655536 colors) needs twice as much bandwidth. 10 frames per second in 8-bit color at that resolution needs 3MB per second. 16-bit color would need 6MB per second. ISA bus bandwidth is a bottleneck. Only use cases that I see are a paint program and displaying still images.