pouët.net

- 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?