VOGONS


First post, by Darmok

User metadata
Rank Newbie
Rank
Newbie

Serial mice have a low number of reports per second, which is due to the low transfer speed of the RS232 interface. The standard value for mice is 1200 baud, while we have 40 reports per second for a mouse in the MS Mouse standard. This may not be enough for dynamic shooters. If you increase the transfer speed to, for example, 4800 baud, we get 160 reports per second, which is already quite acceptable. Experiments show that further increasing the number of reports per second for a serial mouse does not bring real benefit, but on the contrary, due to the increase in the number of interrupts per second, overall performance may deteriorate.

The controllers of many serial mice use a timing quartz resonator with a frequency of 32768 Hz. In most cases, the controller is able to work with a resonator of 131072 Hz, and the exchange rate via the interface will proportionally increase to 4800 baud.

The Genius EasyMouse serial ball mouse with the Genius K0303028 controller was used as an experimental sample. I replaced the 32768 Hz resonator with a similar resonator (in a cylindrical case) with a frequency of 131072 Hz. Modified Microsoft mouse drivers were used to test the mouse. Re: USB to Serial Mouse using the Pi Pico!
The computer used for testing was 386DX40, DOS and Win95. Mouse movements became smoother and more responsive. For illustration purposes, I provide files obtained in the Paint editor from Win95. I moved the mouse with my hand at about the same speed.

Since this method of overclocking is very easy to implement, anyone can repeat it and evaluate its usefulness for themselves.

Reply 1 of 9, by King Wajih

User metadata
Rank Newbie
Rank
Newbie

I had to make an account just to answer this. If only there were overclocking capable win xp 64bit compatable drivers so I could use them on my Win 7 64bit PC (maybe even Win 10 :p). I was looking a way to OC the baud rate on the sermouse.sys in Win 7 for a few years to make my new old stock A4tech serial ball mouse perform as well as the PS/2 version.
Sermouse.sys takes exclusive com port control and sets it at 1200bps (on a modern most probably 19200bps capable mouse & 115200bps PC!). No amount of MODE Command in CMD & Device Manager can do anything. The jitter on it is very annoying. Yet I still used it to play some COD MW (2007) for lols and got rekt.
Anywho with the power of chatgpt and my ADHD I'll try to hex edit something and hope it works fingers crossed . Driver signing would be a later headache and is doable, unless somebody has a modded driver and can save me from falling into this rabbit hole.

P.S I am a med student and have no professional coding experience. I do it cuz it makes my brain go brr 😀

Reply 2 of 9, by Darmok

User metadata
Rank Newbie
Rank
Newbie

The only currently existing method is to use some COM port accelerator. For example, Digi AccelePort C2 or similar for the PCI bus. In this case, it is possible to use standard drivers, and to increase the exchange speed with the mouse by means of hardware acceleration of the port.

Reply 3 of 9, by mkarcher

User metadata
Rank l33t
Rank
l33t
Darmok wrote on 2025-07-01, 07:21:

The only currently existing method is to use some COM port accelerator.

I wonder whether you could plug a filter driver between sermouse.sys and the COM port driver, ideally as "lower filter" on sermouse.sys so that it works with any kind of COM port. But I know I am possibly just throwing around buzzwords and perhaps the driver stack doesn't work that way in the case of mouse drivers.

Reply 4 of 9, by Jo22

User metadata
Rank l33t++
Rank
l33t++

The computer used for testing was 386DX40, DOS and Win95

Chances are it uses an 16450 UART FiFo on an multi-i/o card, which has high amount of interrupts.
Using an pin compatible 16550AFN or similar likely causes less interrupts.

In DOS, there are FiFo enabling utilities, which turn the 16550 into native mode.
In Windows 3.11 an updated 16550 aware COM driver is included, which supports FiFo=true setting in the INI files.

More info:
Re: What mouse connection is this?
https://tldp.org/HOWTO/Serial-HOWTO-18.html

Utility:
https://web.tapr.org/tapr_history/SIG_Archive … Smisc/16550.zip

Of course, the accelerator cards are even better in principle.
They're meant for high-performance and do cause less overhead to the PC.

Edit: Ah I see, "sermouse.sys" is an Windows NT device driver (not a DOS driver)..
Please never mind then.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 5 of 9, by Darmok

User metadata
Rank Newbie
Rank
Newbie

Another way to overclock a COM port is to replace the quartz resonator on an 8-bit ISA multicard with a resonator of higher frequency. For 2400 baud, a resonator of double frequency is needed, for 4800 baud - quadruple. On such boards, as a rule, only one resonator is installed, and it needs to be replaced.

Reply 6 of 9, by B24Fox

User metadata
Rank Member
Rank
Member

@Darmok
In Win98 for example, the Baud Rate for both COM ports is automatically set to 9600, even with the mouse connected & working.
You're saying it should be decreased to 4800??

Reply 7 of 9, by Darmok

User metadata
Rank Newbie
Rank
Newbie

The baud rate specified in the COM port settings doesn't matter. The actual baud rate is determined by the mouse driver. Modified mouse drivers designed for 4800 baud should be used. If an accelerator is used, standard drivers are suitable; no changes to the port settings are required.

Reply 8 of 9, by B24Fox

User metadata
Rank Member
Rank
Member

The mouse I'm using is a Microsoft mouse of the 2nd generation; the one made @1987 right after the "green-eyed" mouse.
This one somehow does not need a driver, does not appear in device manager, it doesn't even show that I have a HID device or mouse connected.
It just somehow magically works in win98se when connected to serial, without windows even installing anything when first connecting it 🤔

I did mess around before with the buffer sliders in the COM1 settings in device manager, and the cursor does run smoother when they're both at max.
But haven't touched anything else.

Any suggestions in this particular case? : )

Reply 9 of 9, by Darmok

User metadata
Rank Newbie
Rank
Newbie

If a serial mouse wasn't connected during Windows installation, it won't appear in device manager. This is normal. However, when Windows starts, the serial mouse will be detected and will work. Try scanning for new devices, and it will appear in device manager.
The mouse driver manages the COM port at the hardware level, so any port settings in device manager are invalid. If you notice any effect from these settings, this effect is purely apparent and psychological.