Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - SeregaZ

Страницы: [1]
1
значится ребенок это я... товарищ Томахомэ дал замечательную ссылку с примерами и объяснениями: https://mrjester.hapisan.com/04_MC68/Index.html
на буржуйском правда... и не все понятно. вот полистал там всяко разно и пытаюсь все как-то в единую систему в голове привести. вот собственно вопрос про move.

сначала простое: movea.l
насколько я понимаю у него может быть только один набор параметров:
movea.l #$00000002, a0то есть пишем значение $2 в регистр a0. точнее не значение, а адрес памяти. то есть никакого другого варианта сочетания параметров тут быть не может?

сами параметры пока собрались следующие:
d0, a0, (a0), $02(a0), (a0)+, -(a0), $02, #$02 неисключено что какие-то варианты я конечно пропустил...

хотелось бы вывести возможные сочетания параметров. типа если для movea.l может быть первым параметром #$00000002, а вторым а0(а0 до а7), то тогда это может выглядеть примерно так:

то есть для первого параметра может быть вид только такой: #$00000002, а второй соответственно а0.

для move вариантов сочетаний больше:

вот пока какие варианты мне попадались:
move.w d0, d1
копирование из регистра d0 в регистр d1 на длину .w - 2 байта
d0 = 8765 4321
d1 = 1234 5678
после этого копирования:
d1 = 1234 4321

move.w d0, $0000104E
копирование 2 байт (так как .w) из регистра d0 в адрес памяти $0000104E

move.w $00001062, d0
копирование из памяти по адресу $00001062 2 байт (потому что .w) в регистр d0
move.w $00001061, d0
нельзя читать из памяти по нечетному адресу более 1 байта (.w или .l). приведет к ошибке. только если .b - 1 байт

move.l $00000800, $00000822
копирование 4 байт (потому что .l) из памяти $00000800 в память $00000822

move.b #$44, (a0)
(a0) будучи в скобках это не регистр, а указатель (адрес) на память. пишем значение $44 по адресу из a0

move.b #$9B, $04(a0)
читаем адрес из а0, прибавляем к этому адресу $04, пишем по этому новому полученному адресу значение $9B

move.b #$B5, (a0)+
пишем значение $B5 по адресу из a0. увеличиваем адрес в а0 на единичку. видимо если будет move.w - прибавляем не 1, а 2. move.l - прибавляем 4.

move.b #$2E, -(a0)
читаем адрес из а0, вычитаем единичку из этого адреса, пишем в полученный новый адрес значение $2E
то есть я предполагаю что варианты со скобами (а0) могут быть только в качестве второго параметра. а голая а0 наоборот не может быть вторым параметром, а только первым.

какие варианты конструкций параметров и их сочетания для move я мог пропустить?

2
Hard'n'Soft / эээ... Ардуино?
« : 28 Май 2023, 08:15:59 »
Я сначала купил какую-то фигню... Arduino Nano китайскую и Распбери Пико. А потом начал пытаться разбираться что-же я купил. Ясное дело что ничего не получается, но тут прям напрягло:
Цитата
Скетч использует 13844 байт (45%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1774 байт (86%) динамической памяти, оставляя 274 байт для локальных переменных. Максимум: 2048 байт.
Это я пытался скомпилировать скетч для получения сигналов с ИК пульта. И уже столько памяти сожрано. Я чего копаю не в том направлении? Задача была следующая:
1. работать с ИК пультом
2. измерять напряжение (не бортовое ардуины, а другое, которое регулируется вручную)
3. слушать стерео звук
4. рисовать на светодиодной панели значение вольт, сколько замеряно и рисовать эти самые пики громкости для левого и правого канала в две горизонтальные полосы.

А память уже почти закончилась еще на первой задаче :)

