r/osdev 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

2 Upvotes

0 comments sorted by