Какой тулзой можно запихать имеющийся wav файл в спек для дальнейшего его воспроизведения на AY? Есть что-то такое под Шиндовс ?(можно и под люникс и под Дос, но предпочтительнее венда)
Вид для печати
Какой тулзой можно запихать имеющийся wav файл в спек для дальнейшего его воспроизведения на AY? Есть что-то такое под Шиндовс ?(можно и под люникс и под Дос, но предпочтительнее венда)
Да можно прямо так 8-битный закинуть и выводить с преобразованием по таблице, качество вполне сносное, почти 8 бит.
Использует все три канала сопроцессора.
А размер - 8 bit vs 4 bit ?
Ну это всё теория. А на практике на уровне асма я не шарю, как там управлять АЮшкой. Какие команды в какой порт слать, чтоб уровнями громкости оно колыхало.
Интересуясь про софтину, я в том числе и подразумевал компиляцию вместе с ней и плеера.
К тому же 8 бит на квант слишком расточительно.
Всё-таки экономия на полубайтах в два раза - существенная.
Решил глянуть, как делали в Ламбаде. А там однобитный звук выводится в AY. :v2_conf2: Я всегда думал что четырёхбитный. Ну, раз в AY, значит четырёхбитный. Логично же.
Подробней, что там
А тама вот чтоВо всех регистрах AY нули, только в амплитуде канала B = $0F. И в регистр миксера пишется то $FF то $FD. То есть канал B то включается, то выключается.Код:ORG 0FB0CH
LOOP1
LD C,10
LOOP2
DEC C
JR NZ,LOOP2
RLC (HL)
JR C,THEN1
PUSH BC
CALL OUT0
POP BC
JR NEXT1
THEN1
PUSH BC
CALL OUT1
POP BC
NEXT1
DJNZ LOOP1
INC HL
DEC DE
LD B,8
LD C,8
LD A,D
OR E
JR NZ,LOOP2
EI
RET
OUT0
LD BC,0FFFDH
LD A,7 ; Регистр миксера
OUT (C),A
LD BC,0BFFDH
LD A,0FDH ; Выключаем B
OUT (C),A
RET
OUT1
LD BC,0FFFDH
LD A,7
OUT (C),A
LD BC,0BFFDH
LD A,0FFH ; Включаем
OUT (C),A
RET
[свернуть]
- - - Добавлено - - -
Получается, во все регистры пишем 0, в миксер (седьмой) пишем FF. Меняем амплитуду B (одинадцатый регистр) - вот нам и цифровой четырёхбитный звук? Логично же?
- - - Добавлено - - -
Это я на это отвечал.
Да, в ламбаде на удивление чистый звук, как для однобитного. Высокая степень дискретизации значит, + сэмпл гармошки, ей шибко гладая синусоида и не нужна.
Только вот каким образом записать вавку, чтоб еë в текстовом редакторе открыть в представлении по два четырëхбитных состояния на байт...
ну можно не париться и отгрузить 8-битный сэмпл, а "сжатие" сделать уже на Спектруме:
BC указываем как длину 8-бит данных, поделенную пополам, т.к. в один байт выходного массива запихивается два исходного.Код:LD DE,8BIT_DATA
LD HL,4BIT_DATA
LD BC,LEN ;8BIT/2
M1 LD A,(DE)
AND #F0
LD (HL),A
INC DE
LD A,(DE)
AND #F0
RRCA x4
OR (HL)
LD (HL),A
INC DE
CPI
JP PE,M1