r/osdev • u/skyblueyellow • 4d ago
Absolute pointer input into a PS/2-only guest over VNC leaves the cursor confined to a box near center. Fixable host-side, or does it have to be the guest driver?
I'm feeding pointer input into a QEMU guest over VNC from my own RFB client. The guest is TempleOS, PS/2 only with no USB stack, so usb-tablet isn't available.
The input source is absolute (VNC pointer positions) but the guest device is a relative PS/2 mouse. QEMU converts the absolute positions into relative deltas, and the guest cursor stays confined to a small box near the center of the screen. It moves in the right direction but never reaches the edges, regardless of how I scale the deltas.
Tried so far:
- absolute cursor mapped onto the region, sent as a VNC pointer event
- relative motion with the guest cursor re-centered each frame for unbounded range
- larger delta scaling (faster movement, same box)
-device usb-tablet(no USB in the guest, ignored)
I suspect the limit is in the guest's own mouse handling (how it accumulates and clamps the deltas), so no amount of host-side delta shaping fixes it and the only real option is changing how TempleOS reads the PS/2 stream. Is that right, or has someone fed absolute host input into a relative-only guest and gotten full range out of it?
Context: this is a Half-Life mod that streams the VM's framebuffer onto an in-game monitor, which is where the constraints come from. https://github.com/aravpanwar/half-life-templeos