вот кстати да, я тоже не мог понять, почему все фальшивило, пока не понял, что проц и AY несинхронны, а вся логика конфы вместе с зетником работает на 50гц кадровой :)
Ну, как-то так, да. Кстати, забыл сказать про важный момент: в анриле для правильного воспроизведения надо выставить клок аигрека в полклока Z80 руками, вписав в ини-файле в секции [AY] значение FQ=1792000. Я себе все мозги выделал, прежде чем дошло, почему играет неправильно.
Я пошагал чучуть в дебаггере.
1. Извращения производятся с одним каналом АУ (канал В).
2. Заметил 2 эффекта: дига и скважность.
3. Скважность делается так: берется значение периода канала: период из рега * 32 = период меандра в тактах Z80. Из этого вычисляется сколько тактов держать канал включенным (рег. 09 = громкость), и остальные такты — выключенным (рег. 09 = 0). Сумма тактов в обоих полупериодах должна быть точно одинаковой. Значение скважности варьируется в пределах 0-50%.
4. Как происходит сихронизация с фазой меандра не разбирался.
1. Извращения производятся с одним каналом АУ (канал В).
2. Заметил 2 эффекта: дига и скважность.
3. Скважность делается так: берется значение периода канала: период из рега * 32 = период меандра в тактах Z80. Из этого вычисляется сколько тактов держать канал включенным (рег. 09 = громкость), и остальные такты — выключенным (рег. 09 = 0). Сумма тактов в обоих полупериодах должна быть точно одинаковой. Значение скважности варьируется в пределах 0-50%.
4. Как происходит сихронизация с фазой меандра не разбирался.