PDA

Просмотр полной версии : Биперная музыка на Векторе-06Ц



ivagor
23.09.2017, 08:47
В 2012 году адаптировал Z80->i8080 проигрыватель MusicStudio (взял из Beepola) со спека и (на львовском форуме) выкладывал версии для Львова ПК-01. Несмотря на большие усилия по оптимизации не удалось получить приемлемый результат для Львова. А для вектора почти удовлетворительно.
Лучше звучит в VV при включенном (насколько помню так по умолчанию) LF Filter

ivagor
27.09.2017, 07:43
Для тех кому нужно покачественней - вариант использующий covox как двухканальный бипер. Разница слышна невооруженным ухом.

ivagor
01.10.2017, 13:39
На реалах covoxов маловато, зато у многих есть AY/YM (Sound Tracker). Вот и вариант Music Studio для "двухканального бипера на AY" (да, сомнений уже нет, я извращенец).

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

Отмечу один момент. Вариант для AY/YM при более внимательном подходе оказывается лучше походит для AY. В эмуляторах нет проблем - и в emu и в VV (по умолчанию там выбран AY) звучит нормально (хотя и тихо). Но если выбрать YM в VV, то звук будет похуже. На реалах, насколько я знаю, преобладают именно YM. В проигрывателе на счету каждый такт и каждый регистр, малой кровью улучшить качество для YM не получится. Но может что-нибудь придумаю.

ivagor
26.01.2019, 20:48
Взял и совершенно бездумно и механически адаптировал на вектор проигрыватель модулей Music Box (который Wham! The Music Box (http://www.worldofspectrum.org/infoseekid.cgi?id=0008965)) с использованием таймера вместо бипера.

Авторство проигрывателя из исходника:
; * The Music Box Player Engine
; * Based on code written by Mark Alexander for the utility, The Music Box.
; * Modified by Chris Cowley

Музыкальные модули:
amelie - L'autre valse d'Amelie / irrlicht project (orig. by Yann Tiersen)
arpchaos - arp chaos / irrlicht project
cauldr2 - Cauldron2 / ?(Richard Leinfellner, Steve Brown, Richard Joseph)
hotm - Heavy On The Magick / ?(Roy Carter, Greg Follis)
ithotmk - In the Hall of the Mountain King / ?(Matthew Smith) (orig. by Edvard Hagerup Grieg)

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

goodboy
26.01.2019, 20:52
на ZX в редакторе есть пяток мелодий.
ну и может десяток наберётся в играх

ivagor
26.01.2019, 21:26
Добавил авторов для архива MusicBox1

svofski
27.01.2019, 00:05
О, я чего-то про эту ветку забыл. Заслушиваюсь музоном из MusicStudio_V06C.zip через v06x с рациональным полифазным. Мммм, повидло.

ivagor
27.01.2019, 09:26
На тот момент v06x не было, а в нем да, бипер звучит получше.

Pyk
27.01.2019, 16:25
Да, биперная музыка на v06x звучит супер! Полифазный фильтр рулит :)
svofski, кстати, есть какие-нибудь мысли насчет фильтрации AY?

svofski
27.01.2019, 16:40
Pyk, а надо? У меня не возникало желания дополнительно его фильтровать, потому что на известных мне примерах у него и так вроде хорошо. ВИ53 меня задел за живое свистом в ШИМ-музыке ivagor-а. Если есть аналогичные примеры с AY, где реал звучит хорошо, а в эмуляторе соло на альте, я задумаюсь.

Pyk
27.01.2019, 17:40
svofski, не уверен, но...

Запусти driller.rom в v06x. Вместо тишины в промежутках между звуками там слышен довольно громкий свист.
AY там программируется на период 1 (по крайней мере, в версии для ПК8000 так, думаю, что на Векторе аналогично), что дает ультразвук частотой кажется в 200 с чем-то кГц.
Наличие громкого свиста вероятно свидетельствует о неэффективности фильтра в том случае, если на его вход поступает уже искаженный сигнал (насколько я могу судить по логике работы AYWrapper.step2()).
Можно, конечно, такие крайние случаи обработать в эмуляторе отдельно. Я у себя так и сделал, но если эту проверку убрать, то даже с моей простейшей фильтрацией посторонний свист получается едва слышимым. Сложно сказать, что там происходит на самом деле, но этот громкий звук заставляет задуматься о том, нет ли посторонних призвуков и при проигрывании обычной музыки, пусть и неразличимых не слух...

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

svofski
27.01.2019, 22:23
Pyk, хороший пример. Собственно я не добавлял фильтрацию из-за того, что хорошего примера не было.

Можно попробовать вот так в sound.cpp:



- soundf = this->resampler.sample(soundf * 0.2f);
+ soundf = this->resampler.sample((ay + soundf) * 0.2f);

...

- float sound = soundf + ay * 0.2;// + covox/256.0;
+ float sound = soundf;


В Driller-е свист ушел, обычные AY-музоны вроде хорошо звучат, но я с AY знаком шапочно. Пробная сборка http://sensi.org/~svo/b/v06x.exe

Pyk
27.01.2019, 22:47
svofski, cейчас только увидел, что AY вообще на фильтр не поступал, так что я был не совсем прав насчет причин свиста.
Думаю, что стало вполне приемлемо - свист сейчас едва слышен, хотя и не ушел совсем.
Наверное все-таки свою роль играет некратность частоты AY частоте процессора...

Кстати, какова частота AY на Векторе - 1.75 или 1,77? В разных эмуляторах по-разному...

svofski
27.01.2019, 23:21
Кстати, какова частота AY на Векторе - 1.75 или 1,77? В разных эмуляторах по-разному...
Если я правильно понимаю, что сам когда-то написал :) то 12*14/96 = 1.75

