итак... пока в творческом кризисе напишу о том, что сделали, точнее пока не доделано. о недоделанном ниже:
1. конвертер из дефлемаска в драйвер RRR (да, я знаю там есть какое-то официальное название, но я не помню. помню последние три буквы - RRR
привычнее как-то. драйвер для рокн рол рейсинга - и сразу все понятно )
2. конвертер из дефлемаска в GEMS
в обоих случаях недоделаны слайды. дефлемасковск имеет всякие эффекты, когда нота продолжает висеть, но изменяется частота. если с драйвером RRR вроде бы не сложно сделать 03 эффект, то есть стартует нота С к примеру, потом должна идти нота D, но у D выставлен эффект 03 - это значит что нота С играет свою длительностью как нота С, но как только наступает время играть ноте D - С не прекращает играть, она продолжает висеть, но начинается изменение частоты ноты С в сторону D и продолжается пока частота недостигнет значения ноты D либо пока время звучания ноты не закончится. ну так вот для RRR - подобный эффект есть в командах драйвера. тут нужно просто правильно конвертировать дефлемасковскую скорость эффекта 03 в RRRшную скорость для команды follow. с другими же эффектами 01, 02, E1, E2 - ситуация сложнее. кароче я бросил это гиблое дело.
с GEMS ситуация наоборот эти 01, 02, E1, E2 сделать проще, чем 03. у GEMS нет такой команды, как у RRR - Follow - и там придется выкручиваться модуляциями либо спамом кучи команд pitch... и вобщем это полный капец просчитать этот самый 03 эффект. и это ладно если была обычная нота С, и надо ей потом перетекать в ноту D... но бывают и вовсе тяжелые случаи - когда у ноты С уже был свой какой-то эффект и она уже куда-то утекла от первоначального значения частоты ноты С, и потом должно начинаться перетекание в D. аааааааа... мозг начинает взрываться, и тут приходит докучи еще контрольный выстрел в башку - когда нота С имела свой эффект, нота D имела эффект 03, то есть перетекание из ноты в ноту, а после еще была третья и четвертая и так далее ноты, имеющие тоже 03 эффект, то есть продолжается рисовка "синусоиды" ноты, которая должна продолжать играть, меняя свою частоту.
потом дальше RRR не использует PSG. посему я не стал докручивать PSG часть и к GEMS конвертеру тоже. хотя вроде в старом концепте конвертера это предусмотрено, хотя и не совсем точно. например GEMS не может регулировать громкость для PSG. в дефлемаске же может быть указано для нот для PSG их громкость. так-же RRR не использовала сэмплы для песен - так что сэмплы я тоже не стал прикручивать к GEMS. хотя в старом концепте опять таки это вроде было предусмотрено.
дальше - конвертация происходит не в оригинальный формат данных, как они лежат в роме. конвертация происходит в asm файл для RRR или целую кучу файлов в случае GEMS - когда в папке создаются файлы инструмента, файл мелодии, заголовочный... кароче asm файл для RRR для последующей сборки рома, а куча файлов для GEMS - для последующего сбора комбайном товарища r57shell'а.
дальше - оригинальный RRR драйвер имеет менее 3 килобайт на песню, то есть чтобы она торчала в памяти z80. конвертирование же делает килобайт 20 песни. посему товарищ Ti сделал там переезд этой информации из памяти в ром. хотя хорошо бы придумать какую-нить оптимизацию конвертации, чтобы экономить размер памяти, то есть нужен некий поиск одинаковых кусочков и переразбитие содержимого песни. эту фигню тоже не доделал. хотя мысли вроде бы были.
в конечном итоге, если мелодия без слайдов - конвертация очень даже не плоха. но если, как наш буржуйский товарищ Alianger делает свои шедевры, там по тыщи слайдов... то все. суши весла. так что я несколько в творческом кризисе, потому что родить такой алгоритм просчета 03 эффекта для GEMS, который бы учитывал всё - ВООБЩЕ ВСЁ! - я наврятли смогу. слишком уж много переменных и разных случаев
пока приходит на ум сделать что-то типа недотреккера для GEMS. для RRR я что-то подобное сделал - для тонкой правки итогового результата, но я там сам не понимаю с этими сраными слайдами как правильно править... там в общем маленькое окошко с частью кода asm файла, который может быть проигран средствами программы, без необходимости каждый раз собирать ром - опять таки r57shell сделал такой специальный проигрыватель - и тут-же можно внести изменения в параметры команд для слайдов и послушать результат. вот для GEMS наверное надо что-то подобное, чтобы все те ошибочные конвертации слайдов потом можно было вручную доправить, чтобы звучало более благозвучно.
вобщем трындец
жду пока вдохновение стукнет по голове и что-то там да надумается... но пока - творческий кризис.