Важная информация
RSS лента

vinxru

Лучше чем COVOX

Рейтинг: 4.00. Голосов: 4.
Давным давно я, да и не только, играл на PC без звука. Звуковая плата Sound Blaster стоила очень дорого.

Все еще знали про Covox - горсть резисторов на параллельном порте, которая давала паршивый звук и работала в редких программах.

Так и жили.

А недавно я увидел схему звуковой платы Disney Sound Source. Больше скажу, я узнал о её существовании. Я конечно видел её в настройках старых игр, но просто не обращал внимания. Мало ли какую железяку наворотили.

А это оказалась не железяка, а единственная маленькая микросхемка подключающаяся к параллельному порту.

Covox то же подключается к параллельному порту. Отличие в том, что Disney Sound Source содержит 16 байт памяти. FIFO-буфер. Значения с порта записываются в эту память в любое время с любой скоростью, а отправляются на динамик с фиксированой частотой 7 КГц!

То есть, процессор загружен в 12 раз меньше, чем при использовании Covox. Джиттера нет - то есть шумы меньше. Есть игры, Wolf 3D, Duke Nukem 3D например. Есть даже драйвера для Windows.

Что бы собрать такую плату нам нужно всего то: пару штук К531РУ0, генератор - на каких удобно деталях, ЦАП - можно на резисторах, но лучше на микросхеме.

Ниже схема превращающая Covox в Disney Sound Source. Все просто. Я мог жить со звуком.

P.S. Схема актуальна и для 8 битных компьюертов.

[IMG]http://cs633326.vk.me/v633326349/f9bc/0rs7AwRw03M.jpg[/IMG]

[IMG]http://cs633326.vk.me/v633326349/f9c6/T9FRyuypFJs.jpg[/IMG]

Обновлено 19.05.2016 в 18:40 vinxru

