to Serge
В последнем твоём последнем посте пункт 2 - ответ на мой вопрос и на твой же пункт 1.
Кстати разгадка возможностей SB по частоте оказалась простой - дело в том, что моя карточка OPTi16 не определяется в DOS и Колибри (будет время - пофиксю, сейчас не до того), только в винде, и я использую ESS1869, которая не SB16 (что соответствует DSP v4 и выше), а SBPro (DSP v3.1). Если есть SB16, то частота задаётся напрямую - т.е. мы записываем ровно ту частоту, которая нужна, далее уже проблемы самого DSP, как он это будет переваривать, в случае с более старыми, т.е. например SBPro, частота задаётся с помощью так называемых Time Constants, считается эта константа так:
(65536-256000000/(Rate*Channels))shr 8, или после упрощения
256-1000000/(Rate*Channels), где Rate - частота, Channels - 2 или 1 если соответственно стерео или моно, это я всё к тому, что если сказано, что карточка в любом режиме умеет 44кГц, то значит в стерео она должна принимать пары байтов с частотой 44кГц, значит в моно (я ведь для упрощения в задачи сначало в моно режиме воспроизвожу) она может принимать аж с частотой 88кГц. Это так для интереса.
Что куда важней - я скачал последнее ядро с SVN'а - ведь в нём ты пофиксил баг, а оно не грузится - ошибка в данных начального загрузчика, пересобрал из исходников - те же дела. В принципе у меня такое уже бывало с ядром 600каким-то, но 769 работает нормально. Гружу с помощью MTLDR, взятого из дистра 0710 из img образа в корне диска.
sound, SB, AC97 и другое
Я не пользуюсь MTLDR. Гружу ядро с флешки (эмуляция FD).
Nable
Я правил код загрузчика в релизе 795. Загрузку с помощью MTLDR не проверял. Проверю.Что куда важней - я скачал последнее ядро с SVN'а - ведь в нём ты пофиксил баг, а оно не грузится - ошибка в данных начального загрузчика, пересобрал из исходников - те же дела.
Забейте на загрузку - этот баг проявляется только если я из под Колибри копирую новое ядро на рамдиск и затем перезапускаю ядро (Ctrl+Alt+F12, Home), да и то не всегда.
to Serge
Я наконец-то раздобыл SB16, но для 16битного звука нужен 16битный DMA канал. БИОС назначил канал 5, использую его - карта долю секунды хрюкает, после чего система виснет. Я предполагаю, что дело в ядре, не так ли? Как это обойти? 8 бит - не вариант, драйвер не успевает преобразовать 16бит от микшера.
Я наконец-то раздобыл SB16, но для 16битного звука нужен 16битный DMA канал. БИОС назначил канал 5, использую его - карта долю секунды хрюкает, после чего система виснет. Я предполагаю, что дело в ядре, не так ли? Как это обойти? 8 бит - не вариант, драйвер не успевает преобразовать 16бит от микшера.
Надо смотреть код.
to Serge
Hi! I've finally found time to go into Internet!
Here is my fully working version of the driver! In this first release only SB16 and newer cards are supported, SBPro and SB2.0 support would be added later (if I'll time).
Serge, test this at your machine first, please. It works on my real computer, but I didn't tested it anywhere else, so I am counting on you. If you find it working - then say this to other users, please.
In the archive:
kernel.mnt - my patched kernel that doesn't reserve IRQ5
sndblstr.txt - it is the best of all documentation for SB cards
s*.zip - C sources (not my) that I used to look at real code that makes SB work
Nable\Readme.txt - my small readme
Nable\SOUND - compiled driver. Rename it to sound.obj and put to /sys/drivers
Nable\*.asm,*.inc - my source code. I don't pretend for anything. But I think that it'll better if I'll modify this code if needed, not everybody. If many people modify the same code at the same time it's becoming difficult to understand how does it work.
Hi! I've finally found time to go into Internet!
Here is my fully working version of the driver! In this first release only SB16 and newer cards are supported, SBPro and SB2.0 support would be added later (if I'll time).
Serge, test this at your machine first, please. It works on my real computer, but I didn't tested it anywhere else, so I am counting on you. If you find it working - then say this to other users, please.
In the archive:
kernel.mnt - my patched kernel that doesn't reserve IRQ5
sndblstr.txt - it is the best of all documentation for SB cards
s*.zip - C sources (not my) that I used to look at real code that makes SB work
Nable\Readme.txt - my small readme
Nable\SOUND - compiled driver. Rename it to sound.obj and put to /sys/drivers
Nable\*.asm,*.inc - my source code. I don't pretend for anything. But I think that it'll better if I'll modify this code if needed, not everybody. If many people modify the same code at the same time it's becoming difficult to understand how does it work.
- Attachments
-
-
SBDRV.ZIP (234.9 KiB)Downloaded 881 times
-
У меня не заработало, но возможно (скорее всего) моя система вообще не поддерживает SB.
Характеристики моего компа у меня в профиле.
Характеристики моего компа у меня в профиле.
Из хаоса в космос
Nable
Работает !
Железа у меня нет, проверял в Qemu и VirtualPC. В Qemu звук идёт с треском хотя загрузка проца 20-30% наверное это проблема с эмуляцией.
В VirtualPC звук почти отличный. Тестовая mp3 загрузила проц на 5%. Жаль что в остальном VPC глючный.
Работает !
Железа у меня нет, проверял в Qemu и VirtualPC. В Qemu звук идёт с треском хотя загрузка проца 20-30% наверное это проблема с эмуляцией.
В VirtualPC звук почти отличный. Тестовая mp3 загрузила проц на 5%. Жаль что в остальном VPC глючный.
Подправленый плеер. Предыдущий иногда "проглатывал" конец файла.
- Attachments
-
-
ac97snd.7z (23.79 KiB)Downloaded 243 times
-
Nable
Все здорово работает. Надо ещё сделать MASTERVOLUME. Громкость задаётся как в DirectSound (затухание в сотых dB от -10000 то есть -100dB полная тишина до 0 - максимальная громкость). Как я понял в SB 16 уровней громкости, только неясно где максимум: 0 или 15.
Все здорово работает. Надо ещё сделать MASTERVOLUME. Громкость задаётся как в DirectSound (затухание в сотых dB от -10000 то есть -100dB полная тишина до 0 - максимальная громкость). Как я понял в SB 16 уровней громкости, только неясно где максимум: 0 или 15.
Leency
На твоём компе не может быть SB карты - это ISA устройство, а слоты расширения ISA есть только вплоть до i686. Я правда читал про чипсеты, эмулирующие SB, но сейчас таких не делают.
Serge
Понял, т.е. sb_master_vol=((int)((MASTERVOLUME+10000)/10000*16)) and 0xF.
Максимум - 15. Есть такой момент, что у SB встроенный миксер, поэтому кроме
На твоём компе не может быть SB карты - это ISA устройство, а слоты расширения ISA есть только вплоть до i686. Я правда читал про чипсеты, эмулирующие SB, но сейчас таких не делают.
Serge
Понял, т.е. sb_master_vol=((int)((MASTERVOLUME+10000)/10000*16)) and 0xF.
Максимум - 15. Есть такой момент, что у SB встроенный миксер, поэтому кроме
К сожалению, у меня система с этим ядром при запуске перезагружается...
Nable
Надо умножать на 15 иначе при максимуме сбросится в ноль.
Надо умножать на 15 иначе при максимуме сбросится в ноль.
Serge
Да я и сам понял, что на 15, только очень спешил, даже до конца пост не дописал. А сказать я тогда хотел следующее - master volume это конечно хорошо, но что делать с остальными регистрами миксера - pcm out volume, aux volume, cd volume...
Да я и сам понял, что на 15, только очень спешил, даже до конца пост не дописал. А сказать я тогда хотел следующее - master volume это конечно хорошо, но что делать с остальными регистрами миксера - pcm out volume, aux volume, cd volume...
Who is online
Users browsing this forum: No registered users and 1 guest