На Z80 заведен VBlank. NMI используется только в режиме M3 как пауза. YM2612 имеет выход запроса прерывания, оно формируется таймерами. Всего в YM2612 2 таймера: A и B, отличающиеся только базой отсчета. Их состояние считывается в байте статуса. Касаемо темпа мелодий, то примерно в 80% драйверов используется только IRQ, который стреляет по VBlank и зависит от режима система 50/60, т.к. он заводится с VDP. Но есть некоторое количество драйверов, которые используют только таймеры YM2612. И хоть отсутсвие аппаратной связи запроса YM2612 усложняет кодинг, для достижения равномерного поллинга статуса таймеров - оно работает. Яркий пример из мультирегионных игр, это игры со звуком от Zyrinx/A Scavenger Team. Jesper Kyd, который писал музло под дофига игрушек. Послушайте мой Super 3 in 1 Trax, это оно и есть. Кстати, послушайте вот это (есть на моем 3 in 1):
И это (автор тот же Jesper Kyd):
Желательно полностью - это реально ковер от автора.
Это единственная эксклюзивная память Z80. Т.е., ему, конечно, доступен банк картриджа (все пространство М68К поделено на банки по 32КБ), но там автоматический арбитраж с М68К и оно медленное + Z80 не может записать в ОЗУ М68К - ограничение системы, которое на SRAM переехало не сразу, а DRAM синхронизировать не стали. А внутреннее ОЗУ оно чисто за Z80. Без тактов ожидания. Кстати, там окно в 16КБ, но само ОЗУ стоит только 8КБ, которое зеркалится 2 раза. Но его можно расширить до 16КБ, если поставить 62256 + завести А14 от процессора (на любую из 1 или 26 ногу, главное отключить ее от схемы), драйвера легальных титлов продолжают работать (т.е. они не используют зеркало). М68К умеет управлять сигналами RES и BUSR Z80 через порты (раздельно), Z80 никак не может влиять на М68К, арбитраж автоматический на вэйтах со стороны Z80.
Драйвера бывают разные. Но основной парк это GEMS. Он только программа в ОЗУ Z80, а данные он подгружает из банка. Но есть экземпляры, которые держат мелодию в ОЗУ Z80 - как я уже говорил, это RRR.





Ответить с цитированием