arablizzard2413: Find CAUGHTUP in the disassembly and it should point you in the right direction. Maybe a timer bug or something?
GetTickCount is used and the difference is multiplied by 0.001. But the code/object references are not that easy to resolve in a static disassembler. However, maybe the floating point rounding might be a/the problem (no epsilon used for the comparisons).
arablizzard2413: There's also a memory test that fails on systems with more than 512 MB of RAM, I forget what the api is called at the moment, GlobalMemoryStatus I think.
Besides the console command, I found only one reference in GOG's Mask.exe that initializes "KQGame::runOptimal" with "yes" or "no" if the total physical memory is greater/lower than 64 MB (not MiB). The problem is the _signed_ division/comparison (if the reported total physical memory is >= 2 GiB).
arablizzard2413: Less of a priority, but when you run the game in a windowed mode, the mouse coordinates get screwed up. So far the only way to fix it is with DxWnd.
Didn't look at it yet.
Best regards,
Nico