Накачивая МЫШЬ’цы


Бегущая по коврам

Самые продвинутые геймеры знают, что одним из ключевых по важности устройств компьютера, позволяющим получить максимальное удовольствие от игрового процесса является... Нет, это вовсе не видеокарта, как вы правильно подумали :) Сейчас я веду речь о другом устройстве, официально именуемом манипулятор типа «мышь».

Некоторые пользователи, ради извлечения пары дополнительных FPS в игрушках, разгоняют свои компьютеры, по мере, конечно, возможностей «железа». Одним из устройств, поддающихся «разгону» является и компьютерная мышь. Конечно же, возможности у различных моделей «грызунов» разные, но принципы их «оверклокинга» общие, и именно рассмотрением таковых мы сейчас и займемся.

У многих, вероятно возникает вопрос…

Зачем это нужно?

Вообще слово «разгон» в данном контексте не совсем адекватно отражает суть происходящего: на самом деле мы вовсе не ускоряем перемещение мыши. Более того — описываемым «разгоном» мы даже замедляем скорость движения курсора-указателя мыши на экране дисплея. Под «разгоном» в данном случае мы подразумеваем увеличение частоты опроса мыши по используемому интерфейсу подключения. Но зачем же, все-таки, это нужно?

Нужно это, в первую очередь, для повышения точности позиционирования курсора. Дело в том, что чем чаще компьютер будет получать информацию о перемещении мыши, тем более точными и адекватными перемещению манипулятора будут перемещения курсора на экране.

Попробую привести некий наглядный пример. Представьте себе, что вы снимаете цифровой камерой короткометражный :) фильм, с частотой 15 кадров в секунду. При просмотре отснятого вы заметите, что при резких изменениях положения некоего объекта съемки он как бы «рывком» перемещается с одного места на другое (то же происходит, если вы, например, резко поворачиваетесь с камерой), и промежуточное перемещение объекта засечь невозможно. Похожая ситуация и с отрисовкой курсора мыши — если сведения об его перемещении поступают в компьютер редко, то и двигаться по экрану курсор будет не плавно, а более или менее длинными «скачками». Но стоит нам поднять частоту кадров при съемке камерой, как подобные явления «выпадения» промежуточных кадров, чреватые резкими перемещениями снимаемых объектов, становятся малозаметными, а то и вовсе исчезают. Аналогичная ситуация и в случае с компьютерным курсором — если информация о перемещении мыши поступает в компьютер чаще, то значит и перемещение указателя по экрану будет осуществляться куда более точно. Иными словами, точность позиционирования курсора мыши напрямую зависит от частоты опроса мыши компьютером (точнее, от частоты отправки контроллером мыши информации о своем перемещении в ПК, а это не совсем одно и то же, как мы увидим далее).

Важна ли эта самая точность позиционирования? Безусловно. Скажем, при увеличенной частоте опроса мыши в игрушках-шутерах точность прицеливания улучшается, равно как реально ощущается и более быстрый «отклик» курсора на перемещение манипулятора. Для геймеров «разогнанная» мышь — самое то. Но не только для них. При работе в 2D-режиме, например, если вы выделяете объект в Photoshop, или аккуратно «подтираете» в нем картинку, точность позиционирования курсора еще куда более важна, чем в игрушках, и здесь пользу от увеличения частоты опроса мыши просто трудно переоценить. Ведь здесь скачкообразные перемещения курсора просто неприемлемы.

Итак, надеюсь, важность такого параметра как частота опроса мыши мы осознали. Теперь приступим к рассмотрению способов увеличения частоты опроса «грызунов» в зависимости от типа подключения манипулятора.

Разгон PS напополам

