Жду, когда ivagor, наконец, остановится, :) чтобы перекинуть проигрыватель в понимаемый мной sjasmplus
Вид для печати
Что лежало на поверхности я в основном оптимизировал, если и осталось, то немного. Дальше требуется уже более серьезная переработка, которую я не планирую. Разве что возникнет какая-то очень интересная для меня задача (в рамках разумного) или еще ошибки всплывут.
Про тестирование скорости чуть подробнее. Тестировал 7 модулей и выбрал из них самый "медленный" (ну или сложный): nq - Info Guide 14 oldschool (2024).pt3
Средние цифры, которые привожу, именно для него. Для других меньше, для самого "быстрого" аж на 2300 (т.е. в R9 он в среднем примерно 6100 тактов/кадр).
Не утверждаю, что это самый сложный pt3, но считаю, что это приемлемая оценка среднего сверху, пока не нашел более сложный/медленный.
А насколько медленней адаптация для i8080, запущенная на i8080, медленней оригинала на Z80 ?
Думаю лучше сравнить R9_8080 и оригинальный вариант z80 без векторовского торможения, и для корвета со специалистом так полезнее.
R9_8080 - в среднем примерно 6700 тактов/кадр
оригинал z80 - в среднем примерно 5200 тактов/кадр
Т.е. R9 примерно на 29% медленнее.
И еще один релиз будет, надо переделать одноразовый вариант в .com, чтобы из досов запускать с возвратом. Может попутно несколько байт скину.
R10 на 77 байт короче R9, средняя скорость примерно 8200 тактов/кадр.
pt3once теперь не трогает кваз, не меняет стек и обработчик прерываний и компилируется в .com. Подходит для запуска из дос, одноразового проигрывания и возврата в дос.
Это или финальный релиз или что-то очень на него похожее.
Может все же сделаете вариант для двух AY ? Я как только платы получу, соберу девайс, проверю работу одного чипа, проверю на УКНЦ работу двух чипов, и могу вам выслать на эксперименты, его просто вместо AY в сокет нужно вставить, и он готов. Может займетесь ? Не раньше чем через месяц будет девайс к сожалению... Но будет )
- - - Добавлено - - -
Просто у вас то быстрее получится, да и вы уже знаете как это все там работает. А мне с нуля разбираться, эт прям гораздо побольше времени выйдет.
CityAceE писал, что Pyk планирует добавить поддержку Turbo Sound в эмуляцию специалиста. Если можно будет включить и в конфиге вектора вектора, то я соберу соответствующий вариант плеера.
Кстати, в 10 версии есть неточности в частоте воспроизведения, не всегда но бывает. 9 версия на данный момент наиболее точно передает звук. На треке 1KM6 слышно прям заметно. Причем и на реале и на эмуле.
electroscat, спасибо! Исправил в R10+, +1 байт относительно R10. Все, больше никаких оптимизаций, только исправление ошибок, если будут.
Добавил в эмулятор. Войдет в следующий релиз, а пока сделал внеочередную сборку текущего состояния: сборка с Turbo Sound
Включается в конфигурации платформы (Alt-F8), по умолчанию выключен.
Бюджетное проигрывание ТрубоЗвука, поддерживаются только "склеенные" модули, модули pt3.7+ не поддерживаются.
pt3ts имя_модуля.pt3 (или имя_модуля.ts)
Tasm не нужен, используются только бинарники.
Сгенерирует зацикленный pt3loop.rom для загрузчика или доса и одноразовый pt3once.com для доса.
Я не знаю, если честно, как отличать "склеенные модули от pt3.7, по этому накомпилил 3 дискеты первых попавшихся треков PT3. В итоге, ну трески какие то, шумновато, чего то не хватает в звуке, все вроде как сегментированно. Может это не такие треки... Но как определить те или не те я не знаю )) Тут можно послушать результат. Послушал и на эмуле с поддержкой турбосаунда, и на реальном компе с одним чипом, результат одинаковый. Как то не очень чисто, постоянный фон чтоли.
Образы полученные прилагаю. Но не на долго, удалю через какое то время с обменника, зачем этот глючь в эфире ))
https://disk.yandex.ru/d/OZxRph2FZeGB1A
Эти образы плагин для total commander не понимает и посмотреть что там внутри я не могу.
То, что я сам пробовал в emu80, звучало без треска и фона, насчет сегментированно - не знаю, о чем речь. К сожалению у меня нет идей, что может быть не так. Вероятно задача проигрывания turbo sound остается энтузиастам, которые например портанут PTSPlay.asm.
плагином для фара открывается норм. Я в ту же папку закину непосредственно треков без образов сейчас, секунду..
Много вы знаете энтузиастов, которые на таком уровне асмом 8080 владеют ?
- - - Добавлено - - -
Все что на первой дискете выложил туда же https://disk.yandex.ru/d/OZxRph2FZeGB1A
У меня появилась идея. Если запускать в emu80 при выключенном TS, то будет звучать и с треском и странно и т.п. Вариант для TS делал очень быстро и там нет детекта наличия TS, предполагается, что он точно есть.
Есть еще один момент, но он скорее забавный, чем критический. Я второпях перепутал местами YMы и вместо 1го пишу во второй и наоборот. Судя по схеме микширование у них идентичное и разницы не должно быть.
- - - Добавлено - - -
ALOx - примеры модулей неподдерживаемого формата. Они успешно детектируются и .com выходит в дос, а .rom просто молчит (ему некуда выходить).
По-моему, Вектор просто не успевает проигрывать два потока, и временами пропускаются прерывания. По крайней мере, увеличение тактовой частоты в конфиге эмулятора вроде бы улучшает звук и несколько увеличивает скорость воспроизведения.
В каких модулях вектор не успевает?
По моим оценкам пиковые максимумы плеера в районе 16000 (можно для перестраховки еще пару тысяч накинуть) тактов, т.е. вектора с запасом хватает не на 2, а на 3 вызова плеера за прерывание. В некоторых не самых тяжелых случаях хватило бы и на 4, но вот тут уже заикания возможны.