doom2d.org

Главная база плоских морпехов
It is currently 22 Oct 2020, 20:30

All times are UTC + 3 hours




Post new topic Reply to topic  [ 37 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: 10 Oct 2020, 18:45 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
>Это эмулятор самого чипа
да я в курсе, тащемта: никто кроме меня в k8vavoom звук не сделает, так что пришлось самому. через адскую задницу сотоны и говнокод, правда, потому что лично мне опл вообще как-то побоку. ну, кое-как D_RUNNIN играет — и ладно.


Top
 Profile  
 
PostPosted: 10 Oct 2020, 20:26 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
ketmar wrote:
никто кроме меня в k8vavoom звук не сделает, так что пришлось самому

А вообще, надо бы заценить сие труды, может найду что подсказать ;)

ketmar wrote:
через адскую задницу сотоны и говнокод

Абсолютно аналогично родился мой проект libADLMIDI:
- Начиналось всё с консольного плеера ADLMIDI, сделанным одним фином по имени Йоэль Илюльёма (сам зацени качество кода)
- Я захотел сделать из его плеера либу, и затем за 5 лет, значительно переработал там всё (ну почти), и вот результат https://github.com/Wohlstand/libADLMIDI
И, я уважаю всех тех, кто аналогично смог побороть говнокод и запилить работоспособную конфетку, ketmar ;)

Я сам чипами частотного синтеза увлекаюсь ещё с детства (если любопытно https://www.youtube.com/playlist?list=P ... csQtqgmWut), и развлекался я с sbtimbre и с драйвером FM-Synth от Джэйми О'Коннела, а также нашёл способ создавать банки для Doom-а через IMF Creator, где был встроенный редактор таких банков, но с плохим и неточным эмулятором OPL3-чипа. И вот уже потом я создал свой редактор OPL3 Bank Editor, которым можно редачить не только OP2-банки, но и любые другие. И как раз благодаря этой штуке, чувак с ником Sneakernets запилил банк DMXOPL3, доказав тем самым, что разработчики прошлого были слишком ленивы, чтобы выжать из чипа максимум и не раскрыть его потенциал :-D


Top
 Profile  
 
PostPosted: 10 Oct 2020, 20:29 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
Не оно ли? https://github.com/Kokokokoka/k8vavoom


Top
 Profile  
 
PostPosted: 10 Oct 2020, 20:41 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
>может найду что подсказать ;)
я и так знаю: «выкинь это немедленно!» я про говнокод не приосаниваюсь, как обычно принято: он там именно такой — it barely works, and not even with all vanilla tunes. я действительно взял какое-то древнее говно, которое на винте валялось и кое-как играло через нюкедову библиотеку, и воткнул. основной плеер там флюид. просто у меня Во Время Оно никакого OPL не было, поэтому по нему у меня ностальгии нет совершенно. докинул просто потому что «так принято».

ты крут, что этим занимаешься, и если бы я внимательней на libADLMIDI в своё время посмотрел — может, её бы и взял. может, ещё и возьму. ;-)

но у меня это совершенно не приоритет, потому что я музыку в играх обычно вообще почти не замечаю. а поскольку я единственный кодер в проекте — то всё, что у меня не в приоритете, делается кое-как и очень под настроение. если делается вообще. если бы Граф раньше со своей zmusic выступил — я бы её взял. а теперь уже не хочу: я чего, зря столько фигни в саунд-систему запиливал?!

p.s.: у плеера даже proper credits нет, потому что я нифига не помню, откуда я его слямзил. он ещё и тройной порт: с си на кресты, потом на дишечку, потом обратно на кресты. в общем, если тебе дорого здоровье и разум — не ходи в эти болота.

p.p.s.: нет, не оно. это древний форк моей кодобазы. оригинал на козе, и тема на DW.


Top
 Profile  
 
PostPosted: 10 Oct 2020, 21:12 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
ketmar wrote:
я и так знаю: «выкинь это немедленно!» я про говнокод не приосаниваюсь, как обычно принято: он там именно такой — it barely works, and not even with all vanilla tunes. я действительно взял какое-то древнее говно, которое на винте валялось и кое-как играло через нюкедову библиотеку, и воткнул. основной плеер там флюид. просто у меня Во Время Оно никакого OPL не было, поэтому по нему у меня ностальгии нет совершенно. докинул просто потому что «так принято».

