Разработка и ромхакинг > Ромхакинг и программирование
обсуждение конвертерa музыки для Dune MIDI2DUNE [SMD]
<< < (5/6) > >>
SeregaZ:
в новой версии всего два изменения... даж стремно как-то на эту обновку тратить целую букву в названии :)

DUE 0.6h

* поправлен функционал загрузки списка онлайн базы. (ранее он загружался не полностью)
* в окне прослушки треков из архива добавлено срабатывание клавиши Enter для запуска мелодии или спецэффекта. (двойной клик запарывает после пары десятков прослушиваний)
SeregaZ:
тут в основном те игры, которые с наскока GEMSScan'ом не брались и не распаковывались, но попался на глаза архив в посте Метро с адресами и пошло дело активнее :)

и тем не менее все еще остались вопросы по:
Zero Tolerance - там по видимому 2 банка звуков, так как в первом только музыка 8 папок или сколько-то там, а выстрелы и прочее где?
WWF Arcade - опять таки там видимо 2 банка, так как в распакованном виде нет сэмплов с произношением имен персонажей.
Comix Zone&Ooze - частично там сэмплы в неком ADPCM - никто не знает что с этим делать :)
SeregaZ:
хостинг со списком вроде раздуплился и редактор теперь может загрузить список. однако я думаю все-таки в новой версии редактора перенести этот самый список на другой хостинг. тоже бесплатный и непутевый :) но по моему немецкий. на котором сейчас кажись белорусский.

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

умаялся как Малдер гонятся в поисках истины :) это был интересный опыт, куча интересных идей, куча наработок было собрано в одну кучу, куча людей была замучена расспросами... но, к сожалению, опоздал я... лет на 5 :) теперь уже никого не достать в сети для расспросов...

да и сам начал тупеть с возрастом. всего-то несколько месяцев назад пилил болванки редактора большой и малой иконки, редактора карт, GEMS треккера... тут решил их доработать и прикрутить наконец в основной проект... и не могу раздуплить свой собственный код :))))) вроде бы вызов редактора по кликам на иконках сделал... рисует и большую и малую, хотя еще без сохранения и начал редактор палитры прикручивать чтоб сохраняло сразу обоих и палитру и рисунок... начал и все... смотрю в код - вижу фигу :) что уж тут говорить про допилку вообще чужого кода на чужом языке с той непутевой дллкой для звука... так что видимо 0.7 версия не выйдет. в ней было задумано чуток допиливание проигрывание треков - ведь сейчас играет только 6 штук, но в песне то может их до 16 по моему. вот я их и хотел играть их используя второй чип в дллке, но, напомню, при инициализации второго чипа почему-то портится звучание в сторону повышения тональности звука. эту ошибку я найти не смог в этом сраном visual studio. так-же не решил проблему с ADPCM для проигрывания малой части сэмплов комикс зон и ooze, не решил проблему с поиском и распаковкой вторых банков GEMS для Flashback, Zero Tolerance, WWF Arcade. поэтому не добавлял некоторые из этих игр в онлайн базу, хотя они распакованы давно. так же распакованы всякие спортивные NFL типа игры - не стал добавлять. мелодии там хоть и есть, но совсем мало - основные звуки это сэмплы драк, столкновений, да команд судей. потом еще в моем коде для звука было пару моментов, которые выбивали программу - тоже поправил.

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

ах да! ежели кто умеет распаковывать GEMS банки, а особна те случаи, где два банка типа Flashback, WWF Arcade, Zero Tolerance... и что-то там еще - присылайте эти распакованные архивы! был бы рад добавить эти игры тоже в базу. сейчас по моему только Flashback добавлен - но там только мелодии. спецэффектов нет. из-за этого архив этой игры не полный.

Comix Zone и Ooze присылать не нужно. они есть распакованные, но добавлять их в базу не хотелось бы - так как там GEMS был чуть модифицированный и поддерживал 4 битный ADPCM. для MK3 то мне втолковали как сделать конвертацию из 4 бит DPCM в обычные 8 бит PCM. то есть сейчас MK3 в базе подготовлена для импорта в Dune и все сэмплы будут работать. (точно такая-же мк3шная система была в сэмплах Punisher - он тоже был конвертанут и теперь сэмплы оттуда совместимы с Dune). а вот комиксзонный ADPCM - без понятия что там нужно к чему прибавить, где разделить, а где маслом смазать чтоб конвертануть в обычные 8 бит. так что эти две игры так и висят с тех времен недопиленные :)
M3tro ™:
Со мной тут недавече поделился очень интересным видосом Metalslayer777 (a.k.a. Metalslayer) о том, как делали музыку на Genesis/MegaDrive в 1994ом году. Видос на английском, но главная его особенность в том, что там есть русские субтитры (и написаны они, кстати, довольно неплохо, за исключением очепятки на 6:29 "вкючения" и потери пары запятых).
В общем, самый годный #retro_based_content :thumbup:.
Жаль только, что автор не упомянул про музен из Doom Troopers и Dune2TBFA :unsure:.
Я не знаю, SeregaZ, может ты смотрел его уже. Посмотреть интересно, хоть там подробно не рассказано как работать с такими программами, но зато есть несколько ссылок в описании. Может они чем-то помогут прогрессу.


