PDA

Просмотр полной версии : Звуковая карта "ZXM-WizardSound"



Mick
15.08.2018, 14:47
Создал тему на основе разговоров в теме JV-Soft - http://zx-pk.ru/threads/29001-zx-ym2612.html по поводу а что если YM2612 заставить играть TSFM треки. Это чтобы не путаться в дальнейшем. В той теме приоритет это музон с Сеги, как и изначально задумывал JV-Soft, посему под это и будет затачиваться ZXM-Segablaster. И если получится, то что нибудь еще.

В данной карте наоборот приоритет это TSFM треки на YM2612, а уж что то еще - дальше видно будет.
Иными словами эта карта не что иное как Turbosound + FM, а именно 2 AY3-8910(или YM2149F) и плюс YM2612.

Что планируется в базе:
- рeжим TS (турбосаунд);
- режим FM (YM2612)
- частоты AY (1.75MHz, 1MHz, 2MHz)
- частоты YM2612 (7.68MHz, 7MHz)
- прерывания от YM2612
- отключение второго AY
- карта под NemoBus

Порты:
-FFFD и BFFD - это стандартно
-FFFC - это с ZXM-SoundCard Exterme управление частотой.

По сути эта карта в некотором роде конкурент другой моей карте ZXМ-SoundCard, но там все построено было вокруг YM2203, тут будет вокруг YM2612.

Итак на первом этапе будет начальная карта для отработки идей и прочего, а именно ZXM-WizardSound Lite. Потом видно будет
Схема предварительная - http://micklab.ru/file/zxm_wizardsound/zxm-wizardsound lite.pdf

Обсуждаемся.
P.S. Эко меня как штырит :)
Сделаю ее или нет, трудно сказать - это я так чтобы не забыть идею.

saymon
15.08.2018, 15:47
Пора уже разрабатывать ZX- Media Center Edition)))

Sayman
16.08.2018, 06:27
Пора уже разрабатывать ZX- Media Center Edition)))

Поддержу оратора! Смысл плодить горы хлама железа? Сделал бы одну нормальную, со всеми хотелками и перделками. А то получается, в одной проге есть поддержка одной перделки, надо её втыкать в слот. Потом - стоп, а эту прогу вон с той перделкой надо гонять. опять перетыкать! Фтопку такой подход! Сделай нормально уже, перевыпусти zxm-soundcard с поддержкой 2612.
И, Мик, я так понимаю, Спринтер всё, конец истории и даже собирать не будешь?

Mick
16.08.2018, 06:43
Поддержу оратора! Смысл плодить горы хлама железа? Сделал бы одну нормальную, со всеми хотелками и перделками. А то получается, в одной проге есть поддержка одной перделки, надо её втыкать в слот. Потом - стоп, а эту прогу вон с той перделкой надо гонять. опять перетыкать! Фтопку такой подход! Сделай нормально уже, перевыпусти zxm-soundcard с поддержкой 2612.

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


И, Мик, я так понимаю, Спринтер всё, конец истории и даже собирать не будешь?

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

JV-Soft
16.08.2018, 11:12
Сейчас лето, да и жаркое оно - ничего не хочется - нахожусь постоянно в режиме ленивца.
Та же фигня ,только еще и работа.

Mick
20.08.2018, 17:47
Таки развел платку, вот что получилось.

https://d.radikal.ru/d35/1808/54/9dce052a4cd8t.jpg (https://d.radikal.ru/d35/1808/54/9dce052a4cd8.png)

https://c.radikal.ru/c13/1808/b2/27ba0f29d971t.jpg (https://c.radikal.ru/c13/1808/b2/27ba0f29d971.png)

Габариты платы 155 x 80(87)мм
Для сравнения, плата ZXM-SoundCard Extreme 160x88(95)мм и как видим что чуть короче и чуть уже. Это для тех кто хочет типа Медиацентра. Тоесть дополнительные плюшки сразу увеличивают размерность платы.

