![]() Single byte patched, time to check it in game.Īt this point, formalizing it into a SilentPatch was easy. In order to change the comparison from = to >=, all we have to do is change jnz (jump if not zero) to jl – original code testing this return value looks like this: call dword ptr IDirectInputDevice8::GetDeviceData In pseudocode generated from a disassembled window procedure they are the first messages:Ĭursor = ( g_writeCursor + 1 ) % 128 if ( cursor != g_readCursor ) Ĭould it be as simple as that? Unlike growing buffers, applying this change in assembly is laughably trivial Handling mouse input was to do so via Windows messages or DirectInput – as far as I know,įinding WM based input was trivial – in almost all cases those messages will be handled by the window procedure, For a 2001 game, only two viable options for When approaching this issue, I had a few picks in mind. In my case, I could just set my mouse polling rate to 125Hz or 250Hz and play,īut if you can’t change it then playing this game may be a bit problematic. This issue depends only on mouse polling rate, DPI settings do not affect this behaviour specifically. PCGW’s fixbox is also not completely accurate. Interestingly enough, whatever the issue is, it was fixed in AquaNox 2! Given how similar the games “feel”,Ĭomparing code between these two might be reasonably viable (compared to, say, Sometimes not registering inputs at all or registering only parts of it: I received a Steam copy of the game and its sequel in order to look into this (thanks, Sui!)Īnd sure enough – with my 500Hz mouse the game is… less than playable.
0 Comments
Leave a Reply. |