PDA

Просмотр полной версии : PT3 плеер для Вектора-06Ц



ivagor
06.07.2025, 12:19
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

svofski
06.07.2025, 13:10
Я недоделал конвертацию и выглядит неряшливо. Поправил регистры регистров, теперь нормально https://gist.github.com/svofski/ca57ff62c53afa66421f6e437a352eb8 -- версия в шапке новее и лучшее и с регистрами красивыми.

ivagor
06.07.2025, 15:09
возможно более быстрый (пока это предположение, надо тестировать)
Не угадал, по результатам небольшого тестирования мой на 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% медленнее.
А вот это очень любопытно! Но мы разные версии адаптировали, скорее всего та, которую адаптировал я, в оригинале была быстрее.

ivagor
06.07.2025, 16:31
Разогнал, теперь мой вариант (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, которые в авторском коде и в адаптации хранятся в разных местах.

ivagor
06.07.2025, 18:28
Начал с 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

ivagor
08.07.2025, 12:11
Правильно ли я понял что этот плеер проигрывает только формат 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).

svofski
08.07.2025, 14:11
В прекрасм или в .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 это понятно, но почему несколько других мест покраснели я не понял -- это ошибки в прекрасме, надо будеть починить. Но поправил ручками чтоб работало.

ivagor
08.07.2025, 17:01
Поковырял плеер и не стал мариновать, если что-то сломал, то надеюсь коллективный разум быстрее обнаружит.
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 то портирование на другие платформы будет проще :)

ivagor
08.07.2025, 21:43
По-хорошему для равномерности воспроизведения надо переставить 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 можно проиграть как-то этим проигрывателем?

ivagor
09.07.2025, 06:32
Проще всего откомпилировать плеер 2 раза в раздельные области памяти и вызывать по очереди.

svofski
09.07.2025, 11:19
Проще всего откомпилировать плеер 2 раза в раздельные области памяти и вызывать по очереди.

Хорус 5мс опасность!

ivagor
09.07.2025, 12:20
"Вот вы смеетесь, а ..."
Про хорус не буду, т.к. если говорим про TS, то там вряд ли каналы дублируются и будет просто задержка.
А вобще (не обязательно про TS) чем медленнее проц, тем больше болтанка (если не разнести рендер и вывод). На векторе максимальный разброс до примерно 9000 тактов, т.е. 3 мс. В принципе это не так уж много, с другой стороны это 15% от 20 мс. А есть ведь компы с 8080 раза в полтора медленнее вектора.
С R8+ даже с TS можно сделать задержку между воспроизведением групп каналов в районе 1100 тактов, т.е. 0.36 мс, чем можно пренебречь. С TS скорее проблема в быстродействии, на векторе плееры под 2xYM могут в пике занимать до половины кадра, пригодность для игр и дем еще меньше, чем у одинарного.

marinovsoft
09.07.2025, 12:42
Вариант PT3R8plus_8080 - без использования прерываний?

ivagor
09.07.2025, 13:01
С прерываниями, там в основном цикле
ei
hlt

marinovsoft
09.07.2025, 14:00
Логику работы понял, хитрО.

ivagor
09.07.2025, 17:12
Может это очевидно и не стоило писать, но возможно кому-нибудь будет полезно. Пара слов про 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 файлы взял из тех которые на УКНЦ и Спеке работают точно.

ivagor
10.07.2025, 12:04
electroscat, на скриншоте не вижу, с каким модулем pt3 идет сборка. Если без модуля, то конечно ничего осмысленного играть не будет.
Про Turbo Sound к сожалению добавить мне нечего.

electroscat
10.07.2025, 12:10
Подскажите, как заставить это работать ? ))))

- - - Добавлено - - -


electroscat, на скриншоте не вижу, с каким модулем pt3 идет сборка. Если без модуля, то конечно ничего осмысленного играть не будет.

А где его взять ? Вот все что в архиве было, тобавил туда TASM и TASM85.TAB и откомпилил, вашим же батником...

svofski
10.07.2025, 12:14
Подскажите, как заставить это работать ? ))))

Просто передать имя файла в батник. Посмотри внутрь, там написано

copy /b pt3ini.obj+%1 pt3test.rom

Это значит что надо первым аргументом батничку передать .pt3 файл

pt3test.bat muzon.pt3

electroscat
10.07.2025, 12:27
Понял, ему надо после батника еще имя PT3 добавлять, чтоб он его приделывал к рому... Воно че..

- - - Добавлено - - -


Посмотри внутрь,

Да, спасибо, увидел.

- - - Добавлено - - -