С конца прошлого века :) и до сих пор при подключении компьютерных мышек интерфейс PS/2 пользовался популярностью у продвинутых геймеров и, надо отметить, заслуженно. Широко использовавшиеся когда-то СОМ-портовые мыши использовали частоту опроса всего в 40 Гц, затем 60 Гц (Windows NT и последующие ОС) что не позволяло воспринимать их как серьезные игровые. А вот на порту PS/2 манипулятор может работать с разной дискретной частотой опроса: 10, 20, 40, 60, 80, 100 или 200 Гц. Причем эту частоту пользователь может менять по своему усмотрению, что немаловажно.

Для «стареньких» операционных систем типа Windows 95/98/ME очень хорошей программой, позволявшей осуществлять повышение (равно как и понижение) частоты опроса мыши была утилита PS2Rate. Она давала возможность пользователю менять частоту опроса манипулятора, подключенного к порту PS/2, в пределах от 10 до 200 Гц (дискретно, о чем сказано ранее). Утилита была удобна и проста в использовании, однако, к сожалению, работала далеко не со всеми материнскими платами (виноваты были, конечно же, разработчики последних).

В более современных операционных системах, например семейства Windows XP, частоту опроса мыши на PS/2 порту можно регулировать средствами самой системы. Делается это так. Вызываем «Свойства» значка «Мой Компьютер» на «Рабочем столе».

В появившемся окне кликаем на кнопку «Диспетчер устройств» (после установки SP2 эта кнопка находится выше, на месте кнопки «Установка оборудования» этого рисунка).

В открывшемся окне дважды кликаем на обозначении установленной мыши или вызываем ее свойства.

После чего попадаем в окно настроек свойств мыши, где на закладке «Дополнительные параметры» мы можем изменять частоту опроса манипулятора по порту PS/2.

Если у вас мышь отличная от оригинальной Microsoft, то иногда имеет смысл отключить опцию «Быстрая инициализация». Иначе мышь, возможно, будет работать на своей частоте опроса по умолчанию, независимо от выбранной вами частоты опроса по интерфейсу PS/2.

После того как пользователь изменит частоту опроса мыши, чтобы новые настройки вступили в силу, компьютер следует обязательно перезагрузить.

Добраться до свойств мыши можно и через «Панель управления» > «Мышь» > «Свойства».

Конечно, не только частота опроса мыши влияет на поведение курсора на экране, многое зависит и от настроек драйвера устройства. Драйвера мышей большинства производителей позволяют работать в двух режимах — с повышенной точностью наведения указателя (precision) и в так называемом «быстром» режиме (performance), когда точностью наведения жертвуют в угоду скорости перемещения курсора. Советую всегда выбирать повышенную точность наведения указателя (рис. 13) при работе в 2D с мышами Microsoft (для 3D-игрушек можно, а для некоторых даже нужно :) эту опцию отключать — она снижает скорость перемещения курсора). Для драйверов Logitech доступ к подобным дополнительным возможностям драйвера можно получить с помощью программы MouseWare Advanced Settings, впрочем, настройки по умолчанию в драйвере и так правильные.

Еще очень важный момент. Понижение скорости перемещения курсора от установки повышенной точности наведения указателя критичным я бы назвал только для мышек с сенсорами с разрешением 400 сpi (к коим относятся и все нынешние модели «грызунов» Microsoft). Для манипуляторов с сенсорами с более высоким разрешением, снижением скорости перемещения от повышенной точности наведения указателя можно смело пренебречь.

Установка повышенной точности указателя сделает нашу мышь намного более точной при наведении курсора, хотя и за счет некоторого снижения скорости перемещения указателя. Однако чтобы убедится, насколько важна еще и достаточная частота опроса мыши, просто попробуйте поработать на PS/2-мыши с частой опроса 20 Гц, при повышенной же точности наведения указателя. Даже при низком разрешении экрана, когда значки рабочего стола и пункты системных меню достаточно большие, простая «навигация» по ним покажется ужасно дискомфортной, по сравнению даже, со, скажем, работой при частоте опроса в 60 Гц. Но не думайте что 60 Гц — это слишком много :) Разницу между 60 и 80 Гц опроса также легко заметить (конечно, это еще и от мыши зависит).

