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

User Tag List

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 32

Тема: BEEP (freq, ms) для бипера, AY и даже Windows

  1. #21
    Master Аватар для Eagle
    Регистрация
    14.09.2014
    Адрес
    г. Гусь-Хрустальный
    Сообщений
    603
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    С длительностью всё гораздо сложнее. Не пойму зачем Мутель варьирует длительность звука в зависимости от его частоты (умножает на fr*6).
    Наверное потому, что чем больше частота, тем короче период волны, а счётчик длительности считает эти периоды, что весьма топорно. Сам делал еще во времена программирования под орион программу, которая считает не количество периодов, а количество единиц времени (всё было выверено по тактам), как результат длительность звучания от частоты звука перестала зависеть. Ежели исходники откопаю, надо?
    Последний раз редактировалось Eagle; 30.09.2015 в 08:14.

    Скрытый текст

    ZX Spectrum +2 +divIDE + BDI
    Profi 1024k plus
    Scorpion ZS-256 Turbo+
    ZX Evolution rev.C2+NeoGS+SDCard HxC Floppy Emulator
    ZX Evolution rev.C2+ZXM-SoundCard Extreme+ZXM-MoonSound
    AVR ZX Spectrum V2.0
    Орион 128
    [свернуть]

  2. #22
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,802
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eagle Посмотреть сообщение
    Ежели исходники откопаю, надо?
    Надо!

  3. #23
    Master Аватар для Eagle
    Регистрация
    14.09.2014
    Адрес
    г. Гусь-Хрустальный
    Сообщений
    603
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что делают команды КР580ВМ80А забыл напрочь.
    Кое-что откопалось с кассет :
    Код:
    BEEP:MVI A,0FH
    STA FREQU
    LXI H,250H
    SHLD DLITB
    MVI A,1FH
    LBEEP1:INR A
    CPI 70H
    STA FREQU
    PUSH PSW
    CALL BPBEEP
    POP PSW
    JNZ LBEEP1
    RET
    BPBEEP:LHLD DLITB
    LDA FREQU
    MOV B,A
    MOV C,A
    MVI D,0
    MVI E,0FFH
    LBEEP2:MOV C,B
    EI
    MVI A,7
    STA PORT
    CALL PBEEP
    CMP D
    RZ
    MOV C,B
    DI
    MVI A,0
    STA PORT
    CALL PBEEP
    CMP D
    JNZ LBEEP2
    RET
    PBEEP:DCR C
    MOV A,C
    CMP E
    RZ
    DCX H
    MOV A,L
    ORA H
    JNZ PBEEP
    RET
    DLITB:DW 0
    FREQU:NOP

    Скрытый текст

    ZX Spectrum +2 +divIDE + BDI
    Profi 1024k plus
    Scorpion ZS-256 Turbo+
    ZX Evolution rev.C2+NeoGS+SDCard HxC Floppy Emulator
    ZX Evolution rev.C2+ZXM-SoundCard Extreme+ZXM-MoonSound
    AVR ZX Spectrum V2.0
    Орион 128
    [свернуть]

  4. #24
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну что, господа, есть смелые помочь мне с вычислением длительности звука для ZX?

    В аттаче реализация звука для PC и ZX. Частоту я (кажется) расколол (хотя не помешало бы проверить), а вот длительность явно указал наобум.

    Если никто не захочет заморачиваться - придётся оставить как есть. Но тут понадобится знание низкого уровня ПЦ и желание поковыряться.
    Вложения Вложения
    • Тип файла: zip Snd1.zip (19.1 Кб, Просмотров: 73)

  5. #25
    Master Аватар для Eagle
    Регистрация
    14.09.2014
    Адрес
    г. Гусь-Хрустальный
    Сообщений
    603
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Ну что, господа, есть смелые помочь мне с вычислением длительности звука для ZX?
    Такты посчитать да перемножить на циклы и частоту процессора? К моей программке применимо, только EI и STA PORT заменить на OUT.
    Последний раз редактировалось Eagle; 07.10.2015 в 00:51.

    Скрытый текст

    ZX Spectrum +2 +divIDE + BDI
    Profi 1024k plus
    Scorpion ZS-256 Turbo+
    ZX Evolution rev.C2+NeoGS+SDCard HxC Floppy Emulator
    ZX Evolution rev.C2+ZXM-SoundCard Extreme+ZXM-MoonSound
    AVR ZX Spectrum V2.0
    Орион 128
    [свернуть]

  6. #26
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Eagle, я просто не понял пока как вычислить длину звука (в ms) для ПЦ. А перевести в ms для Спека я уже бы как-то осилил (наверно). С этим и прошу помощи.

    Видишь, jerri, в основном затыки вот такого плана как этот. Из-за них проект порой откладывается на года. Хотя ещё не написано ни строчки кода на Обероне, камне преткновения.

  7. #27
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Найди десять отличий! Оцениваем заставку болдердаша со звуком, не забывая сравнивать с оригиналом. Для смены палитры в ПЦ-версии жмём F1 и F2, в ZX - соответственно просто 1 и 2.

    P.S. Люблю заставки портировать.
    Вложения Вложения
    • Тип файла: zip Dash.zip (1.2 Кб, Просмотров: 86)

  8. #28
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    207 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Видишь, jerri, в основном затыки вот такого плана как этот. Из-за них проект порой откладывается на года. Хотя ещё не написано ни строчки кода на Обероне, камне преткновения.
    ты мне рассказываешь про сложности конверсии игр? я этим занимаюсь с 1996 года.
    прости, но у меня выпущенных проектов больше чем у тебя.
    так что не надо мне баяны вещать.
    С уважением,
    Jerri / Red Triangle.

  9. #29
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всё, всё, убедил - ты гораздо круче меня.

  10. #30
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,611
    Спасибо Благодарностей отдано 
    2,182
    Спасибо Благодарностей получено 
    140
    Поблагодарили
    106 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сообщаю, что успешно расколол частоту, формула работает и вычисляет правильно. Удалось обойтись без делений и даже без умножений. Интересно, что для одного звука значение я подобрал на слух и ошибся всего на единичку

    Но затык с длительностью. Вычитал, что на ПЦ из канала 0 (порт 40H) можно получить значение "тик таймера". Здесь же пишут, что он тикает 1193180 тактов в секунду. На практике у меня получается в два раза быстрее. Вот эта задержка должна работать 10 секунд, отрабатывает за 5. Ау, есть знатоки таймерных тонкостей ПЦ? Тут ведь люди эмули пишут или как?
    Код:
    static unsigned get_timer (void)
    {{
     unsigned z;
    
     outportb (0x43, 0);
     z = inportb (0x40);
     return z = z | (inportb (0x40) << 8);
    }}
    
    void snd (unsigned fr, unsigned ln)
    {{
     unsigned timing; long LN=1193180*10; /* Делаем 10 сек, отрабатывает за 5 */
    
     timing = get_timer ();
     while (LN > 0) {
       unsigned time2 = get_timer ();
       LN -= (timing - time2);
       timing = time2;
     }
    }}
    P.S. Скорость таймера в игре не меняется, она стандартная - 18.2 раза в секунду (точное значение - 1193180/65536 раз в секунду).

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Усилитель для бипера...
    от Quest в разделе Звук
    Ответов: 17
    Последнее: 29.03.2013, 16:58
  2. MISTER BEEP – Z80
    от breeze в разделе Музыка
    Ответов: 2
    Последнее: 09.01.2012, 13:54
  3. My Beep Song....
    от Voxel в разделе Музыка
    Ответов: 25
    Последнее: 05.07.2010, 11:28
  4. новый трекер для бипера
    от alone в разделе Музыка
    Ответов: 2
    Последнее: 22.09.2009, 04:16
  5. Новости от Mr.Beep !!
    от breeze в разделе Музыка
    Ответов: 3
    Последнее: 29.01.2009, 01:23

Ваши права

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