Да, так работает... Надо разбираться с кодом, круто таки написать плеер под 2 чипа минимум.. Ибо аппаратная часть на подходе, программная увы, только теоретически.
Но звучит отлично, нужно отдать должное тем кто причастен, спасибо !!!

ivagor
10.07.2025, 13:01
Цитата из первого сообщения

С помощью прилагаемого батника можно собирать тестовые 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
Я, в целом, могу ошибаться на счет ошибки. Но на первый взгляд мне показалось что звучит с лишними призвуками, Нужно будет переслушать еще раз как это на спеке и УКНЦ звучит.

- - - Добавлено - - -

Обязательно переслушаю как звучта все это на отлаженных плеерах, но уже наверное не сегодня...

svofski
10.07.2025, 14:42
Вот, кстати, непаханное поле, нужно делать какую-то автоматизацию тестирования, типа собрал новую версию, запустил эмуль, сделал из него дамп регистров, сравнил дамп с эталоном. Но мне кажется, такое эмуляторы не умеют. И так на 100500 треках.

v06x не умеет, но дописать выдачу дампа ради хорошего дела можно. Это имеет смысл, если есть способ получения эталона.

ivagor
10.07.2025, 15:03
electroscat, спасибо за обнаружение ошибок! Откатил до R7, там нормально.

marinovsoft
10.07.2025, 15:24
Сделал дампы вручную на VV_715. Первый - при перетаскивании COM-файла в окно эмулятора, второй - при перетаскивании PT3 файла. Есть отличие.

- - - Добавлено - - -

Только х.з. в чем проигрывать эти дампы :(

Сделал запись дампов регистров на 7 версии, архив во вложении обновил, тоже отличается.

В общем, по-хорошему нужна доработка эмулятора, чтобы в командной строке можно было передать в какой файл писать дамп регистров, указывать адрес, при выполнении инструкции по которому начинать записывать дампы и длительность в минутах сколько собственно это делать.

ivagor
10.07.2025, 16:27
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/)

ivagor
10.07.2025, 17:59
Пока мысли далеко не убежали пересадил правки в самую новую версию.
R9 на 39 байт короче R8+ и средняя скорость возросла примерно до 8400 тактов/кадр. Ну и обнаруженные ошибки исправлены, возможно внесены новые.
Переименовал pt3ini.asm в pt3loop.asm и добавил pt3once.asm. Теперь в комплекте примеры и зацикленного и однократного воспроизведения.
R7+ на всякий случай тоже оставил.

CityAceE
10.07.2025, 23:02
R9 на 39 байт короче R8+
Жду, когда ivagor, наконец, остановится, :) чтобы перекинуть проигрыватель в понимаемый мной sjasmplus

ivagor
11.07.2025, 06:35
Что лежало на поверхности я в основном оптимизировал, если и осталось, то немного. Дальше требуется уже более серьезная переработка, которую я не планирую. Разве что возникнет какая-то очень интересная для меня задача (в рамках разумного) или еще ошибки всплывут.

Про тестирование скорости чуть подробнее. Тестировал 7 модулей и выбрал из них самый "медленный" (ну или сложный): nq - Info Guide 14 oldschool (2024).pt3
Средние цифры, которые привожу, именно для него. Для других меньше, для самого "быстрого" аж на 2300 (т.е. в R9 он в среднем примерно 6100 тактов/кадр).
Не утверждаю, что это самый сложный pt3, но считаю, что это приемлемая оценка среднего сверху, пока не нашел более сложный/медленный.

marinovsoft
11.07.2025, 07:07
А насколько медленней адаптация для i8080, запущенная на i8080, медленней оригинала на Z80 ?

ivagor
11.07.2025, 10:48
Думаю лучше сравнить R9_8080 и оригинальный вариант z80 без векторовского торможения, и для корвета со специалистом так полезнее.
R9_8080 - в среднем примерно 6700 тактов/кадр
оригинал z80 - в среднем примерно 5200 тактов/кадр
Т.е. R9 примерно на 29% медленнее.

И еще один релиз будет, надо переделать одноразовый вариант в .com, чтобы из досов запускать с возвратом. Может попутно несколько байт скину.

CodeMaster
11.07.2025, 11:58
Жду, когда ivagor, наконец, остановится
Нет предела совершенству. У ivagor, так, точно. У него ограничения только по времени, а так бы он всё сократил до 16 (ладно, до 256-ти) байтов. ;-)

ivagor
12.07.2025, 10:26
R10 на 77 байт короче R9, средняя скорость примерно 8200 тактов/кадр.
pt3once теперь не трогает кваз, не меняет стек и обработчик прерываний и компилируется в .com. Подходит для запуска из дос, одноразового проигрывания и возврата в дос.
Это или финальный релиз или что-то очень на него похожее.