Все «профессиональные» ;) геймеры устанавливают частоту порта в 200 Гц, благо многие современные модели манипуляторов это позволяют. Впрочем, не факт что ваша недорогая (а может и дорогая) мышь будет работать именно с частотой опроса 200 Гц. Может статься, что используемый в мыши контроллер, непосредственно передающий информацию в компьютер, будет не способен выдерживать столь высокую частоту. Ничего страшного — в таком случае контроллер просто будет передавать информацию в ПК с максимально возможной для себя частотой, пусть и более низкой, чем установленные 200 Гц, зато более высокой, нежели по умолчанию (например, у некоторой мыши Maxxtro частота опроса по умолчанию 90 Гц, а максимально, как вы видите из рисунка, ее можно «раскочегарить» до 133 Гц). В общем, если у вас именно PS/2 мышь, можно порекомендовать выставить частоту опроса на соответствующем порту именно в 200 Гц, а манипулятор уже сам «возьмет» столько, сколько сможет «потянуть».

Не стоит забывать, что с ростом частоты опроса мыши, опять же, падает скорость перемещения курсора по экрану. Критичным этот момент может оказаться при использовании высоких разрешений дисплея (1280х1024 и более) наряду с мышью с разрешением 400 cpi — манипулятор нужно будет перемещать на непривычно большие расстояния, чтобы «добраться» курсором до «всех концов» экрана. Для 800 cpi мышей эта проблема, можно сказать, не актуальна. Скорость перемещения курсора, естественно, снижается и при их использовании, но куда менее заметно.

Свершилось

До недавнего времени самым «высокочастотным» при подключении мышей оставался именно интерфейс PS/2. И многие пользователи подключали свои современные USB-мыши (скажем, модели серии Logitech МХ) через переходник к PS/2 порту, чтобы получить заветные 200 Гц частоты опроса и повышенную точность наведения указателя (как, впрочем, и ускоренное время реакции на нажатие кнопок). Ведь мышки, подключаемые по интерфейсу USB , имеют штатную частоту опроса «всего» в 125 Гц. Конечно, 125 Гц это тоже немало, но ведь всегда хочется чего-то большего :)

Сама по себе USB — это управляемая опросная шина. Согласно спецификации USB 1.1, частота опроса устройств на этой шине может осуществляться с временным промежутком в 1 миллисекунду. То есть, частота опроса устройств на шине — порядка 1 кГц. Почему же у мышей она составляет всего 125 Гц? Дело в том, что все та же спецификация предусматривает для низкоскоростных (Low Speed) устройств, к которым относятся и мыши, пониженную частоту опроса. А именно один опрос за 10 командных циклов шины. Лишь полноскоростная (Full Speed) периферия может рассчитывать на частоту опроса в 1 кГц. Возникает вопрос, а можно ли сделать нашу USB мышь «полноскоростной»?

Повышение частоты опроса USB-мышей было возможно и ранее, однако требовало очень аккуратного «ручного» редактирования файла usbport.sys (для Winows XP), что для подавляющего большинства рядовых пользователей являлось нетривиальной задачей. Особенно с учетом того, что файлы usbport.sys могли быть разными (зависимы от версии SP), и менять в файле приходилось отличающиеся участки кода, да еще и делать это нужно было в 16-и разрядном формате, в Hex редакторе. К счастью, нашлись добрые люди ;), решившиеся автоматизировать процедуру изменения файла usbport.sys, чем решительно положили конец «частотному превосходству» подключаемых к порту PS /2 устройств. Да, да «лед тронулся, господа», и теперь частота опроса USB-мышей может быть легко изменена, причем достижимы такие частоты, что, извините, PS/2 «просто отдыхает».

