какие-то хитрые незадокументированные возможности и в результате мелодия теперь не прерывается фразами.
Задокументировано, просто не используется в играх. Можно было сделать как в gems по таймеру ямахи, но тогда нужно конвертировать - ресемплить в другой рейт, что ухудшит качество (даже если в бОльший - в gems вроде хуже larry звучал). Поэтому для тайминга был использован некий регистр R:
Answer: R is the memory Refresh register.
The Z-80 CPU contains a memory refresh counter to enable dynamic memories
to be used with the same ease as static memories. Seven bits of this 8 bit
register are automatically incremented after each instruction fetch.
The eight bits will remain as programmed with the LD R,A instruction.
The data in the refresh counter is sent out on the lower portion of the
address bus along with a refresh control signal while the CPU is decoding
and executing the instruction. The programmer can load the R register for
testing purposes, but this register is normally NOT used by the programmer.
During refresh, the contents of the I register are placed on the upper
8 bits of the address bus.
[snip]
Answer: R is the memory Refresh register. The Z-80 CPU contains a memory
refresh counter to enable dynamic memories to be used with the same ease
as static memories. Seven bits of this 8 bit register are automatically
incremented after each instruction fetch.
[snip some more]"
This last statement isn't quite true: DDCBxx will increase R by 2,
despite there being 3 instruction fetches made.
Который только в gens последней версии cломан, хотя в старых работал, поэтому там ещё костыль стоит - если не работает, то как в оригинале, с прерыванием. В остальных эмуляторах работает.
Добавлено позже:Почему в Дюне есть и музыка и звуковые эффекты, а Top Gear2 либо музыка либо эффекты.
В Top Gear 2 два разных драйвера. Как так получилось что музыку написали под один драйвер, а звуки под другой - неизвестно. В других играх такого нет. В Лотусе спокойно включаются музыка+звуки одновременно, там просто убрали зачем-то, хак исправляющий это был. В Страйках музыки скорее специально нет, чтобы не мешала, в Urban вроде тот же композитор что в RR3. Да и двигатели в RR3 тоже, как оказалось, вполне себе включаются одновременно с оригинальной музыкой.
Добавлено позже:Кто-нибудь знает, использует ли Дюна Z80 как сопроцессор не только для звука?
Смотрю экран с кодами, там везде загрузка и чтение с z80
Не использует. Я таких игр даже не знаю. Постоянные загрузки/чтение - просто флаг выставляется, чтобы z80 не обращался к rom во время dma.
Добавлено позже:а уж качество PCM сэмплов просто афигенское - 14khz, да еще и до 4 сэмплов одновременно может играть. не драйвер, а просто сказка!
Музыка + 3 канала сэмплов. 4 канала только без музыки. Плюс программное смешивание более 1 семпла, снижает качество.
В 'Darius - Extra Version', есть xgm + fm звуки, как-то сделали.
Ну и ещё Contra Hard Corps тоже умеет 3 канала семплов + музыку + fm звуки. Звуки там 8 Khz. А мелодии уровней я так понял 4 канала, 5-ый для звуков, 6-ой для семплов музыки и звуков. Мелодии в заставках в 5 каналов.