Хотя перевоначально план был еще жирнее - пультом переключать режим работы для этого звука стерео - чтобы или показывало громкости для двух каналов, или показывало как скачет спектр частот как в винампе. Так-же чтоб с пульта происходило включение\обесточивание блютус модуля через ключ (это не ардуинский, отдельный. хочу в свой советский усилитель втулить блютус. модуль купил и потестировал - все руль. не хотелось бы чтоб он все время был включен. типа с пульта тыркнул - ардуино через ключ включила, и он запел. ну и так-же может через реле переключение селектора входов.).

3
как известно я вечно витаю где-то в облаках... и тут у товарища ValleyBell'a оказывается есть архив, где куча SMPS мелодий к играм.
http://www.mediafire.com/file/w6w29o3ece957tp/SMPS_Research_Pack_v5.7z/file
открыл, я к примеру, Golden Axe III в сем архиве и там куча файлов типа 01 Title Theme (Skip).trs - чо за trs? ладно, поскольку в названии файла название, по всей видимости, трека и небольшой размер 932 байт - то видимо это мелодия.

дальше открываю я сию статью:
http://elektropage.ru/publ/o_prekrasnom/articles/smps_sound_driver_obshhaja_infa/2-1-0-74
увы, не полную и Coming Soon... там видимо висит уже пяток лет.

однако хотелось бы раздуплить что к чему...

согласно статье:
$00
Поинтер на голоса (то есть инструменты получается)
$02
Число FM каналов, которые использует мелодия. Важно помнить, что реальное число FM каналов на один меньше, чем указано, т.к. один канал выделяется под DAC. Если вы не используете DAC, то нужно перед нотными данными канала поставить $F2.
$03
Число PSG каналов, которые использует мелодия. Если вы хотите использовать Noise, то его может проигрывать только канал 3.
$04
Множитель для вычисления продолжительности звучания ноты. Величина продолжительности умножается на значение, здесь указанное.
$05
Скорость воспроизведения мелодии. $0 – быстрейшая, $FF – самая медленная. (что-то типа bpm видимо)

в итоге получается что-то типа:


пока-что все хорошо... едем дальше.


После него следуют заголовки каналов FM и PSG. Размер заголовка FM равен 4 байтам, а размер заголовка PSG равен 6 байтам.
по видимому должно идти 6 штук по 4 байта, после 3 штуки по 6 байт. ок, помечаем их на картинке... и получается ахинея :)


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

4
в данном случае рассматривался пример Doom Sega x32 и Sonic Spinball, но по идее таким образом можно заменять музыку или спецэффекты практически в любой игре, которая использовала GEMS аудио драйвер. конечно есть исключения и дикие дебри типа МК3 с двумя наборами банков и там черт ногу сломит разобраться, но в общем и целом вполне себе можно заменять музыку.

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

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


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

посему у меня два вопроса:
1. может ли кто посодействовать с перепиливанием кода оригинала SoX, чтобы оно из приложения превратилось в одиночную дллку, и получается могла работать с памятью? типа подсунул образ файла оригинала из памяти - оно результат родило тут-же память. тут-же из памяти проиграл, послушал, устроило - сохранил, создался файл. не понравилось - закрыл, память просто очистилась и все как раньше было, без всяких промежуточных сохранений на жесткий диск.
https://sourceforge.net/p/sox/code/ci/master/tree/ понятия не имею что это за язык.
2. о самой нормализации - по идее, в самом начале я родил алгоритм ресэмплинга из высосокачественной вавки в мои целевые 10.2к, правда я весьма посредственно представлял что там должно было происходить... и результат был, как бы мне сойдет, но я не уверен что это был правильный результат :) посему забил, и вернулся к bass.dll. так я к чему - может быть есть какой-то алгоритм, какие-то правила для этой самой нормализации... то есть моя вавка - это мульон значений от -127 до +127. может мне просто в цикле нужно производить какие-то операции с этими значениями и в итоге этот самый SoX нафиг не нужен будет? ну и в каком месте следует производить эту нормализацию? с оригинальной высококачественной вавкой и после конвертировать в 10.2к, или можно сначала конвертировать в 10.2к и уже после производить эту нормализацию? просто с 10.2к данных будет в разы меньше :) а высококачественная вавка - там надо будет сначала определить в каком формате данные, стерео или моно... гемороя больше. не говоря что это может быть ogg файл. в случае bass.dll ему все фиолетово для конвертации что wav что 16 бит, что 24, что ogg - результат мне предоставит 8bit mono PCM 10.2. проще связываться с уже конверченным результатом и что-то там нормализировать, но правильнее думаю все-таки с высококачественной вавкой творить свои дела, и уже потом конвертировать - ведь там данных больше.

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

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

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

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

