base:junk_modes
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | base:junk_modes [2015-04-17 04:32] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Junk Modes ====== | ||
+ | this was published in Vandalism News #43 /gpz | ||
+ | |||
+ | instead of an essay.... | ||
+ | |||
+ | I was long thinking about writing a tutorial about coding, and the (obviously) real bad demos at ms99 finally kicked me to write something about all the little things that were discovered over the last decade of the scene. this beginning series of tutorials wont help you with learning 6502 assembly, and i will assume that you know certain basics. it'll bore the majority i guess, if i started with 'hello world' type stuff and explain the differences about ' | ||
+ | |||
+ | Instead it'll tell you lots of cheap tricks to make your lame code look like 31337 demos and let you win all major compos the next decade of the scene. (rotfl) | ||
+ | |||
+ | honestly, i had this wild dream of 2nd generation 14 years old c64 enthusiasts which squeze their first intro out of turbo-asm (you lucky bastards, can you imagine that most of the old legendary code was made in a ml-monitor? | ||
+ | |||
+ | so here it is... | ||
+ | |||
+ | ====== Demo Factory 1 - grafix junk (graphic modes part 1) ====== | ||
+ | |||
+ | This time i will just quickly tell you about what i consider known as ' | ||
+ | Now don't cry NOOO! we dont want this crap, but also if you dont like it you should get the basic idea since a lot of the more advanced stuff later will need a certain understanding of this shit. | ||
+ | |||
+ | These modes seem to be liked by the coders, since they are basically much easier to handle and thus also perform much better than for eg hires. Even if these modes have the obvious drawback of very low resolution and (if not handled clever) bad flicker in interlaced variations, they can be used for quite a bit of nice effects. (But please do me a favour and dont do yet another plasma!) | ||
+ | |||
+ | please notice that incase i speak of ' | ||
+ | |||
+ | ===== basic junkmodes ===== | ||
+ | |||
+ | these modes basically use the videoram for pixel data and do not use the color-ram at all. I've silently ' | ||
+ | |||
+ | 1) 8x8 - Characters (40x25, 256 ' | ||
+ | |||
+ | this is maybe the easiest, and most speedy gfx mode that is possible. it is done by using a charset that either consists of an ' | ||
+ | |||
+ | advantages: | ||
+ | |||
+ | * you can linearly adress your ' | ||
+ | * you can linearly adress your ' | ||
+ | |||
+ | tips: | ||
+ | |||
+ | * its always a good idea to make that ' | ||
+ | * when using a colorfade, try different versions of ' | ||
+ | * usage of the extended color mode will let you use 4 colors and still hires-pixels, | ||
+ | |||
+ | 2) 8x8 - Bitmap (40x25, 128 ' | ||
+ | |||
+ | this mode uses a bitmap with a ' | ||
+ | |||
+ | advantages: | ||
+ | |||
+ | * you can linearly adress your pixels | ||
+ | |||
+ | disadvantages: | ||
+ | |||
+ | * mode with most clumsy appearence of them all | ||
+ | |||
+ | 3) 4x4 - Characters (80x50, 4 ' | ||
+ | |||
+ | This is a good compromise between speed and resolution, and quite useable for routines that would be to slow in 4x4-fli mode. It is achieved by using a character-set that represents all 256 combinations of 4x4 wide blocks possible in a cursor with 4 colors. The adressing can be compared with hires a little, if you arrange your charset that for eg. bit0-1 represent color 0, bit2-3 represent color 1, etc... you get the idea =) | ||
+ | |||
+ | tips: | ||
+ | |||
+ | * instead if filled blocks in 4 different colors, you may try using ' | ||
+ | * take care of how your colors mix in resolution-interlaced modes. | ||
+ | |||
+ | 4) 8x4 - Bitmap (40x50, 16 ' | ||
+ | |||
+ | Since in this modes ' | ||
+ | |||
+ | tips: | ||
+ | |||
+ | * try (faked or real) resolution interlace to get back a squared pixel-appearance | ||
+ | |||
+ | ===== interlace ===== | ||
+ | |||
+ | 1) faked resolution interlace | ||
+ | |||
+ | this is what most coders seem to add to their junkmode routines, that is simply alternating the softscroll register(s) each frame half a ' | ||
+ | |||
+ | 2) color interlace | ||
+ | |||
+ | this uses two alternating videorams in order to ' | ||
+ | |||
+ | 3) ' | ||
+ | |||
+ | this uses two videorams, which are displayed alternating but with an offset of half a ' | ||
+ | |||
+ | ' | ||
+ | |||
+ | why not using the color-ram you may think, and you are right! BUT: think first if it will really make sence in your situation. Using the coloram will maybe give you some more flexibility, | ||
+ | |||
+ | tips: | ||
+ | |||
+ | * with some effects (eg tunnel style things) a static color-ram pattern looks even better than a ' | ||
+ | |||
+ | ===== other cheap tricks ===== | ||
+ | |||
+ | * making every second line of the screen the same color as the background (in your bitmap or character set, whatever) gives your effect a ' | ||
+ | * overlaying a checkerboard in background-color over your fx (same method as with the scanline-stuff) achieves a simelar, but still different looking thing. this trick doesnt really make sence combined with resolution interlace. (notice how your checkerboard-patterns would overlay in the interlace!) | ||
+ | * in modes with a checkerboard-type bitmap or character set, its a good idea to have a second ' | ||
+ | * if it fits to the style of your demo, let the background (or what ever you think looks good) flash to your basedrum or sth. (fools the eye a bit again and also let the whole picture ' | ||
+ | * add little ' | ||
+ | * in bitmap modes, dont forget that it is still a bitmap capable of more than an alternating pattern. If made cleverly it may be possible to overlay an entire multicolor-picture above your effect, and automagically speed up your effect as well, since less pixel need to be calculated (in unrolled fx loops, leave out any processing for videoram positions that match with your gfx) | ||
+ | * putting a ' | ||
+ | |||
+ | ===== appendix - luminance values ===== | ||
+ | |||
+ | luminance is the ' | ||
+ | |||
+ | notice: | ||
+ | |||
+ | * colors with the same luminance look the same on a black/white monitor and can not be distinguished | ||
+ | * lumincance is NOT the average of the color' | ||
+ | * luminance levels differ on different VIC-revisions, | ||
+ | |||
+ | < | ||
+ | 1) 0 black | ||
+ | 2a) 6, | ||
+ | 2b) 2, | ||
+ | 3a) 4, | ||
+ | 3b) 12, | ||
+ | 3c) 5, | ||
+ | 4a) 3, | ||
+ | 4b) 7, | ||
+ | 5) 1 white | ||
+ | </ | ||
+ | |||
+ | ====== last not least ====== | ||
+ | |||
+ | so far so good... hope you liked this little start a bit, and you found a little also that isnt just old news for you. however, i had to start *somewhere* ... so, you ask what will maybe come next, and i'll tell you... | ||
+ | before i'll go on with " | ||
+ | After all that we will come to "what was fld again?" | ||
+ | |||
+ | so long... code your ass off! =) | ||
+ | |||
+ | groepaz/ | ||
+ | groepaz@gmx.net (feedback welcomed!) | ||
+ | |||
+ | ... the C=ommunity loves you! |
base/junk_modes.txt · Last modified: 2015-04-17 04:32 by 127.0.0.1