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

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

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




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

Похожие статьи:
Кнопки - управление в газете.
NАTЯGGG - ЗEРКАЛО (продолжение).
Вступление - прошел почти год...
Планы - планы по колонизации луны.
Юмор - Анекдоты.

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3