Robbbert wrote on 2023-12-16, 04:04:
I'm looking for a windows mouse driver that supports the mouse wheel on WFW 3.11, via the PS/2 port . If vbados can't do this then we can stop here.
To the best of my knowledge, VBADOS is the only one capable for PS/2 , as it implements a bunch of hacks required to do that. You can see a bit of the discussion here -- https://github.com/NattyNarwhal/vmwmouse/issues/5 .
There was also the A4 tech "4D mouse" driver but it seems to work only with its own hardware which I believe is https://store.cwc-group.com/wop35.html
The "standard" wheel messages in Windows date from 96-98ish. Any software older than that will not understand the wheel messages (including ALL 3.x era software) and therefore requires hacks and posting fake scroll messages to support the mouse wheel. VBADOS (specifically vbmouse.drv) is doing these hacks (I use it frequently with CAD/office software on 3.x). Older Intellimouse drivers have similar hacks (mswheel.exe) but they are only for 95 up.
On DOSBox (-X or -staging) you can use the vbmouse.drv file by itself (no need for vbmouse.exe or patched VKD as dosbox itself will act as a magic int33 driver with wheel support) and I suggest you try first DOSBox (-X or -staging) to evaluate if the hacky scroll messages will work with whatever 3.x program it is you want to use. Follow e.g. these instructions https://dosbox-x.com/wiki/Guide%3AInstalling- … driver_option_2
Robbbert wrote on 2023-12-16, 04:04:
I'm using the standard *vkd (whatever file that is), I don't know anything about modifying it nor I am going to do so. I'm happy to try a pre-modified one though.
Well I can't redistribute patched windows binaries, and I'm not sure if I can legally distribute samples from the 3.x DDK either .
So the only way for you right now is to obtain the DDK "somehow" and build the sample VKD. Once you do that, here 's a patch to its source code: https://depot.javispedro.com/vbox/vbados/wheelvkd_v1.patch
You do need the patched VKD if you want to use the scroll wheel under 386 enhanced Windows. Note that Intellimouse drivers for 3.x do a similar patch (to support ball mouse and the like) but I have not seen a way to use the patched VKD from Intellimouse; I need to use my own patch.
Another alternative is to run windows in real mode. Most Windows for Workgroups versions will refuse to do so, albeit 3.0 works and so does VBADOS there.
I'm looking for ideas to simplify that. I was trying a hacky "overlay" driver but it get tiresome as you keep having to fight the builtin VKD for control of the PS/2 device.
Windows' VKD normally tries to do its own parsing of the PS/2 mouse packets so that each VM receives a "correct" stream of packets (i.e. reliable and ordered, even if you switch VMs in the middle of a mouse packet). However it just cannot understand anything wheel related and will destroy Ps/2 mouse packets that are not of standard length. My patch above simply prevents Windows' VKD from doing any framing of the PS/2 mouse packets, so that VKD forwards them "as they come", byte by byte, to the VM. My DOS driver (which will be running even in the system VM) does not care if we receive munged or partial PS/2 packets, so it works just as fine even if Windows does not do any framing. And since Windows is no longer doing the framing, longer PS/2 wheel mouse packets can now be handled as well.
Robbbert wrote on 2023-12-16, 04:04:
Not sure if I should do that Q82763 thing, as no other mouse driver causes the problem - only vbados.
It is also the only driver who will try to negotiate wheel support, even under 386 windows. Please try this option; at worst we'll learn something. If you didn't even launch any mouse-using DOS program between the TSR and Windows, then the TSR wouldn't even have registered the PS/2 callback; meaning the TSR code is not even running when you move the mouse, leaving the PS/2 BIOS as the only potential culprit.
(In fact, maybe you can try running e.g. EDIT after launching the TSR but before starting Windows, so that it actually initializes the PS/2 callback. This may result in different behavior once Windows exits.)
It's not that rare, I have a 99 Thinkpad which needs this option, albeit I have never seen it printing an arithmetic error before.
Robbbert wrote on 2023-12-16, 04:04:
The last point is perhaps one of the other drivers actually did support the wheel, but it never showed in the control panel mouse applet as an option, or in any of the apps that are installed in windows.
"wheel" will never appear in the control panel applet; it was written years before the first wheel mice.
Robbbert wrote on 2023-12-16, 04:04:
So, not sure if you can help me or not.
Erm... I'm not looking to provide free support here. You have to contribute something back (even if it's just testing things which worked/didn't work -- but with some detail to understand why).