В принципе этот вариант можно было сделать и на коротеньких AY-3-8912, но возникнет вопрос, а как же православный YM2149F- вот поэтому и DIP40.
Сразу отвечу на вопрос, а почему не поставить еще посадочные места для короткого AY - отвечаю, не охота. Я и так провозился с этой платой много времени. Но никто не мешает сделать это вам самим.

Mick
26.09.2018, 21:42
Заказал платы, как прибудут, дам знать.

Evgeny Muchkin
28.09.2018, 15:45
Небольшая идейка. Имхо, было бы удобно, если бы на данной плате был сделан еще и бипер, чтобы при сборке не заниматься смешиванием сигнала с кучи источников.

Djoni
28.09.2018, 18:47
Небольшая идейка. Имхо, было бы удобно, если бы на данной плате был сделан еще и бипер, чтобы при сборке не заниматься смешиванием сигнала с кучи источников.

Ещё и оригинальный бипер как на резинке :)

Mick
28.09.2018, 18:54
Небольшая идейка. Имхо, было бы удобно, если бы на данной плате был сделан еще и бипер, чтобы при сборке не заниматься смешиванием сигнала с кучи источников.

К сожалению на этой плате уже не добавится оно потому как платы уже заказаны.
Но на будущее можно учесть.

Mick
09.10.2018, 10:51
Китайский производитель отправил вчера платы, так что недельки через две-три они будут у меня.

Mick
15.10.2018, 09:45
Китайский производитель отправил вчера платы, так что недельки через две-три они будут у меня.

Хорошие новости, платы прошли таможню, значит возможно через недельку они будут у меня.

Mick
22.10.2018, 11:25
В пятницу вечером получил платки

https://a.radikal.ru/a42/1810/25/f030f6bc8a03t.jpg (https://a.radikal.ru/a42/1810/25/f030f6bc8a03.jpg)

https://c.radikal.ru/c22/1810/5c/7d4025d738b0t.jpg (https://c.radikal.ru/c22/1810/5c/7d4025d738b0.jpg)

Теперь вот надо собрать на досуге.

JV-Soft
22.10.2018, 16:04
В пятницу вечер
Не следил за темой ,а SN тут не будет ,для полной универсальности ?

Mick
22.10.2018, 16:36
Не следил за темой ,а SN тут не будет ,для полной универсальности ?

Пока в данной ревизии нет, дальше видно будет. Сия конструкция чисто пока как TSFM.

Mick
17.11.2021, 19:30
Ха ха, с ремонтом квартиры я совсем позабыл про этот проект. Но вездесущий Djoni напомнил.
Что же действительно надо довести до какого то логического завершения, тем более я даже карту собрал тогда, но благополучно отправил ее в чемоданчик с незаконченными проектами.

Вот фото собранной платы.

https://i.ibb.co/V28KVNm/zxm-wizardsound-top.jpg (https://ibb.co/V28KVNm)

https://i.ibb.co/qpggQz8/zxm-wizardsound-bot.jpg (https://ibb.co/qpggQz8)

Прошивки пока нет, так как надо все вспоминать что я хотел сделать.

NEO SPECTRUMAN
17.11.2021, 19:53
Вот фото собранной платы.
надо было ставить 2 2203 вместо :v2_lol:

Mick
18.11.2021, 19:52
В данной карте наоборот приоритет это TSFM треки на YM2612, а уж что то еще - дальше видно будет.
Иными словами эта карта не что иное как Turbosound + FM, а именно 2 AY3-8910(или YM2149F) и плюс YM2612.

Что планируется в базе:
- рeжим TS (турбосаунд);
- режим FM (YM2612)
- частоты AY (1.75MHz, 1MHz, 2MHz)
- частоты YM2612 (7.68MHz, 7MHz)
- прерывания от YM2612
- отключение второго AY
- карта под NemoBus

Порты:
-FFFD и BFFD - это стандартно
-FFFC - это с ZXM-SoundCard Exterme управление частотой.

