A Series of Raster Effects by SMFX
/ /! \ / !! / \ / / / / ______/ ! ! \/ !! ! _____/ \/ / :\ \ \_! ! !! ! /\ //___ ::\______ \ \! !!! ____/:/ \\::: ::/ / /! !\/! !!! !::/ /\ \:: :/__________/:!_____!: !____!!_____!:/_____/::\_____\: :::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::[ SPKR TOM EXOCET FIVEOFIVE MODMATE XIA ]::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::: P R E S E N T ...................................................... : : : A SERIES OF R A S T E R EFFECTS : : : : 96k Intro for the 0 Bitplane Compo @ Sommarhack 24 : : in Grado, Hedemora, Sweden : : : : Released July 6th, 2024 : : : :....................................................: : : : SYSTEM : : : : Atari ST 1mb : : : :....................................................: : : : CREDITS : : : : CODE : : . spkr : : . Tom : : : : GRAPHICS : : . Exocet : : . mOdmate : : : : MUSIC : : . 505 : : . mOdmate : : : : ADDITIONALLY : : . Tat/Avena (Minimyser - tools and msx player : : : : : :....................................................: : : : DISTRIBUTION NOTICES : : : : This intro can be distributed freely in : : its unmodified binary form, with all : : the following files included: : : : : . rasters.nfo : : . rasters.tos : : . readme.txt : : : : This production may NOT be distributed : : in video form without our explicit : : permission. : : : : Contact us at spkr@smfx.st : : BEFORE making your video capture public : : or we will issue a takedown. : : : : Permission for distributing video : : capture granted to: : : : : . Evil/DHS : : . Sommarhack party organisers : : : :....................................................: : : : A NON-TECHNICAL ESSAY ON THIS DEMO : : FOR THOSE WHO WISH TO KNOW : : : : The basic way to display graphics on : : the Atari ST is to copy some screen : : data, in bitplane format, straight to : : the area of RAM that has been set as : : screen memory. The ST's video : : architecture then gets to work and does : : the rendering for you, fifty times a : : second, like magic. If your graphics : : do not then need to update, you can sit : : back and your image will be displayed : : on screen - no CPU needed! : : : : However!: : : We made this intro for a special : : competition at Sommarhack 2024 where it : : was against dem rules to write *any* : : screen data to screen memory *at all*. : : A blank screen. A zero bitplane demo! : : How can one make effects within this?! : : : : So the way we do it is through switching : : the background colour, just like in old : : fashioned rasterbars. Rasters use : : interrupts to wait until typically the : : beginning of a specific scanline, at : : which point a tiny bit of code changes : : the background colour. This produces : : the visual effect of a horizontal : : "line" of colour across the screen. : : : : Our intro uses exactly the same : : principle. However, rather than : : waiting until the beginning of each : : line and then changing colour for the : : whole line, we use some well known code : : tricks to synchronise our code to the : : electron beam first. This means we : : then have absolute control over the : : position at which we change the : : background colour. We're no longer : : limited to the very start of scanlines, : : and can change colour much more : : frequently with stability. This allows : : us to "draw" little lines of colour on : : the screen (e.g. 8x1 pixels), which we : : can then stack up on subsequent lines : : to form chunky "blocks" of colour - : : big pixels! Effects are possible! : : Whoop! : : : : But is it all that simple? Well....... : : in short - no. : : : : The single advantage of this approach : : is that we can display as many colours : : as we like on screen from the ST's 512 : : colour palette. Awesome! And we can : : also do stuff in the left/right borders : : very easily, without even having to : : worry about overscan. Great! : : : : The disadvantages and limitations, : : however, are major. They include the : : following: : : : : 1) To make a longer/shorter tiny : : rasterline on screen to build up our : : chunky images, we use instructions of : : different speeds to do the colour : : writes. The more CPU cycles an : : instruction takes, the longer the : : "line" of the previous colour is : : displayed for as the electron beam : : moves across the screen left-to-right. : : However, for technical reasons, these : : "lines" are limited to multiples of : : four pixels in width, starting with 8x1 : : pixels. Even then, there are : : additional limitations when using 8x1 : : lines around how many colours we can : : display each screenline. : : : : 2) Similarly, we can only "move" stuff : : around horizontally (more accurately: : : create the illusion of horizontal : : movement) in 4 pixel intervals. : : : : 3) Look closely - you'll see some 4x1 : : lines/blocks too amongst all the chunky : : crap! This switch should be impossible : : and uses a super smart method devised : : by Mr. Nyh! But as awesome as it is, : : the method comes with even more : : limitations about what can be done : : where. : : : : 4) And the biggest issue of all..... : : Unlike when bitmaps are displayed, : : where you can sit back and do what you : : like with the CPU in the background : : while the ST does the rest, all of : : these display methods eat 100% CPU : : while they're active. Unlike on : : certain rival 16 bit computers, we : : can't outsource this job to other parts : : of the hardware! : : : : This is a tremendous pain in the ass, : : especially when we're using the whole : : of the visible screen area for : : effects. This is because in these : : instances, we're doing nothing but : : using the CPU to change colour for the : : vast majority of every screenline. : : That means we have to fit our actual : : effect code either above or below the : : visible screen area, or when the : : electron beam is off the edge of the : : screen in the non-visible area. So not : : much CPU to actually do stuff with. : : Ballache! And you can forget using SID : : voice/timer based music, unless you're : : willing to make even more : : concessions... : : : : To summarise: what you see here is a : : combination of brute force CPU-burning : : colour switching, packaged up with some : : brave attempts at lateral thinking from : : both a gfx and code perspective. We : : hope you enjoy it! : : : : Real hardware is recommended to watch : : this thing on. However, if you simply : : must use an emulator, we recommend the : : latest version of Hatari, as Steem does : : not emulate this demo fully correctly : : (hi Troed!). : :....................................................: eof
[ back to the prod ]