О музыкальном движке под DOOM-овскую музыку, самая точная реализация у Chocolate Doom как раз, помогал с ним сам автор Nuked OPL3-эмулятора. В оригинальной игре под DOS использовалась библиотека DMX, которую мы с другом хацкали как раз и разбирали на запчасти. Интересная однако вещь, с багами на AM-голосах :P И да, ты как раз пилил т.н. музкальный движок, который взаимодействует с чипом, играя музыку на нём. Мои libADLMIDI и libOPNMIDI это как раз именно музыкальные движки.

ketmar wrote:
но у меня это совершенно не приоритет, потому что я музыку в играх обычно вообще почти не замечаю. а поскольку я единственный кодер в проекте — то всё, что у меня не в приоритете, делается кое-как и очень под настроение. если делается вообще. если бы Граф раньше со своей zmusic выступил — я бы её взял. а теперь уже не хочу: я чего, зря столько фигни в саунд-систему запиливал?!

Ну вообще никогда не поздно взять эту штуку к себе на борт ;) (в составе ZMusic как раз мои libADLMIDI и libOPNMIDI значатся, совместно с синтезатором OPL Synth, который поддерживает оригинальные OP2-банки из WAD-файлов, и точнее эмулирует поведение DMX-библиотеки, пока мои MIDI-движки создавались для просто хорошей музыки и функционала).


Top
 Profile  
 
PostPosted: 10 Oct 2020, 21:13 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
ketmar wrote:
он ещё и тройной порт: с си на кресты, потом на дишечку, потом обратно на кресты. в общем, если тебе дорого здоровье и разум — не ходи в эти болота.
p.p.s.: нет, не оно. это древний форк моей кодобазы.

Не код а лягушка-путешественница :lol:


Top
 Profile  
 
PostPosted: 10 Oct 2020, 21:41 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
>И да, ты как раз пилил т.н. музкальный движок, который взаимодействует с чипом,
>играя музыку на нём. Мои libADLMIDI и libOPNMIDI это как раз именно музыкальные
>движки.

да, я видел. к сожалению, каким-то образом уже после того, как запилил свой УЖОС. с другой стороны — я до этого никогда мидихи не парзил, было интересно.

>Ну вообще никогда не поздно взять эту штуку к себе на борт ;)
а я уже особо смысла не вижу. архитектурно вавумовская звуковая система ничем не хуже, и по фичам почти не отстаёт (а кое в чём и лучше: она в opus умеет, например). в конце концов, если бы я хотел форк гздума — то я бы и форкнул гздум. ;-)

а полное соответствие ванилле меня особо никогда не парило, я не пурист. вавумчик и по геймплею не старается все квирки оригинала повторять: мне достаточно, чтобы оно для меня ощущалось как дум. а для пуристов вон есть шоколадка или криспи.

от движка мне надо чтобы у него был простой апи, чтобы оно мне мозг не ело — у меня не так много мозга, самому не хватает. я движок кормлю чанками данных (ну, или целым файлом, если миди — фигле там той мидихи), а потом из него добываю pcm.

так вышло, что опл я добавил чисто спонтанно, без особого планирования. просто проходил мимо дишного порта нюкедопл, увидел там пример для играния мидишек и думомузыки (который давным-давно туда портанул) — и портанул обратно в вавум. тот случай, когда ничего полезного делать не хочется, а спать ещё рано.


Top
 Profile  
 
PostPosted: 12 Oct 2020, 01:25 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
ketmar wrote:
да, я видел. к сожалению, каким-то образом уже после того, как запилил свой УЖОС. с другой стороны — я до этого никогда мидихи не парзил, было интересно.

Это ещё ничего, а вот хочешь знать, сколько раз я переписывал физический движок в моём игровом движке Moondust / PGE Project ? Три раза! Первый раз я запилил его на Box2D, но результат - ну всё не то... Много лишнего, чего не надо... В итоге, запилил самопальный физический движок, который дал почти всё то, что нужно, за одним лишь но - он работал неуклюже и не поддерживал наклонные поверхности. Дальше, мне китаец написал один пример хороший, и я на его базе написал физический движок третий раз, на этот раз он лучше первого, но всё равно недопилен и кривоват. Теперь же, как открылись исходники игры, которая меня вдохновила на проект, я планирую и в четвёртый раз переписать физический движок, но на этот раз, чтобы он был точный и качественный!