Tитры делал некто с канала Шварценпух, если б не он, это видео вряд ли бы кто-то из русских стал бы смотреть.
SeregaZ:
да, я там в комментариях отметился - когда заметил в видео фрагмент DOS GEMS с большим списком инструментов. автор ответил где их выковырять. выковырял. надо дорассортировать и добавить в MIDI2GEMS - думаю качество инструментов там чуть лучше будет, нежели у меня были. ну еще второй вариант добавления инструментов - это брать мидишные каверы от музыкантов на сегавские игры, которые звучат довольно близко. на ту-же дюну помница очень хорошие мидишки есть. смотреть какие инструменты в мидишке были выбраны и соответственно им выковыривать из игр FM инструменты. но это вагон нудной ручной работы :)
SeregaZ:
видимо надо переименовать тему в "Нытье горе-разработчика" :)

на днях мне дико понравились две песни в дефлемаске. настолько дико, что захотелось их конвертануть в GEMS. в итоге размер моих хотелок увеличился и стал вообще километровым:
midi2gems
vgm2gems
gems tracker
deflemask2gems

как оказалось этот самый дефлемаск конвертить куда проще, нежели vgm. хотя конечно тоже свои подводные камни имеются. например bpm - хрен его знает как он расчитывается. вручную ляпать разве что... впрочем в vgm тоже нет понятия bpm.

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

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

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



посему пишу тебе, товарищ, который по глупости решит пойти по моим стопам, создавая эти конветеры - бросай это гиблое дело пока не поздно! спрашивать не у кого, а сам дефлемаск кривой добезобразия. и форум там тухлый. по людски то как делать - если пишешь в спецификации, что в файле дефлемаска для сеги может быть 02 или 12 - то и должно быть $02 или $12. но когда там $42... когда создаешь эффект включения проигрывания сэмплов $1701 - то надо делать условие, что вводить его можно только в 6 канале FM, а не где попало и при этом дефлемаск будет слушаться этого гдепопального эффекта. когда создаешь инструменты - создавай по человечески. иначе инструмент номер 1 и им можно играть в 1 канале PSG, а захотел этот же номер присобачил к 4 каналу. но это же ясен пень, что разные инструменты должны быть. почему сраный дефлемаск не делает ограничение? соберусь с гугл транслейтером и напишу проклятия на форуме дефлемаска... хотя бестолку. ведь форум там дохлый. но уж больно много этих самых проклятий у меня накопилось за эти дни.



