Стартовая анимашка, заработало вроде без граблей
(сдвинул AthleticLand в знакогенераторе для удобства)
с использованием АЦЗУ получились цвета почти как в оригинале.
надо приступать к спрайтам, ибо все остальное вроде должно работать
ужасть ужасть
Стартовая анимашка, заработало вроде без граблей
(сдвинул AthleticLand в знакогенераторе для удобства)
с использованием АЦЗУ получились цвета почти как в оригинале.
надо приступать к спрайтам, ибо все остальное вроде должно работать
ужасть ужасть
попробовал посмотреть как работает музыка/звуки
на Корвете только 1 канал ВИ53 за звук отвечает.
для начала взял эмулятор AY из порта для корвета Driller-src
(пришлось получить _zvi53.asm методом ассемблировать его а потом в ida получить z80, благо мелкий он)
заработало странно, стал дальше проверять
вот что получилось в результате
т.к. драйвер выдран был тоже из "порта ниисчетмаш" я полез его искать в корветовских портах
по аналогии он был найден в игрушках
в 3-х разных, все работают по разному ...
на диске демки
после запуска на экране название драйвера (и мусор
далее ждёт кнопки
1 на доп (цифровой) клавиатуре - main music theme
0-7 на основной клаве - эффекты
shift 0-7 на основной клаве - эффекты
0-7 на цифровой клаве - музыки
shift 0-7 на основной клаве - музыки
3я цифра на экране - номер "эффекта"
выход только ресет
m4.com _zvi53.asm
такое впечатление что играет только один канал
эффектов нет вообще
m3.com _zvi53_xyzon.asm
такое впечатление что играет только один канал
эффектов на вид работают
m2.com _zvi53_pacman.asm
музыка на самая крутая
эффектов нет вообще
m1.com _zvi53_binaryland.asm
мелодия играет и даже узнаваема, но явно сильно проще чем в M2
эффектов на вид работают
даже на фоне проигрования музыки работают.
собственно может кому и пригодится еще
и если бы спецы глянули, может из этого всего можно сделать 1 но работающее совсем
хотя меня берет сомнение нужна ли музыка на Корвете ;(
ибо сильно громко оно
вот если бы можно было музыку сделать тише раза в 2
а эффекты оставить
но по крайней мере что-то работает и есть из чего выбрать
Последний раз редактировалось esl; 14.09.2012 в 00:40.
еще при конвертации ay плеера из z80->i8080
придумал забавную вроде фичу
там постоянно используется IX+
чтоб не городить арифметику постоянную
там есть 3 канала
и IX указывает на данные по каналу
каждый блок данных по каналу - 10 байт
причем грузим в IX данные канала и делаем call doSOUNDChennel
я завел еще 10 байт, назвал из _IX_
и перед вызовом call doSOUNDChennel
копирую в буфер данные из "данных канала" а после назад
немного подрехтовал код
правда пришлось влезть в зацикливатель мелодии влезть
но эт не так страшно
но заработало.
Наверно я буду за капитана очевидность, но все же напишу.
Если отвлечься от несколько большей функциональной полноты в xyzon, то просто в каждом случае выбрали разные два канала AY из трех: binary A и C; pacman A и B; xyzon B и С.
При этом в Athlethic Land музыка играет по каналам A ("мелодия") и B ("бас"), а по C идут эффекты.
Интересно было бы взглянуть на трехканальный вариант для корвета.
Последний раз редактировалось ivagor; 14.09.2012 в 18:16.
А можно узнать, кто дизассемблировал эти процедуры (просто интересно, почему метки названы по разному)?
Говорю серьезно, без подколок, что мне было бы интересно взглянуть на 3х канальный вариант эмулятора AY для корвета.
Чисто умозрительно могу представить такой подход: если я правильно понимаю, то можно организовать прерывания с частотой, заданной счетчиком 2 таймера чаще, чем через 20 мс. Если это так, то повесить на это прерывание SoundProcInt и теоретически может и 3 канала будут более-менее играть, хотя скорее всего будет дребезжать.
я
по по образу и подобию vi53.asm,
одинаковые метки делал вроде одинаковыми
остальные чтоб не оставалось меток вида Lxxxx
могу отдать idb
или с удовольствием исправлю чтоб было правильно ...
(и вывести в i8080 asm если надо)
если ваша бригада не сделает, то не судьба
в теории для Корвет2 можно сделать прерывание c кратной HBL
но вроде пока нет эмулятора который бы это эмулировал
(b2m обещал
idb не надо, спасибо, насчет меток я из чистого любопытства спросил. В pacman например xayr10, а в binary subAY10_b и т.п. думал разные люди делали.
Если я правильно понимаю, что у него написано в Korvet.cfg:
tim : K580wi53 {
clock[0].rate=4/5
clock[1].rate=4/5
clock[2].rate=1/A4 - 2.5e6/164=строчная частота (от ТВ-стандарта чуть отличается, но это похоже не критично)
gate[0].value=1
gate[1].value=1
gate[2]=vid.svbl - вертикальное гашение является gatом для 2го счетчика
}
intctl : K580wn59 {
irq[0]=ppa2.portC[7]
irq[3]=lan.irq
irq[4]=vid.irq
irq[5]=tim.out[2]
}
то это уже сделано. Надеюсь он меня поправит если я ошибся (или можно проверить).
Чуть причесал и таки немного поразбирался с эмулятором (спасибо за идею)
увидел где каналы на вывод используются
даже переделал драйвер xyzon чтоб звук и эффекты были
(то что там что-то для огибающей делается похоже пофиг)
зато стало ясно что можно сделать прям переключатель на ходу
играть только эффекты, только музыку или и то и другое (кое как)
p.s. а как же забавно попало что в 3х драйверах 3 варианта каналов
Последний раз редактировалось esl; 15.09.2012 в 02:40.
Ускоренные умножения и деления, вдруг пригодится:
http://www.cirsovius.de/CPM/Projekte...IV/MULDIV.html
Больше игр нет
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)