Известно, что по умолчанию система Windows опрашивает мышку, подключенную к USB порту, один раз за 8 миллисекунд (не за 10 потому, что драйвера ОС Windows устанавливают частоту опроса по шине USB кратной степеням двойки, т.е. просто «округляют» интервал опроса в 10 циклов по спецификации до восьми). Это и дает нам штатную частоту опроса USB мыши в 125 Гц (1/(8х10-3)=125). Подредактировав файл usbport.sys, можно заставить систему делать опрос мыши быстрее.

Именно меняя интервал частоты опроса операционной системой USB-устройства, такая полезная программа как USB Mouserate Switcher 1.0 позволяет добиться повышенной частоты опроса мышек, подключаемых по шине USB. Возможны следующие варианты частот «общения» мышек с компьютером по USB-интерфейсу: 250 Гц (интервал опроса 4 мс), 500 Гц (интервал опроса 2 мс) и (страшно подумать!) 1000 Гц (интервал опроса 1 мс).

Программа сразу после запуска предлагает для осуществления последующих действий перейти в режим защиты от сбоев. Однако на поверку все прекрасно работает и в обычном режиме работы операционной системы. По крайней мере, у меня проблем с работой программы при обычной загрузке не было, хотя я испробовал все режимы работы USB, предлагаемые USB Mouserate Switcher 1.0, и помногу раз.

При желании увеличить частоту опроса мыши, внеся изменения в файл usbport.sys, пользователь должен нажать кнопку Patch на первом рабочем окне программы.

После чего появляется второе окно, в котором нам последовательно предложат варианты «оверклокинга» USB-мыши. Для выбора того или иного из вариантов нужно нажать Yes когда именно он будет предложен. Для отказа и выбора следующего варианта нужно, соответственно, жать No. Просто до невозможности, хотя сама «линейность» программы в нынешние времена все же вызывает некоторый внутренний протест. По окончании «списка» опций возможен выход из программы, но не возврат к вариантам настроек. Для того чтобы добраться до вариантов возможных частот USB повторно, программу приходится перезапускать заново.

Важным достоинством программы USB Mouserate Switcher 1.0 является возможность восстановить исходную системную версию файла usbport.sys.

Для осуществления самого «разгона» мыши, после окончательно выбранного варианта частоты опроса, компьютер необходимо перезагрузить, чтобы система при старте использовала «подправленный» файл usbport.sys. После чего изменения вступят в силу. Вместо штатных 125 Гц, мышь будет передавать в компьютер свои «координаты» чаще. Как часто, зависит от модели манипулятора, от установленного в нем контроллера. Например, частоты 250 Гц и 500 Гц моя мышь Microsoft IntelliMouse Explorer 3.0A «взяла» без проблем, а вот частота 1000 Гц оказалась ей не по зубам. Можно дополнить, что и куда более дешевая модель USB мыши от BTC продемонстрировала практически аналогичные показатели по поддержке частот. Здесь, конечно же, все зависит от установленной в мыши микросхемы контроллера, который непосредственно передает в компьютер данные по интерфейсам PS/2 и USB.

Кстати, последняя массовая модель чипа оптического сенсора для мышей — ADNS-3060 — способна выдавать данные о перемещении как раз с частотой 1 мс, так что 1000 Гц для него как раз в самый раз :) Однако сенсор напрямую не общается с компьютером, он передает данные контролеру мыши, а уже от характеристик последнего зависит непосредственно частота «общения» мыши с ПК. Вероятно, в ближайшем будущем мыши смогут «выдерживать» частоту опроса в 1000Гц. А вот нужно ли это? Вопрос спорный.

Дело в том, что с ростом частоты опроса мыши падает скорость перемещения курсора по экрану, что доставляет, прямо скажем, неудобства при работе с манипулятором. Потому «наибольшая» частота опроса мыши вовсе не является соответствующей по смыслу слову «наилучшая». Например, для своей мыши Microsoft IntelliMouse Explorer 3.0A я выбрал как лучшую частоту опроса мыши по USB порту в 250 Гц. По сравнению с «обычными» 125 Гц, на такой удвоенной частоте ощутимо как улучшение работы в 2D-режиме, так и в 3D-игрушках (конечно, огромным прогрессом я назвать это улучшение не могу, но лишь потому, что и на стандартной частоте мышь ведет себя очень хорошо). Проявляется это в более плавном перемещении курсора и улучшенной реакции на малые перемещения манипулятора, что особенно ощутимо в играх.

