Просмотр полной версии : PT3 плеер для Вектора-06Ц
CityAceE своим примером (1 (https://zx-pk.ru/threads/36257-pk-spetsialist-ay-3-8910-12.html?p=1215949&viewfull=1#post1215949), 2 (https://zx-pk.ru/threads/36257-pk-spetsialist-ay-3-8910-12.html?p=1216015&viewfull=1#post1216015)) смотивировал конверснуть PT3 плеер для 8080. У него PT2/PT3 в мнемониках z80 и для sjasm, у меня PT3 в мнемониках 8080 (за что большое спасибо svofski!) для tasm или прекрасма.
Отличия: у него более универсальный, у меня более компактный и возможно более быстрый (пока это предположение, надо тестировать).
Все делал вручную (с копипастой конечно), вчера потратил 7-8 часов. Конверсией CityAceE не пользовался, даже не смотрел до переноса. Насколько могу судить у CityAceE больше автоматики.
Отдельный плеер (бинарник) PT2 для вектора есть, надеюсь svofski подскажет, где найти, если кому-то надо.
С помощью прилагаемого батника можно собирать тестовые romы с этим плеером
pt3test.bat имя_модуля.pt3
Для этого еще должны быть доступны TASM.EXE и TASM85.TAB
Я недоделал конвертацию и выглядит неряшливо. Поправил регистры регистров, теперь нормально https://gist.github.com/svofski/ca57ff62c53afa66421f6e437a352eb8 -- версия в шапке новее и лучшее и с регистрами красивыми.
возможно более быстрый (пока это предположение, надо тестировать)
Не угадал, по результатам небольшого тестирования мой на 6-7% медленнее.
Надо будет попрофилировать, может получится ускорить без заметного увеличения размера. Запас есть, сейчас у меня примерно на 700 байт компактнее (но, напомню, без поддержки pt2).
CityAceE
06.07.2025, 16:03
Спасибо за эту конверсию!
CityAceE своим примером (1, 2) смотивировал конверснуть PT3 плеер для 8080
Класс! Только ради этого мне стоило заняться адаптацией ;)
У него PT2/PT3 в мнемониках z80 и для sjasm
Да, к сожалению, это так. Знаю, что это неправильно, но в который раз оправдываюсь, что я, увы, не знаю мнемоник i8080, а переучиваться уже поздно.
Насколько могу судить у CityAceE больше автоматики.
На первом этапе, наверное, это с натяжкой можно назвать автоматической конверсией, так как под каждую команду я старался сделать универсальное решение, которое подойдёт в любом месте. Задача была сделать так, чтобы оно начало запускаться на i8080. Но в финале каждую команду переписывал вручную, в зависимости от контекста. Некоторые команды Z80 объединял по 2-3.
Все делал вручную (с копипастой конечно), вчера потратил 7-8 часов.
Эх, вот бы мне такую же производительность! Я убил целую неделю на это дело.
Не угадал, по результатам небольшого тестирования мой на 6-7% медленнее.
А вот это очень любопытно! Но мы разные версии адаптировали, скорее всего та, которую адаптировал я, в оригинале была быстрее.
Разогнал, теперь мой вариант (https://zx-pk.ru/threads/36272-pt3-pleer-dlya-vektora-06ts.html?p=1216043&viewfull=1#post1216043) процентов на 5 быстрее. Ну и стало на 64 байта компактнее. И теперь это облагороженный svofski вариант со строчными буквами регистров.
В принципе можно еще ускорить и сократить, если понадобится.
Я убил целую неделю на это дело.
А я за длительность рабочего дня, зато первый блин был комом по скорости. Если бы не сравнил с твоим вариантом так бы и оставил.
CityAceE
06.07.2025, 17:56
А я за длительность рабочего дня
А можешь поделиться, как у тебя проходила адаптация? Какие были этапы? Как ты проверял работоспособность на каждом этапе? Проигрыватель довольно сложный, и я не представляю, как можно переписать всё вслепую и надеяться, что нигде не ошибся. Поэтому я лично адаптировал по одному типу команд. После каждой группы я проверял и убеждался, что ничего не сломалось или доделывал эту группу команд, пока работа программы не восстанавливалась. И так до самого конца, пока команд Z80 совсем не осталось. А уже когда все заработало на i8080, прошёлся вручную по своим доработкам. Авторский код я вообще никак не трогал. При желании можно раскомментировать авторские команды и закомментировать мои дополнения. Но нужно делать это всё разом, так как есть манипуляции с AF' и IX, которые в авторском коде и в адаптации хранятся в разных местах.
Начал с IX и этот этап практически целиком сделал вслепую. Результат закономерный - именно тут дольше всего искал ошибки.
Потом AF' в два приема. Потом остальные команды по одной или мелкими группами.
Когда все заменил на 8080 прошелся и маленько оптимизировал, но как сегодня оказалось - оптимизировал слабо.
Сегодня посмотрел в профайлере VV, на что обратить внимание и там уже более тщательно оптимизировал. Резервы есть, эти монструозные замены IX можно оптимизировать. Чем более широкий контекст учитываем, тем быстрее и компактнее получается, но чем он шире, тем его сложнее узнать и понять.
- - - Добавлено - - -
Еще надо сказать, что это не первая сравнительно объемная адаптация для 8080, поэтому накопился некоторый опыт и стандартные замены команд. Но пожалуй единоразово это самый объемный для меня случай. Предыдущим был трассировщик и там наверно раза в 4 быстрее управился, но там и проще было.
CityAceE
06.07.2025, 21:22
Спасибо за описание процесса!
Начал с IX и этот этап практически целиком сделал вслепую. Результат закономерный - именно тут дольше всего искал ошибки.
Вот ты герой, конечно! У меня ошибок было просто море. Я бы вслепую, как я собирался делать вначале, вообще бы не справился. Но потом придумал, как можно делать покомандно и дело пошло.
metamorpho
08.07.2025, 11:20
CityAceE своим примером (1 (https://zx-pk.ru/threads/36257-pk-spetsialist-ay-3-8910-12.html?p=1215949&viewfull=1#post1215949), 2 (https://zx-pk.ru/threads/36257-pk-spetsialist-ay-3-8910-12.html?p=1216015&viewfull=1#post1216015)) смотивировал конверснуть PT3 плеер для 8080. .....
С помощью прилагаемого батника можно собирать тестовые romы с этим плеером
pt3test.bat имя_модуля.pt3
Для этого еще должны быть доступны TASM.EXE и TASM85.TAB
Правильно ли я понял что этот плеер проигрывает только формат PT3 ?
Как переделать формат PT3, чтобы вставить его в прекрасм ?
Или где можно скачать нормальный (без вирусов) TASM.EXE и TASM85.TAB ?
Сильно ли он грузит процессор - например если я хочу в игре сделать музыку фоновую через этот плеер - потянет ?
marinovsoft
08.07.2025, 11:57
Как переделать формат PT3, чтобы вставить его в прекрасм ?
вставить после метки Music: в виде множества "db что-то там"
Или где можно скачать нормальный (без вирусов) TASM.EXE и TASM85.TAB ?
http://old-dos.ru/index.php?page=files&mode=files&do=show&id=1385
Правильно ли я понял что этот плеер проигрывает только формат PT3 ?
Да
Как переделать формат PT3, чтобы вставить его в прекрасм ?
Два основных варианта:
1) Склеивать с бинарником, например как в pt3test.bat с использованием copy /b
2) Преобразовывать в исходный текст формата tasm. В идеале для этого нужна утилита, но можно воспользовать например IDA Pro.
Сильно ли он грузит процессор - например если я хочу в игре сделать музыку фоновую через этот плеер - потянет ?
Для R7 примерные цифры такие (это с учетом векторовского торможения, на корвете и специалисте будет быстрее): максимальные пики до 14500-15000 тактов/кадр, в среднем 9500 тактов/кадр. Для очень насыщенных дем и игрушек на грани возможного этот вариант вряд ли подойдет, там лучше играть упакованные дампы гигачадом svofski или вот этим (https://zx-pk.ru/threads/35286-pleer-konverter-vortextracker-vi53.html?p=1186069&viewfull=1#post1186069).
В прекрасм или в .db, или в .db64
Простейший подножный bin2db.py
#!/usr/bin/env python3
import sys
# pad to this size
PADDING=0
def bin2db(input_file, varname="mydata", bytes_per_line=12):
with open(input_file, "rb") as f:
data = f.read()
if PADDING > 0:
data = bytearray(data)
zeroes = bytearray([0] * (PADDING - len(data)))
data = data + zeroes
#data.append(bytearray((len(data) + PADDING) % PADDING))
print(f" ; padded {varname} size = {len(data)}");
for i in range(0, len(data), bytes_per_line):
chunk = data[i:i+bytes_per_line]
hexes = ', '.join(f'${b:02X}' for b in chunk)
print(f" .db {hexes}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: bin2db.py <inputfile> [varname]")
sys.exit(1)
input_file = sys.argv[1]
varname = sys.argv[2] if len(sys.argv) > 2 else "mydata"
if len(sys.argv) > 3:
PADDING = int(sys.argv[3])
bin2db(input_file, varname)
- - - Добавлено - - -
Запускаемый пример в прекрасме (https://svofski.github.io/pretty-8080-assembler/?https://gist.githubusercontent.com/svofski/334effbf8fbca8dbb6b974d157eabdca/raw/db545c732b78eb3ba1447d2ef9acafa43d10e31e/pt3r7test.asm)
Пришлось пару мест поправить. .db & 255 это понятно, но почему несколько других мест покраснели я не понял -- это ошибки в прекрасме, надо будеть починить. Но поправил ручками чтоб работало.
Поковырял плеер и не стал мариновать, если что-то сломал, то надеюсь коллективный разум быстрее обнаружит.
R8 (https://zx-pk.ru/threads/36272-pt3-pleer-dlya-vektora-06ts.html?p=1216043&viewfull=1#post1216043) на 116 байт короче R7 и средняя скорость увеличилась до 8700 тактов/кадр.
marinovsoft
08.07.2025, 19:17
Если вынести машинно зависимый код (от LOUT: и до RET) из pt3ini.asm в pt3.asm то портирование на другие платформы будет проще :)
По-хорошему для равномерности воспроизведения надо переставить ROUT в начало, чтобы он выдавал в порты посчитанные в прошлый кадр значения, а уже потом "рендерить" следующую порцию.
Если будет еще версия, то вынесу ROUT из pt3.asm и переставлю в начало.
- - - Добавлено - - -
Еще не откорректировал одну строку комментария.
Здесь поправил:
;START+13 pointer to current position value in PT3 module;
а здесь нет
;After INIT (START+11) points to Postion0-1 (optimization)
Понятно, что и там и там должно быть +13.
- - - Добавлено - - -
Добавил в первый пост (https://zx-pk.ru/threads/36272-pt3-pleer-dlya-vektora-06ts.html?p=1216043&viewfull=1#post1216043) R8+. Там поправлен комментарий, но главное - разделены "рендер" и собственно вывод звука (ROUT). Надеюсь из прилагаемого примера понятно, как пользоваться. На всякий случай R8 пока тоже оставил.
CityAceE
08.07.2025, 22:51
ivagor, а мелодии TurboSound можно проиграть как-то этим проигрывателем?
Проще всего откомпилировать плеер 2 раза в раздельные области памяти и вызывать по очереди.
Проще всего откомпилировать плеер 2 раза в раздельные области памяти и вызывать по очереди.
Хорус 5мс опасность!
"Вот вы смеетесь, а ..."
Про хорус не буду, т.к. если говорим про TS, то там вряд ли каналы дублируются и будет просто задержка.
А вобще (не обязательно про TS) чем медленнее проц, тем больше болтанка (если не разнести рендер и вывод). На векторе максимальный разброс до примерно 9000 тактов, т.е. 3 мс. В принципе это не так уж много, с другой стороны это 15% от 20 мс. А есть ведь компы с 8080 раза в полтора медленнее вектора.
С R8+ даже с TS можно сделать задержку между воспроизведением групп каналов в районе 1100 тактов, т.е. 0.36 мс, чем можно пренебречь. С TS скорее проблема в быстродействии, на векторе плееры под 2xYM могут в пике занимать до половины кадра, пригодность для игр и дем еще меньше, чем у одинарного.
marinovsoft
09.07.2025, 12:42
Вариант PT3R8plus_8080 - без использования прерываний?
С прерываниями, там в основном цикле
ei
hlt
marinovsoft
09.07.2025, 14:00
Логику работы понял, хитрО.
Может это очевидно и не стоило писать, но возможно кому-нибудь будет полезно. Пара слов про Turbo Sound.
Попробовал, с помощью этого плеера можно играть модули условно называемые TS. У них или расширение TS или PT3 и в конце файла сигнатура TS. Они состоят из двух склеенных PT3 и для них можно сделать как здесь (https://zx-pk.ru/threads/36272-pt3-pleer-dlya-vektora-06ts.html?p=1216123&viewfull=1#post1216123) написал. Пока вижу, что таких модулей подавляющее большинство. Ну и двухфайловые варианты тоже подойдут, просто я их буквально один пока видел.
Модули PT3, у которых по смещению +98 не 20h, а 30h не подойдут, под них надо переделывать, чтобы по номерам паттернов раскидывать на первый или второй YM.
electroscat
10.07.2025, 10:29
Доброго времени ! А есть ли версия с поддержкой двух чипов AY? Готовлю эмульна двух Atmega8 - turbosound, есть ли вариант для двух чипов, потестировать эмуль ?
marinovsoft
10.07.2025, 10:43
https://zx-pk.ru/threads/36272-pt3-pleer-dlya-vektora-06ts.html?p=1216119&viewfull=1#post1216119
electroscat
10.07.2025, 12:01
С помощью прилагаемого батника можно собирать тестовые romы с этим плеером
pt3test.bat имя_модуля.pt3
Для этого еще должны быть доступны TASM.EXE и TASM85.TAB
У меня почему то не собирается ROM, copy говорит что все скопировано, но файла ROM нет, так и остается obj.
- - - Добавлено - - -
Проще всего откомпилировать плеер 2 раза в раздельные области памяти и вызывать по очереди.
А как сделано в спековском оригинале ? Тоже два плеера ? Нужно поинтересоваться у УКНЦшников, недавно перенесли на УКНЦ такой плеер, работает с тремя чипами.
- - - Добавлено - - -
Шитата: "У меня не два плеера работает. А один, но блоки параметров чипа размножаются конечно на каждый чип" - от программера, портировавшего плеер на УКНЦ.
"Короче есть некий массив переменных где разного вида величины текущие (позиция, текущее портаменто например итд там их кст ВАГОН). Этот массив для каждого чипа. Ну и грубо говоря вызывается процедура play_current_tick(адрес массиваN). А сам именно код в процедуре он один и тот-же, его размножать не надо".
- - - Добавлено - - -
Вероятно copy не отработал, хотя пишет что все ОК. Переименовал obj в COM, попробовал под эмулем запустить, под РДС на треках разнообразное шипение с затуханием и какими то изменениями, под T72 просто тишина, ну редкий выстрел из шипения может произойти, так - черный экран.. В общем, не понимаю пока в чем проблема...
Скорее COPY не правильно работает.
Сообщает что :
https://i.ibb.co/MDqpwpH1/COMPIL.jpg (https://ibb.co/MDqpwpH1)
И после этого никакого ROM нет в папке. Только OBJ. Что может быть ?
- - - Добавлено - - -
При этом, я предположил что файл остается с расширением OBJ, переименовал его, и увы, не работает... PT3 файлы взял из тех которые на УКНЦ и Спеке работают точно.
electroscat, на скриншоте не вижу, с каким модулем pt3 идет сборка. Если без модуля, то конечно ничего осмысленного играть не будет.
Про Turbo Sound к сожалению добавить мне нечего.
electroscat
10.07.2025, 12:10
Подскажите, как заставить это работать ? ))))
- - - Добавлено - - -
electroscat, на скриншоте не вижу, с каким модулем pt3 идет сборка. Если без модуля, то конечно ничего осмысленного играть не будет.
А где его взять ? Вот все что в архиве было, тобавил туда TASM и TASM85.TAB и откомпилил, вашим же батником...
Подскажите, как заставить это работать ? ))))
Просто передать имя файла в батник. Посмотри внутрь, там написано
copy /b pt3ini.obj+%1 pt3test.rom
Это значит что надо первым аргументом батничку передать .pt3 файл
pt3test.bat muzon.pt3
electroscat
10.07.2025, 12:27
Понял, ему надо после батника еще имя PT3 добавлять, чтоб он его приделывал к рому... Воно че..
- - - Добавлено - - -
Посмотри внутрь,
Да, спасибо, увидел.
- - - Добавлено - - -
Да, так работает... Надо разбираться с кодом, круто таки написать плеер под 2 чипа минимум.. Ибо аппаратная часть на подходе, программная увы, только теоретически.
Но звучит отлично, нужно отдать должное тем кто причастен, спасибо !!!
Цитата из первого сообщения
С помощью прилагаемого батника можно собирать тестовые romы с этим плеером
pt3test.bat имя_модуля.pt3
Для этого еще должны быть доступны TASM.EXE и TASM85.TAB
electroscat
10.07.2025, 13:39
Есть ошибки в кодировании. Пара треков как минимум звучит не верно, в одной треск по низам появляется, слушал на эмуле EMU80, и на реале, на реале треска меньше но есть. А во втором треке есть даже просто бипы в месте где из нет ни на спеке ни на УКНЦ. Короче, там еще придется позаниматься. Если инересно, могу конкретные пару треков кинуть.
- - - Добавлено - - -
Для информации. на УКНЦ тож после переноса была ошибка ее искали пару месяцев, но таки нашли, там шас вообще отлично все звучит без лишнего.
82465
На треках DDP36 и 1KM6 прям хорошо слышно. на DEV60 все ок.
- - - Добавлено - - -
И там же "оригиналы" pt3, можно послушать как они на спеке или где то еще звучат.
marinovsoft
10.07.2025, 13:42
Пара треков как минимум звучит не верно, в одной треск по низам появляется, слушал на эмуле EMU80, и на реале, на реале треска меньше но есть. А во втором треке есть даже просто бипы в месте где из нет ни на спеке ни на УКНЦ.
Вот, кстати, непаханное поле, нужно делать какую-то автоматизацию тестирования, типа собрал новую версию, запустил эмуль, сделал из него дамп регистров, сравнил дамп с эталоном. Но мне кажется, такое эмуляторы не умеют. И так на 100500 треках.
electroscat
10.07.2025, 13:54
Я, в целом, могу ошибаться на счет ошибки. Но на первый взгляд мне показалось что звучит с лишними призвуками, Нужно будет переслушать еще раз как это на спеке и УКНЦ звучит.
- - - Добавлено - - -
Обязательно переслушаю как звучта все это на отлаженных плеерах, но уже наверное не сегодня...
Вот, кстати, непаханное поле, нужно делать какую-то автоматизацию тестирования, типа собрал новую версию, запустил эмуль, сделал из него дамп регистров, сравнил дамп с эталоном. Но мне кажется, такое эмуляторы не умеют. И так на 100500 треках.
v06x не умеет, но дописать выдачу дампа ради хорошего дела можно. Это имеет смысл, если есть способ получения эталона.
electroscat, спасибо за обнаружение ошибок! Откатил до R7, там нормально.
marinovsoft
10.07.2025, 15:24
Сделал дампы вручную на VV_715. Первый - при перетаскивании COM-файла в окно эмулятора, второй - при перетаскивании PT3 файла. Есть отличие.
- - - Добавлено - - -
Только х.з. в чем проигрывать эти дампы :(
Сделал запись дампов регистров на 7 версии, архив во вложении обновил, тоже отличается.
В общем, по-хорошему нужна доработка эмулятора, чтобы в командной строке можно было передать в какой файл писать дамп регистров, указывать адрес, при выполнении инструкции по которому начинать записывать дампы и длительность в минутах сколько собственно это делать.
marinovsoft, спасибо! В R7+ исправил ошибку.
marinovsoft
10.07.2025, 16:36
Нашел, как можно проигрывать ayr-дампы, их нужно преобразовать в yrg-дампы (сделать из 14 байт 16, забив последние два нулям и обрезать 14-байтный заголовок). А yrg-дампы можно проиграть в AVR-AY Player (https://www.avray.ru/ru/avr-ay-player/)
Пока мысли далеко не убежали пересадил правки в самую новую версию.
R9 на 39 байт короче R8+ и средняя скорость возросла примерно до 8400 тактов/кадр. Ну и обнаруженные ошибки исправлены, возможно внесены новые.
Переименовал pt3ini.asm в pt3loop.asm и добавил pt3once.asm. Теперь в комплекте примеры и зацикленного и однократного воспроизведения.
R7+ на всякий случай тоже оставил.
CityAceE
10.07.2025, 23:02
R9 на 39 байт короче R8+
Жду, когда ivagor, наконец, остановится, :) чтобы перекинуть проигрыватель в понимаемый мной sjasmplus
Что лежало на поверхности я в основном оптимизировал, если и осталось, то немного. Дальше требуется уже более серьезная переработка, которую я не планирую. Разве что возникнет какая-то очень интересная для меня задача (в рамках разумного) или еще ошибки всплывут.
Про тестирование скорости чуть подробнее. Тестировал 7 модулей и выбрал из них самый "медленный" (ну или сложный): nq - Info Guide 14 oldschool (2024).pt3
Средние цифры, которые привожу, именно для него. Для других меньше, для самого "быстрого" аж на 2300 (т.е. в R9 он в среднем примерно 6100 тактов/кадр).
Не утверждаю, что это самый сложный pt3, но считаю, что это приемлемая оценка среднего сверху, пока не нашел более сложный/медленный.
marinovsoft
11.07.2025, 07:07
А насколько медленней адаптация для i8080, запущенная на i8080, медленней оригинала на Z80 ?
Думаю лучше сравнить R9_8080 и оригинальный вариант z80 без векторовского торможения, и для корвета со специалистом так полезнее.
R9_8080 - в среднем примерно 6700 тактов/кадр
оригинал z80 - в среднем примерно 5200 тактов/кадр
Т.е. R9 примерно на 29% медленнее.
И еще один релиз будет, надо переделать одноразовый вариант в .com, чтобы из досов запускать с возвратом. Может попутно несколько байт скину.
CodeMaster
11.07.2025, 11:58
Жду, когда ivagor, наконец, остановится
Нет предела совершенству. У ivagor, так, точно. У него ограничения только по времени, а так бы он всё сократил до 16 (ладно, до 256-ти) байтов. ;-)
R10 на 77 байт короче R9, средняя скорость примерно 8200 тактов/кадр.
pt3once теперь не трогает кваз, не меняет стек и обработчик прерываний и компилируется в .com. Подходит для запуска из дос, одноразового проигрывания и возврата в дос.
Это или финальный релиз или что-то очень на него похожее.
electroscat
12.07.2025, 19:47
R10 ...... Это или финальный релиз или что-то очень на него похожее.
Может все же сделаете вариант для двух AY ? Я как только платы получу, соберу девайс, проверю работу одного чипа, проверю на УКНЦ работу двух чипов, и могу вам выслать на эксперименты, его просто вместо AY в сокет нужно вставить, и он готов. Может займетесь ? Не раньше чем через месяц будет девайс к сожалению... Но будет )
- - - Добавлено - - -
Просто у вас то быстрее получится, да и вы уже знаете как это все там работает. А мне с нуля разбираться, эт прям гораздо побольше времени выйдет.
CityAceE писал, что Pyk планирует добавить поддержку Turbo Sound в эмуляцию специалиста. Если можно будет включить и в конфиге вектора вектора, то я соберу соответствующий вариант плеера.
electroscat
12.07.2025, 20:16
Кстати, в 10 версии есть неточности в частоте воспроизведения, не всегда но бывает. 9 версия на данный момент наиболее точно передает звук. На треке 1KM6 слышно прям заметно. Причем и на реале и на эмуле.
electroscat, спасибо! Исправил в R10+, +1 байт относительно R10. Все, больше никаких оптимизаций, только исправление ошибок, если будут.
CityAceE писал, что Pyk планирует добавить поддержку Turbo Sound в эмуляцию специалиста. Если можно будет включить и в конфиге вектора вектора, то я соберу соответствующий вариант плеера.
Да, вчера допилил для Специалиста, добавлю и в Вектор.
electroscat
15.07.2025, 17:31
Исправил в R10+, +1 байт относительно R10. Все, больше никаких оптимизаций, только исправление ошибок, если будут.
Спасибо огромное! 10+ звучит отлично, все как на отлаженных платформах!
Если можно будет включить и в конфиге вектора вектора, то я соберу соответствующий вариант плеера.
Добавил в эмулятор. Войдет в следующий релиз, а пока сделал внеочередную сборку текущего состояния: сборка с Turbo Sound (https:///emu80.org/v4beta/Emu80qt_40532_test.7z)
Включается в конфигурации платформы (Alt-F8), по умолчанию выключен.
Бюджетное проигрывание ТрубоЗвука, поддерживаются только "склеенные" модули, модули pt3.7+ не поддерживаются.
pt3ts имя_модуля.pt3 (или имя_модуля.ts)
Tasm не нужен, используются только бинарники.
Сгенерирует зацикленный pt3loop.rom для загрузчика или доса и одноразовый pt3once.com для доса.
electroscat
17.07.2025, 14:59
Бюджетное проигрывание ТрубоЗвука, поддерживаются только "склеенные" модули, модули pt3.7+ не поддерживаются.
pt3ts имя_модуля.pt3 (или имя_модуля.ts)
Я не знаю, если честно, как отличать "склеенные модули от pt3.7, по этому накомпилил 3 дискеты первых попавшихся треков PT3. В итоге, ну трески какие то, шумновато, чего то не хватает в звуке, все вроде как сегментированно. Может это не такие треки... Но как определить те или не те я не знаю )) Тут можно послушать результат. Послушал и на эмуле с поддержкой турбосаунда, и на реальном компе с одним чипом, результат одинаковый. Как то не очень чисто, постоянный фон чтоли.
Образы полученные прилагаю. Но не на долго, удалю через какое то время с обменника, зачем этот глючь в эфире ))
https://disk.yandex.ru/d/OZxRph2FZeGB1A
Эти образы плагин для total commander не понимает и посмотреть что там внутри я не могу.
То, что я сам пробовал в emu80, звучало без треска и фона, насчет сегментированно - не знаю, о чем речь. К сожалению у меня нет идей, что может быть не так. Вероятно задача проигрывания turbo sound остается энтузиастам, которые например портанут PTSPlay.asm.
electroscat
17.07.2025, 15:31
Эти образы плагин для total commander не понимает и посмотреть что там внутри я не могу.
плагином для фара открывается норм. Я в ту же папку закину непосредственно треков без образов сейчас, секунду..
То, что я сам пробовал в emu80, звучало без треска и фона, насчет сегментированно - не знаю, о чем речь. К сожалению у меня нет идей, что может быть не так. Вероятно задача проигрывания turbo sound остается энтузиастам, которые например портанут PTSPlay.asm.
Много вы знаете энтузиастов, которые на таком уровне асмом 8080 владеют ?
- - - Добавлено - - -
Все что на первой дискете выложил туда же https://disk.yandex.ru/d/OZxRph2FZeGB1A
У меня появилась идея. Если запускать в emu80 при выключенном TS, то будет звучать и с треском и странно и т.п. Вариант для TS делал очень быстро и там нет детекта наличия TS, предполагается, что он точно есть.
electroscat
17.07.2025, 15:51
Если запускать в emu80 при выключенном TS, то будет звучать и с треском и странно и т.п.
ТS в конфиге включен :(
Есть еще один момент, но он скорее забавный, чем критический. Я второпях перепутал местами YMы и вместо 1го пишу во второй и наоборот. Судя по схеме (http://www.nedopc.com/TURBOSOUND/ts_c_eng.pdf) микширование у них идентичное и разницы не должно быть.
- - - Добавлено - - -
ALOx - примеры модулей неподдерживаемого формата. Они успешно детектируются и .com выходит в дос, а .rom просто молчит (ему некуда выходить).
По-моему, Вектор просто не успевает проигрывать два потока, и временами пропускаются прерывания. По крайней мере, увеличение тактовой частоты в конфиге эмулятора вроде бы улучшает звук и несколько увеличивает скорость воспроизведения.
В каких модулях вектор не успевает?
В каких модулях вектор не успевает?
Уже не воспроизвел :( Послушал с секундомером - все одинаково. Наверное, показалось ;(
По моим оценкам пиковые максимумы плеера в районе 16000 (можно для перестраховки еще пару тысяч накинуть) тактов, т.е. вектора с запасом хватает не на 2, а на 3 вызова плеера за прерывание. В некоторых не самых тяжелых случаях хватило бы и на 4, но вот тут уже заикания возможны.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot