====== Demo Coding ====== This page is devoted specifically to demo effects and tutorials on how to make demos. More general graphics coding is instead covered in the [[base:vic|General VIC programming page]]. To provide an example: Opening the border is commonly made in demo parts, but simply opening the border does not constitute a demo effect in itself (at least not during the last 20 years). Therefore you would find that on the General VIC programming page instead. ===== General Information and Tutorials ===== * [[demo coding introduction|An Introduction to Programming C-64 Demos]] - Puterman/FLT. Extensive and easy to read tutorial aimed at beginners. * [[Demo world records and world firsts]] - Who broke what record? Who invented effect X first? When? In what demo? ====== Effects ====== Many demo effects depend on precise timing. Therefore it might be useful to have a look on the [[base:interrupts|Interrupts and Timing]] page. ===== Rasterbars ===== The most classic demo effect, apart from scrolling text. * [[magazines:chacking3#rasters_-_what_they_are_and_how_to_use_them|Rasters - what they are and how to use them (C=Hacking #3)]] - by Bruce Vrieling - (Note that there is a bug in the last example program that turns border black and white: the high and low bytes of "intcode" are reversed in the lda instructions. Also note that on PAL machines the refresh rate is not 60hz, but 50 hz.) * [[Rasterbars source|Rasterbars source]] - by Knoeki * [[Rasterbars with screen on|Rasterbars 2 source]] - by Bitbreaker * [[Rasterbars small source|Rasterbars 3 source]] - by Graham * [[Rasterbars 4 source]] - by Erhan * [[Rasterbars Flash screen effect|Rasterbar Flasher source]] - Flash Screen effect by Wozza/CygnusOz * [[Horizontal Raster Split|Horizontal Raster Split]] - Monte Carlos * [[Overlapping Raster Bars]] by Richard ===== Scrolling text ===== Those scrolling texts that we all hate to love that we love to hate. Also see the [[base:sprites#effects|sprite section]] for a sprite scroller. * [[Text scroll|Scroll text in common]] - by Monte Carlos * 1 char sized scrollers: * [[1X1 Scrolling message|Scroll text]] - by Vai/Slash Design * [[acme_1x1_scroll|Scroll text]] - By Richard/TND * [[1x1_scroll|Scroll text]] - variable speed and direction, by Groepaz/Hitmen * [[1x1 upscroll]] - the basics - by Richard/TND * 2 char sized scrollers: * [[2x2 upscroll with space linefeed]] by Richard/TND * Zoom chars 8x: * [[8x scale charset Scrolling message|Char zoom]] - by Conrad. * [[Realtime 8x char zoom|Char zoom]] - by Raf/Vulture Design * Sprite scroller: * [[Scrolltext using Sprites]] - a ROL-scroll, by Testicle * [[Waving sprite scroll]] - A letter per sprite with a sine move, by Mace * Perspective Scroller * [[Discofloor scroller as being used in Ă„chzzeit]] - by Bitbreaker/Oxyron^Arsenic^Nuance ===== Swinging and tech-tech ===== * [[magazines:chacking7#tech-tech_-_more_resolution_to_vertical_shift|TechTech]] (or "wave") - by Pasi 'Albert' Ojala (from "Demo corner" in C= Hacking 7). * [[base:techtech_fli|TechTech]] (using FLI routine) - by Compyx/Focus * [[base:logo_swing|Logo swing]] - By Richard Bayliss ===== 3D dot scroll ===== * [[3D Dot Scroll]] - by wegi /Black Sun/Samar/Fatum ===== DYCP ===== * [[magazines:chacking6#the_demo_cornerdycp_-_horizontal_scrolling|DYCP]] - Pasi 'Albert' Ojala (from "Demo Corner" in C= Hacking 6). ===== DYSP ===== * [[base:dysp_d017|DYSP using sprite stretching]] - by Compyx/Focus * [[base:dysp_cycle_table]|DYSP using a cycle table]] - by Compyx/Focus ===== Plasma ===== * [[ColorCyclePlasma]] - By Cruzer * [[AFLI-Plasma]] - by Testicle * [[Proportional-Charset-Noter with Plasma-Effect]] - by Testicle * [[Copper Style FLI Plasma]] - By Cruzer ===== FPP (Flexible Pixel Position, aka Stretcher) ===== * [[FLI-FPP-Scroller]] - by Testicle ===== Graphics Distortion ===== * [[FLI Floffy]] - By Cruzer * [[2nd Pixel FLI Distorter]] - By Cruzer ===== Fractals ===== * [[Julia Fractal Morpher]] - By dW ===== Vectors ===== * [[Drivecalc vectors]] - 3D realtime filled vectors with 3D calculations done in the drive, by wegi /Black Sun/Samar/Fatum * [[Filling the vectors]] - by Bitbreaker * [[Spritevectors]] - by Bitbreaker ===== Blending and Fading ===== * [[8x8 Charset Pixel-Blend-in|Blend Charsets]] by Chico /CIVITAS ===== Starfields ===== * [[8 Sprite starfield]] - by Richard Bayliss * [[ROL Starfield using $d018]] - by Richard Bayliss * [[base:Starfield|Starfield]] - by Fabrizio Stellato ===== 2nd Line FLI ===== * [[Twisters, x-rotators and waving carpets]] - Bitbreaker/Oxyron^Arsenic^Nuance ===== Fire Effects ===== * [[4x4 charset fire with lots of colors]] - Bitbreaker/Oxyron^Arsenic^Nuance ===== Misc ===== * [[Colour flashing (notewriter style)]] - (Extended colour mode) by Richard Bayliss * [[just Animation]] - explains the concept of how the animations in reanim8ed work. originally published in [[http://noname.c64.org/csdb/release/?id=18201|Driven #31]] ====== Software screen modes for effects ====== * 16x16: * [[16x16 char matrix]] by Monte Carlos * [[16x16 Matrix Scroll]] by Chico /CIVITAS ====== Optimization ====== * [[Speedcode]] by Cruzer/CML * [[Speeding up and optimising demo routines]] - by conrad * [[Advanced optimizing]] - by Bitbreaker/Oxyron/Nuance