При повышении частоты опроса этой же мыши до 500 Гц никакого заметного «прогресса» в точности позиционирования я уже не наблюдал, а скорость перемещения мыши по рабочему столу неприятно замедлилась.

         

При работе же на 1000 Гц (точнее, на тех частотах, которые может из себя «выжать» контроллер устройства при такой частоте опроса), манипулятор типа «мышь» вообще превращается в манипулятор типа «черепаха» :) Хотя, опять же, абсолютно никаких ощутимых улучшений в точности позиционирования на 1 кГц частоте опроса не наблюдается. К тому же, уже на 250 Гц иначе как отличной точность позиционирования я назвать просто не могу.

Теперь что касается недорогой модели USB-манипулятора от BTC. Совершенно однозначно можно утверждать, что при повышенной частоте опроса мыши, курсор при использовании данного манипулятора передвигается гораздо медленней, чем при работе с Microsoft IntelliMouse Explorer 3.0A. То есть, для перемещения курсора на одинаковую дистанцию мышку BTC приходится перемещать на большее расстояние, нежели манипулятор от Microsoft. Точность же позиционирования мыши BTC при повышенной частоте опроса также можно назвать отличной.

Для маньяков, которые хотят «собственноручно» заменить файлы usbport.sys на «патченные», могу посоветовать взять подкорректированные файлы (годятся только для Windows XP SP2) отсюда:

xcon.is.dreaming.org/usbport.sys.500hz.XP.SP2;

xcon.is.dreaming.org/usbport.sys.250hz.XP.SP2.

Переписать «новый» usbport.sys нужно в следующие каталоги:

C:\Windows\System32\Drivers (если ОС установлена не в каталог Windows, то нужно указать название системной папки с операционной системой);

C:\Windows\System32\dllcache.

Не забудьте сохранить оригинальную версию системного usbport.sys! Мало ли как может повести себя ваша система после «обновки».

Пользователи других версий ОС Windows XP могут попытаться найти необходимые именно им патченные файлы во всемирной Сети самостоятельно. Поскольку я пользуюсь именно Windows XP SP2, то полноценно проверить работоспособность файлов под иной вариант ОС просто не могу.

Чтобы не оставлять пользователей более «ранних» релизов Windows XP ни с чем, приведу все же информацию по вариантам замены кода в файле usbport.sys.

Итак, пользователи Windows XP, используя любой Hex редактор, ищут в своем варианте файла usbport.sys участок кода «3C 08 73 09 C6 86 0A 01», и меняют его на «B0 04 73 09 52 8A 0A 01» для получения 250 Гц частоты опроса. Для достижения 500 Гц исходный код нужно заменить на «B0 02 73 09 52 8C 0A 01».

Для обладателей Windows XP SP1 подход следующий. Ищем код «3C 08 73 09 C6 86 02 01» и меняем его на «B0 04 73 09 52 8A 02 01» для достижения 250 Гц, или на «B0 04 73 09 52 8A 02 01» для «разгона» до 500 Гц.

А нам?

Для пользователей операционных систем, отличных от Winows XP, тоже не все потеряно :) И у них есть шанс «ускорить» свою USB-мышь. Что для этого нужно, сейчас попробуем разобраться, благо есть умные люди которые научно уже исследовали этот вопрос до нас :)

Понадобится: Lower Filter Driver, который можно найти по адресу: sweetlow.at.tut.by/download/hidusbf.zip (это драйвер будет работать перехватывая запросы основного драйвера и корректировать данные нужным нам образом).