7
насколько я могу предполагать в данной теме:
https://zx-pk.ru/threads/29001-zx-ym2612/page37.html
беседовали меж собой неплохие эксперты по z80 в том числе и посему хотелось бы до них подомагаться, но тупический форум там на премодерации, на которую видимо давно забили и в итоге регистрация нифига не работает. посему если у кого есть учетная запись - дайте порулить, чтоб отметится в той теме. мало ли вдруг они досих пор посещают тот форум и я как Малдер чонить да выпытаю полезное в поисках истины :)

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

ну и все замечательно, работает. но надо тыркнуть клавишу, закрепленную за "А" кнопкой геймпада. это не совсем удобно. было бы замечательно, если в этом роме будет предусмотрено автоматическое воспроизведение первой мелодии при старте рома.

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

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

собирается ром с помощью comb.bat, который должен родить файл Player.bin, который потом и запускается в эмуляторе для тестирования мелодии.

а само изменение видимо должно быть в файле Player.asm, GEMS.asm или Z80.ASM - я в танке. не знаю.



так что если кто знает какие строчки надо добавлять в эти файлы - отпишите, будьте любезны :)

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

10
есть исходник... эээ... черт знает какой язык, исходник эмулятора чипа YM2612 - который Sega Mega Drive. в архиве файлы с расширениями, может кому это подскажет что за язык:
OPN_DLL.c
OPN_DLL.def
OPN_DLL.dsp
OPN_DLL.dsw
OPN_DLL.h

кто шарит, гляньте одним глазом и подскажите как это дело собрать в dll? сам файл этот dll там есть в архиве, НО! в этом коде есть парочка косяков, которые портят всю радость. хотя возможно я просто не правильно делаю...

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

так вот первая проблема заключается в OpenOPNDriver. при инициализации одного чипа OpenOPNDriver(1) - все работает без проблем. однако мне хотелось бы использовать 2 чипа, поскольку 6 каналов будет не достаточно для проигрывателя. хотелось бы 12 - два по 6. но при указании OpenOPNDriver(2) - происходит какая-то фигня. такое ощущение что частота чипа повышается, то есть звуки становятся писклявее. 3, 4, 5 и так далее - звук все выше и выше. получается вместо увеличения количества чипов эта функция производит разгон чтоль... вот где может быть ошибка в коде? как исправить?

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

в архиве 2 ехешника с моим импортом дллки. один с OpenOPNDriver(1) - кнопка play покажет как должен звучать звук выстрела, используется FM инструмент. второй с OpenOPNDriver(2) - там звук будет искажен, из-за ускорения чтоль...

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

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

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

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

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



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

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


***

поскольку POST запросы были худо-бедно раздуплены - решил вернутся к изначальному внешнему виду Менеджера :)


***

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


хотя я это место справа хотел использовать под кнопки обновить, удалить, установить... плюс еще непонятка с колесиком мышки на виндовс 10. в новом вложении MII работает пока только один путь: shop, dune, 1 хак. ничего не качает и не запускает. пока только болванка, но уже с пост запросами.

***

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

13
не программист, французским не владею. буду писать своими словами как я это понял сам.

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

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