А вообще, ничто не мешает сохранить макросами своё "великое и неповторимое" решение в запаску, прикрутив альтернативное решение на время испытаний, и если всё понравилось, работает лучше, круче, и т.п., то можно и спиливать старый, а если оба работают хорошо, но с особенностями, сохрани оба с возможностью их переключения. :) У меня на ранних стадиях, libADLMIDI имел возможность менять эмулятор чипа только на этапе компиляции, но в итоге со временем я это вылечил, и теперь можно менять эмулятор чипа на лету и слышать разницу звучания сразу. ;)

> она в opus умеет, например
Отличная идея поставить задачу GZDoom-мерам пришпилить опус. ;) А вообще, это можно, потому что я запилил CMake-сборку всех частей ОПУСа (libopus, libopusfile) для своих целей, её тут же подхватили и другие. ОПУС официально собирался только autotools-ами.

P.S. Сделал им задачу https://github.com/coelckers/ZMusic/issues/15 , и отвечают, что libsndfile уже поддерживает, и лишь надо обновить либу. Так я и узнал, что ZMusic использует либу libsndfile для поддержки звуковых файлов разных форматов вместо прямого использования кодеков.


Top
 Profile  
 
PostPosted: 12 Oct 2020, 01:47 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
>Три раза!
всего три? ну ок, ещё пять-семь итераций — и получится что-то, что всё равно будет работать хреново, но переписывать ещё раз будет лень. всегда так пишу.

>Так я и узнал, что ZMusic использует либу libsndfile для поддержки звуковых
>файлов разных форматов впесто прямого использования кодеков.

ы. я вообще кодеки таскаю прямо в дереве исходников k8vavoom. а потому что могу, да. а ещё чтобы у всяких дебианщиков от этого BOMBILO. хотя опции цмака для использования системных кодеков есть, конечно — но кто их тестировал-то…

>А вообще, ничто не мешает сохранить макросами своё «великое и неповторимое»
>решение в запаску, прикрутив альтренативное решение на время испытаний

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


Top
 Profile  
 
PostPosted: 12 Oct 2020, 02:25 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
> ы. я вообще кодеки таскаю прямо в дереве исходников k8vavoom. а потому что могу, да. а ещё чтобы у всяких дебианщиков от этого BOMBILO. хотя опции цмака для использования системных кодеков есть, конечно — но кто их тестировал-то…
Изначально я так тоже делал, но потом научил свои проекты опционально работать с системными либами:
- MixerX - аудиобиблиотека, которая собственно и делает все эти опции https://github.com/WohlSoft/SDL-Mixer-X/
- Набор аудиокодеков, туда я вынес все кодеки, которых я собираю как единый пак, и дальше с ним состыковываю MixerX и все проекты, которые его используют: https://github.com/WohlSoft/AudioCodecs
При этом МиксерИкс у меня умеет просто искать либы в Системе, либо опционально я его заставляю качать пак AudioCodecs, и собрать себя и их, получив некий самодостаточный набор.

> да зачем так сложно: саунд-система же модульная, с авторегистрацией. добавить/убрать модуль — вопрос того, инклюдятся его исходники или нет. тут самое сложное — убедить себя начать этим заниматься. а менюшки настройки вообще в чистом тексте в базовых ресурсах.
Чего я сделал в MixerX, и что уже было в SDL_mixer, который я форкнул себе, сделав MixerX. :)