Для установки его в ОС запускаем hidusbf.inf из каталога Driver из этого же архива. После чего у нас в каталоге C:\Windows\System32\Drivers (для ОС Windows 9x) появляется файл hidusbf.sys, а в Windows семейства NT сервис «HKLM\SYSTEM\CurrentControlSet\Services\hidusbf».

Далее для семейства Windows NT в строке реестра HKLM\SYSTEM\CurrentControlSet\Enum\USB\"DevicePNPID"\"DeviceLocation" создаем параметр LowFilters типа REG_MULTI_SZ со значением hidusbf.sys. Для Windows 9х находим в реестре «HKLM\SYSTEM\CurrentControlSet\Services\Class\HID\000(n)\NTMPDriver» для нашей мыши (n) — номер для нее в списке остальных HID-устройств. Здесь, в начале строки прописываем «hidusbf.sys,hidusb.sys».

Подготовительные работы закончены. Для того чтобы драйвер hidusbf.sys заработал, нужно перезагрузить ПК или же просто отключить и повторно включить USB-мышь.

После этого можно приступать к изменению частоты опроса мыши по USB-порту (по умолчанию используемым драйвером частота опроса поднимется до 250 Гц).

Для Windows семейства NT ищем в реестре «HKLM\SYSTEM\CurrentControlSet\Control\Class\{745A17A0-74D3-11D0-B6FE- 00A0C90F57DA}\000(n)».

При использовании Windows 9х в реестре нужно найти строчку «HKLM\SYSTEM\CurrentControlSet\Services\Class\HID\000(n)».

Далее в этих вышеназванных ключах ищем параметр типа DWORD именуемый «bInterval», а если его вдруг там не оказывается, то создаем его.

Теперь частоту опроса USB мыши можно менять, меняя значение в параметре bInterval. Значения здесь могут быть такими: «1» соответствует 1000 Гц частоте опроса, «2» — 500 Гц, «4» — 250 Гц и, наконец, «8» — нашим штатным 125 Гц.

Автор драйвера hidusbf.sys гарантирует работоспособность своего ПО как минимум под Windows 98SE Rus, Windows 2000 Pro Rus SP2, причем частота опроса по USB порту во всех типах ОС может быть повышена до 1 кГц. Наслаждайтесь.

Беспроводные трудности

Единственными, кто ни при каких условиях не сможет «разогнать» свои USB- или PS/2-мыши, являются «счастливые» обладатели беспроводных манипуляторов.

Дело в том, что сама по себе беспроводная мышь не подсоединена к компьютеру по интерфейсу USB или PS/2, она передает сигналы о своем перемещении на приемник-базу (ресивер), который, в свою очередь, уже передает данные в ПК по соответствующему интерфейсу. И, несмотря на то, что пользователь может «ускорить» соединение ресивер-компьютер, на частоте опроса мыши это никак не скажется, поскольку сам приемник связан с беспроводной мышью по своему особому интерфейсу передачи данных, повлиять на скорость работы которого обычный пользователь (по крайней мере, пока) не в состоянии.

Быстрый итог

Таким образом, дорогие товарищи, монополии интерфейса PS/2, как наиболее оптимального для подключения мышек, положен конец. Настала эра «быстрого» интерфейса USB, на который, без сомнения, вскоре «перекочуют» все мыши продвинутых геймеров. Благо, «барьеры» на этом пути устранены. Есть правда одно «но» — программа USB Mouserate Switcher 1.0 работает только с операционными системами Windows XP/2003.

Да, кстати, пока никакого отрицательного влияния на другие подключаемые USB-устройства от увеличения частоты опроса порта USB не выявлено. Впрочем, этого и следовало ожидать, так как даже частота в 1000 Гц является для USB нормативной. И, естественно, никакого обещанного некоторыми «доброжелателями» «сгорания» USB–контроллера, от повышенной до 1 кГц частоты опроса по USB, быть не может.





Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.