Самописная. Когда-то делал как в AY эмуле, но ещё в EmuZWin "изобрёл" свой вариант "точной" эмуляции, по сути - ресамплинга. В общем, в унриле тоже используется интегральное усреднение, но мне кажется, мой способ чуть эффективнее: я работаю по "событиям", вместо подсчёта суммы всех тактов AY. Скажем, есть 5 событий: 3 канала, огибающая и шум, у каждого свой счётчик, сколько осталось до пульсации. Интегральная сумма считается с точностью до такта Z80, в итоге. На разницу в частотах AY и Z80 (если она есть) я решил не обращать внимания.
А что, что-то не так звучит?
Добавлено через 9 минут
Кстати, точность унрила у меня особых сомнений не вызывает. Код я видел. Звук слышал. Что там неточно?
Другое дело, что алгоритм, который используется, несколько тяжеловат, и звук может ошибаться, что выражается некоторыми похрюкиваниями. На мощной машине это не особенно заметно. Может, я пропустил какой-нибудь трек?