Personal Tech

It's 2021 and someone's written a new Windows 3.x mouse driver. Why now?

For those of you who virtualise Microsoft’s finest and struggle with the pointer, this developer has an answer

Two thousand and twenty-one might not seem the obvious year – or century – to give the world a new mouse driver for Windows 3.1, but a developer named Calvin Buckley has written one nonetheless. His motivation apparently is to ensure rapid and reliable rodent operations when Microsoft's venerable OS runs as a virtual machine.

Buckley's day job is developing software for IBM's i platform. A bio states he once ported the .NET framework Mono to help IBM i developers run .NET programs on i.


Buckley also codes as GitHub's NattyNarwhal, and in that capacity seems to have spent the Thanksgiving holiday posting a project titled "vmwmouse" that offers a VMware mouse driver for Windows 3.x.

"Running Windows 3.1 in VMware …. but annoyed by having to grab and ungrab the cursor manually?" Buckley asks in the project's README. "Wish you could just move the cursor in and out like a modern OS (one with USB tablet support or VMware Tools drivers), with no Ctrl+Alt dancing? Or want to control your cursor at all under the ESXi web UI?"

His answer to those questions is: "With this driver, now you can." The video below displays the driver in action.

Youtube Video

The driver does its magic by using VMware tools – a collection of utilities Virtzilla offers to help vAdmins, and by replacing the existing PS/2 mouse driver.

Buckley explains that writing a mouse driver poses considerable challenges.

"Normally, mice work by sending a delta of their movements. You'd have to trap the mouse inside of the guest for this to work; any tracking difference would result in a very hard to control cursor. Being able to send the absolute coordinates would be great, because you can know the exact point when the cursor hits the edge."

But Buckley observes there was no way to send those coordinates until USB came along, and Windows 3.x comes from a time before USB.

Buckley's post goes into considerable detail about the fine art of plotting mouse positions, how Windows 3.x and VMware handle mouse input, the vagaries of Intel's '286 and '386 processors, and the Microsoft Macro Assembler (MASM).

He rated the project "surprisingly easy, considering I didn't know x86 assembly before".

"I only implemented this in a day – with lots of struggling against MASM and typos."

Those of us who spent the weekend overeating salute you, Mr Buckley. ®

Send us news

NASA has MOXIE, but rivals reckon they can do better for oxygen on Mars

Food and fuels, too? Totally not sounding like a Star Trek replicator

Microsoft to drop price for Teams Rooms, add free Basic tier for SMBs

Hardware still required – plus tolerance for visiting the office and remote collaboration

Ransomware attack on UK water company clouded by confusion

Clop gang thought it hit Thames Water – but real victim was elsewhere

Deluge of of entries to Spamhaus blocklists includes 'various household names'

Nastymail tracking service blames sloppy sending practices for swelling lists of dangerous mailers

Janet Jackson music video declared a cybersecurity vulnerability

Another reason not to play 1989's Rhythm Nation – it messes with some hard disk drives

Two thirds of DNS queries for IPv6 hosts sent to Chinese resolvers fail, researchers find

Network boffins can't say why, suggest not using the worst providers

That was fast: MetaGuard emerges as an 'incognito mode' for the metaverse

As if the VR giants will let that stand – worth a try, though

Google, Apple squash exploitable browser bugs

Chrome flaw has public exploit, WebKit hole actively abused along with kernel escalation

Airbnb turns its anti-partying tech on American lodgers

Looking to book a large house on a weekend? You'll have to clear a few hurdles

Software developer cracks Hyundai car security with Google search

Top tip: Your RSA private key should not be copied from a public code tutorial

After 7 years, long-term threat DarkTortilla crypter is still evolving

.NET-based malware can push wide range of malicious payloads, and evades detection, Secureworks says

Rocket Lab to search for signs of life in the clouds of Venus

As promised, Peter Beck is sending a Photon next year. Because he can