Just modified the behaviour of the Video Enable Register (3C3/46E8) to have seperate storage, being OR-ed with each other to determine if the VRAM and I/O ports (except the 3C3/46E8(selected by the CRTC register 34h bit 3), starting out at boot time having 46E8's bit set and 3C3 bit cleared (as 46E8 seems to imply that it's only used with hardware I/O ports). I've also modified the power-on bit 3 of CRTC register 34h to be set (thus selecting port 46E8 (which should be used for all non-motherboard VGA's)).
This seems to have the effect of allowing the Windows 98 hardware detection wizard to actually detect the ET4000/W32 when detecting the hardware!
So port 3C3 shouldn't be used with the ET4000/W32 (the bit in CRTC register 34h bit 3 should be set on powerup because it's a VGA card instead of motherboard internal card)?
As for register 3C3, Windows 98 and the BIOS seems to clear said bit 0 when starting up instead of leaving it enabled. Thus causing the card to disappear and being unable to POST properly. (the same thing happens during Windows 98 boot and hardware detection!).
The power-up value of those two registers are:
- Non-ET4000: 3C3 enabled, 46E8 disabled(if present).
- ET4000 chips: 46E8 enabled, 3C3 disabled.
Edit: Yay! After said fixed functionality, the ET4000/W32 is properly detected by the hardware detection wizard (because the hardware isn't disabled by port 3C3), while the accelerator is enabled when starting the GUI (and it's reading the version from register ECh!).
It's actually using the accelerator! And guess what? Corrupted fonts galore once again!
Edit: It's sprite address also starts at 60000h, only containing 0xAA bytes(only fully transparent pixels)? So that's the same as Windows 95 C (OSR 2.5) did?
So the Windows 98 (First Edition) issues with the accelerator are exactly the same as the Windows 95 ones?