Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19

Тема: AY-3-8910 in FPGA

  1. #1
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    752
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

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

  3. #2
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    I'm not sure, but...

    // tone generator
    cnt_a <= cnt_a + 1;
    if(cnt_a==period_a) <-----
    begin
    out_a <= ~out_a;
    cnt_a <= 0;
    end

    Is this correct? If next loaded period will be less than current cnt_a value, then cnt_a will count to maximum. Does real ay have this feature?

    May be there need some shadow registers for period_a, etc... ?

  4. #3
    Moderator
    Регистрация
    25.11.2007
    Адрес
    Симферополь
    Сообщений
    2,164
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    if(cnt_a==period_a) <-----
    begin
    out_a <= ~out_a;
    cnt_a <= 0;
    end
    а чем тебе код не понравился? все правильно -код внутри бегина будет выполнятся только в конце периода - будет менять состояние вывода на противоположное и сбрасывть счетчик этого самого периода. что именно тут тебе не понравилосЬ? тем более это код из работающего проекта.
    Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
    Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
    ZX Evo 4Mb- в строю.
    Speccy2010 v1
    Специалист (пока готовлюсь к восстановлению).
    Это все мое!
    Родное!
    Все люблю на свете я! Это родина моя!

  5. #4
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    мне не понравилось то, что само значение period_a может быть поменяно в любой момент. представь, что оно было 512. счетчик досчитал только до 300, а программер вбил новое значение period_a=256. тогда счетчик будет считать аж до 4095. не думаю что это правильно и хорошо.
    я же предлагаю сделать доп. регистр period_a_, который обновлять только в конце периода. либо, на самый крайний случай, поставить не ==, а >=.
    Цитата Сообщение от balu_dark Посмотреть сообщение
    тем более это код из работающего проекта.
    тем более)) не спорю, да, пищать и шипеть он будет
    Последний раз редактировалось psb; 17.02.2010 в 11:34.

  6. #5
    Veteran Аватар для molodcov_alex
    Регистрация
    13.03.2006
    Адрес
    Колпино
    Сообщений
    1,250
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пожалуйте кусочек анрила:
    Код:
          if (++ta >= fa) ta = 0, bitA ^= -1;
          if (++tb >= fb) tb = 0, bitB ^= -1;
          if (++tc >= fc) tc = 0, bitC ^= -1;
    И кусочек эмулятора Бульбы:
    Код:
    inc(Ton_Counter_A.Hi);
    if Ton_Counter_A.Hi >= RegisterAY.TonA then
     begin
      Ton_Counter_A.Hi := 0;
      Ton_A := Ton_A xor 1
     end;
    inc(Ton_Counter_B.Hi);
    if Ton_Counter_B.Hi >= RegisterAY.TonB then
     begin
      Ton_Counter_B.Hi := 0;
      Ton_B := Ton_B xor 1
     end;
    inc(Ton_Counter_C.Hi);
    if Ton_Counter_C.Hi >= RegisterAY.TonC then
     begin
      Ton_Counter_C.Hi := 0;
      Ton_C := Ton_C xor 1
     end;
    Последний раз редактировалось molodcov_alex; 17.02.2010 в 11:16.
    ZX Spectrum forever!

  7. #6
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну вот, так правильнее. если не теневой регистр (хз как по правде надо), то хотя бы сравнение не жесткое

  8. #7
    Moderator
    Регистрация
    25.11.2007
    Адрес
    Симферополь
    Сообщений
    2,164
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    либо, на самый крайний случай, поставить не ==, а >=.

    тем более)) не спорю, да, пищать и шипеть он будет
    ну теперь то я тебя понял
    Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
    Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
    ZX Evo 4Mb- в строю.
    Speccy2010 v1
    Специалист (пока готовлюсь к восстановлению).
    Это все мое!
    Родное!
    Все люблю на свете я! Это родина моя!

  9. #8
    Master Аватар для syd
    Регистрация
    21.11.2006
    Адрес
    Киев
    Сообщений
    618
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть еще реализация от MikeJ на VHDL тут http://www.fpgaarcade.com/library.htm (точнее две реализации). Так вот, у меня почему-то музыка из Treasure Island Dizzy на всех этих трех реализациях играет не корректно, слышно только шум. Кто-то может это проверить у себя. Или намекнуть, чем эта музыка отличается от остальных.
    Speccy2007 v1.06
    Speccy2010 v1.00

  10. #9
    Guru Аватар для bigral
    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от syd Посмотреть сообщение
    Так вот, у меня почему-то музыка из Treasure Island Dizzy на всех этих трех реализациях играет не корректно, слышно только шум. Кто-то может это проверить у себя. Или намекнуть, чем эта музыка отличается от остальных.
    Странно, неужели абсолютно идентичные сигналы на выходе у всех реализаций? Это наталкивает на мысль о том что какая-то часть схемы содрана у всех реализаций с одной. Возможно в самой схеме подключения AY-ка существует проблема и какая нибудь хакерская схема адресации AY-ка в этой Treasure Island Dizzy используется.

  11. #10
    Master Аватар для syd
    Регистрация
    21.11.2006
    Адрес
    Киев
    Сообщений
    618
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сигналы на выходе просто похожи, не идентичны. Возможно глюк у меня в схеме, по-этому и прошу проверить. Во всех остальных играх, которые смотрел, все ок.
    Speccy2007 v1.06
    Speccy2010 v1.00

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Dendy on FPGA?
    от Ewgeny7 в разделе Nintendo
    Ответов: 29
    Последнее: 04.11.2009, 17:55
  2. Sega на FPGA
    от AlexBel в разделе SEGA
    Ответов: 4
    Последнее: 03.03.2009, 02:20
  3. ATARI 2600 on FPGA
    от vano в разделе Atari
    Ответов: 1
    Последнее: 27.12.2008, 15:03
  4. NES на FPGA
    от AlexBel в разделе Nintendo
    Ответов: 7
    Последнее: 05.12.2008, 16:44
  5. Atari ST(E) на FPGA...
    от ILoveSpeccy в разделе Atari
    Ответов: 6
    Последнее: 26.08.2008, 20:55

Ваши права

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