Velocity9x 0.4.4
The S3 driver runs on a 486 with a Trio64 on VESA Local Bus, under Windows 95 — the first machine with no PCI bus at all.
What is new
Windows has nothing to enumerate on VESA Local Bus, so a PCI\VEN_ model can never bind. The s3 package now carries a second model with no hardware ID, pickable only by hand from Have Disk, which is Windows' own pattern for this — MSDISP.INF has eight such models. It advertises a 2 MiB-safe subset: the two rows the chips declare against 4 MiB and a 2 MB card cannot hold (16 bpp 1280x1024, 32 bpp 1024x768) are pruned before the install rather than refused at Enable, where the only symptom would be a black screen and a stage code.
Measured on the machine: enable-ok at 640x480x8, the linear aperture mapped at 0x7F000000, V9XHW.INI naming S3 Trio32/64 86C764 at 5333:8811 with 2 MB read from CR36 and the clock valid at 59.957 MHz.
Three bugs only that machine could expose
-
The chip-id read needed the extended-register locks open.
identify_without_pciwas the one S3 accessor ins3_regs16.cthat did not unlock CR38/CR39, defended by a real measurement that generalised a single lock state into a rule. Under Windows the state differs and the rule is false: CR2D/CR2E read5Ah/5Ahwhere DOS read88h/11h. Those are read-only chip-id registers, so the locks were the only variable. -
The manual-select model must name no mini-VDD. A Win9x display devnode is started by the VDD loading the mini-VDD named in
DEFAULT\minivdd. Ours does not load on Win95 4.00.950, so the devnode never reachedDN_STARTED, Device Manager reported Code 24 — "this device is not present" — Display Properties then offered no modes at all, and the desktop sat on the 4-bppvga.drvfallback row. The driver underneath was working the whole time; it was simply never asked to enable. PCI models keep their mini-VDD. -
Two AddReg lines were silently doing nothing, so the Velocity9x tab never appeared. Both key paths contain a space —
Controls FolderandShell Extensions— and Win95's SetupX will not parse an unquoted AddReg key path that does. It fails without a word: every other line of the same section applied. Both are now quoted, as Windows' ownMSDISP.INFquotes the same key.
Also in this release
- A driver that refuses every mode now says why.
ValidateModegates every mode onv9x_hardware_acceptableand recorded nothing when it said no — which is why the first of the three bugs above took a hand-loaded DRV, a registry export and a survey re-read to find. It now writes which condition refused, plus what the identify hook actually saw. - The VGA hardware survey at schema 2, which can identify an S3 with no PCI bus to scan. Released separately as
survey-v2.
Verified
- Physical 486, S3 Trio64 on VESA Local Bus, Windows 95 4.00.950 — the new path above.
- Physical S3 Trio64 on PCI, Windows 98 SE — unchanged from 0.4.3.
- 86Box Trio64 guest — full mode matrix, 11 of 11 modes
enable-ok, GDI pass on every one, palette pass on all four 8-bpp modes.
Still an engineering bring-up driver, not a release driver. Read docs/INSTALL.md first, and see CHANGELOG.md for the full detail.