sound, SB, AC97 и другое

Drivers for sound cards
  • yogev_ezra
    Когда Serge разработал и реализовал Infinity (звуковая подсистема используемая в Колибри) он переписал исполняемый файл Doom для нее. Ранее Doom не выводил звук по вполне понятным причинам - в Менует отсутствовала звуковая подсистема. Плеер который там был работал напрямую со звуковой картой SB, если я не ошибаюсь - я не занимался этой темой подробно. А относительно Quake никто таких усилий не предпринимал.

    З.Ы. Надеюсь Serge объяснит более развернуто.
  • Может это diamond делал. Там наверное адаптация под файловую систему Корлибри. Всё равно на svn этих исходников нет.
  • Да, скорее всего с Quake была именно адаптация под файловую систему Колибри. Насколько я помню старая версия была привязана к /hd/1/ - старому синтаксису который в Менует и смена раздела приводила к подвисанию игры.
  • Serge
    Спасибо за подсказку!
    Сделал 4 буфера и 32 BDL (было 2 буфера и 2 BDL), щелчки исчезли.

    Прошу потестировать тех у кого были щелчки.
    SOUND.OBJ (7.58 KiB)
    Test version 017b. Step 7: General complete.
    Downloaded 192 times
  • What is '32 BDL' ?
    "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
  • hidnplayr
    BDL is a Buffer Descriptor List.
    Intel® 82801AA (ICH) & Intel® 82801AB (ICH0) I/O Controller Hub AC ’97 Programmer’s Reference Manual wrote:The Buffer Descriptor list is an array of up to 32 entries, each of which describes a data buffer. Each entry contains a pointer to a data buffer, control bits, and the length of the buffer being pointed to, where the length is expressed as the number of samples. This, combined with the 16-bit sample size, gives the actual physical length of the buffer. The buffer length is restricted to 65536 samples. “0” in the buffer length indicates no samples to process. Each descriptor can point to a buffer of a different size. The samples are stored two per DWord (16-bit samples). In the case of audio PCM, these represent the left and right channels, respectively.
    Intel® I/O Controller Hub 6 (ICH6) High Definition Audio / AC ’97 Programmer’s Reference Manual (PRM) May 2005. wrote:4.6.3 Starting Streams
    To create a stream, the software must first determine the appropriate stream parameters, such as
    sample rate, bit depth, and number of channels. The controller and codec resources should be
    checked to make sure sufficient resources are available to support the desired stream format.

    A data buffer and BDL buffer are then allocated from the proper memory pool, making sure that
    the proper buffer alignment and caching requirements are met. The BDL is constructed to describe
    the stream data buffer, including setting Interrupt on Completion bits at the points interrupts are
    desired. Software then allocates a Stream Descriptor (Input or Output, as appropriate), and
    configures the Descriptor with the stream format, BDL address, Cyclic Buffer Length, interrupt
    policy, and other necessary register settings.


    The codec is next configured by configuring the appropriate Audio Input or Output Converters
    with the stream ID and format information. Other widgets in the audio path are configured so that
    the audio data flows to (or from) the Pin Complex Widgets, with Connection Select, Amplifiers,
    Processing Controls, and all other controls in the audio path set as appropriate. At this point, the
    codec is ready to accept data if the stream is an output stream or begins sending data on the link for
    an input stream.

    The Stream Descriptor’s RUN bit is then set to 1 to start the DMA engine and begin the transfer of
    data to or from the link.
    The driver used two BDL entries before, but now it uses thirty two BDL entries.
  • Добавил обработку DEV_GET_POS для AC'97 от VIA.

    VIA AC'97
    Attachments
    VIA AC'97.7z (13.07 KiB)
    Downloaded 178 times
  • Проверил 017b в VirtualBox 4.0. Звук работает нормально. :wink: Ещё раз спасибо Serge за совет.
  • HP ProBook 5310m, звука нет, Ac97snd грузит процессор на 100%

    Code: Select all

    HDA test version 017b
    detect hardware...
    Intel 82801I
    PCI command     00000006
    PCI status      00000010
    lower mmio base 90900004
    upper mmio base 00000000
    CORB/RIRB buffer allocated
    PCI TCSEL     00000000
    codec_mask = 00010005
    create primary buffer ...done
    codec probed OK
    CAd = 00000000
    Setup FG nodes = start_nid:total_nodes = 00000001
    :00000001
    FG type = 00000001
    Setup FG nodes = start_nid:total_nodes = 0000000A
    :00000001E
    IDT unknown codec id 00007608
    codec_mask = 00010000
    no codecs found!
    Sound service not loaded
    Sound service not installed
    Лог перебивал вручную, так что могут иметь место опечатки.
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Gluk
    Не понял, что там после
    IDT unknown codec id 00007608
    .
    Возможно там только цифровые выходы у кодека, а вообще ещё есть и второй кодек судя по маске.

    Попробуй ещё.
    Attachments
    intel_hda.obj (18.11 KiB)
    017d
    Downloaded 550 times
  • Здравствуйте, вопрос по SIS 7012.
    Очень тихий звук, это как нибудь регулируется?
    Подопытный бук
    Asus A2500L Celeron M 2.40GHz
  • Roverman
    В плеере прибавлять пробовал?
  • Да, пробовал. Прибавляется, но не так громко как под виндой.
    И в Fplay тоже очень тихий звук.
    А драйвер выдаёт максимальную громкость или чем-то ограничен?
  • Скорее всего Serge сделал на какое-то значение выше среднего. Когда мы отлаживали на моем домашнем компе, которого теперь естественно у меня нет ибо 5 лет прошло, то звук был нормальной громкости. Хотя я конечно слушал с колонками, так что возможно имеет смысл в драйвере выставлять более высокое значение.
  • Who is online

    Users browsing this forum: No registered users and 0 guests