User Tag List

Страница 18 из 22 ПерваяПервая ... 141516171819202122 ПоследняяПоследняя
Показано с 171 по 180 из 256

Тема: Эмулятор БК-0010-01, БК-0011 и БК-0011М

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shattered Посмотреть сообщение
    Не хватает строба WR?
    Да, оно работает только в эмуле. Вообщем добавил clr после записи для выставления ~WR.. Надо будет узнать у владельца девайса помогло или нет
    UPD: заиграло на реальном устройстве, надо-бы попросить владельца записать wav-ку для сравнения с эмулятором. В реальном девайсе конечно есть RC фильтр на выходе, надеюсь не настолько уж он сильно фильтрует НЧ
    Последний раз редактировалось BlaireCas; 12.01.2025 в 13:15.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shattered Посмотреть сообщение
    Не хватает строба WR?
    А в описании i8253 написано, что данные фиксируются по уровню, а не стробу.
    Я кстати пробовал фиксировать запись данных по стробу, сразу перестало работать ПО из ПЗУ менестреля.

  4. #3

    Регистрация
    28.10.2005
    Адрес
    Омск
    Сообщений
    2,117
    Спасибо Благодарностей отдано 
    165
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    32 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    gid, когда обновление эмулятора то ?
    4 месяца уже прошло.

  5. #4

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тут еще выяснилось кое-что с менестрелью:
    1) Эмулятор выдает частоту в 2 раза ниже. Вообщем надо частоту поднять в 2 раза у меандра в режиме 3. Собрал реплику уже сам, генератор 1МГц как у родной - играет выше эмулятора на октаву.
    2) Кстати да - в реале тоже стоит жестокий RC-фильтр и в эмуляторе теоретически фильтрация сделана похоже (но все-же лучше иметь возможность делать ей вкл/выкл).
    3) При включении БК менестрель (без своей ПЗУ) издает нехороший гуд и гудит пока её не инициализируешь (мое имхо - эмулировать такое поведение не нужно..)

    Цитата Сообщение от gid Посмотреть сообщение
    перестало работать ПО из ПЗУ менестреля

    В ПЗУ менестреля...

    код вывода в 177714 такой (спасибо Хунте за дизассемблер):
    Код:
    N57516:
    	MOV	R5, -(SP)
    	MOV	#6000, R5
    	XOR	R5, R4
    	COM	R4
    	MOV	R4, @#177714
    	CLR	@#177714
    	MOV	(SP)+, R5
    	RETURN
    .... используется например вот так ...
    N57440:
    	MOV	L57452(R1), R4
    	CALL	N57516
    	RETURN
    L57452:
    	.WORD	103466 ; выставление режима 3 счетчикам 0..2 у двух чипов
    	.WORD	105466 ; зачем-то сразу ставят gate в высокий
    	.WORD	103566
    	.WORD	105566
    	.WORD	103666
    	.WORD	105666
    То-есть после записи в регистр сразу выставляется ~WR в высокий уровень (в первом mov ~WR низким уровнем идет).
    Код вывода в 177714 там один вот этот, он-же используется и для посылки двух байт данных установки счетчиков потом.
    Собрал реплику менестреля кстати - ну так вот что могу сказать еще: CLR сразу после MOV работает, но изредка кривит.
    Лучше делать два раза MOV одного и того-же, первый с ~WR в низком уровне, второй с ~WR в высоком.
    [свернуть]
    Последний раз редактировалось BlaireCas; 21.01.2025 в 13:16.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  6. #5

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Во вторник, 28 января 2025 г. после 13:00 или совсем к вечеру. Если ничего не случится.

    Эти 2 пользователя(ей) поблагодарили gid за это полезное сообщение:

    BlaireCas(28.01.2025), ZEman(26.01.2025)

  7. #6

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Смотрю вышла бета эмулятора с правками по менестрели (4.4.2501.9615). Большое спасибо! (частота меандра стала нормальной, фильтр можно стало вкл/выкл что хорошо).
    Небольшое дополнение по эмуляции ВИ53: При работе в режиме 3 и значении счетчика 2 должно все-же выдавать свои 500кГц частоту, а не кхм.. извините пердеж. Оный пердеж выдается ВИ'шкой при значении счетчика = 1. Я прекрасно понимаю что звуковая карта повесится скорей чем выдаст 500кГц и возможны варианты что с этим делать.

    В чем собственно дело и зачем такая частота нужна

    Дело довольно простое. Например играем кое-что по трем каналам, один из каналов требуется выключить. Используя gate данного канала мы это сделать не можем (они запараллелены в менестрели и выключатся все каналы). Можно разумеется заново инициализировать канал, а можно просто занести в счетчик один из таких делителей при котором микросхема выдаст "неслышимую" частоту (ее еще и убьет пассивными элементами фильтра). Наименьшее значение при котором микросхема еще работает (но вряд-ли кто услышит 500кГц) = 2.
    Можно добавить что некая гармоника все-же слышна, но нереально тихо. У моей реплики менестрели ВИ53 наименее слышна скажем при делителе 4 (250кГц)
    [свернуть]
    Последний раз редактировалось BlaireCas; 28.01.2025 в 22:45.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  8. #7

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    При работе в режиме 3 и значении счетчика 2 должно все-же выдавать свои 500кГц частоту, а не кхм.. извините пердеж.
    Издержки алгоритма эмуляции. Алгоритм не вытягивает. Тупо не может столько. Либо может, но аппроксимация к текущей используемой частоте дискретизации звука делает своё чёрное дело.
    И я не уверен, что смогу что-то изменить. Ибо идей пока никаких нет.

  9. #8

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Работа в режиме 2 у ВИ53 неверно сделана. Проверял осцилографом господа - при записи в этом режиме в счетчик чисел 1,0 - она всегда встает в high output. Там есть моменты связынные с гейтом (она может выдать и дофига low output если погода на марсе сложится удачно ибо гейт асинхронен). Но вообщем для задачи заэмулировать ВИ53 в режиме звука = запись в режиме 2 в счетчик чисел 1 или 0 должна приводить output в high на ближайшем из событий WR фронт сигнала + тактовый спад (уупс, тут не фронт), но можно с этим сильно не мучаться, у нас ведь не fpga, а просто эмулятор). Этого будет более чем достаточно (кажется я замучал уже гида с этой менестрелью, и не только его одного, Никита на очереди с эмулятором Неона)
    На чем можно проверить эмулятор: Вот бинарник https://github.com/blairecas/bk_test...se/vi53vol.bin сейчас в эмуляторе он работать не будет (или будет криво). Там задумывалось нажимаешь кнопку 1 скажем и громкость звука максимальная, а если нажать 9 то минимальная. На реальной работает, в эмуляторе ну неоч.. ибо там "глушится" ВИшка через запись числа 1 в порт. Что на эмуляторе приводит не к глушению, а к чему-то еще к чему приводить не должно.

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

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    запись в режиме 2 в счетчик чисел 1 или 0 должна приводить output в high
    Вообщем Гид - плиз, сделай вот это. Могу тебе осцилографом натыкать в реальную ВИ53 в которую записали эти числа.

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

    Для чего тут режим 2 (одиночный импульс шириной в такт) нужен - нуууу.. а кто его знает. Вдрут захочется
    Последний раз редактировалось BlaireCas; 16.02.2025 в 13:42.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  10. #9

    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    613
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    176
    Поблагодарили
    136 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я чё-то туплю немного. Поэтому буду задавать туповатые вопросы.
    Но, во-первых, алгоритм эмуляции ВИ53 я взял из MAME, почти как есть, с одним изменением - у меня выход инвертированный, т.е. там, где везде в документации написано output = high, у меня на выходе 0, чтобы звуковухе было хорошо и она не пердела.
    Во вторых, в исходниках было написано, что в режимах 2 и 3 в счётчик писать 1 запрещено, но если очень хочется, то можно.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    запись в режиме 2 в счетчик чисел 1 или 0 должна приводить output в high на ближайшем из событий WR фронт сигнала + тактовый спад
    что за ближайшее событие? которое после записи в счётчик или собственно запись в счётчик и есть ближайшее событие?
    т.е. вот мы записали в счётчик 1, по фронту WR, а потом надо ждать следующего WR, чтобы вывод стал high?
    Не могу понять пока, в каком месте исходник ковырять.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Могу тебе осцилографом натыкать в реальную ВИ53 в которую записали эти числа.
    У меня есть документация на 8253 и там есть диаграммы, я им верю.
    И вот насчёт вот этого ещё:
    Цитата Сообщение от BlaireCas Посмотреть сообщение
    При работе в режиме 3 и значении счетчика 2 должно все-же выдавать свои 500кГц частоту
    У меня передискретизация в текущую выбранную частоту дискретизации вывода, допустим в 44100, делается просто путём выборки редких сэмплов из частоты 500кГц, той же амплитуды, чтобы было быстрее и меньше расчётов проводить. Поэтому будет пердёж, для таких больших частот. Тут надо какое нибудь БПФ применять, или ещё что-нибудь. А мне думать лень, чтобы было красиво и не так затратно.

  11. #10

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    485
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    что за ближайшее событие? которое после записи в счётчик или собственно запись в счётчик и есть ближайшее событие?
    Как-то криво сказал. Вообщем вот как смотрится на осцилографе. Вверху выход счетчика, внизу WR.
    Написал тестовый код очень простой, он устанавливает счетчики в режим 2 и последовательно записывает числа 2 и 1
    Код:
    	mov	#177714, R5
    10$:	mov	#^C^B1000000000000010, (R5)	; both chips, counter 0, value = 2
    	mov	#^C^B1001000000000010, (R5)	; ~WR high
    	wait
    	mov	#^C^B1000000000000001, (R5)	; both chips, counter 0, value = 1
    	mov	#^C^B1001000000000001, (R5)	; ~WR high
    	wait
    	br	10$

    2 картинки с сигналами

    [свернуть]

    То-есть запись числа 1 сразу выкидывает выход в high на ближайшем видимо low WR + тактовоe не дожидаясь поднятия WR.
    А возвращение к нормальному режиму работы - будет честно ожидать поднятия WR, затем загрузка счетчика и тд

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

    Цитата Сообщение от gid Посмотреть сообщение
    в режимах 2 и 3 в счётчик писать 1 запрещено, но если очень хочется, то можно
    Ну это простой способ заглушить канал если записать в режиме 2 единицу (ну или ноль).
    Зачем вообще нужен режим 2 - ну учитывая что в менестрели стоит RC-фильтр - это относительно простенький ЦАП на несколько уровней громкости. Где это применить пока неизвестно (и так есть-же ковокс/AY)
    Последний раз редактировалось BlaireCas; 19.02.2025 в 10:01.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

Страница 18 из 22 ПерваяПервая ... 141516171819202122 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Отличия БК-0011М от БК-0010(01)?
    от nzeemin в разделе БК-0010/0011
    Ответов: 22
    Последнее: 30.03.2021, 18:47
  2. БК-0010/0011: Разное
    от CD-Inc в разделе БК-0010/0011
    Ответов: 73
    Последнее: 30.07.2012, 16:58
  3. Начало выпуска БК-0011 и БК-0011М
    от dk_spb в разделе БК-0010/0011
    Ответов: 6
    Последнее: 14.10.2010, 14:22
  4. Отличие 0011 и 0011М
    от Kronshou в разделе БК-0010/0011
    Ответов: 11
    Последнее: 17.01.2010, 22:24
  5. Москва - куплю все связанное с БК-0010/0011
    от kt315b в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 04.10.2008, 05:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •