Автор Тема: [Win] Проблема с opn.dll  (Прочитано 3 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2914
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[Win] Проблема с opn.dll
« : 18 Апрель 2018, 22:42:23 »
о! эксперты в этой теме и дофига еще :) подскажите где косяк!
http://www.emu-land.net/forum/index.php?action=dlattach;topic=78554.0;attach=185238
итак, есть библиотека opn.dll, которая типа эмулирует YM2612 - шлю значения регистров, а она рожает звук как на приставке. проблема в ней в том, что якобы она поддерживает запуск более одного ядра этого чипа, но по факту вместе с увеличением числа ядер увеличивает и частоту этого самого чипа. звук в результате проигрывает гораздо выше по тону, чем оригинал. и чем больше ядер - тем писклявее становится звук. в архиве два ехе файла, которые импортируют эту библиотеку и при проигрывании в одном - будет понятно как должен звучать оригинал, во втором как он звучит при активации второго ядра. где ошибка в коде? Visual Studio 6.0 (но это не точно)

увеличение числа ядер нужно для увеличения возможных каналов для проигрывания. в оригинале оно играет 6 каналов. хочу использовать 2 или 3 ядра, чтобы можно было проигрывать мелодию в 12 или 18 каналов. просто сейчас в моем демонстрационном проигрывании GEMS треков проигрываются только первые 6 дорожек, остальные игнорируются. вот хотелось бы недостающие проигрывать на втором ядре.

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

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2414
  • Пол: Мужской
    • Просмотр профиля
[Win] Проблема с opn.dll
« Ответ #1 : 19 Апрель 2018, 20:05:41 »
подскажите где косяк!
Так это дебажить надо. Человеку со стороны вообще сложно понять что там происходит, т.к. много математики и параметров. Надо в тему погружаться, пройтись по стеку вызовов, посмотреть на что влияет число ядер. Боюсь, кроме тебя это никто не сделает. :neznayu:

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2914
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[Win] Проблема с opn.dll
« Ответ #2 : 19 Апрель 2018, 20:52:45 »
так чо его дебажить, если в архиве исходник дллки? тут нужен специалист по эмуляторам. я вобще не представляю как там из цифер звук получается :)

Оффлайн Skay

  • Пользователь
  • Сообщений: 4160
  • Пол: Мужской
    • Просмотр профиля
[Win] Проблема с opn.dll
« Ответ #3 : 20 Апрель 2018, 06:53:36 »
SeregaZ,
увеличение числа ядер нужно для увеличения возможных каналов для проигрывания. в оригинале оно играет 6 каналов.
так вот отсюда и дэбаж. Сначала пройдись в варианте как обычно, посмотри как оно работает где какие коэфициенты. А потом уже с этими параметрами, смотри на что они влияют.  :neznayu:

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2914
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
[Win] Проблема с opn.dll
« Ответ #4 : 20 Апрель 2018, 18:16:55 »
иди туда, незнай куда и ищи то знай чего.  :'(

без понятия как дебажить, не говоря уже о том что дебажить. была идея в строчке:
#define YM2612_CLOCK   7670454
влепить 3835227. то есть если сделать эту частоту поменьше, то потом когда 2 ядра задействованы - той ошибкой частота выправится до нормальной частоты. и в итоге собирает то вроде нормально, но потом при импорте в ехе - все вылетает в трубу. да и сама студия порой берет и выпадает в бесконечную сборку библиотеки. ничего не происходит и ничего не дает нажать. и как вы этим тупым языком программирования пользуетесь - не понимаю :) толи дело в моем все просто - ежели зависло - нажал прибить и прибился процесс. тут-же альт ктрл дел, и убивать только вручную и причем всю студию сразу. потом по новой запускай... капец.

Оффлайн krocki

  • Пользователь
  • Сообщений: 1252
  • Пол: Мужской
  • ...:::Hacking_Craft:::...
    • Просмотр профиля
[Win] Проблема с opn.dll
« Ответ #5 : 21 Апрель 2018, 08:55:02 »
Дебажить уж больно геморно будет, нужно качать сырцы(src) эмулев и анализировать что да как там и переписывать код под андройду ну или java, что вроде того.
Парой даже почти готовый сырец непросто от компилить, нужно что нибудь да править в коде.
Как ты писал в первом посте, лучше сначала почитать статейки, иначе много времени потеряешь...типа методом тычка. ;)