| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
plasma/linedoubling
Hi all, now i have a question about how to implement a nice plasma effect, i saw many of those in nearly any demo, but many use these ugly fli flickering modes
i want to achieve an effect like this:
http://www.digitalgott.com/c64/plasma_000.prg
but in gfx mode ... i believe y scroll register comes in handy when trying to do stuff like this ... how to start? |
|
... 16 posts hidden. Click here to view all posts.... |
| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
oh yes, that is the effect i wanted to achieve, sorry for not pointing you to an example file, so, how is this fullscreen smooth sine multicolor effect done ( the first in the demo ... )) |
| |
Oswald
Registered: Apr 2002 Posts: 5023 |
IMHO things like waving a vertical color wash horizontally, or changing the width of a gradient doesnt counts as plasma |
| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
yes yes yes, and this is the reason why the thread is called plasma/linedoubling ... ;))) |
| |
Krill
Registered: Apr 2002 Posts: 2852 |
Oswald: that effect was called eci-plasma originally. And plasma rather refers to the looks of the effect, not the technicality behind it. |
| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
but what can you c64-experts say about how it is done ?!?!
i used to believe that changing gfx mode starting adresses could be used, but due to the fact that the 64 can only adress in 16k jumps, this method falls out, another method which comes to my mind is playing around with the FLD ..... |
| |
Scout
Registered: Dec 2002 Posts: 1568 |
Quote:so, how is this fullscreen smooth sine multicolor effect done ( the first in the demo ... ))
Well, that's a plasma.
The infamous 8x8 plasma that is, right Oswald? ;-)
That one is quite easy to do.
Setup a hiresscreen filled with $55 (%01010101) and $AA (%10101010).
If you poke, for example, #$bc to the screenmem ($0400) the 1st pixel gets dark grey and the 2nd get middle gray.
As the 2 pixels are close to eachother, your brain makes up an inbetween color of those 2 grey-values.
Anyway, back to the plasma.
Just add 2 (or more) sinustables, average them and use the result as an index for a color lookup table and poke that to the screenmemory.
That's actually really it.
---
-= Silicon Ltd. =-
http://forum.siliconlimited.com
Commodore 64 Scenemusic Podcast
http://8bitmayhem.blogspot.com/ |
| |
Trifox Account closed
Registered: Mar 2006 Posts: 108 |
... but i have to do this for every line on the screen !?!? isnt that a bit expensive in rasterlength !?!? i actually have problems filling the text memory in an adequate time ... |
| |
Krill
Registered: Apr 2002 Posts: 2852 |
Actually you don't plot any colour data at runtime. You just set up a couple of first screen lines (which are all the same colour line, only shifted by 1 char each), then stretch the first badline to 200 screen lines, and apply sine curves on dd00/d018/d016, for the horizontal shift. |
| |
Scout
Registered: Dec 2002 Posts: 1568 |
Quote: ... but i have to do this for every line on the screen !?!? isnt that a bit expensive in rasterlength !?!? i actually have problems filling the text memory in an adequate time ...
Yes, you have :)
The trick is, don't do everything during the IRQ.
You can do loadsa stuff *outside* the IRQ too!
For example;
sei
lda #<irq
ldy #>irq
sta $fffe
sty $ffff
etc etc etc
loop:
jsr do_some_more_cool_stuff
jmp loop
irq:
pha
txa
pha
tya
pha
jsr playmusic
jsr dorasterbars
lsr $d019
pla
tay
pla
tax
pla
rti
---
-= Silicon Ltd. =-
http://forum.siliconlimited.com
Commodore 64 Scenemusic Podcast
http://8bitmayhem.blogspot.com/ |
| |
Scout
Registered: Dec 2002 Posts: 1568 |
I also have the feeling different how-to methods of plasma's are running through eachother in this thread =)
---
-= Silicon Ltd. =-
http://forum.siliconlimited.com
Commodore 64 Scenemusic Podcast
http://8bitmayhem.blogspot.com/ |
Previous - 1 | 2 | 3 - Next |