Просмотр полной версии : Как улучшить прогу ?
мне в бошку стукнула идея написать прогу иммитирующую звуки MusicBox(в самом низу закоментированы процедуры компилятора MCoder 48k):
http://vk.com/photo53856147_148983980
но вот только один недостаток состоит в том что прога медленно работает и слышен писк когда импульсы противоположны друг другу,а я еще хотел до большего количества голосов ее прокачать.(подобное писал в машинных кодах скорость выполнения была быстрее,но происходило искажение при смене тона одного из каналов)
ALKO, выложи картинку куда-нибудь на нормальный картинко-хостинг, а не на фконтакте. например http://tinypic.com/
прошу прощения...когда доберусь до нормального компа - выложу..
просто я пробую через терминал..
---------- 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
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
а если я захочу увеличить кол-во войсов, это прийдется прибегнуть к PUSHам & POPам ?
не обязательно:)
можно чуть переписать код для получения нужного результата
сколько голосов тебе нужно?
вот тебе 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
хотя конечно серьезные плееры делаются не так
кому нибудь известно об исходниках движков музыки фирмы Code Masters (ATVsim,FastFood,SlotMachine,Soccer)? там задействованы два тона со сменой ширины импульса,по мере звучания верхний фронт уменьшается.
и любопытно как смогли симмитровать звук эл.гитары программеры от HEWSON (stormlord и cybernoid 2)
Берешь эмулятор unreal Speccy
грузишь Fastfood ждешь когда начинает играть музыка
жмешь Escape - и начинаешь реверс инженеринг
в Stormlord и Cybernoid 2 музыка для AY - тут тебе ASM или Soundtracker в помощь
в Stormlord и Cybernoid 2 музыка для AY - тут тебе ASM или Soundtracker в помощь
не обязательно, возможно параллельно комп посылает команды на AY, но у меня на всех спеках только бипер и музыка доносится именно через него.
в фаст фуде тоже бипер, хотя при запуске на эмуле звук был аюшный.
Не знаю что у тебя за версии киберноида 2 но практически во всех играх от Hewson
есть поддержка AY
и обычно бипер с АУ не миксуют чтобы качество не терять
исключения - ау ударники в некоторых играх от
Software Creations (Chronos etc)
практически во всех играх от Hewson
есть поддержка AY
stormlord точно две разные версии. а в exolon/cybernoid по байту из ПЗУ определяется тип машины/включается AY
в exolon/cybernoid по байту из ПЗУ определяется тип машины/включается AY
и нежалко столь деффицитную память?
и нежалко столь деффицитную память?
ALKO есть такое понятие как ДИЗАЙН
если игра с АУ музыкой и АУ эффектами лучше чем с биперными
то чего бы ау эффекты в игру не ввести
а деффицит понятие относительное :)
"деффицитную"?? ее же даже в 48к просто дофига!:)))
все относительно:) если место есть, почему бы не засунуть туда что-то еще?
туда что-то еще?
Место пусто не бывает !!! Я вообще заметил, что последние мои работы как-то умудряются занять полностью всю память до байтика ... Как будто свыше предопределено что должно быть именно вся память. Так что я совсем не удивляюсь, что была использована вся память !
Barmaley_m
28.01.2010, 06:39
Место пусто не бывает !!! Я вообще заметил, что последние мои работы как-то умудряются занять полностью всю память до байтика ... Как будто свыше предопределено что должно быть именно вся память. Так что я совсем не удивляюсь, что была использована вся память !
Я думаю, ты просто прекращаешь усилия по оптимизации расхода памяти, когда видишь, что результат в нее помещается - вот и выходит, что память вся забита.
Бывает еще и так, что оптимизируя быстродействие, лучших результатов достигаешь ценой дополнительного расхода памяти, и этот процесс тоже продолжается до забивания всей памяти, так что тут с двух сторон процесс стремится к одному и тому же пределу :)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot