Вход

Просмотр полной версии : Как улучшить прогу ?



ALKO
13.01.2010, 11:17
мне в бошку стукнула идея написать прогу иммитирующую звуки MusicBox(в самом низу закоментированы процедуры компилятора MCoder 48k):
http://vk.com/photo53856147_148983980
но вот только один недостаток состоит в том что прога медленно работает и слышен писк когда импульсы противоположны друг другу,а я еще хотел до большего количества голосов ее прокачать.(подобное писал в машинных кодах скорость выполнения была быстрее,но происходило искажение при смене тона одного из каналов)

jerri
13.01.2010, 13:29
картинок не вижу

Sinus
13.01.2010, 14:03
ALKO, выложи картинку куда-нибудь на нормальный картинко-хостинг, а не на фконтакте. например http://tinypic.com/

ALKO
13.01.2010, 17:19
прошу прощения...когда доберусь до нормального компа - выложу..
просто я пробую через терминал..

---------- Post added at 17:19 ---------- Previous post was at 17:16 ----------

проще говоря через банкомат лазию в инете.

molodcov_alex
13.01.2010, 20:39
картинок не вижуhttp://cs10249.vk.com/u53856147/101879153/x_a0285ca9.jpgэто оригиналТак видно?
На б/м нормальном хостинге: http://i076.radikal.ru/1001/35/38b2ec82b281.jpg

jerri
14.01.2010, 10:23
http://cs10249.vk.com/u53856147/101879153/x_a0285ca9.jpgэто оригиналТак видно?
На б/м нормальном хостинге:

так видно спасибо
по программе

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

ld ix,table

ld c,(ix)
ld b,(ix+1)
ld a,#18

m0
ld hl,0 //длительность ноты
ld e,(ix)
ld d,(ix+1)
inc ix
inc ix
m1
dec c
jr nz,m00
ld c,e
out (#fe),a
xor #18
m00
dec b
jr nz,m01
ld b,d
out (#fe),a
xor #18
m01
dec l
jr nz,m1
dec h
jr nz,m1

//здесь проверяем на окончание музыки

dec (ix)
inc (ix)
jr nz,m0
ret
table
db #20,#20,#20,#30,#20,#40,#10,#40,#20,#30,#30,#40
db 0

ALKO
14.01.2010, 16:56
а если я захочу увеличить кол-во войсов, это прийдется прибегнуть к PUSHам & POPам ?

jerri
14.01.2010, 21:37
не обязательно:)
можно чуть переписать код для получения нужного результата

сколько голосов тебе нужно?

вот тебе 4 голоса



ld ix,table

ld c,(ix)
ld b,(ix+1)
ld e,(ix+2)
ld d,(ix+3)


ld a,#18

m0
ld hl,0 //длительность ноты
m1
dec c
jr nz,m00
ld c,(ix)
out (#fe),a
xor #18
m00
dec b
jr nz,m01
ld b,(ix+1)
out (#fe),a
xor #18
m01
dec e
jr nz,m02
ld e,(ix+2)
out (#fe),a
xor #18
m02
dec d
jr nz,m03
ld d,(ix+3)
out (#fe),a
xor #18
m03
dec l
jr nz,m1
dec h
jr nz,m1

//здесь проверяем на окончание музыки
inc ix
inc ix
inc ix
inc ix




dec (ix)
inc (ix)
jr nz,m0
ret
table
db #20,#20,#20,#30,#20,#40,#10,#40,#20,#30,#30,#40
db 0


хотя конечно серьезные плееры делаются не так

ALKO
16.01.2010, 11:59
кому нибудь известно об исходниках движков музыки фирмы Code Masters (ATVsim,FastFood,SlotMachine,Soccer)? там задействованы два тона со сменой ширины импульса,по мере звучания верхний фронт уменьшается.


и любопытно как смогли симмитровать звук эл.гитары программеры от HEWSON (stormlord и cybernoid 2)

jerri
16.01.2010, 12:53
Берешь эмулятор unreal Speccy
грузишь Fastfood ждешь когда начинает играть музыка
жмешь Escape - и начинаешь реверс инженеринг

в Stormlord и Cybernoid 2 музыка для AY - тут тебе ASM или Soundtracker в помощь

ALKO
16.01.2010, 13:42
в Stormlord и Cybernoid 2 музыка для AY - тут тебе ASM или Soundtracker в помощь
не обязательно, возможно параллельно комп посылает команды на AY, но у меня на всех спеках только бипер и музыка доносится именно через него.
в фаст фуде тоже бипер, хотя при запуске на эмуле звук был аюшный.

jerri
16.01.2010, 18:28
Не знаю что у тебя за версии киберноида 2 но практически во всех играх от Hewson
есть поддержка AY
и обычно бипер с АУ не миксуют чтобы качество не терять
исключения - ау ударники в некоторых играх от
Software Creations (Chronos etc)

goodboy
16.01.2010, 20:13
практически во всех играх от Hewson
есть поддержка AY

stormlord точно две разные версии. а в exolon/cybernoid по байту из ПЗУ определяется тип машины/включается AY

jerri
16.01.2010, 20:55
на 128 машине всегда ау

ALKO
17.01.2010, 15:19
в exolon/cybernoid по байту из ПЗУ определяется тип машины/включается AY
и нежалко столь деффицитную память?

jerri
17.01.2010, 17:25
и нежалко столь деффицитную память?

ALKO есть такое понятие как ДИЗАЙН
если игра с АУ музыкой и АУ эффектами лучше чем с биперными
то чего бы ау эффекты в игру не ввести

а деффицит понятие относительное :)

psb
17.01.2010, 17:29
"деффицитную"?? ее же даже в 48к просто дофига!:)))
все относительно:) если место есть, почему бы не засунуть туда что-то еще?

Robus
28.01.2010, 01:36
туда что-то еще?
Место пусто не бывает !!! Я вообще заметил, что последние мои работы как-то умудряются занять полностью всю память до байтика ... Как будто свыше предопределено что должно быть именно вся память. Так что я совсем не удивляюсь, что была использована вся память !

Barmaley_m
28.01.2010, 06:39
Место пусто не бывает !!! Я вообще заметил, что последние мои работы как-то умудряются занять полностью всю память до байтика ... Как будто свыше предопределено что должно быть именно вся память. Так что я совсем не удивляюсь, что была использована вся память !
Я думаю, ты просто прекращаешь усилия по оптимизации расхода памяти, когда видишь, что результат в нее помещается - вот и выходит, что память вся забита.

Бывает еще и так, что оптимизируя быстродействие, лучших результатов достигаешь ценой дополнительного расхода памяти, и этот процесс тоже продолжается до забивания всей памяти, так что тут с двух сторон процесс стремится к одному и тому же пределу :)