Files
windows95/guest-tools
Felix Rieseberg d38355ff16 Auto-map \\HOST to Z: from the W95TOOLS guest agent (#364)
* Auto-map \\HOST to Z: from W95TOOLS at login

W95TOOLS.EXE now calls WNetAddConnectionA("\\\\HOST\\HOST", NULL, "Z:")
on a short retry timer (5 tries, 3s apart) so the shared folder shows up
as a drive without a trip through Start -> Run. MPR.DLL is LoadLibrary'd
so the EXE keeps its USER32/KERNEL32-only import table and still launches
if MPR is somehow absent. Skipped if Z: is already taken; gives up
silently if no share is configured.

Works for any user folder because the SMB server's tree-connect already
routes every share name other than TOOLS/IPC$ to the user share; added a
comment in server.ts pointing at the dependency.

Verified by cold-booting the image with the new vs. old binary in
StartUp: new -> tree connect to \\HOST\\HOST within ~5s of desktop and
z:\ opens in Explorer; old -> no SMB traffic after 55s at desktop.

* Drop rebuilt W95TOOLS.EXE from the diff

Binary will be rebuilt and baked into the image alongside the next
default-state re-bake; keep this PR source-only.

* Stop tracking guest-tools/agent/W95TOOLS.EXE

It's a build output of `make -C guest-tools/agent` and CI doesn't
consume it (the disk image is baked out-of-band), so there's no reason
to carry the binary in git.
2026-04-12 09:16:54 -07:00
..

guest-tools

Files and folders in this directory are exposed read-only inside the VM at \\HOST\TOOLS (alongside the synthetic _MAPZ.BAT and README.TXT). Drop drivers and utilities here that you want available from within Windows 95.

mouse-driver/ — seamless mouse (VBADOS)

VBMOUSE.EXE (DOS TSR) + VBMOUSE.DRV (Windows 3.x/9x driver) from VBADOS by Javier S. Pedro, GPLv2. Talks to v86's VMware mouse backdoor (port 0x5658) so the Windows 95 cursor tracks the host cursor pixel-for-pixel without pointer lock.

Install inside the guest:

  1. Copy \\HOST\TOOLS\mouse-driver\VBMOUSE.EXE to C:\ and add a C:\VBMOUSE.EXE line to C:\AUTOEXEC.BAT.
  2. Windows Setup (or Control Panel → Mouse → General → Change → Have Disk) → browse to \\HOST\TOOLS\mouse-driver → pick VBMouse int33 absolute mouse driver.
  3. Reboot. The app detects the driver and stops grabbing pointer lock; ESC still toggles lock for games that want raw relative input.

agent/ — W95TOOLS guest agent

W95TOOLS.EXE is a hidden-window agent that talks to the emulator over the VMware backdoor (port 0x5658). Currently it bridges Windows 95's CF_TEXT clipboard to the host (legacy backdoor commands 69; host side is src/renderer/clipboard.ts, which polls Electron's clipboard) and auto-maps \\HOST\HOST to Z: at login via WNetAddConnection, so the shared folder shows up as a drive without a trip through Start → Run. It's also where time sync, host-initiated shutdown, and a tray icon will live when those land.

Install inside the guest:

  1. Copy \\HOST\TOOLS\agent\W95TOOLS.EXE to C:\WINDOWS\.
  2. Drop a shortcut to it in C:\WINDOWS\Start Menu\Programs\StartUp so it runs on login.

Copy text on either side and it appears on the other within ~250 ms. Text only; conversion is Windows-1252 ↔ UTF-8 with CRLF ↔ LF, capped at 64 KB. Built from w95tools.c with Open Watcom v2 — make -C guest-tools/agent (needs Docker).