ivagor
13.02.2019, 20:41
Предлагаю вашему вниманию адаптацию Music System (https://zx-pk.ru/threads/30080-muzyka-okeana(-240).html?p=998652&viewfull=1#post998652) для вектора. Дополнительные ссылки и 41 файл с примерами мелодий здесь (https://zx-pk.ru/threads/30104-muzykalnaya-sistema.html).
Адаптация Quick&Dirty, использует в качестве biosa эмулятор РК-Микроши (http://www.sensi.org/scalar/ware/548/). Подробнее про использование написал в readme.txt, обязательно почитайте, есть отличия от РКшного варианта!
Пара моментов не отраженных в readme.
Т.к. вектор не может использовать для звукоизвлечения специальные команды музыкального акселератора ei и di (они быстрые, не требуют задания параметров в регистрах, не влияют на флаги и регистры), то биперный векторовский вариант несколько уступает по скорости разогнанному РКшному (неразогнанный РКшный медленнее). Зато векторовский намного удобнее - нажатием УС можно прервать проигрывание мелодии, у варианта РК такой фичи нет.
Тем, кого не устроит биперный вариант предлагаю ковоксный. Он быстрее, громче, качественнее.

Теперь об ограничениях. Использовать эту систему с удобством на данный момент можно только в emu (желательно обновить до последней версии, но это не обязательно). От эмулятора нужна поддержка перехвата РКшных магнитофонных процедур, чтобы можно было грузить файлы .rk. В VV эту поддержку можно сравнительно просто добавить, а вот в v06x, как я понимаю, пока магнитофонного перехвата нет. Т.е. для VV и v06x придется переводить файлы .rk в wavы.

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

Заметил, что ковоксный вариант иногда кликает. В самом проигрывателе переполнения не происходит, но то, что я использовал полный диапазон от 0 до 255 вероятно при микшировании в эмуляторе иногда приводит к переполнению.

Upd 20.02.2019: Обновил биперную и таймерно-биперную версии, теперь они сравнялись по скорости и диапазону с ковоксной.

Upd 21.02.2019: Добавил точную трехканальную таймерную версию (это лучший вариант), убрал ковоксную.

ivagor
13.02.2019, 22:53
У вас нет ковокса? Это не проблема, он и не особо нужен! Используйте двухбитный таймерный ЦАП!
Заменил архив, добавил версию MSVecTD, которая собственно реализует описанную штуку. Она по качеству почти как ковоксная (но на реале, конечно, будет весьма тихой, если не подключить магнитофонный/звуковой выход вектора к усилителю, а слушать через пищалку), и чуть быстрее биперной. Однозначно рекомендую эту версию. Аналогично можно сделать для Апогея и ПК8002. Хотя для ПК8002 с его ЦАПом можно и ковоксный вариант.

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

В readme.txt поторопился и написал "двухбитный бипер" вместо "двухбитный ЦАП". Еще раз архив из за этой мелочи менять не хочу, но прошу учесть эту неточность.

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

У повышения качества звучания есть и оборотная сторона. Лучше слышна фальш, иногда становится очень похоже на Portsmouth Sinfonia. Также заметнее ограничения или ошибки аранжировок - замена высоких нот на более низкие, если они не влезают в воспроизводимый диапазон, возможно иногда ошибки набора.

svofski
14.02.2019, 17:27
Т.е. для VV и v06x придется переводить файлы .rk в wavы.
Да, наслаждение биперной музыкальной системой в v06x -- удовольствие не для слабых духом. Пришлось поправить и bin2wav и сам v06x (https://github.com/svofski/vector06sdl/releases/tag/exolonportc) (v06x не хотел играть вав, когда уже указан ром).

На всякий случай, если вдруг кто-то захочет повторить подвиг, вот склеенный wav с музыкальной системой и музыкой из Усавичей с длинными ракордами, чтобы можно было успеть хитрые команды.
http://sensi.org/~svo/b/msvec-choral.zip (всего 15кб, но распаковывается в wav 2мб)

Запуск:
v06x.exe --rom micro_rk.rom --wav long.wav

(Там стремглав жмем: )
<space> I <enter>
(Ждем, не засыпаем, как только появляется чексум, набираем)
G11F0 <enter>
(появляется приветствие музыкальной системы)
G <enter>
(ждем загрузки)
R
(испытываем катарсис)

То же самое должно быть применимо и к VV.

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

ivagor
14.02.2019, 18:34
Квест по запуску выполнил, качество бипера заценил - очень здорово звучит. Тебе надо было эмулятор спектрума делать, там много крутого бипера.

Ramiros
14.02.2019, 19:51
Чтоб В VV упростить квест, надо в файле cas.ini после строки "Эмулятор РК-86/Микроша" раскоментировать две следующие строчки и тогда будет работать перехватчик для .rk файлов.

ivagor
14.02.2019, 20:05
Ramiros, это хорошо, а доработать планируешь, чтобы убрать шероховатости (пищание в диалоге и несовпадение контрольной суммы)?

svofski
15.02.2019, 20:25
Предлагаю обладателям винды tool-assisted speedrun квеста по запуску биперной прелюдии BWV147 в v06x:
http://sensi.org/~svo/b/v06x-tas.zip
В архиве все, что нужно. Распаковываем, запускаем start.bat и ничего не трогаем. Можно трогать регулятор громкости, потому что уровень проигрывателя вавов сильно выше, чем проигрывателя прелюдий.

Внимательные слушатели увидят в этой демонстрации намек на новую интересную фичу в v06x ;)

ivagor
15.02.2019, 20:42
Круто, у b2ma есть фича по роботическому нажатию клавиш, но у тебя как-то чересчур наворочено. Наверно тут есть глубокий смысл, и если достаточно долго смотреть на usavich.chai, то он (смысл) станет понятен.

svofski
15.02.2019, 20:59
ivagor, смысл в том, что можно не только роботно нажимать на клавиши, а скриптовать все аспекты эмуляции. Например, ту же поддержку загрузки .rk не надо будет делать в самом эмуляторе. Или перехват каких-нибудь портов. Никогда не знаешь где пригодится.

Но пока я на пробу сделал только кнопконажимание и вавопроигрывание.

ivagor
15.02.2019, 21:12
Раскрой секрет, как ты быстро сделал интерпретатор скрипта? У тебя была заготовка или адаптировал под свои нужды общеизвестный (но не мне) опенсорсный?

svofski
15.02.2019, 21:19
ivagor, ты что, конечно я не делал его сам! Это чай-скрипт: http://chaiscript.com/

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

Ramiros
16.02.2019, 12:34
Ramiros, это хорошо, а доработать планируешь, чтобы убрать шероховатости (пищание в диалоге и несовпадение контрольной суммы)?
Да, надо будет попробовать ))

