Вот честно не знаю, но когда с рам диска идет то есть ударные, музыка более насыщенная. Я конечно не знаю как PHASE в реальности звучит
Вид для печати
Mick, в фениксе #1ffd надо как то дергать что бы #7ffd корректно работал ?
Mick, добавил в шапку тестовый плеер под феникс.
Попробовал, вроде все мелодии играют.
Но в некоторых мелодиях на слове TRACK вылезает зеленый атрибут а чуть дальше красный и меняется цвет бордера. Так должно быть?
Кстати, а ты громкостью управляешь или у YM2612 она не регулируется. Что то не сильно громко идет музон, у меня ручка на максимуме стоит.
Да ,это определенные команды парсятся так , не все поубирал.
Если у тебя есть что то по инициализации регистров TS fm ,и как их правильно глушить после проигрывания мелодии то закинь.
SN-ка у меня глушится правильно. Кстати ты с ней проверяешь ?
- - - Добавлено - - -
Ну и вообще как впечатления ?
Я уже понемногу приступил , соберу до кучи ,выложу плеер TS для YM2612
- - - Добавлено - - -
Я уже понемногу приступил , соберу до кучи ,выложу плеер TS для YM2612
- - - Добавлено - - -
Я добавлю в следующую версию плеера отключение SN и YM2612 , для тестов пригодится.
А отдельно мелодии под SN конечно есть , после плеера возьмусь за конвертер с ранних версий VGM
- - - Добавлено - - -
А пока если не сильно радикально ,отпаяй резистор через который из SN идет звук на усилок и подставляя его будет понятно ,или резюки звука YM выпаяй
- - - Добавлено - - -
Будешь писать прошивку , может reset от YM2612 заведешь на какой то порт ,это будет полезно.
К сожалению сигнал RESET для YM2612 глобальный, он не с ПЛИС идет. Надо разбираться с программой инициализацией. Хардварно помоему дергать не есть правило хорошего тона :)
Кстати вот код прошивки ПЛИС, пока только работа с памятью, порты будем дальше добавлять.
Код:TITLE "ZXM-SegaBlaster System Logic";
FUNCTION 2mux1 (a, b, sel) RETURNS (y);
SUBDESIGN DD2
(
-- Тактовые частоты для SN76489 и YM2612
3_58CLK : INPUT;
7_68CLK : INPUT;
-- Сигналы управления с CPU
CA[15..0] : INPUT; -- адреса
C_WR : INPUT;
C_RD : INPUT;
C_MREQ : INPUT;
C_IORQ : INPUT;
C_M1 : INPUT;
AD[7..0] : INPUT; -- шина данных
-- Общие сигналы
C_RESET : INPUT;
C_DOS : INPUT;
C_IODOS : INPUT; -- сигнал доступа к портам контроллера FDD
C_PEVO : INPUT; -- входы режимов работы карты
C_EBUF : OUTPUT; -- управление 74HCT245
C_INTG : OUTPUT; -- сигнал прерывания
C_IORQG : OUTPUT; -- сигнал занятости
-- Сигналы SN76489
DCSG_RDY : INPUT; -- готовность SN76489
DCSG_CS : OUTPUT; -- выбор SN76489
DCSG_WR : OUTPUT; -- запись в SN76489
DCSG_CLK : OUTPUT; -- тактовая частота SN76489
DCSG_DATA[7..0] : OUTPUT; -- данные для SN76489
-- Сигналы YM2612
YM_IRQ : INPUT; -- запрос прерываний от YM2612
YM_A0 : OUTPUT; -- выбор адреса YM2612
YM_A1 : OUTPUT; -- выбор адреса YM2612
YM_CS : OUTPUT; -- выбор YM2612
YM_RD : OUTPUT; -- чтение из YM2612
YM_WR : OUTPUT; -- запись в YM2612
YM_CLK : OUTPUT; -- тактовая частота YM2612
)
VARIABLE
CS_MEM : LCELL;
-- Сигналы YM2612
CS_YM_MEM : LCELL;
-- Сигналы SN76489
CS_DCSG_MEM : LCELL;
REG_DCSG[7..0] : DFF;
BEGIN
-- Формирователь сигнала выбора микросхем через память 400Xh
CS_MEM = !(CA[15..3] == B"0100000000000");
---------------------------- YM2612 ---------------------------------
-- Формирователь сигнала выбора микросхемы через память 4000h...4003h
CS_YM_MEM = CS_MEM # CA[2] # C_MREQ;
-- Формирователь сигнала выбора микросхемы
YM_CS = CS_YM_MEM;
-- Формирователь выбора адресов микросхемы
YM_A0 = CA[0];
YM_A1 = CA[1];
-- Формирователь выбора сигнала записи микросхемы
YM_WR = C_WR;
-- Формирователь выбора сигнала чтения микросхемы (только через порты)
YM_RD = VCC;
-- Формирователь сигнала таковой частоты
YM_CLK = 7_68CLK;
---------------------------- SN76489 ---------------------------------
-- Формирователь сигнала выбора микросхемы через память 4004h
CS_DCSG_MEM = CS_MEM # !(CA[2..0] == B"100") # C_MREQ;
-- Формирователь сигнала выбора микросхемы
DCSG_CS = (CS_DCSG_MEM # C_WR) & DCSG_RDY;
-- Формирователь выбора сигнала записи микросхемы
DCSG_WR = DCSG_RDY;
-- Формирователь сигнала записи в виртуальный регистр данных
REG_DCSG[].clk = CS_DCSG_MEM # C_WR;
REG_DCSG[].d = AD[];
-- Передача данных из виртуального регистра данных в микросхему
DCSG_DATA[] = REG_DCSG[].q;
-- Формирователь сигнала таковой частоты
DCSG_CLK = 3_58CLK;
-- Формирователь сигнала занятости шины только через порты
C_IORQG = VCC;
-- Формирователь сигнала прерывания только через порты
C_INTG = VCC;
-- Формирователь сигнала управления буфером 74HCT245 только через порты
C_EBUF = VCC;
END;
Вот примерная процедура инициализация YM2203 в TSFM
Выдрана из примера плеера TFM
- - - Добавлено - - -Код:ld de, 0FFBFh
ld c, 0FDh
call sub_0_C0E5 ;выбор первой YM2203 (каналы 0..2)
call sub_0_C06C ;инициализация
call sub_0_C0EB ;выбор второй YM2203 (каналы 3..5)
sub_0_C06C:
xor a ;данные
ex af, af'
ld a, 0Dh ;номер регистра, обнуляем регистры обычного AY
loc_0_C070:
call loc_0_C0C6 ;вывод в порт
dec a
jp p, loc_0_C070
ld a, 0B3h ;а это уже часть OPN
loc_0_C079:
cp 4Fh
jr nz, loc_0_C07F
ld a, 3Fh
loc_0_C07F:
call loc_0_C0C6
dec a
cp 30h
jr nc, loc_0_C079
ld a, 0F8h
ex af, af'
ld a, 7
call loc_0_C0C6
ld a, 0Fh
ex af, af'
ld a, 8Fh
loc_0_C094:
call loc_0_C0C6
dec a
jp m,loc_0_C094
xor a
ex af, af'
ld a, 28h
call loc_0_C0C6
ex af, af'
inc a
ex af, af'
call loc_0_C0C6
ex af, af'
inc a
ex af, af'
call loc_0_C0C6
dec a
call loc_0_C0C6
ld a, 7Fh
ex af, af'
ld a, 4Fh
loc_0_C0B7:
call loc_0_C0C6
dec a
cp 40h
jr nc, loc_0_C0B7
ld a, 2Fh
call loc_0_C0C6
ld a, 2Dh
loc_0_C0C6:
ld b, d
unk_0_C0C7:
in (c)
; db 0EDh
; db 70h
jp m, unk_0_C0C7
out (c), a
ex af, af'
unk_0_C0CF:
in (c) ; запрос состояния YM2203 (готовность)
; db 0EDh
; db 70h
jp m, unk_0_C0CF ; если не готова, то подождем
ld b, e
out (c), a
ex af, af'
ret
sub_0_C0E5: ; выбор первого YM2203
ld a,0F8h
ld b,d
out (c),a
ret
sub_0_C0EB: ; выбор второго YM2203
ld a, 0F9h ; 'щ'
ld b, d
out (c), a
ret
JV-Soft, скажи, сколько у тебя тактов между записью в YM2612. Скажем чтобы заменить строку in (c)
Попробую проиграть TFC мелодию на YM2612.
Добавил в шапку TSFM плеер под YM2612
Запускаешь аласм ,грузишь исходник TSFM , в конце у него есть подгрузка мелодии ,компилищь запускаешь ,слушаешь. Ты на реале никогда не писал ? :)
Вообще вроде бы как холодные, ну может градусов 27-29
- - - Добавлено - - -
PS когда ставил эксперименты нечаянно воткнул SN на оборот ,она раскалилась что палец обжег , не расстроился так как 4 запасные ,но остудив и для эксперемента поставив ,оказалась жива и все прекрасно ,я был удивлен , оригинал видимо ,крепкая.
Очень давно, на модифицированном комплекте Микрон. Это я когда с Апогея пересел, не мог привыкнуть к мнемоникам Z80. Переделал под себя ассемблер Микрон.
Аласмом никогда не пользовался. А потом уж на PC стал писать.
Если не трудно скомпильни программку для пробы.
- - - Добавлено - - -
У меня греются как печки. Пробовал две разных YM2612 и обе печки.
Видимо что то не так я сделал.
А как с громкостью, у тебя она сильно поет? А то у меня она не сильно громко поет.
Ок , чуть позжее закину , кстати когда будешь слушать , если слух мужыкальный , мне кажется они после конвертера что на tsfm каноничном ,что на YM2612 звучат как бы это сказать не попадая в частоту нот. В отличии от моего плеера )
Сейчас поставлю минут на 20 поиграть ,скажу , или у тебя в простое ?
SN ка очень громкая , для баланса там резистор ставил приличный ,что б гасить.
А YM2612 тиховата , если сравнивать с классической GS по громкости то GS громче раза в два, а то и больше , но у меня все звуки сходятся на микшер на операционнике , измерю что я там по резисторам наставил ,кину схему.
- - - Добавлено - - -
PS SN-ка по идее вообще не должна греться ,она ведь не читается ,а YM2612 может ,если с чтением напортачил и ее ШД на выход работает когда не надо.
- - - Добавлено - - -
Погонял пол часа , чуть теплее пальца обе , не больше 36, это с учетом еще снизу плата пента сама по себе теплая.
- - - Добавлено - - -
Mick, зря на реале не пишешь, это вдохновляет. Запускать прям из перфекта можно.
Вложение 66612
Если ты используешь торможение тактов YM2612 то делать это следует на лог.0. Иначе печка -> трупик.
Ты проверял? Оно точно не прерывается и соответствует заявленным параметрам? Будь мужЫком, ткнись осциллографом.
Mick, сейчас с такими номиналами усилитель , но в конечном варианте надо уменьшать резисторы на выходах звука SN и YM ,и увеличивать резисторы на входах операционника , будет меньше шумов.
https://c.radikal.ru/c01/1810/a7/89d53b1f976bt.jpg
- - - Добавлено - - -
Вот у чувака ,как он говорит ,хороший звук ,схема в конце - https://www.aidanlawrence.com/megabl...-music-player/
- - - Добавлено - - -
Еще я себе одну сегу переделывал по звуку ,номиналы экспериментально подбирал на слух , надо с нее схему срисовать ,звук просто великолепный на ней вышел.
Срисовал один канал с сеги , у меня там стоит cxa1634 (предусилитель+усилитель) я звук снимаю после предуселителя ,номиналы такие
https://c.radikal.ru/c26/1810/ab/7df1de99a831t.jpg
Добавил я инициализацию YM2612 по подобию YM2203 , но не совсем она корректно работает ,точнее не после всех мелодий отрабатывает как надо.
HardWareMan, я есть четкий мануал как сделать 100% софторый reset ,тобишь привести все регистры в первоначальное состояние ?
Куча регистров в которых ноль это далеко не обнуление ,а черти что будет.
- - - Добавлено - - -
PS потрасировал плеер от соника , вот там инициализация как положено.
Дамп делаю.
Инициализация разных регистров ,разные значения , это я и искал , а не
;):D
JV-Soft, Ну ты же тут самый чоткий. В теории достаточно сделать 28 00, чтобы потушить каналы и еще ЦАП потушить. А зачем сбрасывать остальные регистры то? Или ты боишься левых звуков в первых аккордах новой мелодии? Так это есть и в официальных титлах.
Уважаемый чо тебя подрывает ? профильная тема , сказал я тебе что не так ?
Сегодня уже накодился ,завтра я тебе видео специально сниму , 28 00 и 2B 00 , ни черта не тушат как надо , остаточно звук идет еще очень долго длительностью до 20 секунд это раз ,а второе после проигрывания некоторых мелодий одна и та же мелодия потом играет по разному.
Отсюда вывод ,нужна правильная инициализация , ее я и нашел в плеере от соника.
Код для инита одного канала , и так надо все шесть со своими регистрами ,плюс еще по другим регистрам определенные значения.
Код:#90 - #00
#94 - #00
#98 - #00
#9C - #00
#81 - #FF
#85 - #FF
#89 - #FF
#8D - #FF
#41 - #7F
#45 - #7F
#49 - #7F
#4D - #7F
#28 - #01
Тыкался на работе я осцилом, что на YM2612, что на SN76489 частоты приходят нормальные.
Снял YM2612, хотел послушать одну SN76489. Вроде как в aquatic должна она играть - ничего нема. Похоже я что то сделал не так в коде CPLD, хотя вроде делал как по схеме, за исключением что резистор подтяжки сигнала RDY SN76489 вместо 2.2 кОм, поставил 10 кОм
Mick,при включении из SN-ки при поданной тактовой гул и высокочастотный писк идет ? Если да ,она рабочая , если нет то проверяй еще раз сигналы.
Это хорошо ,значит рабочая , проверяй как "авто-регистр" работает ,я тут подробно де то описывал.
Посмотри вот еще Олега схему ,может поможет - http://zx-pk.ru/threads/29001-zx-ym2...l=1#post968035
- - - Добавлено - - -
При проверках сними вообще YM ,не зря она кипятится может где ошибся и ШД конфликт
Мелодии где есть SN -
phase , grey (не по всей мелодии) , aquatic , prair
- - - Добавлено - - -
Вот ,повторюсь -
Для начала немного теории если кто то возьмется цеплять SN76489 к старому железу.
Пишется она следующем образом - опустив CE в ноль она тут же выставляет сигнал READY в ноль (ЗАНЯТА) , далее показываем ей что данные готовы опустив WE в ноль,
после этого ей фиолетово что мы делаем с WE ,она не обращает на него внимание (в отличии от нормальных устройств которые пишутся по фронту или спаду WE) , и потом она сама отдуплившись спустя 5-10 мкс забирает данные с шины ,и выставляет READY в единицу говоря ,что данные получила, вот такая интересная микра.
Я долго размышлял как нам ее прикрутить не усложняя карту и не тормозя всю систему на такую огромную длительность , решил заставить SN76849 фактически собой же и управлять, пришлось добавить регистр и один элемент "И" ,
при этом ничего тормозить не надо , управлением сигналами SN76849 занимается она же сама ,автоматически снимая WE и CE.
- - - Добавлено - - -
PS к текущему вопросу это не имеет отношение ,но вот тут тоже мельком упоминает чувак про горячую YM ,если я конечно правильно понял - http://gendev.spritesmind.net/forum/...pic.php?t=1249
- - - Добавлено - - -
Выяснил что для корректного глушения звука в YM2612 ре-инициализируется 70 регистров. А для полной инициализации еще больше.
Дописал это дело в плеер , теперь мелодии корректно завершаются. К вечеру добавлю включение/отключение SN/YM в плеере и выложу.
- - - Добавлено - - -
PPS и мелодия phase ,в которой пропадали переливы после проигрывания других мелодий теперь играет корректно ! Ура )
Кстати, обращаю ваше внимание. Эта ссылка:
А там:
http://jpegshare.net/images/fd/b4/fd...11ae5f590a.png
Далее:
http://jpegshare.net/images/3a/7c/3a...98d48c440b.png
И вполне доступно на той же алишечке. Вы всё еще хотите ставить кучу кварцев или генераторов для эмуляции разных систем (актуально для этого вашего YM)?
Вот вроде бы ты первый раз увидел что я делаю , да ? Что с момента появления меня тут , в каждой теме - http://zx-pk.ru/threads/27273-progra...l=1#post975124
Да , моя будет только на логике ,ни как иначе.
А ты и вправду думаешь, что свет только на тебе одном клином сошелся? Твоя цитата только потому, что ты ее привел, ничего более. А информация для всех, не только для тебя. Я просто помню, что при обсуждении где-то рядом была брошена фраза, что "частоты отличаются, будем ставить 2 генератора?", к сожалению мой склероз забыл где и кто спросил. Но факт я помню, поэтому и оставил эту ифну здесь - недалеко от цитаты.
Частота TSFM отличается от YM2612 , для того ,что бы TSFM соответствовать YM2149 для совместимости с AY музыкой , и поэтому мелодии YM2612 не звучат на TSFM корректно ,и в конвертере программно подгоняется частота нот под TSFM , от этого , мое личное мнение ,мелодии FM на TSFM звучат не так как на YM2612.
И все это можете с Миком обсудить , есть тема по этой его карте - http://zx-pk.ru/threads/29437-zvukov...ound-quot.html
- - - Добавлено - - -
А еще проще , это как AY затактировать на 1.75 мгц , а 1.6 и конвертировать программно мелодии AY под новую тактовую , как думаешь реально один в один подогнать программно ? Это не трол , реальный вопрос.
- - - Добавлено - - -
Даже больше думаю , когда занимаюсь любимым хобби , я это делаю от души ,и для души :)
Да не совсем хорошо. Как оказывается наличие гула ничего еще не значит. В общем я взял карту на работу, там у меня стоит борда на базе игрового аппарата. Так вот воткнул туда и давай тыкать в карту осцилм. Сигнал выборки есть, а вот на выходе RDY ничего и соответственно на запись ничего не идет. Поменял на другую SNку, дык там уже гул стал по разному проявлять себя.
Загрузил тестовые мелодии - опаньки, музыка появилась. Вот что значит покупать у китайцев восстановленные (перемаркированные) чипы - брать надо сразу 5 штук, вдруг повезет :)
Хотя вполне мог и сам спалить, но это не точно.
И орет она вполне громко.
- - - Добавлено - - -
О надо надо на этой хрени комп себе сделать какой нибудь. :)
- - - Добавлено - - -
Кстати, покупал SN76489 у этого продавана - https://ru.aliexpress.com/item/5-SN7...274233edwF75i0
При такой цене, собственно можно не удивляться, что может попасться какой нибудь задохлик.
Mick, завел ,это хорошо , а чего YM чайник ,не нашел ?
Я брал SN-ки тут - https://ru.aliexpress.com/item/5pcs-...697d33ed8GXzJe
И вид и маркировка того что в итоге пришло внушают доверие, и как писал ранее даже переворот до дымка одна пережила.