Ну а что com? вспомни как оно под обоими OS выполняется (фактически под вирутальной машиной, чисто в качестве одолжения от OS - типа кто не спрятался я не виноват (на досуге попробуй запустить com под MacOS например

)) (ну не беря в расчет те комы что под голым bios - много-ли там сделаешь?) Ну и в любом случае, аналогии аналогиями, но все-же до определенного предела.
>Я думал, что пишется чисто код для процессора + какой-то интерфейс для настроек.
ну так и есть. я когда писал "чтобы заработал такой дамп алсовский драйвер должен в точности делать тоже что и kx" - не имел ввиду настройки (эта отдельная история) - а чисто вот причины по которым даже бинарный дамп DSP целиком (продолжая аналогии "дамп целиком" как-раз типа com и получается) толком не заработает (не беря в расчет настройки вообще - допустим настроил что надо и больше трогать ничего не нужно). Код в DSP он же не "вещь в себе"
- он же не в вакууме работает.
Во первых - разные входы/выходы из в DSP - физические совпадают само-собой (они не программируются) - то бишь к примеру выход на Line-Out это тот же самый регистр и там и там - ту все ОК, а вот скажем каналы запись/воспроизведение уже зависят от драйвера
- и они разные и там и там. Ну к счастью Wave 0/1 на самом деле совпадут - так что если много не хотеть - а только скажем просто послушать стерео запиcь - тут более менее ОК.
Поехали дальше - "разные уровни" - скажем тот же сигнал при воспр того стерео файла что сверху приходит в дсп под каиксом с уровнем 0.25 (именно этот уровень считается (в каиксе) за 0dB, не суть важно почему). Так вот - я сейчас на вскидку не помню - но допустим в Алсе стандартным уровнем в DSP считается 1.0 - вот и приехали - играть будет но жутко зашкаливать (это легко исправляется - там сям подпатчить - просто это лишь один из примеров - см. ниже)
Дальше, после того как ты загрузил дамп - надо следить чтобы никто (драйвер, утилиты) не лез в DSP там чего-нибудь менять - они ж без понятия что там загружено.
Ну драйвер (альсовский имеется ввиду) - насколько я помню после загрузки изначального кода в дсп больше не лезет - а вот микшеры уже всё кирдык (в лучшем случает не дадут никакого эффекта, в худшем попортят ключевые значения в дампе - получишь треск/тишину/что-нибудь-этакое)
(ну то что с этой историей с дампом ты даже громкость не сможешь поменять - я даже не упоминаю - это само-собой).
Это все мелкие проблемы - потихонечку полегонечку решаются - тут подпатчтить, там подпатчить, можно для дампа на бумажке выписать ключевые регистры - скажем хотя бы тот что регулирует мастер уровень и накидать маленькую утилитку чтобы это крутить (не беда что для разных дампов это все в разных местах может сидеть - то бишь новый дамп -> новая утилитка

) - и так далее и так далее (а я упомянул только те затыки что сразу в голову приходят а сколько еще таких мелочей будет.. о) ну не суть ->
Я то к чему веду - я ж не о том что вариант с дампами в принципе невозможен - вполне себе возможен - но я клоню к тому что даже такой максимально ограниченый подход c "дампом всего" тоже требует кучи мелких левых действий - и в какой-то момент сложность этого (изначально тупикового) метода становится выше сложности "нормального" метода (с разделением на подпрограммы в промежуточном формате) - при это разбираться-то с потрохами так или иначе надо - ну загарузил ты дамп и опс - ничего не произошло - где будешь затык искать?
При том что с дампами ты сидишь на самом низком уровне с черным ящиком на руках.
Вот и вся история.
То бишь я все-равно думаю что (с какой нуля не начинай) - как писал выше "для этого промежуточного кода и можно написать конвертилку - на сегодня это будет самый простой вариант"
(возвращаясь к аналогиям "промежуточный код" - это аля PE/ELF - только намного проще
- каиксовский это вообще C++ текст с массивами - см. da_***.cpp файлы в SDK)
И грузить все это дело стандартными средствами драйвера.
А для тех же "настроек" вполне для начала (чтобы попроще) подойдет промежуточный метод как-раз с дампами (хотя опять с оговорками что это не для любого плагина) - типа kx тебе скидывает текущие значения регистров для текущих настроек для каждого отдельного плагина уже в нормальном "логическом" формате (то есть один-к-одному прописывающемуся в какиксовский же "промежуточный код") - и после конвертации получаешь уже готовый эффект в нормальном формате где эти самый настройки уже вшиты (и дальше открыт путь к углублению/усилению/расширению возможностей)
(кстати в точности по такому ("код в нормальном формате, настройки дампом") методу работают "CLEAX*Reverb" эффекты в kX (в посл версиях) - это изначально не более чем бинарный дамп ревера из креативовского драйра - но код уже сконверченный в каиксовский промформат и с "пресетами" сделанными как просто массивы значений регистров для таких-то и таких-то настроек)
А бинарный дамп кода это не намного проще и тупик полный на самом деле.
(Ну на счет "не проще" - можешь попробовать - для начала надо писать бинарную дампилку для kx и бинарную грузилку для для alsa - просто примерно понять на каком уровне придется вникнуть - функции для этого всего есть и там и там - только не жди что это будет функция аля give_me_nice_binary_dump_of_everything_in_dsp()

)
Как-то так вот примерно...