1

Тема: NT Sleep

Свершилось то, о чем многие давно мечтали. Все (ну или многие) наверное знакомы с таким классом утилит как "замедлялки игр". Мне попадалось несколько вариантов этих программ, но работают они по одному и тому же принципу - раскочегарить процессор, чтоб последнему не хватало времени на обработку приложения, вследствии чего и достигается мнимое замедление процесса. Мнимое, потому что:

1. игра начинает "идти" рывками
2. процессор греется как при хорошем benchmark-е, что уменьшает срок его службы
3. вентиляторы гудят так, что создается ощущение что компьютер вот-вот взлетит

Но и без этих горе-замедлителей игры грузят современные процессоры так, будто запущена последняя версия навороченного 3D шутера. Такого быть не должно и где то с год назад я стал изучать "проблему". Одним из вариантов решения и явилась программа которую сегодня я предлагаю вам на рассмотрение.

Суть следующая, создается ждущий таймер установленный на 10 микросекунд, и с помощью недокументированных функций Windows XP (NtSuspendProcess и NtResumeProcess) указанная(ое) игра\приложение попеременно то приостанавливается то возобновляется с интервалом в 10 микросекунд, на выполнение кода приложению отводится 1 микросекунда, что равняется 10 кратному снижению скорости и нагрузки на процессор.

Вот фрагмент того, о чем писал выше.

http://imasters.org.ru/images/ntsleep.png

Тестировал Populous, WipeOut, Heroes of Might and Magic 1 и 2, KKND2 и др. варьируя значение микросекунд от 2 до 32. Получил следующие результаты:

- при установке даже 2мс значительно снижается нагрузка на процессор до 10%, игра работает без замедлений
- при повышении таймера, нагрузка снижается до 2-3%, при этом игра начинает замедлятся

При установке значения в 32мс мне удалось заставить работать Героев так, как если бы я играл на первом пентиуме (фактически я эмулировал его скорость), и процессор при этом оставался в полном покое.

Программу выкладываю с исходными текстами. Запускается она из командной строки и работает только начиная с Windows XP (XP, 2003, Vista, Windows 7), в качестве параметра указывается EXE файл.

Примеры запуска:

NtSleep /timer=20 ваш_ехе_файл
NtSleep /timer=16 D:\some_directory\ваш_ехе_файл
NtSleep /timer=2 C:\some_directory\ваш_ехе_файл параметры_игры

1. запускает файл в текущей директории и устанавливает таймер на 20 микросекунд
2. запускает файл из указанной директории и устанавливает таймер на 16 микросекунд
3. запускает файл из указанной директории, устанавливает таймер на 2 микросекунды и указывает параметры к игре\программе

NtSleep

ЛС переполнен, не надо писать туда.

2

Re: NT Sleep

Поблем у так называемых "замедлялок" действительно хватает... Сначала у меня стоял CPU killer 2.0, но с ним играть невозможно из-за ужасных тормазов. Сейчас стоит самая последняя весия CPU killer 3 (нашел с очень большим трудом), он, конечно, лучше, но не на много. Попробую NtSleep, если будут проблемы, напишу...

3

Re: NT Sleep

Лучше бы писали, когда нет проблем big_smile, когда все хорошо, комары не кусают ну и прочее. Надо позитивные отзывы собирать.

ЛС переполнен, не надо писать туда.

4 Отредактировано AxXxB (16-03-2007 17:14:58)

Re: NT Sleep

Отлично! Прекрасно! Супер!

Процессор: Intel Celeron 2500
Мат. плата: Asus P5PE-VM
Приложение: SWEP1RCR.EXE (Star Wars Ep I Racer)

C NTSleep                   ЦП: ~16%
Без NTSleep                ЦП: ~94%
Отношение скорости         1:1

Так держать!!!

5

Re: NT Sleep

Оставил вот тут тему про NT Sleep. Надеюсь, ты не против?..

Народ там просит сделать поддержку ввода из командной строки кол-ва микросекунд паузы.

6

Re: NT Sleep

Спасибо за NT Sleep!
Проверил с Blade Runner - playin like a charm!)) Наконец-то нормально работает стрельбище.

7

Re: NT Sleep

как я понимаю, с исполняемыми файлами, у которых установлен режим совместимости, ntspleep не работает?
или только мне так "повезло"?

з.ы. конкретно речь идет о первом resident evil

8

Re: NT Sleep

Не знаю, не проверял. Будет интересно узнать.

ЛС переполнен, не надо писать туда.

9

Re: NT Sleep

Надо ставить совместимость не на запускаемое приложение, а на саму NT Sleep.

10

Re: NT Sleep

Спасибо за утилитку! С Ultima Online работает просто идеально. Можно спокойно запускать по пять окон за раз. Снижение нагрузки с 30%-40% до 1%-7%!

