ZXNet эхоконференция «zxnet.soft»


тема: Исправление плеера Pro Tracker 3.51



от: Ivan Roshin
кому: All
дата: 11 Apr 2001
Hello, All!

Как исправить плеер Pro Tracker 3.51, чтобы команды 9 и A,
изменяющие частоту огибающей, обрабатывались правильно.

В исходном тексте плеера имеется такой фрагмент:

;--- install_E ---

E_ins0 JR Ei_form
Esl_ids LD HL,0 ;stp_sld_env
LD (Esl_sds+1),HL
Esl_ist LD A,0 ;stp_sld_p
LD (Esl_stp+1),A <──────────────────────────── (1)
LD (Esl_sts+1),A
LD A,#18
LD (E_ins0),A

Ei_form LD A,0 ;env_form
LD (E_form+1),A
AND A
JR Z,temp
Ei_frq LD HL,0 ;env_frq
LD (E_frq+1),HL
XOR A
LD L,A
LD H,A
LD (Ei_form+1),A
LD (Esl_stp+1),A <──────────────────────────── (2)
LD (Esl_frq+1),HL

Что мы видим? (1) - в переменную по адресу Esl_stp+1
помещается один из параметров команды 9 или A. Далее, если эта
команда стояла на ноте, использующей огибающую (т.е. Ei_form+1
не 0), то выполняется фрагмент программы, содержащий (2) -
обнуление переменной Esl_stp+1. Параметр команды обнуляется -
и в результате изменения частоты огибающей не будет.

Как исправить? Рецепт, который я приводил в описании
прошлой версии BestView (обнуление байта по смещению #4C1 от
начала плеера), фактически отменял команду (2). При этом
команды 9 и A начинали работать, но - не заканчивали изменять
частоту, когда встречалась следующая нота, использующая
огибающую. Так что все равно некоторые модули звучали
неправильно.

Для окончательного исправления фрагмент плеера надо
переделать так:

;--- install_E ---

E_ins0 JR Ei_form
Esl_ids LD HL,0 ;stp_sld_env
LD (Esl_sds+1),HL
Esl_ist LD A,0 ;stp_sld_p
LD (Esl_stp+1),A
LD (Esl_sts+1),A

LD A,(Ei_form+1)
AND A
JR Z,BUG_F3

LD A,#3E
LD (BUG_F2),A

BUG_F3 LD A,#18
LD (E_ins0),A

Ei_form LD A,0 ;env_form
LD (E_form+1),A
AND A
JR Z,temp
Ei_frq LD HL,0 ;env_frq
LD (E_frq+1),HL
XOR A
LD L,A
LD H,A
LD (Esl_frq+1),HL
LD (Ei_form+1),A

BUG_F2 JR BUG_F1

LD A,#18
LD (BUG_F2),A
JR temp

BUG_F1 LD (Esl_stp+1),A

Обратите внимание, что длина плеера при этом немного
увеличится.

С уважением, Иван Рощин.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Повесть - Лето на даче 3.
Хакеры. Новое поколение (часть 1)
Игротека - BARD-S TALE. Продолжение "штурма" классической РПГ.

В этот день...   7 декабря