Немного о Beeper

Wishlist for users

Postby Doronetty » 12 May 2009, 16:01

Давно хотел сказать, но всё как-то забывал. Есть одна игра (может это и ещё где-то встречается, но не встечал) - Galaxian, звук бипера в которой эмулируется почти всеми известными эмуляторами (и Unreal не исключение) неправильно: это происходит при выборе уровня или между попытками - в эмуляторах звучит один звук, а в реале - два (если не ошибаюсь увеличенная кварта). Единственный эмулятор, который корректно воспроизводил эти звуки, был ДОСовский R80 (ксатати, он хорошо работает под DosBox, так что можно послушать).
Отсюда вопрос: можно ли в Unreal'е сделать корректный звук? У меня даже где-то исходники звука от R80 валялись, если надо happy
Вот такие вот котятки..пирожковые!
Doronetty
 
Posts: 12
Joined: 26 Feb 2009, 11:52
Group: Registered users

Postby deathsoft » 12 May 2009, 17:07

Унриал эмулирует звук потактово с одного бита порта FE, т.ч. эмуляция вполне точная, если игра использует 2 бита, то вот и причина другого звучания, на скорпионе например на выход бипера подключены 2 бита, собственно бипер и выход магнитофона через резисторы с разным весом.

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

Можно кстати посмотреть что игра выводит в порт ФЕ и сколько бит там меняется (в унриале поставить брекпоинт на порт ФЕ). Если все дело в 2х битах - то это легко эмулируется.
Last edited by deathsoft on 12 May 2009, 18:15, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby Black_Cat » 12 May 2009, 18:09

deathsoft wrote:если игра использует 2 бита, то вот и причина другого звучания

Действительно, в оригинальных Спектрумах выход бипера имеет 4 уровня амплитуды, но два дополнительных уровня амплитуды отличаются очень незначительно от уровней определяемых битом D4. Сомнительно, что это можно услышать просто так, тем более через внутренний спикер, который к тому же из-за порога открытия транзистора делает невозможным различие нижних двух уровней амплитуды. Т.е. внутренний спикер оригинального Спектрума может воспроизводить только три градации амлитуды сигнала, при том второй голос, определяемый битом D3 имеет раз в 20-30 меньшую амплитуду и сомнительно что его так уж хорошо слышно через спикер. Скорее всего дело в том, что эмуляторов, делающих правильное смешения по амплитуде D3 И D4 просто не существует. Среди отечественных компьютеров тоже нет ни одного, который делает это смешение правильно, поэтому если сделать точную эмуляцию амплитуды, то полученный сигнал ты скорее всего не узнаешь, т.к. он будет отличаться от того, к которому ты привык. Т.е. суть в том, что ты привык к неправильному сигналу. Компромиссным решением может быть вариант, реализованный в компьютере Феникс, где D3 даёт половинную амплитуду от D4, образуя 2х битый линейный ЦАП. Вопрос токо будет ли deathsoft этим заморачиваться.
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!".
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Black_Cat
Не умею ничего делать, потому учу
 
Posts: 659
Joined: 17 Apr 2007, 13:19
Group: Removed

Postby нолька » 12 May 2009, 19:57

нафлудили тут.. вопрос шел про конкретную игрушку, вот конкретно по ней и надо копать.
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby deathsoft » 12 May 2009, 22:23

Посмомтрел я galaxian. Под унриалом звук пик, под r80 пик-пик-пик. Частота звука везде одинаковая. Все отличия только в том что в r80 фрагмент проигрывается 3 раза.

Для генерации звука используется следующий код (1 бит):
Code: Select all
ld a,(bc)
xor 10
out (fe),a
ld (bc),a


Посмотрел, в r80 3 писка просто из за тормозов с клавиатурой, т.е. это 3 писка уже после начала уровня. А не на выборе уровня.
Last edited by deathsoft on 12 May 2009, 23:13, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 12 May 2009, 23:12

Doronetty wrote:Отсюда вопрос: можно ли в Unreal'е сделать корректный звук? У меня даже где-то исходники звука от R80 валялись, если надо

Приаттач wav файл с реала, посмотрю чем там звук отличается от унриаловского.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby Doronetty » 06 Oct 2009, 13:40

Немного задержался с ответом biggrin
Ввиду отсутствия рабочего реала кидал реквест в говнофорум, чтобы помогли оцифровать звуки с бипера. В итоге так никто и не помог sad
Посему выкладываю оцифровку с R80 (поверьте на слово, на реальном 48 всё звучало именно так) и для сравнения что выдаёт Unreal. Звуковысотность отличается, но это скорее всего разница в таймингах.
Attachments
Sounds.rar
(208.29 KB) Downloaded 825 times
Вот такие вот котятки..пирожковые!
Doronetty
 
Posts: 12
Joined: 26 Feb 2009, 11:52
Group: Registered users

Postby deathsoft » 06 Oct 2009, 15:54

Ну я могу проверит на реальном ленинград 1 - 48к. Думаю разницы не будет никакой ибо все совковые (распространенные) клоны без тормозной памяти и звук везде будет такойже как в унриале. В R80 я смотрел и вриал спектруме - и вроде даже картинки выкладывал сюда.

Построю график из аттча и из униала для сравнения.
Last edited by deathsoft on 06 Oct 2009, 15:56, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 11 Oct 2009, 18:13

Собственно вот звук записаный из этой игры на реальном ленинграде-1 мною.
оцифровка 192кгц, float32 для прослушивания можно сконвертировать в любой доступный для звуковой карты формат. Просматривать в редакторе audacity (http://audacity.sourceforge.net/) (или в любом другом понимающием такой формат)
galaxians-sound.rar

Посмотрел что в приаттаченых wav файлах от унриала и R80 - в R80 на прямоугольных импльсах наблюдается "паразитная" широтно импульсная модуляция, которая обусловлена "медленной" памятью фирменного спектрума, в унриаэе и в отечественных клонах "медленной" памяти нету в принципе, поэтому и звук другой - полностью соответствует коду по его генерации.
Last edited by deathsoft on 11 Oct 2009, 18:30, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users


Return to Предложения

Who is online

Users browsing this forum: No registered users and 8 guests

cron