Cthulhu 21.02.2013 18:35 Miranda

Inspired by #tsohnz

У меня тут короче ностальгия. 13 лет назад я писал под dos какую-то ОХУИТЕЛЬНУЮ ИГРУ на турбопасцале, что-то там с летающими по экрану фигурами, не суть важно. И вот, спустя полгода, когда у меня наконец-то появилась звуковая карта, я захотел сделать yoba-озвучку к ней, вестимо. Для этого начал ебать всех вокруг на тему "где мне раздобыть учебник по программированию звуковой карты?!". Все посылали этого малолетнего уебана нахуй, конечно, но потом я настолько доебал соседа, что он у себя в офисе спросил у программиста, и тот записал ему на дискету какой-то мануал.

Мануал был охуительным переводом из какого-то буржуйского езина, видимо — до сих пор помню, что семплы там назывались кусочками, частота дискретизации, соответственно, кусочной частотой, и тд. Я на радостях взялся его читать и пытаться реализовать описанное там.

Под dos было два способа программировать sb-совместимую карту — правильный (через dma) и для лохов (напрямую, когда для проигрывания каждого следующего куска дергалось irq). Первый был отброшен почти сразу — про каналы dma я услышал оттуда впервые, испугался и забил, тем более еще одного сеанса ебли на тему "дайте мне учебник по программированию dma" окружающий социум мог не пережить. Или я, что вероятнее. Второй же способ был чуть проще — перехватывать прерывания я тогда уже умел, даже пару резидентных софтин на ассемблере написать успел, потому с энтузиазмом взялся за работу. До сих пор помню, что для сброса карты нужно захуярить с небольшим интервалом единицу и ноль в порт 0x226, эх.

Конечно же, мой выстраданный модуль в итоге так и не заработал. Лет в 15 я случайно наткнулся на тот код и нашел как минимум одну ошибку — в обработчике irq я не посылал контроллеру сигнал о завершении прерывания. Ну а тогда я погрустил, попробовал еще раз и временно забил.

Но выход был найден — среди куч всякого хлама я обнаружил охуительную программу play_voc.exe, которая умела, очевидно, проигрывать файлы типа .voc. Я даже смог надергать этих файлов из какой-то игры (dark forces, кажется), радостно захуярил вызов этой play_voc в свою игрушку, и все было отлично...

На самом деле нет. Было три проблемы. Во-первых, поскольку это был дос, запуск сторонней софтины происходил синхронно — моя игра блочилась, пока звук не проиграет до конца. Во-вторых, я не мог проиграть два звука одновременно. В-третьих, play_voc завершала проигрывание при нажатии любой клавиши, что было плохо для моей игры.

Первую проблему я попытался худо-бедно решить, перехватив прерывание таймера, и что-то полезное делая в обработчике. Но тут была подстава — ебучий play_voc тоже зачем-то его перехватывал несовместимым со мной образом, потому пришлось смириться и рассматривать синхронность как фичу.

Вторую проблему мой пытливый детский ум решил быстрее. Проиграть несколько звуков? Нет ничего проще! Нужно просто записать все возможные комбинации в отдельные файлы, и проигрывать уже их! Программы для слияния двух звуков у меня не было, как вы уже наверняка догадались. Пришлось писать ее самому. Описание формата .voc у меня было, к счастью, а вот описания алгоритма слияния не было. Но в один дождливый осенний вечер, выпив с пацанами на районе пива, я подумал "нет ничего проще: нужно просто побайтно просуммировать звуковые данные двух файлов!". Пришел домой, попробовал — работает! Звуки были восьмибитными, потому сплошь и рядом случалось переполнение (про нормализацию я тогда не слышал, конечно), но в целом все было очень круто, я собой даже гордился.

Осталась только одна проблема — ненужная остановка проигрывания при нажатии клавиши. После всех предыдущих приключений я даже не посчитал это проблемой, просто отключил обработчик прерывания от клавиатуры на время выполнения play_voc. И получилась она, озвучка моей мечты!

Так вот, к чем у я написал все это. Каждый раз, когда я вижу охуительное дизайнерское решение кутима вроде вот этого, или рекурсивной загрузки плагинов, или еще чего-то подобного — первым порывом руки тянутся написать им все, что о них думаю. Но потом я вспоминаю про свой охуительный дизайн. Думаю "постой, не ругай их, ты ведь сам был таким в 11-12 лет". И желание обосрать куда-то уходит, вытесненное светлой ностальгией. Действительно, нет ведь ничего хорошего в том, чтобы обижать детей.

Recommended by: @0xd34df00d, @magog, @4da
1. gds 21.02.2013 18:45

понравилось.
тоже был таким же дебилом.
ну и остался, только другим.

2. 2538 21.02.2013 18:47 fx

все кто выше — умны и проницательны

3. 238328 21.02.2013 18:47

обижать детей это модно

4. 25382538 /2 21.02.2013 18:47 fx

блять

5. 2538 21.02.2013 18:47 fx

где срач, ктулху уже не торт

6. Cthulhu2538 /5 21.02.2013 18:48 Miranda

Так не будет тут срача, ца нулевая же. Кутимочеловеки все равно не придут сюда.

7. gds2538 /2 21.02.2013 18:49

паасибки!1111

8. 2538Cthulhu /6 21.02.2013 18:51 fx

а я думал тут будут тереть за АРХИТЕКТУРУ

9. kagami 22.02.2013 16:42

Сколько чсв-то. По-моему, «взрослые» люди не должны заниматься самовосхвалением.

10. 2538kagami /9 22.02.2013 16:43 fx

а как иначе получить холошую залплату если не понтоваться?

11. 4da 22.02.2013 16:45

теплый ламповый псто.

12. 0xd34df00dkagami /9 22.02.2013 16:47 Azoth_primary

Ппц ты кагами мудила ебаная.

13. 238328kagami /9 22.02.2013 16:52

не пали плиз, неудачник

14. 2383282538 /10 22.02.2013 16:52

быть дедфудом, очевидно

15. 2538238328 /14 22.02.2013 16:53 fx

#tsohef/6

16. Cthulhukagami /9 23.02.2013 00:09 Miranda

Почему же. Я стал невероятно охуенным, в сравнении с разработчиками кутима. Почему бы не похвастаться этим?!

17. Cthulhu2538 /10 23.02.2013 00:10 Miranda

У меня весьма средняя зарплата, Пётр. Потому что я ленивый малоамбициозный хуй, предпочитающий деньгам интересность проекта.

18. Cthulhu4da /11 23.02.2013 00:10 Miranda

Вон пацаны говорят что это чсв-пост, хотя я не могу понять почему. Пичаль (

19. ulidtkoCthulhu /18 23.02.2013 00:11

ъ пацаны до сих пор даже не прочитали (как я)

20. 2538Cthulhu /18 23.02.2013 00:13 fx

отсутствие понта это понт более высокого левела)

21. Cthulhuulidtko /19 23.02.2013 00:15 Miranda

Все правильно сделал же

22. 2538ulidtko /19 23.02.2013 00:16 fx

в первых буквах послание

23. 25382538 /22 23.02.2013 00:17 fx

мессидж

24. 238328Cthulhu /16 23.02.2013 15:53 33517571401361634334562993

но ведь разработчики кутима – опущенцы, не стоит оценивать себя по ним!

25. 238328Cthulhu /17 23.02.2013 15:54 33517571401361634334562993

модные стартапы руби хайлоад

26. 2538Cthulhu /17 23.02.2013 15:55 fx

я всё равно завидую

27. 2538238328 /25 23.02.2013 16:00 fx

работа в киеве дружная команда

Do you really want to delete ?