Метки: Нет Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для Epsilon
    Прикольная штука. Только её надо было в году так 1990м прицепить к ZX повсеместно, вместо COVOX.
  2. Аватар для Epsilon
    Кстати для CD-качества достаточно было бы буфера размером 882 байта, ну ладно, 1024. При этом пакет байтов нужно было бы писать 1 раз в INT, и куча времени оставалась бы для графики и математики.
    Для стерео-качества нужно было бы 2048 байтов.

    Сейчас это кажется таким простым, но в 1990 годы было реальной проблемой.
  3. Аватар для Epsilon
    Для 7 кГц буфера в 16 байт маловато. Пришлось бы как минимум 9 раз за один INT обновлять весь буфер, а значит - опять реализовывать программный таймер, что на корню убивает центральный процессор.
  4. Аватар для vinxru
    [QUOTE=Epsilon;bt347]Для 7 кГц буфера в 16 байт маловато. Пришлось бы как минимум 9 раз за один INT обновлять весь буфер, а значит - опять реализовывать программный таймер, что на корню убивает центральный процессор.[/QUOTE]

    Да, разрабатывалось то под PC, где есть программируемый таймер.

    Для спектрума небольшая проблема в том, что К555РУ10 обьемом всего 16 полубайт. То есть надо ставить аж 18 штук для полной буферизации.
  5. Аватар для vinxru
    [QUOTE=Epsilon;bt347]Для 7 кГц буфера в 16 байт маловато. Пришлось бы как минимум 9 раз за один INT обновлять весь буфер, а значит - опять реализовывать программный таймер, что на корню убивает центральный процессор.[/QUOTE]

    Только у этого программного таймера большая точность не нужна.

    Можно после вывода каждого спрайта проверять, есть ли место в буфере и догружать. Мы можем записывать значения каждые 1000~2000 тактов. Когда как получится, а звук будет ровный.
  6. Аватар для Epsilon
    Всё равно это очередное решение "через задницу". Лучше как следует подумать и сделать нормально, чем сделать быстро и потом трахаться с кодом.
  7. Аватар для Epsilon
    В этом плане, пожалуй, вспомню мою первую Амигу - Amiga A600, на которую я "пересел" в 1995м году и начал знакомиться с её внутренностями.

    Ощущение, которое я испытал, нельзя сравнить с оргазмом, поскольку оргазм бледнеет и курит беломор по сравнению с пониманием ЧТО я могу сделать на этой машинке. Вот хотя бы несколько фактов. Сам компьютер собран в виде симбиоза сопроцессоров, которые живут в одном корпусе, разделяют то же самое ОЗУ, но занимаются разными делами.

    - Музыкальный сопроцессор состоит из 4х независимых 14-битных COVOX'ов (в терминологии спектрума), которые самостоятельно без участия центрального процессора выбирают данные из ОЗУ из того места, которое укажешь и с той скоростью, которую укажешь. В результате проигрывание сэмплированной 4х-канальной музыки обходилось центральному процессору в 0 тактов.

    - Видеопроцессор выбирает данные для отображения из разных областей ОЗУ (можно указать разный начальный адрес для каждого битплана!) и выводит их в виде 8 независимых битпланов, причём для того, чтобы скроллировать экран не нужно было перекидывать данные физически - достаточно было просто поменять начальный адрес отображаемой зоны ОЗУ. Всё ОЗУ было доступно для видео!

    - Контроллер дисковода и HDD - тоже абсолютно независимые от ЦП устройства, складывающие читаемые данные в указанную область памяти, при этом не грузящие ЦП всякой ненужной инфой вроде "я тут прочитал один бит, скажи, что мне делать дальше?". Многие демки на Амиге одновременно крутили на экране сложнейшие видеоэффекты, играли 4х канальную сэмплированную музыку и при этом подгружали с дискеты следующую часть. Например, демка "9 Fingers" состояла из набора коротких видеороликов - когда показывается один, с дискеты при этом считывается следующий. Посмотрите ЭТО хотя бы на youtube.

    - Центральный процессор при всей своей 7-мегагерцовой немощности (всего в 2 раза выше, чем ZX!) умел проделывать математические операции сложения, вычитания, умножения и деления 32-чисел за 4 такта. Посчитайте, для примера, сколько памяти и времени нужно ZX, чтобы сложить два 32-разрядных числа. Кроме того, у него в комплекте 8 регистров данных (D0-D7) и 8 регистров адреса (A0-A7), каждый 32-разрядный и заменяемый, т.е. можно без ограничений использовать ЛЮБОЙ из них. Также порвала мозг возможность записывать в стек и считывать из стека сразу несколько регистров за одну команду. Например, команда сохранения на стек выглядела вот так

    MOVEM D0-D3/D5/D6/A0/A3-A5, -(A7)

    Причём, это одна команда!

    Можно ещё прибавить аппаратную реализацию спрайтов, блит-сопроцессор, который играючи мог переносить с места на место огромные массивы данных (типа как LDIR на ZX, только в разы быстрее), при этом производя операции XOR/OR/AND с ними, возможность вызывать прерывание в момент отрисовки видеопроцессором конкретного указанного пикселя на экране (!) и многое-многое другое, про что я уже забыл.

    Ребята, это просто был пипец.

    В своё время Amiga была тем компом, который будучи распространённым в России как ZX мог бы произвести настоящую революцию. Но как-то не сложилось.
    Обновлено 20.05.2016 в 19:36 Epsilon
  8. Аватар для Бука
    Амига хороша, у меня тоже была А600.

    Но вот кто мешал им раньше вставить режим 256 цветов, это 64кб всего. А ведь эти кони выпустили в 92м 600ю у которой штатно лишь 32 цвета и дисковод 720кб.

    Фимоз мозга. И да - Commodore категорически боролся против даже не клонирования, а просто сторонних производителей дополнений.
  9. Аватар для Epsilon
    У A600 не было режима 256 цветов, но внимание - был режим HAM (4096 цветов одновременно на экране!) Такого в то время не было даже у PC. Был, правда, у Macintosh.

    Сейчас Apple делает ту же самую ошибку - закрытая архитектура. Та же ошибка была и у Sinclair.
    Единственный, кто пошёл по правильному пути - это PC. И вот результат
  10. Аватар для Epsilon
    Амижные демки - это вообще нечто, как будто в другой мир попадаешь))

    Недавно кстати во сне видел демку, видимо, ностальгией навеяло. Как же она называлась... а вот, нашёл https://www.youtube.com/watch?v=hBzfSAieLrs
    Обновлено 20.05.2016 в 21:23 Epsilon
  11. Аватар для Бука
    Я в курсе про хам, его придумали еще в 1984м.

    Он только для статичной картинки, фигня.

    Какой ктулху мешал сделать 256 цветов раньше, еще для Амига500? Только в 1992м сделали АГА,слишком поздно. Когда уже SVGA было.


    ПС кстати появился и победил вопреки IBM. Учите историю, она очень интересна и поучительна. Не был бы таким лентяем книжку бы написал. (((
  12. Аватар для vinxru
    [QUOTE=Epsilon;bt358]Амижные демки - это вообще нечто, как будто в другой мир попадаешь))

    Недавно кстати во сне видел демку, видимо, ностальгией навеяло. Как же она называлась... а вот, нашёл [url]https://www.youtube.com/watch?v=hBzfSAieLrs[/url][/QUOTE]

    Жил бы я в Питере с рождения, написал бы такое же. Я писал всякие эффекты для собственного развлечения, даже подобный, а про демосцену не знал вообще. Я видел несколько простых демок, но не придавал этому значения.
  13. Аватар для NEO SPECTRUMAN
    Интересная тема.
    И опять она утонула в этих дневниках и я ее пропустил...

    девайс был бы интересен
    появись он в 90-х

    fifo буфер на 256\512\1024 байт
    и его обновление по инту
    давало бы 12\25\51 КГц-ный звук и некоторое освобождение времени процессора

    ....

    но это не даст сильный выигрыш
    разве что хранить весь звук в несжатом виде
    а не спектруме для этого нет памяти (10-50 КБ\сек)

    а софтварные генераторы
    просто не смогут успеть сгенерировать нужное количество данных
    чтоб отправить их в буфер

    что то особо не видно большое количество mod плееров выдающих 44Кц

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

    [quote="vinxru"]То есть, процессор загружен в 12 раз меньше[/quote]
    при генерации звука проц загружен на 100% в любом случае
    ему некогда заниматься чем то еще

    разве что опустить качество звука до 8Кц
    или турбо 5-7 МГц минимум


    а еще нужна точная синхронизация с интом
    если не будет синхронизации
    рано или поздно читалка fifo догонит и перегонит или на оборот отстанет от проца
    и на цап попрут те же данные по второму кругу
    и он будет щелкать клацать постоянно через какое то время

    по хорошему нужен контроль с какого адреса сейчас идет чтение или сброс этого положения в 0
    нельзя допускать близкое расположение записываемого и считываемого
    иначе может случится так что проц подкидывая данные будет иногда обгонять читаемые данные
    в итоге на цап будут переть как полезные сигнал так и новые еще не актуальные данные
    и будет это выглядеть как
    9 раз программа запускается нормально
    а на 10 в ней стоит скрежет...



    ну и не нужно ничего изобретать
    давно есть GS
    и он вполне может выполнять функции описанной звуковой карты
    и сам может много чего

    интересно NGS более ограничен в плане генерации звука при этом
    своей фиксированной частотой вывода на ЦАП
    там выше 37 КГц не прыгнешь...

    А вот GS сможет
    Обновлено 23.07.2017 в 19:04 NEO SPECTRUMAN