С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Вот как раз и не о бордюрных эффектах идет речь.
Выдержка из одной статейки по ДМА:
Код:Принцип работы основан на прямом доступе к памяти (DMA). Помимо звуковых возможностей устройство можно использовать как акселе- ратор при операциях с блоками, т.к. 8237 имеет команду аналогич- ную ldir которая выполняется в 2 раза (в 4раза при 7MHz) быстрее z80. Отсюда следующие выгоды: 1) пересылка блока память-память; 2) заполнение адресного пространства байтом. Т.к. у 8237 размер страницы 64кб появляется возможность пе- ресылать данные для работы z80 без заморочек со страницами.Добавлено через 10 минутКод:При использовании устройства в качестве ускорителя можно напи- сать scroll всего экранa за INT +25000 тактов проца свободно, а при турбе 8237 scroll+ мультиколор всего экрана + 10000 тактов проца свободно.
Что касается бордюрных эффектов, вопрос конечно интересный, без 100 граммов тут не разобраться Но, у разных компьютеров разный INT, всякие мультиколоры опять же под него затачиваются с учетом программной задержки, плюс если комп турбирован - новая проблема. Не думаю что ДМА есть единственная точка предкновения для бордюрных эффектов.
Добавлено через 16 минут
icebear, Совсем забыл, что на твой вопрос Алексей Иноземцев в свое время ответил в статье ZxPilot'а:
Код:2. Так все-таки можно с DMA использовать мультиколор и бордерные эффекты? Можно! Но только не так это делалось раньше. Теперь вместо того, чтобы высчитывать такты команд, нужно просто записать количество тактов в таймер контроллера прерываний и... все. Прерывание будет ровно через нужное количество тактов. Причем это время совершенно не зависит от скорости процессора. Турба, не турба - все едино: такты считаются от 3.5МГц. Можно настроить так, чтобы прерывания приходили каждую строку, каждые две строки, каждые полстроки - как вам будет нужно. ... Излишне напоминать, что все старые мультиколоры (ну в смысле те, что не используют DMA) работают как работали.
Последний раз редактировалось Hard; 27.09.2007 в 15:15. Причина: Добавлено сообщение
Это уже другое дело, значит прорабатывали эту тему. Только вот насколько я понял, запись в таймер позволяет только точно узнать, сколькто тактов процессор лишился, это правильно? Кстати, про скорость хотелось бы узнать, я так думаю, не все "самые большие микросхемы мира" могли бы её держать наверняка.
Who are you to fucking lecture me?
Еще тут звучали реплики по поводу дискретизации, передискретизации, интерполяции и пр... Снова обращяемся к сборнику статей по DMA USC, где разработчик карты рассказал следующее:
И скажи, что ГС сможет 148 КГц воспроизвестиКод:... И вообще, что такое частота дискретизации вообще и в данном конкретном случае в частности? Грубо говоря частота дискретизации это частота с которой звук был преобразован в цифровую форму. Т.е. понятие "частота дискретизации" относится к ЗАПИСИ звука. И если звук при записи оцифрован на 11кГц то будьте добры воспроизведите его на 11кГц, ни выше, ни ниже. На писюшках дядя Билли определил, что "стандартные" частоты это 11, 22, 44 и может быть 48 кГц. Все, других не бывает. И не надо в ваших бластерах делать что-то другое - в наши оКНА оно не влезет. Ну в общем идея понятна на сколько записано на столько и воспроизводи. А теперь внимание: все вышесказанное об частоте дискретизации относилось к так называемым "WAV'ам". К .mod'ам и другим TRACKER'ным музонам это имеет вообще отдаленное отношение. В модах каждый оцифраванный звук (т.е. SAMPLE) звучит не сам по себе, а является ИНСТРУМЕНТОМ т.е. частота с которой он воспроизводится ЗАВИСИТ ОТ ТЕКУЩЕЙ НОТЫ. Например для ноты C-1 это 4136Гц,а для B-3 - 31327Гц. Причем на каждом канале своя нота и значит своя частота. Что происходит дальше?.. На писюке дядя Билли сказал: " И шо вы к мене пристали со своими mod'ами?! Та у мене с детства медведи об мои уши ноги вытирали! Я ж вам сделал .mid'юхи - шо вам еще надо?" И программисты пишут исходя из того что имеется,благо лошадиная производитель- ность процессора позволяет заниматься практически любым маразмом. Каждый сэмпл который звучит на данной ноте (например B-3) ПЕРЕДИСКРЕТИЗИРУЕТСЯ так, что бы на той частоте на которой работает звуковая карта (например 44 кГц) он звучал на частоте НОТЫ (т.е 31327 Гц). И это на каждом канале. Мало того, что процессор занимается всякой фигней, так еще появляется так называемый шум передискретизации. Для его удаления используется интерполяция (линейная или многоточечная). А что же Спектрум? Да все тоже самое! Минус лошадиный процессор и плюс необходимость программного вывода в ЦАПы (на пц строго ПДП) Про интерполяцию я вообще молчу. А в DMA USC все просто: подошла нота - задал частоту на канале (с точностью 16бит!) и забыл.. Конечно, если быть очень придирчивым то можно сказать, что в DMA передискретизация есть, но только аппаратная, а не програм- мная. Все точно, только соответсвующая ей частота передискретизации равна... пра- вильно, 3.5 МГц. А wav'ы проигрываются любые хоть 11, хоть 22, хоть 48 кГц, хоть 148 если такое понадобится кому-нибудь.
Добавлено через 13 минут
У меня на пентагоне стояли импортные аналоги РУшек - не турбированную карту со всеми приколами они держали без проблем. Потом поставил карту на KAY-1024, что там у него стоит из памяти не помню - но работал тоже без проблем.
Добавлено через 18 минут
Не, ты не понял. В DMA USC есть 2 таймерных векторных прерывания, которые можешь запрограммить на частоту 30Hz-1.75MHz. Установил прерывание, чтоб приходило с периодом, необходимым для отрисовки 1 строки и вот тебе весь мультиколор на бордюре!
Последний раз редактировалось Hard; 27.09.2007 в 15:45. Причина: Добавлено сообщение
ниче тут раскатали..
1. это какие же особенные? я вот не уверен, но почему-то мне кажется, что цапы и там, и там одни и те же. и включены они похоже.
2. что значит не у всех есть биос? карта изначально идет с биосом, никаких заморочек. если же собирать самому, то прошивка доступна в любом эмуляторе. недавно лично "вышел" новую ревизию, ничего перешивать не нужно, все совместимо. хочется большей гибкости и безглючности - перешей, я взял и перешил (хотя понятно, что не каждый может, но это заморочка только сейчашнего гс, но что будет в недалеком будущем))).
я не говорю, что она не будет работать.
1. толку в ней на пентагоне 128 ровно 0. у тебя вся память забьется модом и делать ничего будет нельзя.
2. КАК ты её подключал? я гс только подпаял проводами к процессору и порезал 1 дорожку. сколько дорожек порезал ты?
ооо... интересно, а игра (изначально 128к), адаптированная под dma usc, пойдет на простом 128??? вряд ли, если это специально не предусмотрели. так и тут, захотели бы - все бы и без gs работало.
согласен, если кто-то написал готовый плеер музыки+эффектов, примерно такой, какой сделан в gs (который сам разбирается что и в каком канале надо играть). если нет, извини, нормально озвучивать игру ты будешь не в пример дольше, чем для gs.
купить - раз, а подключить? на сколько я понимаю, в последний новый пентагон GS просто втыкается и работает. КАК подключить к нему dma usc?
так, давай разберемся. возьмем типичную прогу с мультиколором и музыкой под AY. что мы имеем: на прерываниях висит процедура, которая отмеряет такты (следит за ходом луча). далее, просчитанный до такта мультиколор, далее вызов плеера музыки (в свободное время). либо плеер музыки фиксированный по тактам идет вначале. обращаем внимание на то, что когда рисуется мультиколор (одна строка), заняты ВСЕ такты. если при этом процессе проц тормозится - луч улетает. а то, что возможна генерация прерывания, ничего не дает, т.к. нет тактов на его обработку. посмотрите на мультиколор в демке RAGE, при таком мультиколоре играть мод на dma НЕ РЕАЛЬНО, на GS - вообще без проблем.
собственно, если имеем 71648 тактов между интами без dma, то с dma их будет меньше. как еще?
в мп3 смысла нет, даже в ваве нет. ты услышишь практически то же, что играется на пц без интерполяции. даже еще хуже
странный вопрос. какова польза памяти спека больше 128к? программ, юзающих бОльшую память - мизер. копировщики, например. так есть копировщики, юзающие память gs. а если так рассуждать, то gs - это комп сбоку, его можно использовать для более быстрой обработки чего-то, а надо это кому или нет - это уже второй вопрос.
так-то оно так, но здесь речь шла немного не о той передискретизации
почему нет? в смысле с такой скоростью данные в цап толкать может (а то кое-кто сейчас опять смеяться будет)).
у меня вопрос. есть игра, которая юзает прерывания без таблички. плеер модов, насколько я понимаю, как раз-таки использует одно из этих прерываний. места чаще всего на табличку нет. как быть? в gs о таких тонкостях и не задумываешься. кстати, сколько тактов тратит плеер модов на dma usc? наверняка не одну тысячу на прерывание..
Я хочу собрать ГС и нет у меня программатора, я вообще не разбираюсь как ее шить... что делать мне с этим *.rom-ом или *.bin-ом?
все зависит от того что в ней использовалось для озвучки - если соунддрайв/ковокс - без проблем она теже оцифровки скормит и DMA USC.
И опять же - эра 128 кб компов ушла, чего ворошить старое???
А че ты меня за это пинаешь? Пинай авторов этого самого пентагона.
Читай внимательнее и до конца... Если уж делаешь прогу с мутиколором и музой под DMA - можешь использовать и аксель в ДМА.
Фирменные игры практиковали полные таблицы, то что программер сэкономил 256 байт в ущерб совместимости с другими клонами (Кажись Байты к этому ну очень привередливы), то это уже его проблема.
нет программатора, нет деталей, нет паяльника.. как же ты хочешь собрать? покупаешь чистую пзу, даешь на каком-нить городском форуме обьявление, что люди добрые, помогите прошить пзу.. и будет тебе счастье! у нас вот даже пзу купить не где, надо заказывать. поэтому я взял и перешил оригинальную.
да нет, в игре был AY, переделалаи под dma, и всё, игра не пашет больше без дма. так чаще всего и бывает. это не минус ни дма, ни гс.
это куда же она ушла? где проги под бОльшую память? то-то я смотрю, что их клепают и клепают)
нене, я не пинаю. и авторы пентагона ни при чем. для того, чтоб сделать эту дма, надо архитектуру компика поменять, а это не просто. потому эта карта распространения и не получила.
вот ты кодер? тогда посмотри еще раз на демку и скажи, чем здесь поможет быстрое копирование памяти? ни-чем. просто нереально сделать такой мультиколор и играть мод.
но такие игры есть. и в случае гс никаких сложностей нет и с времянками все более-менее в порядке
Я вообще то про наушники говорил, вот например http://stereophones.ru/search.php?search=omega, там есть 6гц-41кгц, конечно 96 я хватанул лишка... Однако точно не 22 кгц, чтобы там кто не говорил...
Добавлено через 5 минут
Мне не очень понятно, как это может быть? Опорная частота 3,5 МГц? Она индивидуально делится и напрямую на каждый из ЦАПов? А если ЦАП не успел закончить предыдущую команду формирования Ц->А? Или тут другое соображение?
Я в своё время пользовал IT (impulse tracker). Он для AWE32 использовал отдельный AWE драйвер. Модули загружались на самом деле в память звукашки, оттуда и играли, что позволяло запускать их даже на i486 (!). И ещё, качество звучания (интерполяция самплов) было приличное, сравнимо с режимами MMX filtered, interpolated, 32 bit.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)