> всего три? ну ок, ещё пять-семь итераций — и получится что-то, что всё равно будет работать хреново, но переписывать ещё раз будет лень. всегда так пишу.
При этом, на каждой итерации я приобретал новые плюшки, которых не было на предыдущих:
- первая итерация, блоки, стоявшие друг на друге, проваливались и стояли неустойчиво, ибо Box2D старается симулировать сжатие, и автососкальзывание с наклонных поверностей, вместо того, чтобы стоять крепко, чего мне совсем не нужно, увы.
- вторая итерация, получились абсолютно твёрдые тела, как я и хотел. При этом лишился наклонных поверхностей совсем, заодно научил персонажа кататься на движущихся блоках.
- третья итерация, я получил наклонные поверности, и научил персонажа и объекты кататься друг на друге при взаимном движении, прибавляя друг другу скорости.
- четвёртая итерация, которая задумана, я хочу исправить цепь глюков, связанных с неправильной обработкой башен объектов, местами исправить логику с наклонными поверностями. Ещё решить кучу других неуклюжестей, например, что неписи могут легко выдавить друг друга, и что из-за моего костыля, которым я попытался починить неписей, персонаж может проходить сквозь неписей. И т.п.


Top
 Profile  
 
PostPosted: 12 Oct 2020, 02:35 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
>ибо Box2D старается симулировать сжатие, и автососкальзывание с наклонных
>поверностей, вместо того, чтоы стоять крепко

насколько помню, там есть per-object friction control. впрочем, мне всё равно chipmunk больше нравится.

>Изначально я так тоже делал, но потом научил свои проекты опционально работать с
>системными либами

а я как раз разучил. всё равно flac, vorbis и opus не опциональны. опять же — есть dr_flac и stb_vorbis. жаль, для опуса такого нет — а я всё никак не соберусь нормально выдернуть декодер из ffmpeg.

надо ещё OpenAL-soft в дерево затащить. потому что автор OpenAL-soft сошёл с ума и начал переписывать его на крестах (и по дороге немного поломал).


Top
 Profile  
 
PostPosted: 16 Oct 2020, 18:12 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
ketmar wrote:
насколько помню, там есть per-object friction control.

Пробовал там с этим играться, но при этом, они мешали нормальному движению персонажа, можно конечно переключать их по ходу действия, но как-то ну так себе выходит. Также у меня там были бяки с тем, что персонаж ну обожал спотыкаться об углы блоков, и не только он. В любом случае, от Box2D я отказался, и написал свой физический движок, чтобы сделать лишь то, что мне нужно, и ничего лишнего. ;)

> впрочем, мне всё равно chipmunk больше нравится.

Его пока не пробовал в деле, судить не буду. А так, хорошо, что про него напомнил: только что вспомнил, что где-то были его упоминания в прошлом...

> для опуса такого нет — а я всё никак не соберусь нормально выдернуть декодер из ffmpeg.

Не хочешь таки взять мою CMake-сборку опуса? У меня он собирает его как две статические либы (libopus и libopusfile), уже отладил её (сборку) на разных платформах, в том числе и на мобильных ;)


Top
 Profile  
 
PostPosted: 16 Oct 2020, 18:19 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
>у меня там были бяки с тем, что персонаж ну обожал спотыкаться об углы блоков
известная радость многих движков, да.

>Не хочешь таки взять мою CMake-сборку опуса?
так у меня тоже собирает, с этим проблем нет. просто таскать с собой целую библиотеку (две), когда реально нужен только декодер… ну, царапает немного. флак, ворбис, мп3 у меня однофайловые — а опус вот так вот. хочу тоже однофайловый. ;-) в дишечку я декодер выдрал, например, как раз из ffmpeg. но он там потом был порядочно изуродован, так что надо бы выдрать заново.


Top
 Profile  
 
PostPosted: 16 Oct 2020, 20:55 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
> хочу тоже однофайловый

Ребята из SQLite молодцы тем, что уже научились выпускать монофайл из своей либы, может у них научишься? :)


Top
 Profile  
 
PostPosted: 16 Oct 2020, 20:57 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
разве от амальгамирования из библиотеки внезапно исчезает ненужный мне код?


Top
 Profile  
 
PostPosted: 20 Oct 2020, 09:12 
Offline
User avatar

Joined: 08 Oct 2020, 11:53
Posts: 16
ketmar wrote:
разве от амальгамирования из библиотеки внезапно исчезает ненужный мне код?

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


Top
 Profile  
 
PostPosted: 20 Oct 2020, 09:14 
Offline
User avatar

Joined: 25 Feb 2013, 13:24
Posts: 620
ну так и я об том же: мне не амальгама как таковая нужна, а минималистичный декодер.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 37 posts ]  Go to page Previous  1, 2

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
doom2d.org, since 2007