Posted By
Degauss on 2014-08-14 06:59:22
| Re: Evoke 2014
Just a short round-up from the things i was involved, especially on side b:
Music:
Theres five different tunes. All of them operate at double-speed (which is a good trade-off for any demo i think). For this demo i took my old player routine from states/metamerism and changed a little bit: The player-code increased in size to free a couple of rasterlines of consumed cpu-time. To get all the musics done i wrote a little tracker (which i am planning to release once its halfway water-proof). The tracker is in some way protracker-like in its use and outputs asm-files containing the song-data. ATM the tracker isn't a serious development, more like a quick hack. E.g. to be able to play a song from within the tracker starting at a certain position, it just dumps the song-data into an asm-file, fires up DASM to build a .prg-file and then starts this .prg in TEDplay. There is currently no feedback like at what position the song is playing or something. Nonetheless: it made composing much easier.
1. The horizontal scroller
It scrolls four standard MCBitmaps. There is a fifth bitmap: When the eyes start to shine. There is no real trickery here: The scrolling works with FF07/FF1A/FF1B, where we don't need any raster-tricks and we only have to copy the videomatrix-data around. The rest is just about doing all the other stuff in proper order: - load picture 2, decrunch - start scrolling - load picture 3 and 4, decrunch - load next part, but don't decrunch yet - load end pic, decrunch (to the adresse where picture 2 was before ) - wait for scrolling to end - flip to end pic, decrunch next part, fadeout - run next part
have to say this is the most impressive work by nero. man, look at this: he only needs mc-bitmaps! no fli or something...
4. The zooming plasma
This one is a combination of two effects: the pixel-exact zoomer i did in metamerism and the plasma that graham/oxy did on atari xl (forever or never). once i saw grahams plasma i loved it immediatly and thought it could be done on +4 aswell. then i had the idea to add zooming capabilities to it. the plasma itself works this way: i'm doing a sin-sin plasma each for the x-axis and y-axis of things. the y-axis "executed" via raster-tricks (like in metamerism), but the x-axis means copying the single columns of graphics together. in other words: first i render a 160x16 bitmap of "jumping bars", second i shuffle them with raster-tricks (ff13 and ff1f). to do the zooming, there is however a level of indirection: i'm preparing 160 "plasma values" for the x-axis and another 160 for the y-axis in a seperate buffer. afterwards i'm stepping through these arrays with a certain stride to make the zoom happen. The single notable thing left is FF15/FF16/FF17 can be changed for every line too, so this is where the colors come from (the colors are "zoomed" aswell)
5. infinite jelly bobs
Another combination of two effects. I got inspired by this camelot-demo: https://www.youtube.com/watch?v=P4Aqt0S_4nk#t=81 (check it out, looks soooo beautiful!). He's doing the infinite-bobs trick, but instead of doing it with only 4 frames in bitmap-mode he is using character-modes to get a lot more frames and therefore less repetition. instead of showing just the most recent frame i thought it would be a nice idea to look a bit back in time, so i'm showing on a sin-sin-basis all the other past-frames. this is sort of a time-dilatation and it adds for more variety and even less repetition.
Last effect before the end-picture (steles)
This is again a combination of two effects. First of all there is a 128 pixel wide texture in bitmap-mode. Every line in the bitmap can have two freely chosen colors (to build gradients that add for the depth effect). To do the depth effect i'm just skipping rows within the horizontal wall. The second effect is the parallax-scrolling, which is not very complicated for itself but challenging, if you wanted to add it to the existing depth-effect. The trick is to align the rows of the texture in a way that i only need FF07 and FF1B to do the scrolling (FF1A wouldn't fit into the display-code).
|