Kobold & Namco
Я тут кое-что смастерил – штука записывает каждое нажатие клавиши и кадр, когда это происходит, да ещё и с подсветкой, как будто заклинание. Хочешь посмотреть, не спрятала ли последняя версия какую-нибудь забавную ошибку?
Отлично! Загрузи исходный лог и схемы освещения. Я обработаю данные кадров, сопоставлю с описанием патча и посмотрю, нет ли скрытой задержки кадров или пропущенной привязки кнопок. Давай, присылай!
Вот выгрузка сырых логов и последовательность световых сигналов, которую я записал во время тестов.
LOG: 2025-12-16 12:07:23 – Кнопка А нажата – кадр 1025 – светодиодная вспышка последовательности КРАСНЫЙ-ЗЕЛЕНЫЙ-СИНИЙ.
LOG: 2025-12-16 12:07:25 – Кнопка B нажата – кадр 1027 – светодиодная вспышка последовательности ЖЕЛТЫЙ-ПУРПУРНЫЙ.
LOG: 2025-12-16 12:07:28 – Кнопка C нажата – кадр 1030 – светодиодная вспышка последовательности ГИОЛО-ОРАНЖЕВЫЙ.
LOG: 2025-12-16 12:07:30 – Кнопка А отпущена – кадр 1031 – светодиодная вспышка ВЫКЛ.
Данные световых сигналов (шестнадцатеричные значения на кадр):
01 02 03 – КРАСНЫЙ, ЗЕЛЕНЫЙ, СИНИЙ
04 05 06 – ЖЕЛТЫЙ, ПУРПУРНЫЙ, ВЫКЛ
07 08 09 – ГИОЛО, ОРАНЖЕВЫЙ, ВЫКЛ
Скажи, если тебе нужен полный бинарный пакет или файлы с волновыми формами для светодиодов. Удачи в разборе!
Спасибо за выгрузку. Сразу бросается в глаза, что последовательности светодиодов не совпадают со смещением рамки кнопок на два кадра. Эта задержка в два кадра – классическая ошибка буфера. Еще, шестнадцатеричные тройки для второй партии светодиодов (04 05 06) показывают странный переход в выключенное состояние, который должен происходить только при отпускании. Судя по всему, патч поменял время работы регистров контроллера светодиодов, но забыли обновить буфер обработки ввода. Если ты выгрузишь необработанный пакет и прогонишь его через мой скрипт синхронизации кадров, уверен, мы увидим микро-глюк, когда игра все еще принимает ввод, но буфер светодиодов все еще обрабатывает предыдущую команду. Давай глянем на файлы волновых форм, посмотришь, не пикают ли они на кадре 1028 – это характерно для пропущенной очистки буфера. И еще, просто предупреждаю: в примечаниях к патчу сказано, что "обновления светодиодов теперь привязаны к основному рендеринговому потоку". Это объясняет расхождение. Держи меня в курсе, и не дай ИИ противнику назвать это глюком – это фича, которую разработчики запрятали в коде.
Конечно! Вот сырые данные пакета (в шестнадцатеричном виде), как ты и просил, и простой снимок ASCII-графика выходного сигнала светодиода вокруг кадра 1028.
Сырой пакет (байты в порядке big-endian, один пакет на кадр):
- Кадр 1025: 01 02 03
- Кадр 1026: 04 05 06
- Кадр 1027: 07 08 09
- Кадр 1028: 04 05 06
- Кадр 1029: 07 08 09
ASCII-график (уровни яркости светодиода, 0 = ВЫКЛ, 1 = ВКЛ):
```
Кадр 1024: 0 0 0
Кадр 1025: 1 1 1 <-- КРАСНЫЙ-ЗЕЛЁНЫЙ-СИНИЙ
Кадр 1026: 1 1 1 <-- ЖЁЛТЫЙ-ПУРПУРНЫЙ (должен быть выключен при сбросе)
Кадр 1027: 1 1 1 <-- ГОЛУБОЙ-ОРАНЖЕВЫЙ
Кадр 1028: 1 1 1 <-- ЖЁЛТЫЙ-ПУРПУРНЫЙ снова (нет сброса)
Кадр 1029: 1 1 1 <-- ГОЛУБОЙ-ОРАНЖЕВЫЙ
Кадр 1030: 0 0 0
```
Если ты запихнешь этот пакет в свой скрипт синхронизации, то задержка в два кадра будет видна там, где контроллер светодиода всё ещё хранит старые данные. Дай знать, если тебе понадобится более подробный график (например, синусоидальный сигнал ШИМ-управления светодиодом) или пакет в виде файла – просто скажи!