svofski
16.02.2019, 18:04
Протащил API отладчика и наскриптовал через него подгрузку файлов rk. Получилась крайне удобная система для биперного меломанства.

По ссылке полный комплект эмулятора + музыкальной системы + набор музона. Только раззиповать:
http://sensi.org/~svo/b/MusicSystemVectorV4-TAS.zip

Я настроил ассоциацию на Enter в FAR-е на .rk: ..\msvec.bat !.!, а можно просто запускать:
msvec.bat "Other Arrangements\ANTIRAS.rk"
или то же самое из подкаталога
..\msvec.bat ANTIRAS.rk


Всем приятного меломанства! (и, пользуясь случаем, хочу передать привет Portsmouth Sinfonia)

ivagor
16.02.2019, 18:29
"- Стоп, стоп! Вы что это, и конфеты за меня есть будете?
- Ага!"
После запуска руки потянулись что-то набрать, а оно все само. Для полного дожатия темы нужно, чтобы после окончания музыки эмулятор закрывался, открывался браузер, форум и робот печатал там свои впечатления - "Сойдет." или там "Отстой!".
Система тотального скриптования теоретически открывает широкие возможности. Например, b2m высказывал (в шутку, конечно) идею, чтобы при детекте набора в эмуляторе слова "ivagor" совершались бы какие-нибудь странные действия. Теперь для этого даже не надо портить эмулятор.
Если серьезно, то планируешь еще добавить загрузку разных форматов, хотя бы бейсиковских файлов?