По сути эта карта в некотором роде конкурент другой моей карте ZXМ-SoundCard, но там все построено было вокруг YM2203, тут будет вокруг YM2612.


Итак вспоминаем, что хотелось сделать и почему. Почему уже история умалчивает, но один факт помню, что некоторые очень негативно относились к чипу YM2203 и Turbosound хотели на "правильных" YM2149 или AY-3-8910. Но понятно, что если делать на "правильных" чипах, то глупо ставить YM2203 только на FM часть, посему для "правильных" чипов нужен был "правильный" FM придаток - YM2612. Тем более там им пытался заниматься JV-Soft
Теперь о деталях, понятное дело что при попытки сделать подобие TurboSoundFM на связке 2YM2149(AY8910) + YM2612 полной совместимости с оригинальным устройством не получить не удасться.
И все из за FM части.
В оригинальном TurbosoundFM 6 каналов FM части были разбиты на 2 микросхемы (в каждой по 3 канала). И в каждой микросхеме управляющие регистры 20...2F свои и их приходится настраивать по отдельности в каждой микросхеме. В YM2612 6 каналов находятся уже в одном чипе и регистры с 20...2F у них общие. То есть как минимум уже одно различие в плеерах будет.
Я в принципе отдизассамблировал проигрывающий модуль tfc музыки. Если его удастся адаптировать, то вполне можно будет слушать существующие треки.

Теперь о железной части, то тут начинается самое интересное.
У нас получается три типа регистров:
- регистры AY
- регистры YM2612
- виртуальный регистр

Предлагается их разделить так
- 00...1F регистры AY
- 20...EF регистры YM2612
- F0...FF виртуальные регистры конфигурации

Причем виртуальные регистры, соответствуют оригинальному устройству:
XXXC - выбор чипа YM2203, в нашем случае выбор AY и каналов YM2612

Еще стоит упомянуть о приятной особенности, в карте выведен от YM2612 сигнал прерывания. Иными словами можно от его таймера получать сигналы прерывания. Такое уже есть в карте ZXM-Moonsound, что позволяло проигрывать 60Гц треки.
XXSX - разрешение чтение статуса из YM2203, в нашем случае чтение статуса YM2612
XFXX - разрешение FM части, по сути разрешался вывод информации в YM3014 (внешний ЦАП), в нашем случае этот бит остается не удел, так как запретить вывод не программно мы не сможем

NEO SPECTRUMAN
18.11.2021, 20:50
нужен был "правильный" FM придаток - YM2612.
а так могло бы быть 2х2023 + 2612 :)
можно было бы играть на ниих одно и то жо паралельна))))

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


И все из за FM части.
В оригинальном TurbosoundFM 6 каналов FM
ты вполне мог бы перехватывать запись в нужные реги
и раскидывать куда надо
хотя тада будет не интересна

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


регистры с 20...2F у них общие. То есть как минимум уже одно различие в плеерах будет.
там серавно наверно выбираетсо "половинка" чипа как в 2608
и только несколько "общих" регистров дейстующих на обе части сразу
разница от 2203 минимальна

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


то тут начинается самое интересное.
это на самое интересное
самое интересное это балансировка громкостей AY-ков и 2612
можно сделать "совместимо" с ТСФМ
а можно и не сделать

Mick
18.11.2021, 20:58
и только несколько "общих" регистров дейстующих на обе части сразу
разница от 2203 минимальна

Я и написал что у 2612 регистры 20...2F одинаковы для обоих частей, у YM2203 для каждой части свои.
Но самое интересное что включение или выключение ноты отвечает 28 регистр. И отличие там в маске.

YM2203
https://i.ibb.co/JF86MHB/ym2203.jpg (https://ibb.co/JF86MHB)

YM2612
https://i.ibb.co/5TYTDKX/ym2612.jpg (https://ibb.co/5TYTDKX)

