Как я писал эмуляцию звука для Nintendo Gameboy на C++ целый год
masscry 3 часа назад Краткое содержание статьи Как я писал эмуляцию звука для Nintendo Gameboy на C++ целый год Простой 15 мин 2.2K Игры и игровые консоли Системное программирование * C++ * Звук Кейс В этой статье я...
Will Anthropic have the best AI model at the end of October 2026?
Значимый прорыв формирует отрасль ИИ: masscry 3 часа назад Краткое содержание статьи Как я писал эмуляцию звука для Nintendo Gameboy на C++ целый год Простой 15 мин 2. 2K Игры и игровые консоли Системное программирование * C++ * Звук Кейс В этой статье я расскажу, как устроена звуковая подсистема Nintendo Gameboy, с какими проблемами я столкнулся, пытаясь в реальном времени генерировать звук и синхронизировать с ним картинку. Статья является продолжением моей прошлой публикации ( все знают про закон Парето — эмпирическое правило, согласно которому 20% усилий дают 80% результата, в то время как оставшиеся 20% результата требуют 80% времени.
Моя работа над эмулятором Gameboy еще раз его подтвердила. После того как довёл до рабочего состояния реализацию CPU и PPU, я взялся за APU — Audio Processing Unit, чтобы наконец‑то можно было играть в тетрис под «Коробейников». В итоге, разобраться в том, как же всё‑таки правильно генерировать звуки, оказалось непростой задачей.
Технические детали
Отдельно стоит сказать про восприятие. Человек ощущает звук быстрее, чем картинку: мозг обрабатывает звуковой сигнал заметно быстрее зрительного. Для эмулятора это оборачивается неприятной асимметрией — требования по реальному времени к звуку оказываются жёстче, чем к видео.
Пропуск в звуке слышен сразу и отставание звука от картинки раздражает сильнее, чем подтормаживающий кадр. Общая схема эмулятораЧто такое звук? Звук — это механическая волна, распространяющаяся в упругой среде.
Колебания среды воспринимаются нами через сложную систему органов слуха — волны, попав в слуховой проход, приводят к колебаниям барабанной перепонки, которая передаёт их через цепочку маленьких костей среднего уха, что приводит к колебаниям жидкости во внутреннем ухе, что, в свою очередь, приводит к нервным импульсам, передаваемым в мозг. Сейчас для создания звука в электронных приборах используются динамики. Они в общем‑то повторяют строение уха в обратном направлении.
Отраслевые последствия
Так, электрические сигналы заставляют катушку, прикреплённую к мембране, колебаться в поле постоянного магнита; мембрана, раскачиваясь, создаёт звуковые волны заданных характеристик. Тут еще надо отметить, что этот сигнал имеет аналоговую природу — амплитуда и частота сигнала могут меняться в широких пределах. Динамик колеблет мембрану и создаёт в воздухе сгущения и разреженияПрограммная архитектура воспроизведения звука на ПКБлаго нам, как разработчикам эмуляторов, не нужно манипулировать электрическими импульсами напрямую — эту задачу берёт на себя звуковая карта.
Она получает описание в виде сэмплов — дискретных значений, фиксирующих звук в виде смещения мембраны динамика в конкретный момент времени.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