для правильного конвертера нужно:
1. библиотеку-эмулятор YM2612 + точно такую-же, но для SN76489, в которые шлешь по таймеру регистры, а они поют. чтоб на лету слышать как будут звучать те или иные инструменты и ноты.
2. нужен ром GEMS проигрыватель шелла для тестирования итоговых результатов. (хотя там еще под вопросом проблема с командой громкости для PSG) и нужен ромхак этого рома, чтобы можно было стартовать мелодию сразу при запуске рома - экономит время :) казалось бы мелочь, но после пары сотен перепроверок и отладок начинает надоедать обязательное тырканье старта ноты.
3. нужно уметь читать GYM логи, записанные в эмуляторах. а лучше сделать парсер и смотреть наглядно как во времени изменяются регистры. очень полезно в отладке. там видно как ведут себя громкости для PSG при тех или иных значениях параметров в инструментах. видно как ведет себя частота ноты при модуляциях - слайдах в мелодиях.
4. нужна bass.dll и её производные миксер и енкодер чтоль... дополнительные библиотеки для создания системы конветрации различных по частоте PCM сэмплов. в vgm нет понятия частота сэмпла. я там велосипед изобрел по расчету частоты. и частота эта может быть весьма разнообразная. а нам надо четкий ступенчатый формат от 10.4k для топового качества и до 5k сколько-то там. всего 5 ступеней. так-же дефлемаск там с десяток вариантов по частоте сэмпла может быть. все это дело надо будет конвертировать до 10.4k. не говоря уже про отдельный импорт какого-то самодельного сэмпла из аудиоредактора.
5. нужно знать спецификацию midi, vgm и дефлемаска. насчет vgm music maker'а не очень уверен а есть ли там комьюнити музыкантов, делающих музыку на нем до сих пор? просто инструменты для него не очень подходят для GEMS - там многие параметры отсутствуют. дефлемаск то вроде еще обновляется. vgm mm - уже нет. давнооо забросил его товарищ Shiru :)
6. для midi2gems - нужны инструменты с худо бедно подобным по звучанию с мидишными инструментами на компьютере. тут поможет досовская GEMS утилита, так как там есть небольшой пак инструментов. надо только рассортировать. второй путь - собирать каверы музыкантов на популярные игры, которые они пишут в миди. а после просто брать инструменты из соответствющих песен игр и сопоставлять с теми, какие музыканты выбирали в миди для этой песни. инструменты из дефлемаска в принципе тоже подойдут.
7. нужно понимание как эти самые инструменты устроены. для чего в FM всякие detune, attack... так-же понимание того, как построены инструменты PSG в GEMS. понимание как работает модуляция в GEMS.
8. поскольку с bpm проблема как в VGM так и в дефлемаске - тут бы помог алгоритм из диджейских программ, которые автоматически определяют это самое количество ударов в минуту в песнях. как это делается - хрен его знает :) но этот механизм очень бы помог при конвертации с правильным определением bpm.

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

вторая библиотека ym2612 - тоже в принципе была использована мною не по назначению... а давший её другой буржуйский товарищ, хоть и помог оооооочень сильно с пониманием как работает GEMS, а так-же регистры, DPCM и тд и тп - все равно на него очень сильно обиделся :( ну не понимаю я эти всякие музыкальные фиговины... я ж менеджер! а не программист :) - очень хотел чтоб он подсказал где в этой его библиотеке ошибка - а именно при активации 2 чипа: оба играют с завышенными частотами - а мне уж очень надо 2 этих самых чипа. воспроизвести гемсовское динамическое перераспределение занятости 6 каналов чипа FM - мне сложновато. я хотел проигрывать первые 6 дорожек в распакованной GEMS песне - то есть дорожки в CODE файле - на первом чипе, а с 7 по 12 на втором. в этом случае динамическое распределение не нужно, а играть будет мелодию более полно :) это был бы выход из ситуации малой кровью... но "ой, я деловая колбаса, мне некогда. это старая библиотека. я её больше не поддерживаю. бла бла бла бла бла..." ох и крепко я на него обиделся. надо то опытным глазом посмотреть где косяк и все. мож знак умножить не в том месте елки палки... уж очень хотелось мне, чтоб проигрывало CODE файлы у меня более близко к оригиналу :)

статья шелла по GEMS хорошая. с неё, так сказать, все началось... но сдается мне там некоторые неточности :) хорошо бы написать небольшой "патч" к его статье с пояснениями некоторых мутных мест :)

пойду напялю пижаму - ибо холодрыга, включу какихнить там автомахинаторов и спать. завтра буду думать как с этим PSG воевать. сегодня уже ничего в голову не приходит. и еще слайды - эффекты из дефлемаска. и видимо надо будет еще редактор модуляции замострячить... а то редактор FM и PSG инструментов есть, редактор сэмплов есть - а модуляции нету :) не порядок. а еще я GYM парсер сегодня маленько доделывал. поскольку для PGS регистр всегда один и тот-же - $FF - а все команды скрываются в параметре, который шлется в этот самый регистр - то сделал более наглядную расшифровку, чтоб было видно что здесь выставляется нота, а здесь выставляется громкость - сам ненарадуюсь как здорово получилось :) для отладки самый цвет! и надо бы еще GEMS архивы еще 80 игр дозалить на форум. итого там 180 по моему в итоге распакованных :) онлайн GEMS база была афигенской идеей :) в перспективе помимо Дюны этой базой можно будет пользоваться и для других GEMS игр. а еще хоца раздел кастом-конвертации, где были бы удачно конвертированные мелодии из vgm, дефлемаска или midi.

***

обещанные GEMS архивы для редактора.
SeregaZ:
что-то я как-то не очень доволен результатом с редактором модуляции.




