User Tag List

Страница 5 из 22 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 256

Тема: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,376
    Спасибо Благодарностей отдано 
    407
    Спасибо Благодарностей получено 
    649
    Поблагодарили
    256 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Как это исправить я не знаю. Возможно придётся обратно уменьшить время фрейма до 20 мс, чтобы немного увеличить отзывчивость. Но это скажется на производительности.
    А какова сейчас продолжительность фрейма? IMHO для игр 20 мс - это практически максимум...

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    хватит даже одного опроса в начале фрейма
    Пример кода приведите пожалуйста.
    Цитата Сообщение от Pyk Посмотреть сообщение
    А какова сейчас продолжительность фрейма?
    А сейчас 40 мс. Так звук с ковокса и AY более гладкий, без микроразрывов в промежутках между фреймами. Т.е. если они и возникают, то треск не так сильно в уши бросается.

  4. #3

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,981
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    321
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    243 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Пример кода приведите пожалуйста.
    что-то вроде:
    Код:
    // вызывается один раз в начале фрейма
    old_portX_value = new_portX_value;
    new_portX_value = 0xFF;  // ничего не нажато
    kb_state = getKeyboardState(); // что сейчас нажато на пц-клаве
    if (kb_state[some_key]) new_portX_value &= some_key_mask;
    // и так далее
    
    // обработка изменения состояния, тоже однократно
    if (old_portX_value != new_portX_value) { ... }
    
    // и далее в течение фрейма при любых чтениях порта X подставляем new_portX_value
    при эмуляции спека еще проще, не нужно обрабатывать изменение как событие, портов только много
    БК знаю плохо, но, вероятно, эмуляция лишь одного события по началу фрейма сильно упростит жизнь,
    субъективных ощущений не вызывая (всё равно человек так быстро кнопки не долбит)
    Прихожу без разрешения, сею смерть и разрушение...

  5. #4

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,981
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    321
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    243 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    В процессе обнаружился наверное неустранимый косяк. Поскольку инструкции, укладывающиеся во фрейм выполняются авансом, за как можно меньшее время, а нажатия на клавиши клавиатуры обрабатываются в реальном времени, то появляется рассинхрон.
    И в играх, вот как конкретно в BOLDER, в которых опрос клавиатуры делается не по прерыванию, а через бит 6 порта 177716 клавиатура просто не синхронизирована по времени выполнения с игрой.
    В общем игра думает, что клавиша не нажата, в то время как она нажата, т.к. инструкции опроса клавиатуры давно выполнились, опросили бит 6 убедились, что ничего не нажато, а клавишу только нажали.
    а в чём проблема, это ж эмуль с ненастоящей клавой, опроса клавиш хватит в начале фрейма, вот весь фрейм нажатие и засчитывать
    Прихожу без разрешения, сею смерть и разрушение...

  6. #5

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нажатие реальной клавиши фиксируется по событию OnKeyDown, отжатие - по событию OnKeyUp ведь надо же обрабатывать бит 6 в регистре 177716 чтобы зафиксировать нажатие и отжатие. А эти события приходят когда им вздумается, а не когда начинается фрейм.
    наверное можно как-то привязывать результаты событий клавиатуры к границам фрейма, но нужно городить уже диспетчер привязки событий, чтобы они привязывались каждое к своему фрейму в порядке прихода. Делать очередь фреймов и событий, синхронизировать их.
    Причём OnKeyDown приходит циклично, пока клавиша нажата. а OnKeyUp - однократно при отжатии клавиши.
    Я вот не вижу простого решения.

  7. #6

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,981
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    321
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    243 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    что там городить, дребезг, что ли, эмулировать собираешься? был за фрейм хоть один keydown? ну и нажата, значит, на время следующего
    Прихожу без разрешения, сею смерть и разрушение...

  8. #7

    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,117
    Спасибо Благодарностей отдано 
    164
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    сейчас видео выложу.
    это просто...
    у меня нет слов как назвать ЭТО !
    по сравнению с прошлыми эмуляторами мрак.

    - - - Добавлено - - -

    https://youtu.be/yt8-dwoo2t8

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

  9. #8

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня было (проскочило)
    предложение к тов. Patron'у
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  10. #9

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    был за фрейм хоть один keydown? ну и нажата, значит, на время следующего
    Сделал очередь событий клавиатуры, откуда события берутся в начале фрейма. Статус нажатия/отжатия держится весь фрейм целиком. Ничего не изменилось. Никаких улучшений.

    Цитата Сообщение от ZEman Посмотреть сообщение
    у меня нет слов как назвать ЭТО !
    Повезло. Словил дедлок. А я думал, что уже все места костылями подпёр. Значит ещё одно было незамеченное.

    Цитата Сообщение от hobot Посмотреть сообщение
    У меня было (проскочило)
    предложение к тов. Patron
    Я - за. Ибо на меня надежды мало.

  11. #10

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,981
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    321
    Спасибо Благодарностей получено 
    321
    Поблагодарили
    243 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Сделал очередь событий клавиатуры, откуда события берутся в начале фрейма. Статус нажатия/отжатия держится весь фрейм целиком. Ничего не изменилось. Никаких улучшений.
    зачем очередь?? зачем в принципе события? написал же, хватит даже одного опроса в начале фрейма, что нажато было в этот момент
    Прихожу без разрешения, сею смерть и разрушение...

Страница 5 из 22 ПерваяПервая 123456789 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)

Похожие темы

  1. Отличия БК-0011М от БК-0010(01)?
    от nzeemin в разделе БК-0010/0011
    Ответов: 22
    Последнее: 30.03.2021, 18:47
  2. БК-0010/0011: Разное
    от CD-Inc в разделе БК-0010/0011
    Ответов: 73
    Последнее: 30.07.2012, 16:58
  3. Начало выпуска БК-0011 и БК-0011М
    от dk_spb в разделе БК-0010/0011
    Ответов: 6
    Последнее: 14.10.2010, 14:22
  4. Отличие 0011 и 0011М
    от Kronshou в разделе БК-0010/0011
    Ответов: 11
    Последнее: 17.01.2010, 22:24
  5. Москва - куплю все связанное с БК-0010/0011
    от kt315b в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 04.10.2008, 05:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •