VOGONS


Reply 60 of 200, by ALEKS

User metadata
Rank Newbie
Rank
Newbie

Hi root42,

I checked the datasheet of the ICS2494 IC. It seems to be compatible with the dual PLL frequency synthesizer made by Chrontel CH9294.
I have the datasheet for the Chrontel CH9294 IC, if it is of any help.

PS: I have just seen that I made a labelling error in my schematic. I listed the dual clock generator as CH9194 which is a part designation that doesn't exist. I already corrected the error on schematic, Gerber files, and article text.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | Tseng Labs ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 61 of 200, by root42

User metadata
Rank l33t
Rank
l33t

Got it. And there are also multiple variants of the CH9294, but I gather we need the E variant.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 62 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Windows 98 managed to reinstall correctly it seems.
Somehow it's detected the ET4000 as a plain VGA instead (Windows 95 detected it correctly out of the box)?
I didn't do a clean install, although I selected it to install anyway when it detected the previous installation?
(Confirmed by detlog.txt in the C drive that says it's detected a VGA, not a ET4000/W32 or even a ET4000 at all? Perhaps some weird Tseng detection that's failing?).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 63 of 200, by ALEKS

User metadata
Rank Newbie
Rank
Newbie

Yes, CH9294E variant is required in PDIP-20 package.
To my knowledge, the G version is mostly in SMD package. And it is not compatible with this design.

I think in my case, Windows 98 detected the card as plain VGA as well. I forced the drivers to ET4000/W32i later on.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | Tseng Labs ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 64 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Hmmm.... Just thinking. Can't you put 3 simple transistors as OR-gates for those duplicate address (Address 17-19) lines? If those are added, you would add XT bus compatiblity to the card? Don't know anything about the exact specs of said transistors, though? Or am I missing something here?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 65 of 200, by ALEKS

User metadata
Rank Newbie
Rank
Newbie

It might be possible to make an 8-bit ISA variant of the card but I think it is not worth it. This is one of the best ISA card-class video chips and it should be used at maximum potential. An XT machine would barely reach 1 Mb RAM (in most cases having 640 K or less) and small processing power compared to a 386DX or a 486DX/2 CPU-based machine. The ET4000/W32i chip would mostly be idling around.

But yes, I think the card could be easily converted to a dual 8-bit/16-bit ISA interface system. I would skip transistors though and use buffer OR-gate ICs instead. Less complexity and more elegant looks. I haven't studied the 8-bit requirements though. Maybe some other chip pins need to be tied in different configurations. And hopefully the BIOS already treats 8-bit mode.

Now that you have mentioned it, I will take a look at the datasheet and see how easy (or hard) would it be to adapt the card to 8-bit. However, I don't have plans to do an 8-bit version. I would choose another video display controller chip for 8-bit operation. Maybe the Tseng Labs ET4000AX? That is fast as well and does not have an integrated 2D accelerator. A generic schematic diagram is already presented in the Tseng Labs datasheet for the ET4000AX chip. That could be a good foundation for a new design.

At some point in time I would like to try Sergey's XI 8088 singleboard computer design. Maybe then I would also think about an 8-bit ISA video card.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | Tseng Labs ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 66 of 200, by LightStruk

User metadata
Rank Member
Rank
Member
ALEKS wrote on 2021-04-14, 20:33:

If superfury manages to correctly emulate the ET4000/W32i chip in software, then there is a good possibility of translating all that implementation into a couple of CPLDs (Verilog most probably) or better an FPGA. That would make for a nice project. I think an FPGA core implementation of the Tseng chip would successfully even run Half-Life 1. Even with my card I get around 7-15 fps in HL1, over ISA, in the lowest resolution possible.

I'm pretty sure that the ao486 MiSTer core includes an FPGA implementation of the ET4000 already. I don't know how faithful it is, but they point users to the ET4000 drivers for Windows 9x, so it must be pretty close. I'm not aware of anyone putting just that part of the core onto an ISA card with a smaller, cheaper FPGA. It would be a very simple card electrically, since a modern FPGA would be able to incorporate the ET4000, the RAM, the ISA bus interface (with some level translators), the VGA output, the clock generator, and probably even the BIOS. DVI would be trivial to include as well, since the MiSTer outputs that too.

Reply 67 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Managed to switch the drivers to ET4000/W32 in Windows 98. It tells me that the video drivers aren't configured properly?