да и с проигрыванием модуляции тоже есть проблема. сейчас у меня проигрывает только FM инструменты и только в случае, если параметр модуляции был выставлен до ноты. но в мелодиях часто встречаются особые случаи, которые мой CODE-проигрыватель не умеет играть :)

в кратце теория заключается в следующем:
есть CODE-файл с примерно таким содержанием:

--- Код: --- SECTION HEADER
 dc.b 1
 dc.t channel_0

 SECTION CODE
channel_0:
 delay 0
 volume 0
 sfx
 priority 120
 patch patch_06
 duration 48
 delay 2
 note $30
 delay 58
 modulation modulation_0C
 delay 0
 stop 30
 eos

--- Конец кода ---

dc.b 1 - количество дорожек в песне. в данном случае 1 штука.
channel_0: - объявление этой первой дорожки. дальше идут команды для неё до команды...
eos - конец дорожки.

delay 0 - пауза между какими-то двумя событиями. тут надо пояснить более развернуто. об этом ниже.
volume 0 - громкость. то есть максимальная. хотя по идее громкость от 1 до 127. а тут 0... эм... ну да ладно.
sfx - флаг спецэффекта. то есть это не мелодия. говорит нам что темп - bpm - данной "мелодии" 150. в нормальных мелодиях нет этого параметра. там указывается tempo x, где x может быть от 40 до 295 по моему. или до 255. склерос... сволочь.
priority 120 - важность дорожки. поясняю: в дюне когда червяк жрет твоих юнитов слышен звук "аааам". то есть когда он уже сожрал. повод для беспокойства и сигнал что надо прятать харвестеры... но бывает так, что червяк жрет, но звука нет. вот проблема как раз в этой команде приоритета. то есть GEMS может проигрывать только один DAC-сэмпл, то есть wav'ку. то есть обеда червяка не было слышно из-за того, что в этот-же момент какой-то юнит орал тебе по рации: "слушаю, выполняю". его сэмпл занял 6 канал чипа и червяковому просто негде играть. вот червяк и "промолчал". это в случае если приоритет у обоих сэмплов был одинаковый. но ежели взять и влепить больший приоритет червяку, то сколько бы ты не тыркал юнитов - червяковый "ааам!" будет все равно слышен, так как имея больший приоритет он заткнет на полуслове всякие "слушаю, выполняю" и начнет проигрывать свое "аааам!".
patch patch_06 - выставление инструмента 06 в данную дорожку для проигрывания.
duration 48 - длительность ноты, когда ты нажал на клавишу пианино и держишь эту клавишу нажатой в течении 48 раз по 1/24 ноты. то есть 48*24 = 2 целые ноты.

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

это играть проще всего.

но в данном случае - дюрейшн больше, чем делей. шо такое? у меня паника! как это играть? мамаааааааа....

так вот вместе с модуляцией:
modulation modulation_0C - старт модуляции.
это будет выглядеть примерно так:


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

так-же с помощью этого delay 0 - можно играть аккорды, как в лунной сонате Джима Червяка. там получается одна дорожка будет занимать 2 канала чипа. оба эти случая я в своем проигрывателе не предусмотрел и играть у меня будет не верно. нужно пилить динамическое перераспределения занятости каналов.  :'(

в принципе решить все эти проблемы помогло бы расковыривание одной хитрой программы - GEMSPlay :) она правда играет сразу банки, а не отдельно по 1 песне. но ежели бы её расковырять и из консольного приложения вылепить из неё dll'ку - было бы замечательно :)
SeregaZ:
проклинаю дефлемаск... опять :) дошла очередь до разбора эффектов в дефлемаске и сразу-же первый встретился в песне: 0309.

в описании сказано, что данный эффект регулирует скорость слайда от предыдущей ноты до этой новой, на которой был объявлен эффект. типа была нота ДО, играла себе три тика, тут пошла нота МИ с этим эффектом. это означает что с этого момента нота ДО должна начать перетекать в МИ с заданной скоростью 09.

как это отловить то? б*...

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

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

хорошо, начало не модулирует. дальше то что делать? мозг сломать можно... по моему от ноты до ноты там возможен параметр питча 255. типа нота ДО + питч 255 = ДО диез. хотя тут я не уверен... но по моему 255 (помню что шелл там что-то объяснял что в одних случаях 255, а в других 127... надо было слушать внимательней). так вот идея возникла такая: ((старая нота - новая нота) * 255) / 9. (девятка это параметр скорости из эффекта в файле дефлемаска.) таким образом мы получаем второй сегмент файла модуляции :) количество тиков и параметр скорости - 9 - он был известен заранее. теория вышла хорошая. но пробежавшись глазами по треку заметил еще более замудреную ноту с модуляцией - там 3 ноты - стартовая и плюс одна с модуляцией и плюс вторая с модуляцией. шерсть на жопе уже чует что её скоро начнут рвать...

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

