Incoherent Nightmare by arsenic
- the note - for an incoherent doublepack consisting of incoherent nightmare (demo by arsenic) and donkey kong arcade (game by oxyron) brought to you by arsenic at the x-2016! ------------------ press space to halt the scroller! ------------------ the reason for picking the name incoherent nightmare is basically the fact, that lots of ppl did complain about our demo designs here and there... we don't try with social critizism or politics... we don't try to tell endless stories based on long storyboards as some other groups do... we just want to have fun, come up with top-notch effects, and give lotsa ppl the chance to contribute, which may lead to incoherency here and there! so... we don't give a fuck on artsy-fartsy demo-design discussions at the boards! we believe: demos can be beautiful this way in the first place we create demos which we do like! but ofcoz it's a nice bonus to please other ppl aswell! still it ofcoz is a nice bonus to please other ppl with our demos aswell... ------------------ let's start with the creditz: ---- the game ---- donkey kong arcade code: peiselulli gfx: veto music+sfx: linus ---- the demo ---- general creditz: all demo-musics were composed by linus + fanta thanks to you guys as you had to save our ass with the music, just 2.5 weeks before the deadline! (we did plan with another musician at first. you guys have done a great job! linking slavery, bug-fixing, deglitching, loader, dir-art, molesting and penis and boobs support by: bitbreaker public relations by liesbeth! -- basic fadeout - code: axis sprites: sphinx --- the intro ---- code: lotus gfx+charset: yazoo additional code by axis ---- the menu ---- code: kronos charset: yazoo -- demo opening -- code: axis gfx + anims: yazoo --- plottunnel --- code: axis gfx: yazoo --- cubic bobs --- code: cruzer gfx: sphinx -- rotozoombars -- code: cruzer sprites: yazoo ---- keftales ---- code: axis -- ship / waves -- code: kronos gfx: bitbreaker additional gfx by sphinx -- ship picture -- code: bitbreaker gfx: bitbreaker - bubbles+kraken - (fka saufen!) code: bitbreaker math code: axis gfx: bitbreaker --- blackmail ---- code: bitbreaker polishing the truetype font a bit: yazoo - doubletwister -- aka eddie in jail code: kronos gfx: sphinx -- captain pic --- code: kronos gfx: yazoo --- turn disk ---- code: kronos gfx: yazoo - morph credits -- code: axis gfx+chars: yazoo photo retouching by sphinx - the bat-tunnel - code: axis gfx: mactron additional gfx by yazoo - complex vector - code: axis gfx: sphinx ---- the cube ---- code: bitbreaker gfx: bitbreaker - steampunk-pic -- gfx: sphinx --- add-filler --- code: cruzer gfx design idea by cruzer gfx: sphinx - moving crosses - code: bitbreaker --- fpp tunnel --- code: axis -- arsenic pic --- gfx: yazoo code: bitbreaker partially based on our t-shirt motif, originally created by sphinx - scroller-flood - code: peiselulli gfx+chars: yazoo - twister/cycler - code: axis gfx: yazoo memory footprint: 0.25 bob angry: bob -- sprouts end -- code: cruzer gfx: yazoo --- this note ---- code: axis gfx: bitbreaker chars: yazoo music: linus text: your mother! additional code by bitbreaker -- transitions --- all the ubersmooth transitions were brought to you by: axis bitbreaker ------------------ 4 computers lost their life during this production. (2x axis/2x yazoo) hail to the emulamers! one member hurt herself. one inactive zombie member got resurrected. 5 unicorns got hurt and broke up in tears! ------------------ special thanks to sphinx for organizing the arsenic-shirts, hoodies and marketing- giveaways (arsenic lighters and arsenic bottle openers!!!) finally thanks to mactron for emergency hardware support (and yazoo, who) had to drive a 50km for the delivering) ;-) tech talk/rant the glory list of sabotage acts. The demo crashes, this must be the loaders fault. but alas, we just overwrote the zp values with our irq while the depacker is at work! we just corrupted the stack! we just set bits in $dd00 that were non of our business! we just turned on rom and let our irqs end up in the loader code by that... think of it! now for some tech talk on some parts basic fadeout ------------- this looks like a basic sprite zoom. but due to extreme zooming, accuracy is critical. also clipping must be handled. and the animation forced us to make the zoom in realtime and not preshifted. demo opening ------------ this combines dither blits of the bitmaps with color crossfading. to reduce clashing the bitmaps sort their palette by brightness. plottunnel ---------- shows 1280 plots in 50 fps. this works more or less like the good old plotscrolls, but with free x-motion. the bottleneck is the memory not the cpu-time. the fact that only half of the plots switch per frame is hidden with a half shifted double buffer. cubic bobs ---------- another variation on unlimited bobs (hi bob!?) rotozooming bars ---------------- a combination of graham's line routine from dawnfall/oxyron and aeg + axis' rotozoomer in 'the impossible thing' keftales -------- this is a sideborder plasma with colorcycling and zoom. used tricks are plotting 2 pixels at once and reuse same gfx bytes for up and down flank of the patterns. bubbles & kraken ---------------- the bobs are drawn into a single growing charset. overlapping bobs are merged. on top is a 8x4 sprite big kraken with multicolor char underlay. the underlay needs to be cropped when bubbles are drawn. the sprites can't be multi- plexed with $d018 trickery, as the screen would need to be duplicated for that. but by using sax for writing even and sta for writing odd numbers, pointers can be written just in time. the ram left is wasted with an animation. math: all transforms are done completely realtime. the major problem here is accuracy. you need 16 bit coords from the projection. also clipping must must be done in realtime. to speed it up the vertices are delta encoded and sorted to move only along 1 axis relative to its predecessor. every 3rd bob is calced fully to avoid accumulating errors. morph credits ------------- the whole effect is realtime and not animated. the texture size is bigger than the screen size to get the max quality. the 10 textures dont fit into the mem at once and need to be loaded on demand. this uses one of coolest tricks wellknown to all amiga coders - incremental lerp. that means you can test which pixels move and in what direction with just a bit-test. no 16 bit add is needed per pixel. the bat-tunnel -------------- a bitmap definer with 2 bitmaps just for nicely showing a picture. lots of sproutka and motion capture was needed to animate the eyes. complex vector -------------- realtime and dynamic span-fill in hires with arschloch dither. this implements correct masking of overdraw. so it can display non convex shapes. sprite filler ------------- 160x160 pixel max at its biggest frame. You have seen that in snapshot from glance? but did it move in x/y there? did it move over bitmap? flat slopes are read from slope- tables, steep slopes are done with fixed point math that yields still enough accuracy and is a bit faster than ram wasting slope- tables or bresenham. by supressing bad lines during display, the sprite stretcher can work properly and bitmap with columnwise colors can be displayed. a well choosen writing order of the sprite x coords delivers a glitchfree x- movement. vertical movement is done by rastercode that runs at dynamic length and with variable entry point. add-filler ---------- using adc to fill instead of eor. this means that 3 transparent layers can be on top of eachother at once, but of course with some obvious limitations. zooming crosses --------------- all frames are assembled with 16 different chars. the interleaving of the crosses require 10 lines in all zoom steps in x dimension. y stretching is done via fpp and two directional fixed point math to keep accuracy high. fpp tunnel ---------- this effect is an fpp x-rotator with dithered rasterbars for the colored blocks. color-ram is used for the side walls scroller-flood ---------------- vic registers are manipulated to get 8x16 chars instead of the normal 8x8 charset. one of this 8x16 char is changed by only changing one byte. so the screen ram is only 1/2 kbyte in size. as a neat effect, only one half of the colorram is used for screen display. but the best thing is that the program can decide which half of the colorram will be displayed. that is the reason why is is called d b c - - - double buffer colorram. the 500 bytes of video and the 1/2 kbyte of the colorram can be updated easyly in one frame, so a sprite multiplexer was used to fill up the calculation time of the 6510. twister/cycler -------------- another bitmap definer. this time combined with linecrunch scrolling to look more dynamic. as nice side fact this needs no vsp. hi bob! ;o) it solves the wrapping problem with storing the bitmap and all definers twice. brussels sprouts ---------------- pretty similar to the unlimited bobs in cruzer's first release from 1990. but with a few improvements like +1 anim frame and a much faster bob routine. donkey kong ---------------- the game is a conversion from the arcade code. in the first step, there was a modified mame enginde that runs on 6502 instead on the z80. than the games was converted line by line from z80 to 6502 until it runs perfectly on the new processor. after that, the very more powerful gfx hardware from the original arcade board was replaced step by step to our old known c64 chipset. So it plays more like the arcade board than any other version. play it on ntsc to get a more accurate timing. finally some artistic interpretations and thoughts on some parts that might clarify that focussing on coherence might narrow your sight on things. you might notice that it puts up huge expectations and by that limits our freedom of art. let's start with some thoughts on certain elements of the pirate ship: the bottle: ----------- what is in there? rum? blood? a message in a bottle to ask for help? or is it a critizism on the masses of rubbish that end up in the oceans? there are so many options, coherence would force you to pick one and stay on that track. the tentacles: -------------- the front tentacle could be seen as having a phallus like texture. but it might just be an illusion. all other tentacles do not show such texture, as being not close enough. is it our dirty thoughts that give us the illusion or is it real? we will never know! the nude buccaneer: -------------- she started out as a all dressed up male first and she has still a hat on. is she still nude now? is she nude at all? basically the breasts that we perceive consist of a dozend of pixels. where does the depiction of nudity start? the figurehead: --------------- did she just spot us? is she alive? many attempts have been made to make her appearance more vivid. on some steps, she had legs to embrace the fore. the cannonballs: ---------------- on real settings we could of course never spot the cannonballs in their flight. but modern technology enables us to capture also sport activities without any motion blur. i think, that also art is allowed to capture femtoseconds of a scenery and by that sharpening fast moving objects. there had been too many blurry hires images in the past. can you spot all three? upcoming is a kraken that suddenly doubled its resolution by moving from hires over to the multicolor sphere. as we move our focus, also the level on interest changes. is it at all the same kraken that we saw before? it lacks at least 2 of its 8 tentacles. was it hit twice before it gave up? or is it all just a lusus naturae?
[ back to the prod ]