| |
Carlos Account closed
Registered: Mar 2009 Posts: 15 |
Palette effects
Hi!
This is my first post in CSDB, after a long time as owner of a C64 and use it only for playing games and watching demos i decided to do the step and learn graphics programming.
The way i chose to do it is making a game, now after a couple of months i understand more or less the basic stuff (sprites, bitmap and char modes, ...).
I would like to know if is possible to do palette effects with the C64. Some years ago i used to program some graphic effects with my 486 PC and the palette is very different in it (RGB components for each color) but the C64 have a total different conception.
How is possible to do effects like fade an image to black (i have seen it in demos) o transform a bitmap picture in, for instance, grayscale??
|
|
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
you only have the 16 colors.
to do a fade, you must poke a bright color, then a not so bright, and even less bright, and then a dark - to get the fade out effect.
example: 1-f-b-0 (white->grey->black)
to make a bitmap greyscale, you must repoke all the colors in it, to grey shades.. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
palette effects like you can do in vga are not possible on the c64 (the palette is fixed). you have to alter the color attributes to achive similar effects. |
| |
Stryyker
Registered: Dec 2001 Posts: 468 |
The closest you get to palette effects are changing sprite colours, multicolour character mode or EBCM mode. After that you're left with using bitmap mode and changing memory banks then down to the long and heavy way that has been discussed earlier. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
Quoting Groepazyou have to alter the color attributes to achive similar effects.
You don't have to. You can also precalculate several images and simply play a "palette effect" animation. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
Quote: Quoting Groepazyou have to alter the color attributes to achive similar effects.
You don't have to. You can also precalculate several images and simply play a "palette effect" animation.
which is memory wise horribly ineffective compared to the first method. in fact useless.
to the original question:
to fade bitmaps you would generate a so called "speedcode" which has a code sniplet for each attribute byte.
lda fadetable,x
sta $0400
lda fadetable,x
sta $d800
you have the above code 1000x times, for each attribute address you use a different "fadetable" which table holds the color values to colorfade the corresponding original color. then by changing the value of the X reg and calling the above code you achieve the actual fade effect.
transforming to grey works similarly, you set up a table which tells for each color what its grey value will be, then you apply this to the attributes. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Don't think I've ever done a bitmap fader, but I guess the tricky part is to determine how each color should be faded down. For instance, a gray color can be part of a gray area, in which case grayish colors should be used for the fade table, or it might be part of some other shading, like blue, in which case a blueish palette would be a better choice.
Wonder if anyone has actually done a fader that cares about these things, or if it's just always 16 standard fade tables, regardless of the context.
|
| |
Hein
Registered: Apr 2004 Posts: 954 |
This also requires a annoyingly slow rol-scroll explaining the context-dependant-bitmap-fade, else no one sees it. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
Quote: Don't think I've ever done a bitmap fader, but I guess the tricky part is to determine how each color should be faded down. For instance, a gray color can be part of a gray area, in which case grayish colors should be used for the fade table, or it might be part of some other shading, like blue, in which case a blueish palette would be a better choice.
Wonder if anyone has actually done a fader that cares about these things, or if it's just always 16 standard fade tables, regardless of the context.
16 colors is not enough to do that imho. what I've heard that some coders set up a blue&red&gray(?) fadetable and use those two.
smth like:
0,9,2,8,a,f,7,1
0,6,4,5,?,3,d,1
...
another idea is to make sure all colors reach black at the same time. usually that doesnt happens. |
| |
Stainless Steel
Registered: Mar 2003 Posts: 966 |
Crossbow has explained a great bitmap fader here. Its in German though but there's a binary example in the thread somewhere that worked pretty good for me.
|
| |
Hermit
Registered: May 2008 Posts: 208 |
Have you seen my picture watcher already which I wrote in 1998? I made it for manipulating Art studio MC images after loading.
It can convert colours and fadings & RGB to Black&White with the colour-fading palette.
You can find it on the disk of my 3SID tracker between some other usefool:) tools?
Hermit 3SID-Tracker 2008
Update: I've just released it as independent tool on D64:
http://noname.c64.org/csdb//release/?id=77445
Hermit Software Hungary |
... 6 posts hidden. Click here to view all posts.... |
Previous - 1 | 2 - Next |