The required registers for the ET4000 detection are implemented as mentioned in previous posts, but Windows 98 isn't even writing to them or trying to use them at all (not even 3CD(The Segment Select)/3CB(Extended segment select) or the extended CRTC registers or any other extended Tseng registers for that matter)?
The KEY also isn't set by Windows it seems?

What is my Tseng chip emulation missing? KEY is emulated(both set and clear). KEY protection as we've tested in this and my thread is also implemented. Port 3CD/3CB is also emulated. All video modes on 95(except stuff w/ accelerated rendering fails) are emulated.
Anyone?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 68 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Btw, tried searching on Google on the way those laddr pins work compared to the addr pins, but can't find anything on those? Also, anyone knows how the 1MB(lower pins) vs upper 15M(1MB lower pins as well as the upper 3 addressing pins) are used when addressing past 1MB? Below 1MB it seems simple(upper pins are cleared), but when addressing past 1MB, 8-bit cards would read an address below 1MB instead? Thus incorrectly decoding addresses(e.g. 1A0000 would map to VRAM?)?
Anyone knows what happens on the ISA slot in this case?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 69 of 200, by weedeewee

User metadata
Rank l33t
Rank
l33t
superfury wrote on 2021-04-16, 17:36:

Btw, tried searching on Google on the way those laddr pins work compared to the addr pins, but can't find anything on those? Also, anyone knows how the 1MB(lower pins) vs upper 15M(1MB lower pins as well as the upper 3 addressing pins) are used when addressing past 1MB? Below 1MB it seems simple(upper pins are cleared), but when addressing past 1MB, 8-bit cards would read an address below 1MB instead? Thus incorrectly decoding addresses(e.g. 1A0000 would map to VRAM?)?
Anyone knows what happens on the ISA slot in this case?

fyi, http://www.hardwarebook.info/ISA has some info about isa bus timing

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 70 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++
weedeewee wrote on 2021-04-16, 18:23:
superfury wrote on 2021-04-16, 17:36:

Btw, tried searching on Google on the way those laddr pins work compared to the addr pins, but can't find anything on those? Also, anyone knows how the 1MB(lower pins) vs upper 15M(1MB lower pins as well as the upper 3 addressing pins) are used when addressing past 1MB? Below 1MB it seems simple(upper pins are cleared), but when addressing past 1MB, 8-bit cards would read an address below 1MB instead? Thus incorrectly decoding addresses(e.g. 1A0000 would map to VRAM?)?
Anyone knows what happens on the ISA slot in this case?

fyi, http://www.hardwarebook.info/ISA has some info about isa bus timing