svofski
16.02.2019, 19:01
ivagor, вот таким неожиданным образом пригодился отладчик, который сам по себе получился не самым удобным. Текущего API (я как раз на скорую руку записал то, что есть (https://github.com/svofski/vector06sdl/blob/master/README.md#available-api)) должно быть достаточно, чтобы поддержать Бейсиковую загрузку. Может быть ты хочешь попробовать сделать? Причем Бейсики же разные, можно для каждого делать перехватчики для каждого свой.

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

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

KTSerg
16.02.2019, 19:11
...
По ссылке полный комплект эмулятора + музыкальной системы + набор музона. Только раззиповать:
http://sensi.org/~svo/b/MusicSystemVectorV2-TAS.zip
...
А для какой ОСи собран v06x.exe ?

ivagor
16.02.2019, 19:11
Текущего API (я как раз на скорую руку записал то, что есть) должно быть достаточно, чтобы поддержать Бейсиковую загрузку. Может быть ты хочешь попробовать сделать?
Пока я не готов, думаю (пытаюсь думать) о другом.

svofski
16.02.2019, 19:22
А для какой ОСи собран v06x.exe ?
64-битная винда. А ты наверное хочешь win32?

KTSerg
16.02.2019, 19:30
64-битная винда. А ты наверное хочешь win32?
:v2_blush:

ivagor
17.02.2019, 17:27
Попробовал сделать двухканальный биперный движок с управлением скважностью, а потом (отдельно) с управлением громкостью. Причем каналы честные, таймерные. Управлять скважностью и громкостью получилось, но оба варианта страдают сильной вертолетностью, особенно там, где управление скважностью. Это не совсем то, что я хотел, выраженное стаккато не для всех мелодий подойдет. Но я решил выложить, может кто захочет показать класс и сделать лучше.
Музыки в примерах нет, только две ноты (до и ми) с меняющейся громкостью или скважностью. Пример с управлением громкостью лучше слушать в VV или v06x, в emu не то. Вариант с управлением скважностью нормально звучит в любом эмуляторе.

svofski
18.02.2019, 00:39
:v2_blush:

Сборка для win32, проверил в XPsp3 под виртуалбоксом. Нужен SSE, так что надеюсь, что все-таки у тебя не меньше пентиума 3 ;)
http://sensi.org/~svo/b/v06x-i686.zip

svofski
18.02.2019, 16:38
Музыки в примерах нет, только две ноты (до и ми) с меняющейся громкостью или скважностью.
По-моему очень здорово получилось. Два канала отлично подойдут для музыки из Арканоида. Подскажи как пользоваться твоим движком, а я может быть попробую забацать.

Meanwhile, думаю, что Коробейники на Океане тоже вполне в два канала влезут.

ivagor
18.02.2019, 16:50
Подскажи как пользоваться твоим движком, а я может быть попробую забацать.
Я думал, что несовершенство этих движков воспрепятствует их практическому применению, отложил их и даже не стал брать исходники на основной комп. В выходные выложу или лучше тебе пришлю, может у тебя будут идеи, как довести до ума.
На океан конкретно эти движки не пойдут, там два канала таймера в "режиме шима".

svofski
18.02.2019, 17:16
В выходные выложу или лучше тебе пришлю, может у тебя будут идеи, как довести до ума.
Хорошо, давай так. Я про ум не заикался, просто думал на скорую руку забацать чего попроще.

ivagor
18.02.2019, 17:42
Попробуй эксолоновский движок (https://zx-pk.ru/threads/11067-igra-quot-exolon-quot.html?p=996336&viewfull=1#post996336), может подойдет. Ноты там в Notes уже расставлены по октавам, самая низкая (255) - до-диез большой октавы. Чем выше, тем хуже точность, огрызок третьей октавы (17-12) совершенно ужасный.

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

Сама музыка тройками - нота первого канала, нота второго и длительность. 0 - признак окончания.

svofski
18.02.2019, 17:50
ivagor, я хотел именно в твоем с потрясными громкостями, чтобы было блямканье с затуханием.

ivagor
18.02.2019, 17:55
Ну тогда на выходных. И сразу скажу, что там все очень сурово, громкость1-нота1-громкость2-нота2-длительность. Т.е. эффекты типа затухания можно сделать только вручную. У скважного аналогично, только скважность вместо громкости.

svofski
18.02.2019, 18:27
Ок. Я наскриптую пока рыбу.

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

Это все байты? Громкость 0..255 - нота в каких пределах? - длительность в кадрах? Что предпочтительней, скважность заранее посчитать наверное проще?

ivagor
18.02.2019, 18:43
номера нот - везде байты
громкость - байт от 1 до 50
скважность - у меня там делается прерасчет, по таблице периодов формируются 16 таблиц скважности, коэффициент заполнения от 1/32 до 16/32 с шагом 1/32. В музыке указывается числитель коэффициента заполнения (байт от 1 до 16).
Длительность задаю одним байтом.

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


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

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

Малая и первая октавы - наверняка, большая и вторая - скорее всего, может не полностью.

svofski
18.02.2019, 18:47
Спасибо, пока этого достаточно. Все равно детали придется дорабатывать когда уже будет плеер.

svofski
18.02.2019, 21:02
Записал пока на скорую руку http://sensi.org/~svo/arkanoid/

ivagor
18.02.2019, 21:12
Записал пока на скорую руку
Ты на слух подбирал или копал исходники или еще как?

svofski
18.02.2019, 21:18
Ты на слух подбирал или копал исходники или еще как?
О, это трогательная история. Году в каком-то 80-последнем у товарища был Поиск и на нем не играл музон в Арканоиде. Я выдрал музон из версии игры, где он играл, и мы вбивали его в Бейсике в DATA как-то воскресным утром. Вбили, и он разумеется не зазвучал. Тут мы начали подозревать, что в Поиске этот орган не совсем совместим c писишкой ;)

Но зато в процессе этих экспериментов я выкопал оттуда ноты и научился играть их на пианино двумя руками. Вообще я не умею играть на пианино, особенно двумя руками, но эту мелодию я навсегда запомнил. Сейчас я по памяти вколотил просто в ABC.

ivagor
18.02.2019, 21:37
Интересно, спикерная музыка первого арканоида (https://www.youtube.com/watch?v=-UPxh7KJPHM) в другой тональности (ре минор), а вот во втором (https://www.youtube.com/watch?v=HeQcsvNPK8c) - соль минор, как у тебя. Похоже ты хотел скрыть, что играл во второй, а не в первый :) Или у них просто для спикера была другая тональность

KTSerg
18.02.2019, 21:41
Записал пока на скорую руку http://sensi.org/~svo/arkanoid/
Мне больше напомнило тему из сериала "Мир Дикого Запада" (про парк с роботами).
Понимаю, что музон не тот, но что-то......

ivagor
18.02.2019, 21:45
west world не смотрел (но конечно много слышал про него), поэтому у меня другая ассоциация - бас немного напомнил начало песни wrecking ball

svofski
18.02.2019, 21:57
Интересно, спикерная музыка первого арканоида (https://www.youtube.com/watch?v=-UPxh7KJPHM) в другой тональности (ре минор), а вот во втором (https://www.youtube.com/watch?v=HeQcsvNPK8c) - соль минор, как у тебя. Похоже ты хотел скрыть, что играл во второй, а не в первый :) Или у них просто для спикера была другая тональность

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

Вряд ли я сам тогда осилил бы транспонировать в другую тональность.

ivagor
18.02.2019, 22:10
Вот еще вариант (https://www.youtube.com/watch?v=v-az38oF444) первого, тут вроде опять спикер, но как минимум двухголосый (или даже и трехголосый?), но тут тоже ре.

tnt23
18.02.2019, 23:31
Meanwhile, думаю, что Коробейники на Океане тоже вполне в два канала влезут.

Реквестую "Из-за острова на стрежень" или "Раскинулось море широко"

svofski
19.02.2019, 01:02
ivagor, вот тот самый Арканоид https://youtu.be/4N8h2P_e5-g?t=504 - Это европейский релиз Imagine 1987 года. К сожалению он здесь не в v06x (пока еще) и качество звука ох.

Вот музоны из версии C64, которая насколько я понимаю той же фирмы Imagine. И тут по-моему соль-минор.


Вот немного про различия:
http://nerdlypleasures.blogspot.com/2015/11/arkanoid-and-arkanoid-again.html

К сожалению все интернеты заполонены неправильной с моей точки зрения версией Арканоида, причем о существовании правильной вообще почти ничего неизвестно. Тем не менее все-таки нашелся тот самый (https://www.old-games.ru/game/download/131.html). Он, как и ожидалось, вообще никакой тональности не имеет, вернее тональность регулируется клавишами +/- циклов в досбоксе.

ivagor
19.02.2019, 08:31
Тем не менее все-таки нашелся тот самый. Он, как и ожидалось, вообще никакой тональности не имеет, вернее тональность регулируется клавишами +/- циклов в досбоксе.
Теперь все понятно, надеюсь для тебя поиск той самой версии был не только напрягом, но и в некоторой степени сентиментальным удовольствием.
Насчет фактически биперной музыки в этой версии, то на мой взгляд ее ближайший "стабильный" аналог на спеке (https://www.youtube.com/watch?v=i_FlinBI6ck), там что-то в районе соль-диез.
А на C64 музыка другая (https://www.youtube.com/watch?v=JHtF4AoKAJs). Там получается две музычки, вторая (https://youtu.be/JHtF4AoKAJs?t=235) совсем забойная.

svofski
19.02.2019, 11:56
В твоем видео с C64 все хорошо, только там почему-то нету экрана, где вводишь имя в таблицу рекордов, в котором звучит эта тема. Вот, например: https://youtu.be/1yKnkAVho_I

ivagor
19.02.2019, 12:09
Сдаюсь, тут четкий соль. На других компах эта музычка играет в начале (может и в конце тоже), не услышав ее там не стал искать дальше.

svofski
19.02.2019, 12:23
Самый канон должен быть аркада, все игрушки на компах делались с нее https://youtu.be/Th-Z6QQ5AOQ?t=1914

ivagor
19.02.2019, 12:29
Fatality, в аркаде соль

ivagor
20.02.2019, 22:01
Почитал описание музыкальной системы и посчитал, насколько точно соответствуют официальному диапазону (до большой октавы - ре третьей октавы) векторовские версии (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=999068&viewfull=1#post999068). Неожиданно оказалось, что ковоксный вариант (MSVecCvx.rk) практически точно попал в требуемые рамки. Это я не специально, оно само так удачно получилось. Можно считать, что это версия с эталонным по диапазону и скорости звучанием. Таймерно-биперая (MSVecTD.rk) несколько ниже и медленнее, биперная (MSVec.rk) еще немного ниже и медленнее. Их можно немного разогнать, но ковоксную они не догонят.

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

Когда стал понятен ориентир, к которому надо стремиться, я подумал и оптимизировал биперную и таймерную версии до уровня ковоксной. Архив заменил (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=999068&viewfull=1#post999068). Т.е. теперь все векторовские версии соответствуют оригинальному диапазону Music System.

KTSerg
21.02.2019, 18:43
Т.к. для v06x уже всё настроено до нажатия одной кнопки :) то этот музон только в нём запускаю.
Громкость у MSVec.rk значительно ниже чем у MSVecTD.rk
А в MSVecCvx.rk совсем тишина, может чёт пропустил, и как-то настроить нужно...

ivagor
21.02.2019, 19:34
Достигнута вершина развития Music System на векторе - версия использующая три канала таймера как генераторы частот (MSVecTim), т.е. стандартный векторовский музыкальный режим. Точность нот этой версии недостижима для бипера с 8080 на 3 МГц. Теперь "Аллилуйя!" Генделя не вызывает физической боли при прослушивании, фуга ре минор и маленькая фуга мне тоже очень понравились. Для большинства примеров однозначно рекомендую эту версию, она и на реале будет лучше и во всех эмуляторах будет играть с максимальным качеством. Есть и оборотная сторона - теперь голоса слышны достаточно четко, и недостатки аранжировки, если они есть, тоже четко слышны. Пример - третья часть лунной сонаты, начало восходящего пассажа раньше терялось в каше, а теперь, к сожалению, его слышно.
Ковоксную версию убрал, т.к. у меня появилась идея, почему она кликает в эмуляторах, а исправить это с сохранением скорости проблематично.
Архив обновил (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=999068&viewfull=1#post999068).

Если вернуться к биперной версии, то после ее оптимизации стало возможно втиснуть 4 канала в основной цикл без изменения его периода. Но музыкальная система это не поддерживает и примеров таких нет.
У меня в итоге сложилось мнение, что для адаптаций классики и просто "обычной" музыки лучше 3 точных канала, чем 4 "почти точных". А вот для целевого сочинения специально для компа уже биперный движок имеет преимущества - бОльшее число голосов, специфический тембр (в биперной системе маленький коэффициент заполнения, а в таймерной 3х канальной - меандр).


А в MSVecCvx.rk совсем тишина, может чёт пропустил, и как-то настроить нужно...
В v06x ковокса, насколько я знаю нет. Но если бы он был, то, скорее всего, покликивал бы иногда. Малой кровью я это поправить не могу, да и смысла при наличии новой версии нет, поэтому ковоксную убрал.

svofski
21.02.2019, 21:02
У меня не было причин не включать Ковокс, кроме как отсутствие тестов для него. По идее достаточно просто раскомментировать там хвостик одной строчки, но это ж 8255, так что наверняка начнется.

svofski
23.02.2019, 03:07
Архив обновил.
Ну и я тогда тоже (заодно v06x с ковоксом) (http://sensi.org/~svo/b/MusicSystemVectorV4-TAS.zip).

Версия MSVecTim звучит очень круто.

ivagor
23.02.2019, 08:18
Если вернуться к биперной версии, то после ее оптимизации стало возможно втиснуть 4 канала в основной цикл без изменения его периода.
Самые последние достижения в оптимизации позволили бы втиснуть даже 5 каналов без изменения диапазона.

ivagor
23.02.2019, 12:25
Пример - третья часть лунной сонаты, начало восходящего пассажа раньше терялось в каше, а теперь, к сожалению, его слышно.
Оказалось, что в VV и v06x это место звучит не идеально, но приемлемо, т.е. таймерная версия и тут вполне подойдет. Ну и, конечно, она не фальшивит, что очень приятно.


заодно v06x с ковоксом
Послушал ковокс (wavы и спецверсию Music Studio, не путать с Music System) - все хорошо, но очень тихо. Может стоит добавить ковоксу громкости?
Насчет примеров для музыкальной системы - я переделал (https://zx-pk.ru/threads/30104-muzykalnaya-sistema.html?p=1000310&viewfull=1#post1000310) там два файла, желательно их заменить.

Ramiros
24.02.2019, 15:56
Ramiros, это хорошо, а доработать планируешь, чтобы убрать шероховатости (пищание в диалоге и несовпадение контрольной суммы)?

Доработал. вот: VV6.95 (https://cloud.mail.ru/public/F5Uu/JcAeRc9J2)

ivagor
24.02.2019, 16:08
Ramiros, контрольная сумма хорошо, а вот хака для пищания как-то не вполне, после закрытия диалога сначала громкость задавлена.

svofski
25.02.2019, 13:48
Музон из Арканоида для бипера.
[Ссылка (https://svofski.github.io/pretty-8080-assembler/?https://gist.githubusercontent.com/svofski/cc30930c1a5f3a3d9bc2c000eaaa46e8/raw/b6cfa4573b205fb1e145cbc37ae59a18a8380daf/arkmus.asm)] на сорец в прекрасм.

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


Послушал ковокс (wavы и спецверсию Music Studio, не путать с Music System) - все хорошо, но очень тихо. Может стоит добавить ковоксу громкости?

Дай, пожалуйста, ссылки на эти чудо-программы. Или пришли файлы. Ковокс должен быть не тише всего остального. Просто привычка такая, что на векторе динамический диапазон обычно где-то в районе 1 бита, а тут вдруг их 8.. Так что может быть стоит искусственно сделать Ковокс погромче, чтобы эту привычку не нарушать.

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

Вот как музыканты успокаиваются я вообще не понимаю. Сегодня с утра мне больше нравится, когда затухание второго голоса еще медленней, вот так


Release2: ; затухание ноты второго канала в два раза медленнее
mov a, d
ani 3
jnz Released

Ссылка, опять же в прекрасм: [дубль два (https://svofski.github.io/pretty-8080-assembler/?https://gist.githubusercontent.com/svofski/cc30930c1a5f3a3d9bc2c000eaaa46e8/raw/082bcd6d98e28b8d7eceb615b39faf1e8311a60c/arkmus.asm)]

ivagor
25.02.2019, 15:40
ссылки на эти чудо-программы
Ковоксная Music Studio (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=929502&viewfull=1#post929502)
WAVы c проигрывателями (https://zx-pk.ru/threads/11029-vektor-06ts-emulyatsiya-kr580vi53.html?p=888368&viewfull=1#post888368), там для разных устройств воспроизведения, у ковоксных cvx в имени.

svofski
25.02.2019, 16:15
Хм, мне не показалось, что как-то особенно тихо. То есть играет с той же громкостью, что AY. PWM играет чуть чуть погромче.
Может быть введу потом отдельно громкости для разных каналов звука.

Ramiros
25.02.2019, 21:03
Ramiros, контрольная сумма хорошо, а вот хака для пищания как-то не вполне, после закрытия диалога сначала громкость задавлена.

Допилил: VV_6.96 (https://cloud.mail.ru/public/4UFR/X9XycTGFM)

ivagor
02.03.2019, 11:37
Мне все же очень хотелось услышать, как звучала бы пятиканальная музыкальная система. И я на базе ее идей сделал пятиканальный биперный движок. Периоды нот взял прямо из музыкальной системы, основной цикл идеально подошел (ну или я специально так рассчитал).
Недостаток - нормально (и даже, не побоюсь этого слова, хорошо) звучит только в v06x.
Исходники прилагаются, может кто-нибудь захочет ввести какую-нибудь композицию или написать препроцессор (лучше кросс-препроцессор для ПК) по типу музыкальной системы, чтобы учитывал тональности и т.д.

Upd: V2 - чуть сократил и увеличил громкость

svofski
02.03.2019, 14:09
Богато звучит, но пьеса немного однообразная ;)

ivagor
02.03.2019, 15:51
Забудьте все, что вы знали о бипере на векторе.
Шестиканальный движок с независимым управлением громкостью каждого канала! И это при сохранении (отклонение на пару процентов, извините, если ваc это напрягает) диапазона, т.е. остались периоды от Music System! Да еще и в VV стало почти нормально звучать, но маленькие громкости адекватно отрабатываются только в v06x.
Исходник прилагается.


Богато звучит, но пьеса немного однообразная
Не могу с этим спорить. На векторе обычная история, что техническая сторона на уровне, а творческая - как получится.

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

Уточнение - в исходнике написал, что суммарная громкость должна быть <=89, а на самом деле чуть больше - суммарная громкость 6 каналов может быть до 90 включительно, что довольно удобно, т.к. 90/6=15.

svofski
02.03.2019, 17:21
техническая сторона на уровне, а творческая - как получится.
Это хорошо, что ты остаешься верен традициям. На всякий случай, удобная утилита http://www.fourmilab.ch/webtools/midicsv/

ivagor
02.03.2019, 20:54
За наводку на утилиту спасибо, но чтобы воспользоваться результатом ее работы надо еще свою утилиту писать. В лучшем случае это дело далекого будущего.

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

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

Сделал пятиканальный с увеличенной громкостью. Увеличение громкости не только хорошо само по себе, но и улучшило совместимость с эмуляторами - теперь даже в emu более-менее что-то слышно. Кроме того улучшил качество звука, теперь когда ничего нет - таймер полностью молчит (в 6 канальной версии на это нет времени). Вернул длительность основного цикла до полного соответствия Music System. Ну и раз каналов 5, то ту же максимальную допустимую общую громкость делим на 5, а не на 6, поэтому каждый канал не только в 3 раза громче из-за дополнительных каналов таймера, но ему можно и прописать бОльшую громкость (90/6=15, 90/5=18).
Все хорошо, только каналов 5, а не 6.

svofski
03.03.2019, 18:15
Чуть-чуть уменьшил дистанцию до будущего. Не шибко изящно выходит и боюсь, что без ручной работы хорошего мало получится. Но все же. Сорцы и "утилита" тут (https://gist.github.com/svofski/fe4daffd9a889c3ab84dc4bb22755c34).

ivagor
03.03.2019, 18:39
svofski, очень круто, большой респект!
Но на разном "неадаптированном" материале стали слышны недостатки движка.
Высокие ноты фальшивят, как и в Music System, тут ничего не поделаешь, можно только выбирать произведения, где их поменьше. В данном случае Пахельбель дает жару.
У Баха удивили трели, пока не смотрел, что получилось после конверсии, но надеюсь их можно несколько улучшить.
В песнопении своеобразно звучат моменты, когда вступает громкий голос, возможно дело в нелинейности шкалы громкостей.
Но в каждом примере есть моменты когда прямо - "ого, надо же!".

svofski
03.03.2019, 19:29
Трели в музыке из Соляриса как-то особо жестоко пострадали, Пока не было сил разбираться, но наверняка это что-то с noteoff. Не похоже, чтобы это была проблема движка, тут явно конверсия колченогая.

Стелла спленденс поначалу может быть кажется страшноватенькой, но на самом деле это мой любимый результат пока. Это единственная пьеса, про которую я, включив воображение, могу представить себе, что вот так примерно оно и могло бы быть. Еще по-моему это единственный пример, где 6 голосов звучат хотя бы иногда.

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

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

Мм, еще помню, что если музон заходит куда-то за $4000, тоже случается фейл. Не знаешь, почему?

Присылай еще мидишек, которые могли бы сконвертиться.

ivagor
03.03.2019, 20:03
Стелла спленденс поначалу может быть кажется страшноватенькой, но на самом деле это мой любимый результат пока.
Мне тоже она показалась наиболее близкой к нормальности.


если музон заходит куда-то за $4000, тоже случается фейл.
У меня же там "компиляция", откомпилированный музон наезжает на исходный. Там в начале есть
MusicComp .equ 4000h
его стоит заменить на 8000h. Не думал, что будут примеры, которые не влезут. К счастью я ошибался.


Присылай еще мидишек, которые могли бы сконвертиться.
Выслал порцию. Вчера немного поискал подходящие midi, но пока улов не очень. Если в midi <6 голосов, то имхо лучше конвертить для beep5vol, там погромче и чуть "почище" и стаккато чуть-чуть меньше и диапазон точнее. У меня комп с питоном будет только завтра, я бы и сам попробовал.

svofski
03.03.2019, 20:15
В той версии BWV639 трели какие-то левые и в оригинальной мидишке. Причем еще и не в ту сторону. Нашел другое исполнение, звучит иначе, по-моему чуть-чуть менее странно. Но тут к концу ноты уходят ниже доступного диапазона.

ivagor
03.03.2019, 20:36
bwv639y определенно звучит лучше в плане трелей, да и в целом мне этот вариант больше понравился. В bwv639 ближе к концу некоторые ноты тоже в минус ушли и это слышно.

svofski
03.03.2019, 21:23
Больше ада.

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


bwv639y определенно звучит лучше в плане трелей, да и в целом мне этот вариант больше понравился
Мне тоже. Я поторопился с выбором мидишки. В версии "y" не то что бы все идеально, но у меня не возникает ощущения omgwtf на трелях. И они сыграны в правильную сторону.

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

Ну и пока меня прет, Сати.

ivagor
03.03.2019, 21:30
Желательно еще темп учитывать, хотя можно конечно одно число вручную поправить.
Маленьким прелюдиям и фугам с темпом не повезло :)

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

Вектору не хватает второго ВИ53 и, желательно, с управлением громкостью (и для 1го и для 2го).

svofski
03.03.2019, 21:35
ivagor, я темп вручную правлю каждый раз. Некоторые мидишки 1:1 хорошо звучат, в некоторых я его ускоряю. А коллекцию прелюдий я честно просто не успел послушать.

Pyk
03.03.2019, 22:04
Не планировал пока делать сборку Emu80 с Вектором, но выяснилось, что биперная музыка на нем довольно-таки неплохо звучит.
Собрал более-менее стабильный вариант, можете послушать.
http://emu80.org/v4beta/Emu80qt_40324_upd.7z
(добавить файлы к последнему релизу 4.0.323 с заменой).

ivagor
03.03.2019, 22:12
Pyk, я кроме биперной и биперно-таймерной музычки пока больше ничего не пробовал, но про бипер (и таймер) могу сказать, что звучит очень хорошо, у v06x появился конкурент в этой области :)

Pyk
03.03.2019, 22:21
ivagor, а между тем фильтрация у меня там простейшая. Можно попробовать в настройках поставить частоту дискретизации 96000 - теоретически должно быть лучше, но я большой разницы не слышу (хотя особо и не прислушивался).

ivagor
03.03.2019, 22:29
Но над собственно эмуляцией вектора еще надо работать, например Эмулятор РК/Микроши (http://sensi.org/scalar/ware/548/) виснет после нажатия клавиши.

svofski
03.03.2019, 22:30
Pyk, хороший тест -- pwm18i2 (https://www.dropbox.com/s/dkp1w9h7ce3giz3/pwm18i2.fdd?dl=0)

ivagor
03.03.2019, 22:30
Для суперскважных биперов надо громкость в настройках до 5 увеличивать, а то совсем тихо.

svofski
03.03.2019, 22:42
А, дисковода пока нет? Были какие-то еще хорошие ромы бездисководные..

Вот они https://www.dropbox.com/s/gjp7ic1owbm8xza/PWMbeep.zip?dl=0

(Это все ivagor-а творения)

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

Мм.. чего-то PWMbeep-ы у меня вообще не звучат в Emu80.

Pyk
03.03.2019, 22:50
ivagor, да, полнота эмуляции оставляет пока желать лучшего. Также нет пока и перехватов для эмулятора РК/Микроши в конфиге.
В общем, серьезно тестировать пока нет наверное смысла, хотя кое-что уже работает.
AY можно еще в этой сборке послушать - должно быть достаточно точно реализовано, были фиксы по сравнению с ПК8000.

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


чего-то PWMbeep-ы у меня вообще не звучат в Emu80
Видимо потому, что у меня электронный диск пока не реализован ;(

ivagor
03.03.2019, 22:52
pwm14 и 15 что то в эмуляции не хватает. Вот другой пример, он звучит очень хорошо

Pyk
03.03.2019, 23:08
Вот другой пример, он звучит очень хорошо
Ух ты, я сам такого не ожидал от Emu80 :)

svofski
04.03.2019, 13:06
Переделал конвертер, кое что стало получаться лучше.
http://sensi.org/~svo/vector06c/beeper/beep6new.zip

svofski
06.03.2019, 01:01
Новая версия с 5 или 6 голосами на выбор: http://sensi.org/~svo/vector06c/beeper/babor2-56.zip
И пропущенная через нее Danse macabre (http://sensi.org/~svo/vector06c/beeper/danse_macabre.rom) (оригинал (https://musescore.com/amarantapold/dansemacabre))

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

Ну и раз так, то Dies irae (Gregorian) (http://sensi.org/~svo/vector06c/beeper/dies_irae_gregorian.rom)

И уж тогда совсем Dies irae (Mozart) (http://sensi.org/~svo/vector06c/beeper/dies_irae.rom)

KTSerg
06.03.2019, 07:35
Где громкости подкрутить? вся громкость на максимуме, а еле слышно :( (не только последние, касается всей биперной)...

Появилась мысля...
А на какой частоте звучит эта "биперная музыка"? там ведь наверное есть "несущая"? (лень логгер доставать что-бы посмотреть).
Есть подозрение, что для меня играет "тихо", т.к. "несущая" на границе слышимости (для меня)... :(

crackintosh
06.03.2019, 19:49
Да нет... у меня тоже ели-ели слышно.:v2_dizzy_sleep2:

ivagor
06.03.2019, 20:00
Речь о прослушивании на реале? Если да, то с пищалки вряд ли можно что-то расслышать, нужно подключать к усилителю. В детстве я слушал некоторые векторовские мелодии через усилитель, например rise out.
А если в эмуляторе, то тут уж можно накрутить любую разумную и неразумную громкость. Я вот сейчас большую часть времени вынужден слушать музыку через телевизор, и бипер все равно слышу. Да, громкость приходится добавлять.

KTSerg
06.03.2019, 20:37
Речь о прослушивании на реале? ...
Пока только на эмуляторах.
Сегодня добил загрузку фалов с SD. Начал приклеивать загрузку образа с SD на КвазиДиск. Тогда можно будет и на реале играться... с картотекой файлов и коллекцией образов на SD...

...А если в эмуляторе, то тут уж можно накрутить любую разумную и неразумную громкость. ...
И как на эмуляторах добавлять? на компе все бегунки громкости на максимуме, системные звуки аж по ушам бьют, а музон почти не слышен :(

ivagor
06.03.2019, 20:47
Сегодня добил загрузку фалов с SD. Начал приклеивать загрузку образа с SD на КвазиДиск. Тогда можно будет и на реале играться... с картотекой файлов и коллекцией образов на SD...
Круто


И как на эмуляторах добавлять? на компе все бегунки громкости на максимуме, системные звуки аж по ушам бьют, а музон почти не слышен
Добавить в эмуляторах почти нельзя, кроме предварительной версии Emu80, ссылку на которую постил Pyk. Но можно добавить на устройстве воспроизведения - на ресивере/усилителе, компьютерных колонках или даже на телевизоре. Системные звуки при этом лучше не извлекать, и после бипера убавить громкость. Если внешние колонки без усилителя - тут поможет только изменение уровней микширования в эмуляторе. Еще, конечно, есть вариант переделать на ковокс, но там возможно будет пощелкивать, зато громко.

ivagor
12.03.2019, 19:11
Посчитал, что на ПК-6128Ц удалось бы пратически с тем же частотным диапазоном, что у beep6 сделать beep7. А 06Ц с z80 могЁт beep8. Жаль, что эмуляторы с душевным бипером не знают 8085 и z80, а в эмуляторах умеющих продвинутые процы бипер не такой душевный.

Pyk
13.03.2019, 01:52
Думаю, что я могу оперативно сделать в Emu80 базовую поддержку Вектора с Z80.
Но, если честно, я даже не пытался изучить вопрос, что из себя представляет эта модификация.
Длина команд точно так же округляется до 4 тактов в большую сторону? Есть какие-то нюансы? Оно в железе вообще существует?

ivagor
13.03.2019, 08:00
Длина команд точно так же округляется до 4 тактов в большую сторону?
Длина циклов округляется до 4 тактов в большую сторону. В вектор-user (http://www.sensi.org/scalar/ware/572/) 15 приведены растактовки команд z80 совпадающих с командами 8080.


Есть какие-то нюансы? Оно в железе вообще существует?
Есть 3 основных варианта: кишиневский (http://www.sensi.org/scalar/ware/571/) (навороченный, с элементами эмуляции zx), омский (http://www.sensi.org/scalar/ware/569/) и владимерский (http://www.sensi.org/scalar/ware/570/). Был еще вектор-турбо+, частично описанный в вектор-user и на форуме даже есть свидетель его работы, но полной информации по этому варианту нет. И на форуме был проект по вектору на z80, но там, насколько помню, схем не было.

Pyk
13.03.2019, 10:44
ivagor, да, конечно циклов.
Кстати, эта же табличка из "Vector User" у svofski: https://github.com/svofski/vector06cc/wiki/Instruction_Timings
Как раз эти растактовки совпадающих команд да еще кое-что по мелочи и нужно сделать. Это недолго, но я в небольшом цейтноте сейчас, так что не буду обещать прямо сегодня. И растактовки специфических для Z80 команд могут быть неточными - нужно все выверять, а я навскидку даже готовой таблички с растактовкой команд Z80 по циклам доступа к памяти не нашел.

ivagor
13.03.2019, 11:04
И растактовки специфических для Z80 команд могут быть неточными - нужно все выверять, а я навскидку даже готовой таблички с растактовкой команд Z80 по циклам доступа к памяти не нашел.
Готовой для вектора нет и проверить негде. С другой стороны, расцикловки есть в родном zilogовском user manuale и по ним для вектора, в отличие от ПК8000, очень просто округлить каждый цикл вверх. Что-то сейчас с сайта zilog не хочет качать, могу выложить на yandex диск (um0080.pdf, расцикловки идут со страницы 101 pdfa).

Pyk
13.03.2019, 11:14
Я скачал http://www.zilog.com/docs/z80/UM0080.pdf
Правда, похоже, у нас разные версии этого файла - страницы не совпадают.
Все хорошо документировано, возникает только желание распарсить описание и сделать табличку с растактовками ;)

ivagor
13.03.2019, 11:53
Правда, похоже, у нас разные версии этого файла - страницы не совпадают.
У меня доисторическая ревизия 2005 года, а последняя - 2016.

Pyk
14.03.2019, 00:37
ivagor, всплыл один момент относительно Вектора на Z80, который я пока не знаю, как лучше реализовать.
На ВМ80 квазидиск, как я понимаю, отслеживает обращение к стеку на основе слова состояния, выдаваемого процессором на шину в начале каждого цикла.
А как на Z80?

ivagor
14.03.2019, 07:52
В разных вариантах или логикой или пзушкой отлавливали коды команд обмена со стеком. Минимальный набор - push, pop, xthl. b2m, насколько помню, в emu отлавливает все стековые команды.