и это все только про один эффект в дефлемаске :) а ведь там еще их несколько... каждый раз мне вешаться? за что мне такое горе :)

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



три разноплановые модуляции в одной ноте!!! триииии... чтоб ему икалось этому дефлемаску :)


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

Добавлено позже:
сраные слайды... черт ногу сломит там раздуплить как правильно все перенести в GEMS. мораль: пишите музыку в дефлемаске без слайдов :) ну их в жопу...



оригинальное звучание:

SeregaZ:
последние паки доложил, какие удалось распаковать. и то некоторые все-таки с припиской bad - то звук не тот, то еще что-то мне не понравилось. Shaq fu например.

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

так-же в подвисшем состоянии двухбанковые GEMS игры - FlashBack, Zero Tolerance, WWF Wrestle Mania The Arcade Game. в первых двух только мелодии распаковались. а где спецэффекты то? а в рестлинге не хватает сэмплов с именами персонажей и мелодии при победе. там была еще 4 игра какая-то тоже двухбанковая... забыл.

B.O.B - видимо корявые адреса у меня были. при распаковке лезут всякие ошибки.
Brutal Fury - вроде начинает распаковывать и косячит
Chakan - видимо адреса не верные.
Nightmare Circus - распаковывает... но с ошибками. мож модифицированный GEMS, а мож мои кривые руки...
Duke Nukem - видимо два банка и какое-то сжатие, так как сэмплы хрипят пердят.
NBA Hang Time - пустые дорожки распаковались. видимо корявые адреса.
Wacky Worlds - нет адресов чтоб использовать распаковку
World Series Baseball '98 - 3 байтного вида треки и распаковываются с ошибками
Xperts - видимо химиченный GEMS - ошибки лезут при распаковке.
Death and Return of Superman, The - нет адресов.
Double Dragon V The Shadow Falls - проблема с сэмплами и видимо там 2 банка.

так что ежели кто сможет распаковать эти игры - шлите архивы :) добавлю в базу для скачивания.
SeregaZ:
как оказалось получилось выкрутится с теми ADPCM сэмплами Comix Zone и Ooze без понимания того, как работает алгоритм :) более подробно мое горе расследование здесь: http://www.emu-land.net/forum/index.php/topic,48579.msg1346495.html#msg1346495

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


Добавлено позже:
вода и сопли об импорте изображения в редактор. точнее импорте изображения в какой-либо из экранов игры.

SeregaZ:
Razor:
Крутой функционал, хотя лично мне не хватает конкретно хорошего редактора GEMS, плюс конвертера из Midi  :lol:
SeregaZ:
по редактору GEMS - я не сдался. мне нужен будет для моего хака все равно, так что сделаю сделаю... когданибудь... хотя shell говорит типа нафиг надо и все такое, дескать он досовский научил петь через досбокс и можно типа творить в нем. но что-то мне показалось там как-то не понятно в этом оригинальном программном обеспечении из 90 годов... хочу сделать такой, где сам понимаю что к чему :) либо дотуркать дефлемасков, чтоб они сделали экспорт в GEMS из своей программы. я им уже скок раз говорил, что то что они делают это тупик. зачем делать редактор для музыки... эээ... просто для музыки. когда можно сделать редактор для музыки, которую можно использовать в играх.
SeregaZ:
видео пришлось снести, так как какая-то зачморенная контора предъявила за авторские права на мультфильм.

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

для чего это было нужно: GEMS хитрый, скатина... при наличии 6 физических каналов - он имеет 16 чтоль дорожек. естественно что 16 звуков одновременно он не родит, но ведь песня совсем не обязательно должна фигачить аккордами, верно? то есть GEMS распихивает ноты мелодии, проверяя - а не свободен ли канал номер 1? если свободен - сует туда ноту и играет. если занят - проверяет 2 канал и так далее. реализовать подобное мне было бы тяжеловато... посему и возникла такая идея, чтобы заместить это динамическое перераспределение - физическим увеличением каналов :) то есть использовать 3 ядра или 3 чипа YM2612. в результате теперь редактор будет проигрывать мелодии GEMS более полифонично, нежели оно играло ранее - жалкие обрезки из 6 дорожек, когда в песне могло быть и 10 и 15.

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

Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии