Игры писались давно, под 9х винды. Из за этого они не совсем корректно работают в NT системах (2000, ХР...), а именно:
- NFS 3 не понимает что есть 3D ускоритель
- NFS 4 ругается что игра не установленна и отказывается запускатся
---------------------------
Warning #3
---------------------------
Need For Speed files are corrupted; please re-install.
---------------------------
ОК Отмена
---------------------------
- NFS 4 ругается что места на диске менее 1мб (время от времени)
---------------------------
Warning
---------------------------
Your hard drive has less than 1MB free space.
If you encounter problems please refer to the reference card.
---------------------------
ОК Отмена
---------------------------
Первые две проблемы можно вылечить дав полный доступ к соотвествующим веткам реестра в HKLM. Послеюную проблему можно решить всякими AppCompact~ами.
Однако мне не нравится каждый раз раздавать ненужные разрешения и заниматся ненужной совместимостью.
Вообщем поковырявшись в exe~шниках я их чуь чуть подправил, чтобы всё это вылечить.
Для адекватного доступа к реестру для чтения настроек во всех вызовах RegOpenKeyEx для HKLM флаг KEY_ALL_ACCESS был заменён на KEY_READ. (9х не поддерживали безопасность и там всегда был KEY_ALL_ACCESS для всех ключей доступен, а на NT системах часто возникают отказы в доступе, в то время как приложению нужно только читать данные).
Для удаления сообщения о том, что мало свободного места, которео возникает из за использования старой API GetDiskFreeSpace, которая может возвращать некорректные значения, когда свободного места слишком много.
PS: для NFS4 нужно скачать патч с офф сайта и обновить игру до версии 4.50.0.0