11

Re: NT Sleep

Подскажите, как пользоваться этой программой из коммандной строки\batch-файла? Как ей там указать что запускать?

12

Re: NT Sleep

Rathori
Проще простого - NtSleep ваш_ехе_файл
Тоже самое можно поместить в CMD\BAT файл и запускать его. То, что сам NTSleep нужно положить в папку с программой надеюсь не надо уточнять?

ЛС переполнен, не надо писать туда.

13 Отредактировано Rathori (04-11-2009 13:52:15)

Re: NT Sleep

Так и делал, правда сначала NtTools лежал в другой папке, но запускался из папки с игрой. Положил в папку с игрой - всё также.

Переделал батник чтобы тот запускал ярлык на NtSleep, через который почему-то всё нормально работает, хотя всё прописано один в один также. Похоже, это просто "особенность" Windows 7 hmm

14

Re: NT Sleep

Принимая во внимание что программа пользуется определённым спросом, я решил немного модернизировать её. Теперь не должно быть проблем с запуском (проверено на Windows 7), и так-же добавлен параметр "/timer=n" который позволяет указывать требуемую задержку (максимальное значение = 32), что так давно хотели пользователи.

Примеры запуска:
NtSleep /timer=20 ваш_ехе_файл
NtSleep /timer=16 D:\some_directory\ваш_ехе_файл
NtSleep /timer=2 C:\some_directory\ваш_ехе_файл параметры_игры

1. запускает файл в текущей директории и устанавливает таймер на 20 микросекунд
2. запускает файл из указанной директории и устанавливает таймер на 16 микросекунд
3. запускает файл из указанной директории, устанавливает таймер на 2 микросекунды и указывает параметры к игре\программе


Ссылка на новую версию в первом сообщении

ЛС переполнен, не надо писать туда.

15

Re: NT Sleep

Супер! Спасибо за апдейт smile Теперь всё замечательно работает.

16

Re: NT Sleep

У меня вопрос. Может быть она уже есть. А может быть её можно сделать. Универсальную программку замедления времени в совр. играх. В нек. играх эта функция уже встроена, напр. ИЛ-2 и др. В нек. есть наоборот, ускорение времени: Silent Hunter. Ну конечно не за счёт "загона" проца, а по умному. В ИЛ-2 при замедлении FPS и качество карт. значит. увеличив. Есть игры в кот. самолёты летают как мухи. Было бы неплохо их притормозить.

17

Re: NT Sleep

А представленная программа не универсальна?

ЛС переполнен, не надо писать туда.

18

Re: NT Sleep

Респект тебе!
Win 7 , Stalker ТЧ. n=3.
Если есть Web Money клшелёк, то объяви для донатирования.

19

Re: NT Sleep

Antares Интерессная прога smile переписал на делфи и вот что вышло:

-Назвал программу Process Sleeper
-Теперь у проги есть гуи оболочка
-можно менять значения MS даже если прога запущина
-мелкие добавления

Единнственное что тестил только XPSP2,3.

Скачать (177 Кб)

20

Re: NT Sleep

saifullin
Пока только Яндекс.Деньги, с вебмани заморочек много.

ClockMan
Запаковал и закинул на сервер. Размер конечно гигантский smile, но главное что работает. Жаль только что нового ничего не придумано.

ЛС переполнен, не надо писать туда.

21 Отредактировано saifullin (11-07-2010 12:32:56)

Re: NT Sleep

Antares
За то деньги никто не сопрёт. cool

На Дэльфи пашет. Вот если бы ещё NTSLeep работал на сотнях мС, то можно было бы уменьшить загрузку ещё.  tongue При замедлении более 1мС ощущается замедление реакции на мышь. hmm

Кстати, могу на моб. счёт кинуть. cool

22

Re: NT Sleep

Antares, ClockMan благодарю за чудесные програмки, теперь у меня C&C: Tiberian Sun не загружает впустую проц.

23

Re: NT Sleep

НА Сталкер ЧН не действует(.
ПК жарится летом(
Думаю что проблема в StarForce/

24

Re: NT Sleep

Напишите пожалуйста как пользоваться NT Sleep. Я кинул файлы NT Sleep в папку с программой. А далее не знаю что и как. Программа Fruity loops9 (если это поможет). просто виснет ужасно при составлении сложных проектов

25

Re: NT Sleep

Danny Во первых всё описано, причем подробнейшим образом. Во вторых какой фрути лупс? Читайте для чего программа нужна - ОНА НУЖНА ДЛЯ СТАРЫХ ИГР И ПРИЛОЖЕНИЙ, КОТОРЫЕ ОЧЕНЬ БЫСТРО РАБОТАЮТ НА СОВРЕМЕННЫХ КОМПЬЮТЕРАХ.

ЛС переполнен, не надо писать туда.