Приветствую Вас Гость | RSS


Главная страница » Немного о Beeper - ZX-Форум » Регистрация » ВходПонедельник
2017-10-23
19:54:16
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
ZX-Форум » Unreal Speccy переехал http://dlcorp.nedopc.com/viewforum.php?f=8 » Предложения » Немного о Beeper
Немного о Beeper
DoronettyДата: Вторник, 2009-05-12, 17:01:47 | Сообщение # 1
Юзер
Группа: Человеки
Сообщений: 11
Репутация: 0
Статус: Offline
Давно хотел сказать, но всё как-то забывал. Есть одна игра (может это и ещё где-то встречается, но не встечал) - Galaxian, звук бипера в которой эмулируется почти всеми известными эмуляторами (и Unreal не исключение) неправильно: это происходит при выборе уровня или между попытками - в эмуляторах звучит один звук, а в реале - два (если не ошибаюсь увеличенная кварта). Единственный эмулятор, который корректно воспроизводил эти звуки, был ДОСовский R80 (ксатати, он хорошо работает под DosBox, так что можно послушать).
Отсюда вопрос: можно ли в Unreal'е сделать корректный звук? У меня даже где-то исходники звука от R80 валялись, если надо happy


Вот такие вот котятки..пирожковые!
 
deathsoftДата: Вторник, 2009-05-12, 18:07:06 | Сообщение # 2
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Унриал эмулирует звук потактово с одного бита порта FE, т.ч. эмуляция вполне точная, если игра использует 2 бита, то вот и причина другого звучания, на скорпионе например на выход бипера подключены 2 бита, собственно бипер и выход магнитофона через резисторы с разным весом.

Но это на столько минорная проблема, что ее вес при фиксе остальных багов будет минимальный. Есть куда более существенные баги.

Можно кстати посмотреть что игра выводит в порт ФЕ и сколько бит там меняется (в унриале поставить брекпоинт на порт ФЕ). Если все дело в 2х битах - то это легко эмулируется.

Сообщение отредактировал deathsoft - Вторник, 2009-05-12, 19:15:10
 
Black_CatДата: Вторник, 2009-05-12, 19:09:59 | Сообщение # 3
Не умею ничего делать, потому учу
Группа: Заблокированные
Сообщений: 659
Репутация: -14
Статус: Offline
Quote (deathsoft)
если игра использует 2 бита, то вот и причина другого звучания

Действительно, в оригинальных Спектрумах выход бипера имеет 4 уровня амплитуды, но два дополнительных уровня амплитуды отличаются очень незначительно от уровней определяемых битом D4. Сомнительно, что это можно услышать просто так, тем более через внутренний спикер, который к тому же из-за порога открытия транзистора делает невозможным различие нижних двух уровней амплитуды. Т.е. внутренний спикер оригинального Спектрума может воспроизводить только три градации амлитуды сигнала, при том второй голос, определяемый битом D3 имеет раз в 20-30 меньшую амплитуду и сомнительно что его так уж хорошо слышно через спикер. Скорее всего дело в том, что эмуляторов, делающих правильное смешения по амплитуде D3 И D4 просто не существует. Среди отечественных компьютеров тоже нет ни одного, который делает это смешение правильно, поэтому если сделать точную эмуляцию амплитуды, то полученный сигнал ты скорее всего не узнаешь, т.к. он будет отличаться от того, к которому ты привык. Т.е. суть в том, что ты привык к неправильному сигналу. Компромиссным решением может быть вариант, реализованный в компьютере Феникс, где D3 даёт половинную амплитуду от D4, образуя 2х битый линейный ЦАП. Вопрос токо будет ли deathsoft этим заморачиваться.


"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
 
нолькаДата: Вторник, 2009-05-12, 20:57:14 | Сообщение # 4
рОвный
Группа: Человеки
Сообщений: 712
Репутация: 5
Статус: Offline
нафлудили тут.. вопрос шел про конкретную игрушку, вот конкретно по ней и надо копать.

я проснулся среди ночи и понял, что всё...
всё идет по плану
 
deathsoftДата: Вторник, 2009-05-12, 23:23:22 | Сообщение # 5
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Посмомтрел я galaxian. Под унриалом звук пик, под r80 пик-пик-пик. Частота звука везде одинаковая. Все отличия только в том что в r80 фрагмент проигрывается 3 раза.

Для генерации звука используется следующий код (1 бит):

Code
ld a,(bc)
xor 10
out (fe),a
ld (bc),a

Посмотрел, в r80 3 писка просто из за тормозов с клавиатурой, т.е. это 3 писка уже после начала уровня. А не на выборе уровня.

Сообщение отредактировал deathsoft - Среда, 2009-05-13, 00:13:41
 
deathsoftДата: Среда, 2009-05-13, 00:12:42 | Сообщение # 6
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Quote (Doronetty)
Отсюда вопрос: можно ли в Unreal'е сделать корректный звук? У меня даже где-то исходники звука от R80 валялись, если надо

Приаттач wav файл с реала, посмотрю чем там звук отличается от унриаловского.
 
DoronettyДата: Вторник, 2009-10-06, 14:40:33 | Сообщение # 7
Юзер
Группа: Человеки
Сообщений: 11
Репутация: 0
Статус: Offline
Немного задержался с ответом biggrin
Ввиду отсутствия рабочего реала кидал реквест в говнофорум, чтобы помогли оцифровать звуки с бипера. В итоге так никто и не помог sad
Посему выкладываю оцифровку с R80 (поверьте на слово, на реальном 48 всё звучало именно так) и для сравнения что выдаёт Unreal. Звуковысотность отличается, но это скорее всего разница в таймингах.
Прикрепления: Sounds.rar(208Kb)


Вот такие вот котятки..пирожковые!
 
deathsoftДата: Вторник, 2009-10-06, 16:54:52 | Сообщение # 8
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Ну я могу проверит на реальном ленинград 1 - 48к. Думаю разницы не будет никакой ибо все совковые (распространенные) клоны без тормозной памяти и звук везде будет такойже как в унриале. В R80 я смотрел и вриал спектруме - и вроде даже картинки выкладывал сюда.

Построю график из аттча и из униала для сравнения.

Сообщение отредактировал deathsoft - Вторник, 2009-10-06, 16:56:03
 
deathsoftДата: Воскресенье, 2009-10-11, 19:13:51 | Сообщение # 9
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Репутация: 9
Статус: Offline
Собственно вот звук записаный из этой игры на реальном ленинграде-1 мною.
оцифровка 192кгц, float32 для прослушивания можно сконвертировать в любой доступный для звуковой карты формат. Просматривать в редакторе audacity (http://audacity.sourceforge.net/) (или в любом другом понимающием такой формат)
galaxians-sound.rar

Посмотрел что в приаттаченых wav файлах от унриала и R80 - в R80 на прямоугольных импльсах наблюдается "паразитная" широтно импульсная модуляция, которая обусловлена "медленной" памятью фирменного спектрума, в унриаэе и в отечественных клонах "медленной" памяти нету в принципе, поэтому и звук другой - полностью соответствует коду по его генерации.

Сообщение отредактировал deathsoft - Воскресенье, 2009-10-11, 19:30:44
 
ZX-Форум » Unreal Speccy переехал http://dlcorp.nedopc.com/viewforum.php?f=8 » Предложения » Немного о Beeper
Страница 1 из 11
Поиск:

the DLCorp © 2006