pour le premier point, une solution consiste à utiliser l'option Grabdisplay de wine, qui fait que le pointeur ne pourra pas sortir de l'appli.
pour ça, tu dois ajouter/modifier l'option
; Enable DirectX mouse grab
"DXGrab" = "N"
dans la section [x11drv].
Pour HL, c'est X qui doit être configurer pour être en 16bits ou plus.
Pour celà il faut modifier la ligne DefaultDepth de la "Section "Screen" : ex:
Section "Screen"
Identifier "Screen 1"
Device "GeForce3 Ti200"
Monitor "Ecran Goldstar"
DefaultDepth 16 (24 devrait marcher aussi mais pas sûr)