Странная Дергающаяся Клавиатура
-
Как и в Думе так и в других играх ощущение что "что-то не то" с клавиатурой. Как будто комп помнит старые нажатие и остаются последействия. И это во всех играх кажется. Ничего у вас такого не наблюдается?
Начиная с пятой версии Колибри(5.0.0.1) клавиатура начала работать несколько иначе. Раньше она опрашивалась интервалами,но стабильно(тоесть интервалы опроса были периодические).С пятой версии клавиатура опрашивается все время(точнее эти интервалы стали длительны и их нельзя засеч),но в некоторый момент ожидание ответа от клавиатуры затягивается,а потом все по новому кругу.Вот и возникают подергивания.Исследования работы клавиатуры я проводил с помощью простенькой програмки(я исследую работу системы для каждого дистрибутива).
Эти подергивания нехорошо отразились на управлении перемещениями спрайтов в моей тестовой программе по работе с графикой.В версии 5.0.0.0 все хорошо работало(плавное перемещение),а вот
в 5.0.0.1 дергается и несколько снизилась скорость работы клавиатуры(для всех приложений).
Надо обязательно найти причину(ищем вместе).
Эти подергивания нехорошо отразились на управлении перемещениями спрайтов в моей тестовой программе по работе с графикой.В версии 5.0.0.0 все хорошо работало(плавное перемещение),а вот
в 5.0.0.1 дергается и несколько снизилась скорость работы клавиатуры(для всех приложений).
Надо обязательно найти причину(ищем вместе).
camper
andrew_programmer
Для клавиатуры я ничего не менял. Только вставил сброс в синем экране и сброс после переключения в защищенный режим. И было это уже в К0500.
Возможно, Андрей Халявин или Иван Поддубный чего ни будь, изменили в К0510, так как я брал ядро, которое они дорабатывали.
andrew_programmer
Для клавиатуры я ничего не менял. Только вставил сброс в синем экране и сброс после переключения в защищенный режим. И было это уже в К0500.
Возможно, Андрей Халявин или Иван Поддубный чего ни будь, изменили в К0510, так как я брал ядро, которое они дорабатывали.
В Колибри 0.5.1.0 изменена обработка прерываний, как программных (i40), так и аппаратных (исключения и IRQ).
В результате получили код, который намного проще и компактней, чем раньше.
Как показывают тесты, скорость системного вызова выросла в несколько раз.
IRQ (и клавиатура в том числе) тоже стали обрабатываться значительно быстрей.
Никаких "опросов" клавиатуры, насколько я знаю, в ядре нет. Есть лишь обработчик IRQ1...
В общем, я в глубокой озадаченности от таких странных глюков.
Что касается DOOM, то там есть кое-какие глюки, так что иногда клавиши как будто западают.
В результате получили код, который намного проще и компактней, чем раньше.
Как показывают тесты, скорость системного вызова выросла в несколько раз.
IRQ (и клавиатура в том числе) тоже стали обрабатываться значительно быстрей.
Никаких "опросов" клавиатуры, насколько я знаю, в ядре нет. Есть лишь обработчик IRQ1...
В общем, я в глубокой озадаченности от таких странных глюков.
Что касается DOOM, то там есть кое-какие глюки, так что иногда клавиши как будто западают.
>Никаких "опросов" клавиатуры, насколько я знаю, в ядре нет. Есть лишь обработчик IRQ1...
Да я иногда по инерции IRQ называю опросом(откуда появилась эта привычка я и сам незнаю).
А чтобы причину подергивания выявить,надо какой-то хитрый тест придумать .Будем думать.
Да я иногда по инерции IRQ называю опросом(откуда появилась эта привычка я и сам незнаю).
А чтобы причину подергивания выявить,надо какой-то хитрый тест придумать .Будем думать.
Офигеть!
Самое удивительное,что причиной подергиваний является как раз увеличение скорости работы клавиатуры!
Дело в том,что приложения активно использующие клавиатуру,"непривыкли" к бысторой работе клавиатуры.Вот например,в моей программе с перемещениями спрайтов после отжатия клавиши спрайты реагировали не мгновенно(из-за инерционности клавиатуры) и поэтому спрайт плавно останавливался.
А сейчас,только отпустиш клавишу,как спрайт останавливается словно вкопанный(при быстором управлении спрайтом создается эффект дергания).Я изменил код с учетом возросшей скорости и спрайты стали двигаться плавно.
Если в Колибри будут еще какие-то важные улучшения,то пожалуйста не поленитесь их отразить в ReadMе!(ато я тут поднял ложную тревогу).
Самое удивительное,что причиной подергиваний является как раз увеличение скорости работы клавиатуры!
Дело в том,что приложения активно использующие клавиатуру,"непривыкли" к бысторой работе клавиатуры.Вот например,в моей программе с перемещениями спрайтов после отжатия клавиши спрайты реагировали не мгновенно(из-за инерционности клавиатуры) и поэтому спрайт плавно останавливался.
А сейчас,только отпустиш клавишу,как спрайт останавливается словно вкопанный(при быстором управлении спрайтом создается эффект дергания).Я изменил код с учетом возросшей скорости и спрайты стали двигаться плавно.
Если в Колибри будут еще какие-то важные улучшения,то пожалуйста не поленитесь их отразить в ReadMе!(ато я тут поднял ложную тревогу).
Неплохо бы еще проверить с последним ядром с SVN - кажется, что в Колибри 0.5.1.0 вошли не все изменения из перечисленных выше... (я не качал исходники 0.5.1.0)
Точно могу сказать, что переделан обработчик i40, а вот IRQ, скорее всего, обрабатываются по-старому.
Точно могу сказать, что переделан обработчик i40, а вот IRQ, скорее всего, обрабатываются по-старому.
Проблема сохранилась и в 5.20, трудно играть в "подвижные" игры. Еще В Doomе например Shift - скорость, работает только один раз при нажатии, достаточно нажать любую другую клавишу, как скорость отрубается и надо опять нажимать Shift.
Doom - это особый случай. Глюк с "западающими" клавишами присущ исключительно этой игрушке. Если глюки есть в других играх, то просьба подробно расписать симптомы.
В "теннисе" и в арканоиде западание клавиш также присутствует, вначале не сразу срабатывает, затем не может остановится некоторое время.
camper
Теннис и Арканоид, про которые ты говоришь, написаны на основе библиотеки ASCL, написаны Павлюшиным Евгением, библиотека тоже им написана. Таковой глюк является не глюком в принципе программы, а особенностью реализации библиотеки. Соответственно это глюк библиотеки. Хотя в игре Феникс он уже вроде не появляется, однако игра была написана существенно позже.
Теннис и Арканоид, про которые ты говоришь, написаны на основе библиотеки ASCL, написаны Павлюшиным Евгением, библиотека тоже им написана. Таковой глюк является не глюком в принципе программы, а особенностью реализации библиотеки. Соответственно это глюк библиотеки. Хотя в игре Феникс он уже вроде не появляется, однако игра была написана существенно позже.
camper и Mario79
Все это связанно с тем что в арканоиде и понге считываются тормознутые Ascii коды!
А кода появилась фитча в ядре считывающая scan-коды я сразу стал ее использовать в фениксе и там ни че не тормозит...
Просто когда-то давно небыло скан кодов! И про эти глюки можете забыть это не глюки а особенности старого ядра.
Все это связанно с тем что в арканоиде и понге считываются тормознутые Ascii коды!
А кода появилась фитча в ядре считывающая scan-коды я сразу стал ее использовать в фениксе и там ни че не тормозит...
Просто когда-то давно небыло скан кодов! И про эти глюки можете забыть это не глюки а особенности старого ядра.
EXIS
Спасибо, что разъяснил. В принципе не плохо бы переписать.
Спасибо, что разъяснил. В принципе не плохо бы переписать.
Тока если с нуля... Да не надо че-то новое... а то эти понги и арконоиды... надоедают...Mario79 wrote:EXIS
Спасибо, что разъяснил. В принципе не плохо бы переписать.
Феникс действительно не тормозит! EXIS в чем кораблики рисовал?
Понги и арканоиды надо переписывать, с нормальной классической графикой для этих игр Но это лучше дайте сделать молодому подрастающему поколению
Понги и арканоиды надо переписывать, с нормальной классической графикой для этих игр Но это лучше дайте сделать молодому подрастающему поколению
Who is online
Users browsing this forum: No registered users and 0 guests