electroscat
12.07.2025, 19:47
R10 ...... Это или финальный релиз или что-то очень на него похожее.

Может все же сделаете вариант для двух AY ? Я как только платы получу, соберу девайс, проверю работу одного чипа, проверю на УКНЦ работу двух чипов, и могу вам выслать на эксперименты, его просто вместо AY в сокет нужно вставить, и он готов. Может займетесь ? Не раньше чем через месяц будет девайс к сожалению... Но будет )

- - - Добавлено - - -

Просто у вас то быстрее получится, да и вы уже знаете как это все там работает. А мне с нуля разбираться, эт прям гораздо побольше времени выйдет.

ivagor
12.07.2025, 20:03
CityAceE писал, что Pyk планирует добавить поддержку Turbo Sound в эмуляцию специалиста. Если можно будет включить и в конфиге вектора вектора, то я соберу соответствующий вариант плеера.

electroscat
12.07.2025, 20:16
Кстати, в 10 версии есть неточности в частоте воспроизведения, не всегда но бывает. 9 версия на данный момент наиболее точно передает звук. На треке 1KM6 слышно прям заметно. Причем и на реале и на эмуле.

ivagor
12.07.2025, 22:19
electroscat, спасибо! Исправил в R10+, +1 байт относительно R10. Все, больше никаких оптимизаций, только исправление ошибок, если будут.

Pyk
13.07.2025, 23:46
CityAceE писал, что Pyk планирует добавить поддержку Turbo Sound в эмуляцию специалиста. Если можно будет включить и в конфиге вектора вектора, то я соберу соответствующий вариант плеера.
Да, вчера допилил для Специалиста, добавлю и в Вектор.

electroscat
15.07.2025, 17:31
Исправил в R10+, +1 байт относительно R10. Все, больше никаких оптимизаций, только исправление ошибок, если будут.

Спасибо огромное! 10+ звучит отлично, все как на отлаженных платформах!

Pyk
16.07.2025, 01:32
Если можно будет включить и в конфиге вектора вектора, то я соберу соответствующий вариант плеера.
Добавил в эмулятор. Войдет в следующий релиз, а пока сделал внеочередную сборку текущего состояния: сборка с Turbo Sound (https:///emu80.org/v4beta/Emu80qt_40532_test.7z)
Включается в конфигурации платформы (Alt-F8), по умолчанию выключен.

ivagor
16.07.2025, 07:14
Бюджетное проигрывание ТрубоЗвука, поддерживаются только "склеенные" модули, модули 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

ivagor
17.07.2025, 15:10
Эти образы плагин для 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

ivagor
17.07.2025, 15:33
У меня появилась идея. Если запускать в emu80 при выключенном TS, то будет звучать и с треском и странно и т.п. Вариант для TS делал очень быстро и там нет детекта наличия TS, предполагается, что он точно есть.

electroscat
17.07.2025, 15:51
Если запускать в emu80 при выключенном TS, то будет звучать и с треском и странно и т.п.

ТS в конфиге включен :(

ivagor
17.07.2025, 18:02
Есть еще один момент, но он скорее забавный, чем критический. Я второпях перепутал местами YMы и вместо 1го пишу во второй и наоборот. Судя по схеме (http://www.nedopc.com/TURBOSOUND/ts_c_eng.pdf) микширование у них идентичное и разницы не должно быть.

- - - Добавлено - - -

ALOx - примеры модулей неподдерживаемого формата. Они успешно детектируются и .com выходит в дос, а .rom просто молчит (ему некуда выходить).

Pyk
18.07.2025, 01:38
По-моему, Вектор просто не успевает проигрывать два потока, и временами пропускаются прерывания. По крайней мере, увеличение тактовой частоты в конфиге эмулятора вроде бы улучшает звук и несколько увеличивает скорость воспроизведения.

ivagor
18.07.2025, 06:18
В каких модулях вектор не успевает?

Pyk
18.07.2025, 22:01
В каких модулях вектор не успевает?
Уже не воспроизвел :( Послушал с секундомером - все одинаково. Наверное, показалось ;(

ivagor
19.07.2025, 06:46
По моим оценкам пиковые максимумы плеера в районе 16000 (можно для перестраховки еще пару тысяч накинуть) тактов, т.е. вектора с запасом хватает не на 2, а на 3 вызова плеера за прерывание. В некоторых не самых тяжелых случаях хватило бы и на 4, но вот тут уже заикания возможны.