1. как известно миди состоит из тиков. а мне нужно расчитать паузу Delay для правильной скорости проигрывания. пока отбросим плавающий темп, предположим что темп константа. сама Delay, в моем случае - в миллисекундах. то есть 1 секунда = Delay(1000)

в миди есть параметр "разрешение", аналогично как в 1 сантиметре есть 10 миллиметров, только в нашем случае миди сообщает о том, сколько мидишных тиков входит в 1/4 ноту (тики это типа миллиметры, 1/4 нота - сантиметр)

так-же в миди есть параметр Delta - хотя в названии я не уверен... так вот это значение в микросекундах (не миллисекундах!!!) длительность времени, сколько должна звучать 1/4 нота.

зная эти данные нам нужно вычислить количество тиков в 1 секунду, и в соответствии с этим произвести расчет Delay в программе:
Delay = 1000 / ( 100 * ( Delta / (Resolution / 10000) ) )
1000 - это моя 1 секунда в миллисекундах для делея
10000 - это 1% от 1 000 000 - количества микросекунд в секунде
Resolution / 10000 - получение количества процентов времени звучания этой 1/4 ноты от 1 секунды
Delta / (Resolution / 10000) - получение значение 1% в... сам забыл в чем... тиках видимо. типа сколько миди тиков в 1%
100 * на 1% тиков - получение числа сколько тиков должно играть в 1 секунде
и наконец 1000 / разделить на это число тиков в секунде - получим значение паузы Delay сколько должно быть между тиками при проигрывании миди.

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


2. момент номер два. проблема в том, что минимальное значение паузы может быть Delay(1), следовательно если по предыдущей формуле я получил значение типа 0.45 - то точно играть не будет. точнее оно вообще по определению точно играть не будет, так как пауза может содержать только целые числа - но тем не менее с 0.45 это полный капец. то есть Delay(1) это очень много и грубо - песня будет звучать значительно дольше, чем в оригинале. я тогда подумал, что в данном случае можно попытаться пожать массив тиков, что предварительно прочитал из мидишки. типа массив имел 25 ячеек. 1 ячейка - единица времени.
0 0 0 0 0 0 0 4 0 0 0 2 0 0 0 1 0 0 0 0 0 5 0 2 0
и я хочу его пожать скажем кратно 5 и использовать первое попавшееся значение в этой пятерке. в итоге получается что-то типа такого:
0 4 2 1 5 (нота 5 в последней пятерке встретилась раньше ноты 2, и следовательно сожрала её)

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

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

однако в пользу этой моей теории пожатия должно сказаться само конвертирование - а именно игра может проиграть минимальную ноту как 1/24 - то есть 1/32 или 1/64 проиграть не выйдет (только если темп увеличивать, но это уже другая история) - так что выходит все равно нужно будет пожатие массива, а следовательно будут небольшие огрехи в звучании. (ишак нюхал этих производителей с их нестандартным 1/24 решением. могли бы уж 1/32 что-ли запилить, чтоб как у людей)



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


*********************
26.08.2015


примерное представление о наборе функций



а тут во вложении можно даже уже какие-то функции потестировать :) пока правда они все из "проигрывательной" части... до самого конвертирования пока не дошло. чтоб проигрывало верно - следует всегда выставлять барабаны на 6 дорожку. пока еще не решил что с этими барабанами делать... плюс еще мидишки могут быть разные. мне попадалась такая, где барабаны были записаны на различных дорожках... кароче нюансов еще тонна целая. все надо предусмотреть. темп для миди и для предварительного озвучивания вроде бы верный, как на самой мидишке, а вот темп при проигрывании code файла ( треки 000, 001, 002 и так далее в папке со сборщиком Дюны у Ti_ ) - не верный, плюс еще само звучание не совсем корректное. так-же нет поддержки громкости инструментов, в результате музыка звучит мягко говоря совершенно другая :) до кучи еще нет поддержки зацикливания проигрывания некоторых дорожек в этих треках... все потом как-нибудь.

и еще чуть чуть подправил.

Страницы: [1]