Hmmm... So basically, if SBHE(with pull-up resistor on it's line to correctly detect a XT bus transfer) isn't low when BALE lowers(it's a XT transfer instead of AT), then SA17-SA19 are to be used (with A20-A23 set to low)), otherwise the lines used currently are used? Is that correct (SBHE isn't connected on a XT, thus must be pulled high)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 71 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Just adjusted the i430fx/i440fx memory controller a bit, so that the VRAM has priority over RAM(although going against the documentation of it's DRAM controller). So if the extended VRAM window(above 1MB, so at 4/8/12MB) is enabled, it will overrule the RAM that's at said location(if enough RAM is installed, always happening when 16MB or more is installed).
Edit: Another slight improvement making VRAM reads and writes have priority over ROMs. So that they will be able to be used when mapped over ROM addresses as well(especially at a base address of C00000(1000000(1MB or 4MB, depending on IMA port being enabled or not))).
Although modern architectures don't have anything mapped there, AT does(the BIOS ROM).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 72 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Hmmm.... Now, I see that Windows 98 seems to enable the extensions and writes CRTC registers, but nothing that's not normal? (like writing to KEY protected registers without the KEY set).
I do see it setting to 6Bh, then to 43h, but the third write doesn't occur at all(resetting to 6Bh)? So it starts without the accelerator enalbed?
And for some reason it keeps complaining about the hardware not working properly?\

I do see (during the boot screen displaying) it enabling the extensions and write the registers though?

Edit: I also see it writing the CRTCB/Sprite control (vaule 0x02) and Image Port Control (value 0x60) registers with documented values (although disabled).
Finally it's disabling the extensions and entering graphics mode.

This is what Windows 98 says:

1426-Problems with main display adapter.png
Filename
1426-Problems with main display adapter.png
File size
14.22 KiB
Views
1039 views
File comment
Problems with 'main display adapter'?
File license
Fair use/fair dealing exception

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 73 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Hmmm.... I do have the IRQ line of the ET4000/W32 (actually all EGA graphics cards and up) for IRQ 11 instead of the usual 9 (due to IRQ conflicts with the MPU-401 at IRQ 9).
Would that be a problem in this case? (Don't know if Windows actually uses it or not)

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 74 of 200, by ALEKS

User metadata
Rank Newbie
Rank
Newbie

Vertical retrace IRQ should not be in use on VGA cards. To my knowledge, there is no benefit for enabling it.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | Tseng Labs ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 75 of 200, by weedeewee

User metadata
Rank l33t
Rank
l33t
superfury wrote on 2021-04-19, 00:44:

1426-Problems with main display adapter.png

Nice. 😀
Unable to find hardware revision ?
any info on the resources tab ?

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 76 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++
weedeewee wrote on 2021-04-22, 10:18:
Nice. :-) Unable to find hardware revision ? any info on the resources tab ? […]
Show full quote
superfury wrote on 2021-04-19, 00:44:

1426-Problems with main display adapter.png

Nice. 😀
Unable to find hardware revision ?
any info on the resources tab ?

Well, what I do know is that it sets the mode and writes and polls the registers on the ET4000/W32 (including setting the default values in the Sprite/CRTC registers), but it never ever reads the version register (register 0xEC bits 4-7)? Neither does it seem to check for the 3CB register? I see the MMU registers bits (bits 5&3)of register 36h being toggled at the start, but immediately toggled back to a value that's compatible (value 0x43).
Nothing special is seen on the other registers, them all being cleared only (other than the configuration of CRTC registers 32h/36h/37h)?

OK. I see:
6Bh=>CRTC 36h
43h=>CRTC 36h
08h=>CRTC 34h
00h=>CRTC 31h
00h=>CRTC 35h
00h=>CRTC 33h
43h<=CRTC 36h
43h=>CRTC 36h
F7h=>port 217A
60h=>port 217B
EFh=>port 217A
02h=>port 217B
00h=>Segment select register
00h=>Extended bank register
00h=>ATC 16h
00h=>ATC 17h
GUI starts

With => being a write to a port, <= being a read from an I/O port.
Although just those mentioned ports are monitored, nothing more.

Booting GUI still says that the "display adapter isn't function properly" and requests to start the hardware detection wizard (which won't detect anything other than a plain VGA, with no changes in graphics card when already installed for ET4000/W32).

Edit: Some more info:

1428-Some more ET4000_W32 Windows 98 info1.png
Filename
1428-Some more ET4000_W32 Windows 98 info1.png
File size
11.91 KiB
Views
979 views
File comment
Some more info on ET4000/W32 on Windows 98 #1
File license
Fair use/fair dealing exception
1430-Some more ET4000_W32 Windows 98 info2.png
Filename
1430-Some more ET4000_W32 Windows 98 info2.png
File size
16.87 KiB
Views
979 views
File comment
Some more info on ET4000/W32 on Windows 98 #2
File license
Fair use/fair dealing exception

DirectX isn't installed, so installing that now for more info.
Edit: The Tseng ET4000/W32 BIOS seems to do much the same when setting video modes (at least from the 217A/217B accesses onwards)?

The BIOS does the following:
<=36h
<=34h
<=31h
Then followed by the same as above during Windows 95's boot:
F7h=>port 217A
60h=>port 217B
EFh=>port 217A
02h=>port 217B
00h=>Segment select register
00h=>Extended bank register
00h=>ATC 16h
00h=>ATC 17h

Then, during video set 640x480x256 boot screen:
43h<=CRTC 36h
6Bh=>CRTC 36h
43h=>CRTC 36h
08h<=CRTC 34h
08h=>CRTC 34h
00h<=CRTC 31h
00h=>CRTC 31h
00h=>CRTC 35h
00h=>CRTC 33h
00h=>CRTC 3Fh
43h<=CRTC 36h
43h=>CRTC 36h
F7h=>port 217A
60h=>port 217B
EFh=>port 217A
02h=>port 217B
00h=>Segment select register
00h=>Extended bank register

Then after that it repeats all those (exactly the same) immediately after and then continues the boot process with other drivers?

Then, further when booting:
43h<=CRTC 36h
6Bh=>CRTC 36h
43h=>CRTC 36h
08h<=CRTC 34h
08h=>CRTC 34h
00h<=CRTC 31h
00h=>CRTC 31h
00h=>CRTC 35h
00h=>CRTC 33h
00h=>CRTC 3Fh
43h<=CRTC 36h
43h=>CRTC 36h
F7h=>port 217A
60h=>port 217B
EFh=>port 217A
02h=>port 217B
00h=>Segment select register
00h=>Extended bank register
(the same as the previous time so far)
00h=>ATC 16h
00h=>ATC 17h
GUI displays itself at this point.

So it keeps doing the same actions, never actually reaching all completion? Although, during the boot screen it seems to abort the ATC register writes to register 16h and 17h(the only exception)?

That was the boot directly afte DirectX 8 was installed (after it's request to reboot the computer to apply).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 77 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

About the code 23, a quick search tells me nothing I can do anything about:
https://www.error.info/windows/monitor-display-23.html

So apparently it's a problem with a "alternative display adapter"? But it's the only one showing in the device manager?

Edit: Running dxdiag (after installing DirectX 8 ) shows the Video tab entirely missing? Windows 98 is running in Normal mode (not safe mode).
So the video card is 100% disabled, although used in a minimal VGA-compatible way only (only one possible video mode, which can't be changed) to be able to display anything at all (the 16 color 640x480 mode it's using).

Although I'm using the stock Windows 98 ET4000/W32 driver.
Which driver are you using?

Edit: Managed to run Microsoft System Information tool from dxdiag. It gave me this:

40-dxdiag running msinfo.png
Filename
40-dxdiag running msinfo.png
File size
12.08 KiB
Views
925 views
File comment
dxdiag running msinfo
File license
Fair use/fair dealing exception
41-msinfo displaying information about the ET4000_W32 device.png
Filename
41-msinfo displaying information about the ET4000_W32 device.png
File size
19.39 KiB
Views
925 views
File comment
msinfo displaying error information
File license
Fair use/fair dealing exception
42-msinfo displaying information about the ET4000_W32 device scrolling right NR1.png
Filename
42-msinfo displaying information about the ET4000_W32 device scrolling right NR1.png
File size
17.02 KiB
Views
925 views
File comment
msinfo displaying error information, scrolled right partways
File license
Fair use/fair dealing exception
43-msinfo displaying information about the ET4000_W32 device scrolling right NR2.png
Filename
43-msinfo displaying information about the ET4000_W32 device scrolling right NR2.png
File size
13.26 KiB
Views
925 views
File comment
msinfo displaying error information, scrolling right entirely
File license
Fair use/fair dealing exception

Edit: Hmmm... I see the low ROM areas in there (look at the Memory Address Range fields). This is because the i430fx/i440fx motherboard has set those areas to map to PCI instead of RAM, but the emulator is instead mapping them to RAM anyways (because no hardware responded to said address range) instead of aborting the memory access like it should! That's a problem showing itself!
It was also accessing SMRAM when not allowed to through the VRAM mapping when the VRAM window is disabled in the video card! So addresses A0000-BFFFF would read and write to SMRAM when the SMRAM itself was disabled in the setting on the chipset (which of course shouldn't be allowed)!
And the registers for the C0000-FFFFF memory range was always reading and writing to said memory range, instead of properly mapping those to PCI(although it was doing that), the PCI mapping was remapping it back to the actual memory backing it! So the OS would actually read and write it as normal RAM instead of the proper shadowing being applied (writes to PCI failing, reads from RAM working)!
Edit: No changes with the bugfix.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 78 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Just tried something else with Windows 98. I've changed the emulated card to ET4000AX instead of ET4000/W32. Windows 98's Add new hardware wizard (according to detlog.txt while it's stil running) seems to detect it correctly (unlike ET4000/W32)?

Details
Checking for: S3 801/805/928/864/964 Display Adapter
QueryIOMem: Caller=DETECTS3801, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: S3 Display Adapter
QueryIOMem: Caller=DETECTS3, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Western Digital VGA Display Adapter
QueryIOMem: Caller=DETECTWDDESKTOP, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Western Digital Laptop VGA Display Adapter
QueryIOMem: Caller=DETECTWDLAPTOP, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: XGA Display Adapter
QueryIOMem: Caller=DETECTXGA, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: XGA/2 Display Adapter
QueryIOMem: Caller=DETECTXGA2, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Tseng Labs W32 Display Adapter
QueryIOMem: Caller=DETECTTSENGW32, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Tseng Labs Display Adapter
QueryIOMem: Caller=DETECTTSENGW128, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Compaq Qvision Display Adapter
QueryIOMem: Caller=DETECTQV, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Compaq Advanced VGA Display Adapter
QueryIOMem: Caller=DETECTAVGA, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Chips & Technology Accelerated Display Adapter
QueryIOMem: Caller=DETECTCT545, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Matrox MGA Display Adapter
QueryIOMem: Caller=DETECTMATROX, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Compaq Qvision 2000 Display Adapter
QueryIOMem: Caller=DETECTCPQ2000, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Tseng Labs ET4000 Display Adapter
QueryIOMem: Caller=DETECTTSENG, rcQuery=0
IO=3b0-3bb,3c0-3df
Detected: *PNP0906\0000 = [19] Tseng Labs ET4000
IO=3b0-3bb,3c0-3df
Mem=a0000-affff,b8000-bffff
Checking for: ATI VGA Wonder Display Adapter
QueryIOMem: Caller=DETECTWONDER, rcQuery=2
IO=3b0-3bb,3c0-3df
Checking for: Oak Technology VGA Display Adapter
QueryIOMem: Caller=DETECTOAK, rcQuery=2
IO=3b0-3bb,3c0-3df
Checking for: Trident VGA Display Adapter
QueryIOMem: Caller=DETECTTRIDENT, rcQuery=2
IO=3b0-3bb,3c0-3df
Checking for: Chips & Technology Super VGA Display Adapter
QueryIOMem: Caller=DETECTCTSVGA, rcQuery=2
IO=3b0-3bb,3c0-3df
Checking for: Video Seven VGA Display Adapter
QueryIOMem: Caller=DETECTV7, rcQuery=2
IO=3b0-3bb,3c0-3df
Show last 8 lines
Checking for: Standard VGA Display Adapter
QueryIOMem: Caller=DETECTVGA, rcQuery=2
IO=3b0-3bb,3c0-3df
Checking for: Default Standard VGA Display Adapter
QueryIOMem: Caller=DETECTASSUMEVGA, rcQuery=2
IO=3b0-3bb,3c0-3df
Checking for: Ungermann Bass NIUPC Network Adapter

So at least the ET4000 part of the chip should be emulated correctly?

There's only a handful of changes on the ET4000AX for the W32 extensions (in this case literally implemented as an extension to a ET4000AX). Mostly some added CRTC registers (and slight modifications to CRTC register 36h/37h behaviour) and new I/O ports (3CB and 217A/217B) being enabled. And of course the modified KEY behaviour (requiring only unsetting one of those two bits in the mode control bits instead of an exact value to not be set). Also register 32's interleaved bit being added. And the interrupt source. And actual enabling of the 1M/4M VRAM window instead of the legacy VGA ones. And contiguous mode being disabled (register 36h bit 5) because of it's changed behaviour.

Edit: For comparison, this is what the ET4000/W32 does during Windows 95C install:

Details
Checking for: XGA Display Adapter
QueryIOMem: Caller=DETECTXGA, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: XGA/2 Display Adapter
QueryIOMem: Caller=DETECTXGA2, rcQuery=0
IO=3b0-3bb,3c0-3df
Checking for: Tseng Labs W32 Display Adapter
QueryIOMem: Caller=DETECTTSENGW32, rcQuery=0
IO=3b0-3bb,3c0-3df
Detected: *PNP0912\0000 = [10] Tseng Labs ET4000/W32
IO=3b0-3bb,3c0-3df
Mem=a0000-affff,b8000-bffff,c0000-c7fff
Checking for: Ungermann Bass NIUPC Network Adapter
1431-ET4000AX correctly detected.png
Filename
1431-ET4000AX correctly detected.png
File size
12.96 KiB
Views
907 views
File comment
ET4000AX correctly detected.
File license
Fair use/fair dealing exception

I even saw it probing the extended ET4000/W32 bank register (I/O port 3CB), but failing it, thus detecting a ET4000AX instead (which is correct for said testcase (It's a ET4000AX rev E that's emulated)).
Edit: Hmmm.... While the ET4000AX is installed and switching to the W32 version causes dxdiag to also lose the Video page (just like it did with the W32 drivers)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 79 of 200, by superfury

User metadata
Rank l33t++
Rank
l33t++

Hmmm.... Looking at the System Properties shows that the ET4000 drivers are running, while the ET4000/W32 ones are disabled because the ET4000 are in charge of the W32 adapter?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io