
Комментарии 24
Когда же кто-нибудь запустит Doom на советской игре "Электроника"?
Удивлен что хоть у кого то оголовье и наушники целые
На самом деле там сломаны оба механизма складывания (динамики просто мотаются свободно из стороны в сторону) и после пары падений сломалась пластиковая часть механизма для настройки оголовья (ни на что не повлияло), но носить их возможно... 4 года ходил с ними.
До сих пор хожу с ними, те же проблемы решил строительной изолентой, замотав два динамика намертво
У меня целые, на удивление. Покупал в январе 2023. Все целое, только амбушюры протёрлись, поменял
Но почему именно наушники?
Теперь нужно запустить Дум на карте проездной от метро.
Doom уже не актуален, в моде Скайрим.
Как раз недавно смотрел у Aaron Christophel видео, в котором он завёл Doom на том же камне, но в умных часах.
У меня тоже есть наушники от Soundcore Q30 (а3028) только, могу в будущем чем то помочь, может если получится слить каким-то образом прошивку для развития, если будет обновление по воздуху, с руками дружу, паяльник имею, ток вот прошивальщика нет, но есть Ардуино, может на нем возможно написать?
Очень интересная статья, спасибо! У самого Q20i, но в сторону прошивок и встроек только-только начинаю входить. Из текста статьи не очень детально понял, как именно встраиваемый код попадает в итоговый бинарь и как МК наушников понимает, где его выполнить. Может, проморгал, но был бы рад, если бы пояснили :)
Кстати, использовали ли Вы какие-то ресурсы/инструменты для погружения в тему, или все шло эмпирическим путем?
Для начала хочу сказать, что изучал Q20i несколько месяцев назад, в них тот же самый чип!
Спасибо за обратную связь, в будущих частях про загрузку и т.д. расскажу :)
Сама прошивка - просто ARM-бинарник с RTOS, который разделен на секции (по смещениям адресов). В МК вшит неизменяемый загрузчик (BootROM), который отвечает за восстановление через сервисный порт (через него считывался флэш с помощью bestool) и загрузку прошивки с флешки. МК загружается именно с него.
При запуске он указывает процессору, что нужно исполнять код с адреса флэша (0x3c000000). Сам код в прошивке - ассемблерный байткод.
Мой патчер находит в прошивке похожую структуру кода (сравнивает с той, что в нем прописана), выбирает несколько функций-кандидатов и меняет код в главном кандидате (пишет звуки в пустую память, а в функции меняет указатели (адреса) с стоковых звуков на заменённые) и сохраняет бинарник. Его можно прошить через тот же bestool.
Про погружение - про саму составляющую прошивки я узнавал сам, об этом мало что было в интернете. На чип BES2300P есть даташит (он указан в начале статьи), но я его использовал максимум для того, чтобы узнать, какое напряжение требуется для UART пинов.
Если сказать просто - всё шло и эмпирическим путём, но с использованием различных ресурсов и инструментов.
Если просто перечислить инструменты, которые использовались:
Ghidra - декомпилятор/дизассемблер бинарного кода.
basefind2 - утилита, которая помогает найти адрес загрузки прошивки.
bestool - утилита для считывания/прошивки для чипов BES.
Конечно же, ИИ. С помощью него писались все скрипты и я частично использовал его как источник информации.
Я увлекаюсь информационной безопасностью, поэтому я решал CTF-задачи по реверс-инжинирингу, но больше всего тренировался на реальных вещах - я изначально исследовал работу ABL (fastboot в android) образа на процессорах Qualcomm, благодаря этому я как раз научился пользоваться Ghidra и получил базовые знания о том, как работает скомпилированный код. И сами наушники как раз тоже исследовались, чтобы получить знания в этой сфере.
Мощно
О, у меня как раз такие наушники, очень интересны любые возможности что-то там поменять. И вообще интересны подробности об их работе изнутри: как с эквалайзером работают, какие настройки у их стандартного эквалайзера, какие частоты дискредитации и битрейт поддерживают (по AAC у меня получалось по логам что-то около 230)
Через пару дней выйдет обновление, которое позволит прошить патч звуков прямо по воздуху, без разборки! Вообще, в даташите написано, что ЦАП чипа может выдавать вплоть до 192кГц и еще много чего. Главное - чтобы потянул блютуз. Но такое возможно уже с полностью кастомной прошивкой, которую я, к слову, тоже делаю. Остальное я не исследовал пока что... спасибо за комментарий! У меня стоит в целях на будущее реверс-инжиниринг звуковой части в стоковой прошивке.
Вообще, в даташите написано, что ЦАП чипа может выдавать вплоть до 192кГц
Ну блютуз такое не вывезет (разве что с низкой разрядностью).
А есть возможность заставить их (относится и к другим блютуз наушникам) нормально звучать в выключенном через провод? Или эта проблема в настройке самих динамиков?
В выключенном состоянии ЦАП не работает, это уже относится к самим динамикам. Кстати, чип поддерживает USB аудио, так что вполне можно по кабелю слушать музыку на безумных частотах, если когда-нибудь добавлю USB стек в свою прошивку :)
Это интересно. Но поддерживает ли USB-порт передачу данных? Производитель мог и урезанный туда воткнуть, он ведь используется только для зарядки.
Как я прошил наушники soundcore, портировал на них кастомную прошивку и DOOM. Часть 1