One of the projects I&#039;ve been working on this week is a new method of getting mouse input for Windows users. The problem of Odamex&#039;s current method is due to its reliance on the SDL library and that is why I&#039;ve written code to provide alternative ways of getting mouse input. <br /><br />SDL will try to use DirectX 5 for (the DirectInput module) to read mouse data and if that fails, it uses the Windows GDI to read mouse data. DirectInput is able to read raw mouse data directly from the OS. This means that the data is not affected by Windows mouse acceleration (sometimes called &quot;Enhanced Pointer Precision&quot; in the Control Panel) and is much more predicable for game play. GDI on the other hand reads mouse data after Windows has applied acceleration and smoothing and other techniques that make using a mouse nicer for desktop use but not for games.<br /><br />The issue arises due to Microsoft no longer supporting versions of DirectX less than 8.0 in Vista and beyond. Hence, SDL is not able to access DirectInput mouse data due to an incompatible DirectX version on those operating systems and in turn, game play in Odamex is subjected to mouse acceleration.<br /><br />We have a branch in progress that allows users to select different mouse backend drivers. The cruicial driver is &quot;RawWin32Mouse&quot;, which uses an API to get raw mouse data directly from the OS and in fact is the low-level API that DirectInput uses. This will very likely be the default mouse input method for Windows versions of Odamex in the future. Users will still have the option to use the SDL mouse driver if they&#039;re comfortable with it and do not wish to change.<br /><br /><br />