NEO SPECTRUMAN
18.11.2021, 21:05
Я в принципе отдизассамблировал проигрывающий модуль tfc музыки. Если его удастся адаптировать, то вполне можно будет слушать существующие треки.
а разве нету его сорцов и так?

а так если напишошь нормальную спецификацию
могу на досуге запилить версию s98 плеера
хотя для трдос-ов он несколько бесполезен...
в 640к влазет полтора трека...

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


И отличие там в маске.
и вангую что это можно транслирровать аппарратно и на изичах :)

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

печально что там нету adpcm drums-ов

NEO SPECTRUMAN
19.11.2021, 06:32
а так раз уж это не TSFM
то для FM может стоит изобрести другие порты?
чтоб карточку можно было тыкать параллельно с другими

Mick
19.11.2021, 10:31
а так раз уж это не TSFM
то для FM может стоит изобрести другие порты?
чтоб карточку можно было тыкать параллельно с другими

Как бы возможно и так, тогда новое устройство будет по сути просто Turbosound + YM2612.
Но для пущей важности хотелось бы чтобы треки от TSFM проигрывались, файлы tfc.
То есть как минимум плеер надо адаптировать под YM2612, создать базу треков tfc, чтобы не искать.

На счет портов. На Спектруме уже как бы есть две карты с FM синтезом, это TSFM и ZXM-Moonsound
- обращение в TSFM идет через порты AY
- обращение в ZXM-Moonsound идет через порты:
FM часть
порт C4h -> запись адреса регистра (набор регистров 1)
C5h - запись данных в регистры набора 1
С6h - запись адреса регистра (набор регистров 2)
C7h - запись данных в регистры набора 2

Кроме того регистр C4h на чтение - статус

Wave часть
Регистр 7Eh - запись адреса регистра
7Fh - запись или чтение данных

Иными словами можно ограничиться портами ZXM-Moonsound
С4...С7h
Но тогда не поставишь две карты вместе.

Тогда можно выбрать для простых FM чипов
порт C0h -> запись адреса регистра (набор регистров 1)
C1h - запись данных в регистры набора 1
С2h - запись адреса регистра (набор регистров 2)
C3h - запись данных в регистры набора 2

Регистр C0h на чтение - статус

То есть воспользоваться альтернативным набором с Moonsound MSX. В моей ZXM-Moonsound они не выбираются.

JV-Soft в своей SegaBlaster использовал ячейки памяти, хотя я не сторонник такого подхода, тема - https://zx-pk.ru/threads/29001-zx-ym2612.html

В общем вопрос к общественности по дальнейшим действиям.

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


а разве нету его сорцов и так?

А что есть?

NEO SPECTRUMAN
19.11.2021, 19:03
можот быть тут
http://nedoos.ru/svn/filedetails.php?repname=NedoOS&path=%2Fsrc%2Fplayer%2Ftfmplay.asm

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

вот еще а альасмах подкинутое алонием
https://anonfiles.com/xeTdc1W4u7/TFMDIH_TRD

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

да и по моему на официальном сайтеке
сорцы а аласмах накиданы

Mick
19.11.2021, 19:03
вот еще а альасмах подкинутое алонием

anonfiles провайдер блокирует.

NEO SPECTRUMAN
19.11.2021, 20:04
anonfiles провайдер блокирует.
https://dropmefiles.com/Eja9k

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

так понимаю еще вот
всякие $H?
http://alonecoder.narod.ru/zx/books/TFM.rar
http://nedopc.com/TURBOSOUND/tfmtools.zip

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

еще вроде был всеядный плеер от budder-а
не помню были ли у него сорцы или нет

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


Пора уже разрабатывать ZX- Media Center Edition)))

То есть как минимум

На счет портов.
кстате тем временем пока ты так и не сделол сидорокарту
ужо запилено целых 3 стандарта/варианта запиления портов для спецтрума)))
...мало то буржуи умудррились прикрутить 2203 и sa1099 на других портах...

Mick
19.11.2021, 20:12
...мало то буржуи умудррились прикрутить 2203 и sa1099 на других портах...

