* 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.
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:
- Copy
\\HOST\TOOLS\mouse-driver\VBMOUSE.EXEtoC:\and add aC:\VBMOUSE.EXEline toC:\AUTOEXEC.BAT. - Windows Setup (or Control Panel → Mouse → General → Change → Have
Disk) → browse to
\\HOST\TOOLS\mouse-driver→ pick VBMouse int33 absolute mouse driver. - 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 6–9; 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:
- Copy
\\HOST\TOOLS\agent\W95TOOLS.EXEtoC:\WINDOWS\. - Drop a shortcut to it in
C:\WINDOWS\Start Menu\Programs\StartUpso 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).