User Tag List

Страница 10 из 22 ПерваяПервая ... 67891011121314 ... ПоследняяПоследняя
Показано с 91 по 100 из 217

Тема: Прикрутить YM2149F к IBM-PC?

  1. #91

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Какие-то шумы странные.
    Получается, доработка критичная и как до этого работало- хз.

    Как с паузой/возобновлением?
    Насчет шумов - а ты сделал, как посоветовал Ramiros - то есть выставить BC1, BDIR = 0, после загнать на шину дату (чтоб она там уже была), потом выставить BC1 и BDIR как надо (в зависимости что пишем регистр или дату) и еще раз записать дату.

    Доработка да, нужная, но у меня до нее неплохо работал вариант, посоветованный опять же Ramiros: после каждого фрейма перевести AY в режим записи адреса и записать туда 0-й адрес. А у тебя не работал

    С паузой/воспроизведением все хорошо. Но не очень со стопом. Например у меня выбран модуль, он играет. Я жму "СТОП". Потом жму "ПЛЭЙ" и он начинает не с 0 секунды, а с секунды 1 или даже 2 играть. При этом если щелкать мышкой два раза на этом же модуле по плейлисту, то начинает играть с 0 секунды.

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

  3. #92

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Насчет шумов - а ты сделал, как посоветовал Ramiros - то есть выставить BC1, BDIR = 0, после загнать на шину дату (чтоб она там уже была), потом выставить BC1 и BDIR как надо (в зависимости что пишем регистр или дату) и еще раз записать дату.
    Ну вроде как у тебя в 79 посте описано в самом конце так и сделал:

    Код:
        void Reset()
        {
          Port->Control(CMD_RESET_STOP);
          Port->Control(CMD_RESET_START);
          Delay();
          Port->Control(CMD_RESET_STOP);
        }
    
        void Write(uint_t reg, uint_t val)
        {
          Port->Control(CMD_SELECT_ADDR);
          Port->Data(reg);
          Port->Control(CMD_SELECT_DATA);
          Port->Data(val);
          Port->Control(CMD_WRITE_COMMIT);
        }
    Значения констант:
    Код:
      BOOST_STATIC_ASSERT(CMD_SELECT_ADDR == 0xfd);
      BOOST_STATIC_ASSERT(CMD_SELECT_DATA == 0xf9);
      BOOST_STATIC_ASSERT(CMD_WRITE_COMMIT == 0xfb);
      BOOST_STATIC_ASSERT(CMD_RESET_START == 0xf5);
      BOOST_STATIC_ASSERT(CMD_RESET_STOP == 0xfd);
    Цитата Сообщение от Tronix Посмотреть сообщение
    С паузой/воспроизведением все хорошо. Но не очень со стопом. Например у меня выбран модуль, он играет. Я жму "СТОП". Потом жму "ПЛЭЙ" и он начинает не с 0 секунды, а с секунды 1 или даже 2 играть. При этом если щелкать мышкой два раза на этом же модуле по плейлисту, то начинает играть с 0 секунды.
    Странно. А для обычного вывода (через карту) такое же поведение?

  4. #93

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Ну вроде как у тебя в 79 посте описано в самом конце так и сделал:

    Код:
        void Reset()
        {
          Port->Control(CMD_RESET_STOP);
          Port->Control(CMD_RESET_START);
          Delay();
          Port->Control(CMD_RESET_STOP);
        }
    
        void Write(uint_t reg, uint_t val)
        {
          Port->Control(CMD_SELECT_ADDR);
          Port->Data(reg);
          Port->Control(CMD_SELECT_DATA);
          Port->Data(val);
          Port->Control(CMD_WRITE_COMMIT);
        }
    В том то и дело, что не совсем так. Это первоначальный вариант с которым у меня вообще заиграло. А потом я доработал немного,

    Код:
    AD(0,1); //BC1=0, BDIR=0
     D(reg);
     AD(1,0); // BC1=1, BDIR=1
     D(reg);
    
     AD(0,1); //BC1=0, BDIR=0
     D(dat);
     AD(0,0); //BC1=0, BDIR=1
     D(dat);
     AD(0,1); //BC1=0, BDIR=0
    Видишь, сначала переводим YM в Inactive, потом посылаем на шину данных данные. Потом говорим YM что будем писать в него номер регистра и еще раз пишем на шину данных номер регистра. Так же и с данными.

  5. #94

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Видишь, сначала переводим YM в Inactive, потом посылаем на шину данных данные. Потом говорим YM что будем писать в него номер регистра и еще раз пишем на шину данных номер регистра.
    Т.е. по два раза все повторять?

  6. #95

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Т.е. по два раза все повторять?
    Да. Подожди, чо-то я запутался в константах. Ща проверяю

    ---------- Post added at 12:11 ---------- Previous post was at 12:08 ----------

    Код:
        void Write(uint_t reg, uint_t val)
        {
          Port->Control(CMD_WRITE_COMMIT);
          Port->Data(reg);
          Port->Control(CMD_SELECT_ADDR);
          Port->Data(reg);
    
          Port->Control(CMD_WRITE_COMMIT);
          Port->Data(val);
          Port->Control(CMD_SELECT_DATA);
          Port->Data(val);
          Port->Control(CMD_WRITE_COMMIT);
        }
    Походу как то так

    ---------- Post added at 12:13 ---------- Previous post was at 12:11 ----------

    Насчет поведения при стоп - воспроизведения чуть позже днем проверю, щаз нет возможности колонки включить.

    ---------- Post added at 12:15 ---------- Previous post was at 12:13 ----------

    Давай такую версию попробуем?

  7. #96

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Походу как то так
    2ba54a91d6b793aff65e6a0b70071c14 *zxtune-qt.exe

  8. #97

    Регистрация
    05.08.2008
    Адрес
    Магнитогорск
    Сообщений
    989
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    96
    Поблагодарили
    46 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    D(reg) по два раза делать необязательно, хотя она дает задержку между сигналами на BDIR, BC1.

    Есть еще один неочевидный момент, регистры тона двухбайтные, и обновляются за два этапа, т.е. за два обращения к LPT порту. Как извесно в винде интервалы через которые данные выпуливают в порт нестабильны, и если задержка между этими двумя передачами будет существенная, то будут искажения в генераторах тона. как с этим боротся я даже непредставляю.
    Здесь можно скачать актуальные версии Virtual Vector (VV)

  9. #98

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию



    Имхо, стало лучше. Правда я слушаю в наушниках (затычки) прямо с ковокса, так как колонки не могу пока включить.

    ---------- Post added at 12:37 ---------- Previous post was at 12:37 ----------

    С ковокса )))) С YM-LPT имелось ввиду конечно )

  10. #99

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Имхо, стало лучше. Правда я слушаю в наушниках (затычки) прямо с ковокса, так как колонки не могу пока включить.
    Ну, значит так и оставляю. Конечно, магия сплошная, но что поделать

  11. #100

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Еще немножко музыки с ZXTUNE by Vitamine:


    Мне кажется, вполне достойный саунд На этом наверное можно завершить. Я чуть позже выложу окончательную схему. Всех с наступающим

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

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

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

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

Похожие темы

  1. Куплю YM2149F
    от cmari в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 13.09.2010, 00:48
  2. Хочу прикрутить NEMO IDE к моему Speccy
    от ILoveSpeccy в разделе Внешние накопители
    Ответов: 15
    Последнее: 21.04.2010, 23:40
  3. AY38910 vs YM2149F
    от AlexBel в разделе Звук
    Ответов: 1
    Последнее: 10.01.2008, 19:44
  4. Продам 2 YM2149F и ещё кое-что
    от Lounge Lizard в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 13.08.2005, 04:17

Ваши права

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