Ну буржуи все по своему делают ...

NEO SPECTRUMAN
19.11.2021, 20:15
Ну буржуи все по своему делают ...
ну пусть теперь сами и софты пишут :)

NEO SPECTRUMAN
19.11.2021, 22:19
В общем вопрос к общественности по дальнейшим действиям.
ну по крайней мере готовность надо проверять привычным и удобным
in f,(c)
jp m,sjdfldsv


FM часть
порт C4h -> запись адреса регистра (набор регистров 1)
C5h - запись данных в регистры набора 1
С6h - запись адреса регистра (набор регистров 2)
C7h - запись данных в регистры набора 2

Кроме того регистр C4h на чтение - статус

так жо готовность надо читать на обоих наборах
так же при выборе номера регистра

NEO SPECTRUMAN
20.11.2021, 01:14
- F0...FF виртуальные регистры конфигурации
а еще кроме наглухо забитых зхмсоундкардами FХ
есть никому не нужные 0E...0F

мало того на FX утя есть FM on\off

когда ФМ on ты можошь использовать 0E 0F в своих грязных целях
когда FM офф ты можошь кидать запись на железные Ay-ки сохраняя эти порты
итода будет привычное "на портах AY"

...вот только ли дойдет этот FM off до воткнутой второй карты

да и у самих ФМ-ов там куча дырок
куда можно повесить дополнительную переключалку чипов


На счет портов. На Спектруме уже как бы есть две карты с FM

а еще есть фпгашный TSFM на портах 7F3B 7E3B :v2_lol:



- обращение в ZXM-Moonsound идет через порты:
FM часть
кстате утя на сайтеке ни слова о програмироввании муунсаунда

Mick
01.12.2021, 14:59
После раздумий, так как карта к Turbosound FM никак не имеет отношения, а получается как Turbosound + YM2612 решил обращаться к YM2612 через порты.
Чтобы не пересекаться с Мунсаундом, выбрал альтернативные:

порт C0h -> запись адреса регистра (набор регистров 1)
C1h - запись данных в регистры набора 1
С2h - запись адреса регистра (набор регистров 2)
C3h - запись данных в регистры набора 2

Регистр C0h на чтение - статус

Кроме того ввел виртуальный регистр с FE - управление входной частотой
бит D0 - 0 - частота 7,68МГц, 1 - частота 7МГц


Также подумав, решил избавиться от порта FFFC, порт управления AY
Напомню что в ZXM-SoundCard Extreme введен этот порт для управления входной частотой и блокировки второго YM2203
биты порта
D0 - выбор режима входной частоты микросхем YM2203. Лог "0" - стандартная частота (1,75МГц). Лог "1" - расширенная частота (см значение бита D1).
D1 - управление расширеным режимом входной частоты. Лог "0" - режим Amstrad CPC (1МГц) Лог "1" - режим Atari ST (2МГц).
D7 - блокировка доступа второй микросхемы AY2. Лог "0" - доступ разрешен. Лог "1" - доступ запрещен.

Так вот его хочу перенести в внутренний регистр YM2203, а именно FE
Напомню, что в Turbosound адрес регистров FE и FF отвечают за выбор AY, но данные при этом не используются
Получаем, что выбираем внутренний адрес AY - FE, как бы выбор первого чипа, а вот в данные пишем уже биты управления частоты

Иными словами, если нужен режим Amstrad CPC, то вместо обращения к FFFC

1. Выбор режима входной частоты Amstrad CPC
Было
Set_clk_Amstrad:
ld bc,0FFFCh
ld a,01h
out (c),a
ret

Стало:

Set_clk_Amstrad:
ld bc,0FFFDh
ld a,0FEh
out (c),a
ld b,0BFh
ld a,01h
out (c),a
ret

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

NEO SPECTRUMAN
25.12.2021, 02:12
Mick, а кода это ты успел запилить? :)
http://www.vgmpf.com/Wiki/index.php?title=ZXM_Sound_Box