Bang! - An Atari 2600 VCS Demo
This page is work in progress right now. Latest change: 2022-10-04, 22:35 CEST
Release: Revision 2014, winning the Oldskool Demo Compo
View in emulator running in web-browser:
Stellerator
Downloads
-
- Download the demo only: bang!.zip (Size: 20002; Date: 2014-04-20, 15:04 CEST)
- You'll probably need an emulator to watch this demo.
I suggest using Stella.
- Easy shot, a bundle for Windows: Bang!_Windows.zip (Size: 1085812; Date: 2014-05-01, 11:54 CEST)
- Screen capture on YouTube (Thanks to MEGA),
Live recording on YouTube.
- Source code: bang!.7z (Size: 76619; Date: 2014-05-14, 19:54 CEST)
- Cartridge labels: Bang!_Labels.zip (Size: 877840; Date: 2017-10-30, 03:12 CET)
Image by Osgeld from Atari Age Forums
- Order
cartridge at AtariAge
Credits
- Deft:
- graphics
- Skyrunner:
- music
- SvOlli:
- coordination, all code (except for the basis of the audio player which was
done by Paul Slocum), some graphics
- Titus:
- graphics
- Veto:
- graphics
Instructions
This demo is indended to work on PAL systems only.
If you set the difficulty switch for left player to B, for the right player
to A, and TV mode to color, a short message will be displayed at the end, which
differs if you've got something else than the download version.
Note: This demo is not SuperCharger compatible, as it is way too large.
Discussion
How It Came To Be
The first time I did something public on the VCS was
The Ultimate Atari 2600 VCS Talk
at the end of 2011. At the congress there
usually was a slide shown by the organizers announcing the next talk. This I
wanted to do with a VCS as well, so I coded my first demo, a typical single
screener (also called cracktro). After that I wanted to code a "big" demo
together with some other coders, so I modified that cracktro stating that
I'm looking for someone to work on a VCS demo and let this one run at my
place at Revision Party 2012. That way, I got to know Jac! and Tjoppen, and
I also learned that almost all VCS demo coders seem to be "lone wolves". A
friendly contact with a lot of exchange began, a lot of exchange, but not
the cooperation I was hoping for.
So I started to looking at other places like forums of AtariAge. There
I met people
who wanted to work on a demo, but as the months passed, it became clear that
they couldn't find the time for various reasons, to get something done for a
demo. So by the time Revision Party 2013 came in sight, it was clear, that I
would visit it empty handed. Well not quite. Empty handed in the case of a
releasable demo, but I had written quite a bunch of "tech-demos" as I called
them. Effects that I used as some kind of card to show that I'm not just
babbling up hot air, but really can accomplish something. Again there was
some exchange with the other VCS coders and other people, and by the
end of the party I knew, I could do the code alone. And at that time the
luck kicked in. While I was packing up things, I got to know Skyrunner who
did the music for "Code
Red", a demo for hardware even more limited than the VCS. Right after the
compo someone played the recorded video of that demo, and girls standing right
next to him began to dance to the tune. I was deeply impressed. And the guy
who worked that miracle wanted to make music for the VCS and was looking for
a chance to do so. As I put it in several conversations I had about the
demo: "I was so damn lucky, that my musician found me!"
Via Jac!, I also got to know Deft, who organized the Code Red demo
mentioned earlier. He is also quite skilled when it comes to pixel graphics.
Hearing that I wanted to create a VCS demo, he also agreed to contribute
some graphics.
On Revision 2013 I was hijacked to visit the
Nordlicht. Hijacked is a bit
exaggerated, they insisted that I should visit, and I had no arguments why
I shouldn't attend. There I met Veto and Titus for the first time, which I
also met later that year at Evoke. They
were both eager to do something on the VCS, and who am I to say "no"? ;-)
So now, the team was complete: a coder, a musician and three pixel artists.
At the time of Evoke, it was very likely that the demo would get finished
for Revision 2014. The biggest problem now: Skyrunner isn't a coder, so he
can't just work with Paul
Slocum's Music Kit. So he needed some kind of tracker. After evaluating
all options like writing a converter or creating an own play routine with an
editor, I decided to create an editor for Paul Slocum's play routine, which
I called apefat (A Poor Excuse For A Tracker) (a link will follow, once it
is released). For the graphics, a private wiki was set up where I posted
what I need for the different parts (most times including screenshots of my
placeholders). The rest was just working to get the pieces together. Most of
the parts were developed as standalone ROMs without music and once they were
done, integrated into Bang!
Opening Pandoras Box? About The Additional RAM Used
When I started developing some of the effects, I pretty soon came
to a point, where I noticed that I couldn't pull this off without additional
RAM. I had a part that needed 216 bytes alone just for storing the graphical
data of a scroll-line. Way more than the 128 bytes of RAM available on the
VCS. This was first coded using the CommaVid bankswitching scheme, which
offers 2k of ROM and 1k of additional RAM, and ported later on to the
SuperChip / SARA additional RAM.
After I was sure, that I wanted to pull this off using the additional RAM,
I made sure, that I make as much use of it as possible: the data for the man
from Impossible Mission were compressed in ROM and unpacked to the additional
RAM, saving me about 30% of ROM space. This is just one example. Other parts
also need the additional RAM for storing precalculated data.
But I also made damn sure, that I'm using the SARA chip emulation exactly
like the original was used: the 128 bytes of RAM came with a price of 256
bytes of ROM for each bank, summing up to a total of 2k in my case. That's
the same on the emulation as well as on the original. But the emulation allows
running the code from the additional RAM, for which the original RAM was
too slow: When reading an operand for an opcode, the RAM was not ready for
delivering the next byte, so only junk was on the bus. When just used for
storing and reading data, RAM access could only be on the 1/4th of the speed
of the CPU at max, which is slightly less than 300kHz.
Finally, I don't think of it as re-defining on what's possible on the
VCS. The SARA chip was used in 15 cartridges according to
this
AtariAge from post. Too much to be exotic, not enough to claim that it
was a very common technique to expand the VCS. Probably I had the same
problem as the designers of those games, that the RAM provided by the VCS
isn't quite enough for what I wanted to do. So I took what I think is the
most common approach.
In October 2020, I built a cartridge using a GAL for bankswitching, an
original SARA RAM chip and a standard SST 27SF256 flash chip as ROM
replacement. I could have used an EPROM, but the flash chip lacks the
"window" of the EPROM, so it's better looking. It works like a charm. So,
it's now official, that works on the same configuration as
Fatal Run.
In the commentary below I also describe which part the SARA RAM is used for
which purpose.
Demo Parts, Creators' Commentary
I really like to listen to the directory commentary tracks of the DVDs
and BDs, so I decided to put up something like this on this page. Right
now, this is work in progress.
Intro
Gameboy-Like Intro |
|
- SvOlli:
- This is intended as an intro for all my VCS demos. The inspiration
came from the Gameboy intro, but instead of copying it, I decided to
take just the idea and code it VCS style. Also the sound effects are
typical for the VCS. ROM size is just 127 bytes including code for
sound.
- Deft:
- To me this part is so clean and optimized that I thought it was a new
feature of the Stella emulator when I first saw it. It's just as small and
perfect as an Amiga Bootintro should be.
TODO: final check |
Film Countdown |
|
- SvOlli:
- The idea of the main theme of this demo was some kind of movie.
It also includes some fuzz on the lens. This will happen three times
during the demo.
-
- This part also gave me the chills during the screening on Revision.
For months, I've been seeing and hearing this part during my checks through
the different stages of the creation of this demo. Always in a place rather
small. Now in the big hall that pure and simple sound is getting some
natural echo, sounding awesome. To me, that was the most unexpected moment.
TODO: final check |
Edith Piaf |
|
- SvOlli:
- Some films start with some kind of message. I like that, so I wanted
to have my own version. The quote I got from the 12inch-Version of
"Slave To The Rhythm (Blooded)" by Grace Jones. "Use your faults,
use your defects, then you're going to be a star." is one of the
basic ideas of this demo. The screenshot looks actually better than the
real hardware, because it uses the phosphor feature of the emulator that
merges the two interlaced half-images into one.
- Deft:
- I heard about Edith for the first time from SvOlli. Her iconic look
and that slogan drove me into keeping her great charismatic 30s appearance
so I carefully put the pixels here and there. The border underlines the
iconography and also introduces some subtle shadow play.
TODO: final check |
Presented By AtariAge |
|
- SvOlli:
- Every movie has some logos of the companies presenting the film, so
this I wanted to have as well. Some friend of mine can tell if a film
is nice, just by looking at the production companies. Starting with
AtariAge, the core site for
Atari 2600 VCS development (and other Atari stuff, of course).
TODO: final check |
Presented By Pouet.net |
|
- SvOlli:
- Pouët.net is also important:
the main site of the demo scene, at least for me. The idea for this
logo was to use playfield graphic and smooth some edges using sprites.
Coded during a holiday on the north sea island of Wangerooge on a
rather early stage in development.
TODO: final check |
Presented By MEGA |
|
- SvOlli:
- The museum of electronic games and
art was the first of the three organizations that knew, that they
were "presenting" this demos. I asked AtariAge for permission just a
couple of weeks before the release, pouet.net never got asked because
it is a community driven site, and I am part of this community. So
this is my way of paying respect. Also a funny side note: the mega
logo is a sprite that is an exact monochrome replica of the original
mega logo, 49 pixels wide, technically challenging from the coders
perspective, usually only 48 pixels are possible. And the first thing
I heard from Deft, the guy from MEGA and also one of the three guys doing
the graphics in this demo: "it's so much smaller than the other logos".
- Deft:
- But it is! :) Which does not mean I don't recognize the coders work here.
Indeed MEGA is using this cartridge for exhibitions about classic video game
systems, the demo scene and the need to learn to overcome barriers (or even
seek them). The fact that SvOlli based this demo on lots of citations also
really helps in the context of art.
TODO: final check |
XAYAX Production |
|
- SvOlli:
- Here is the logo of XAYAX, coded by hand instead of pixeled, using every
sprite the console has in different multiplications, intended to look more
like an 8-bit home computer than a 2600.
- Deft:
- Coder Logo! Form follows function here. My efforts to do something more
stylish were choked soon. :)
TODO: final check |
Bang! Title Logo |
|
- SvOlli:
- The title screen showing the name of the demo in a nice animation.
This I started coding at Evoke 2013, and it got completed on the
same event, after I realized that the hotel gave me a key that would
let me into my room, but not through the front door. This is also one
of my favorites parts of the soundtrack. I really like the effect when
the letters get push out of the screen and when they hit the ground
offscreen. Again, note the fuzz on the lens. Second time. The name
"Bang!" came from two different ideas: I wanted to have that "in your
face" attitude, and it's also the name of two different compilations
of Frankie Goes To Hollywood songs. One being the best of album, the
other one some obscure Japan CD with rare stuff. Still looking for that
one. This part uses the SARA RAM for the "falling" letters. The idea
how to implent the falling letters using the extra RAM, I got after
reading how the DPC chip of Pitfall II for the 2600 works.
TODO: final check |
Chapter 1
|
- SvOlli:
- I decided to group effects in different chapters, and create a short
tagline for each of these chapters. Side-to-side scroller is the claim of
things to come. The VCS has 160 pixels in width, typical scrollersize is
48 pixels in high resolution, 96 pixels interlaced, or 40 pixel when using
playfield graphics. Here I want to do all 160 pixels.
TODO: final check |
48 Pixel Scroller |
|
- SvOlli:
- A rather standard (but not simple) scroller running in a typical
48 pixel sprite. This is the second time the soundtrack is turning "favorite"
for me. Again that hitting sound, it got that part coded a bit. Musically the
hits are on "2" and "4" of the rhythm, but the flashing effect was originally
at "1".
TODO: final check |
Streching Out |
|
- SvOlli:
- Now we're getting from the standard part to the really interesting stuff.
TODO: final check |
Side-To-Side Scroller |
|
- SvOlli:
- First time a scrolltext on the VCS runs from one side of the screen
to another in highest resolution possible. At least as far as I know.
The RAM needed for graphics data alone is 216 bytes. So this was the
part that got me switching from vanilla bankswitching to using SARA, the
chip that offers additional 128 bytes of RAM on the cartridge, used in
cartridges like Dig-Dug and Fatal Run. In fact the hardware I'm using
is the same as Fatal Run: 32k ROM + 128 bytes of additional RAM.
- Deft:
- SvOlli told me that he won a bet about making a scroller go from
the very right to the very left of the screen on a VCS. Nice story
that needs to be told!
TODO: final check |
Chapter 2
|
- SvOlli:
- This chapter contains the stuff that I considered "typical 2600 stuff",
as said in the introduction.
TODO: final check |
The Matrix |
|
- SvOlli:
- An effect originally used in the hidden part of the "Scene Demos 6-in-1"
cartridge. But no one really found that part, even though I hinted a lot.
This is a modified version. I also didn't want the screen to just disappear
for the next one. Instead it's raised like a curtain.
- Deft:
- This helps people to understand what "normal" VCS stuff looks like!
- SvOlli:
- Fun fact: Jac! (one of the most skilled VCS coders, he did
ISO) asked me,
how I did this. So much for "normal" VCS stuff. ;-)
TODO: final check |
Bresensprite |
|
- SvOlli:
- This part was the one that was about being kicked out in case I needed
the space, but it contains a lot of subroutines that are used later on in
the code. So I kept it in there. The idea came from playing around with
the Bresenham algorithm for line drawing and porting it to the way
sprites are moved on the VCS. During the screening on Revision this part
got a few extra cheers, a much better response from the audience than I
expected. This part uses SARA RAM for copying the XAYAX logo to.
TODO: final check |
Chapter 3
|
- SvOlli:
- This part is one of the those that were developed rather late.
Originally placed rather at the end of the demo, I noticed that it would
work better more at the beginning. It was also one of the times I had
some trouble finding the text for this slide. Now it's one of the best
fitting.
TODO: final check |
Turning Bar |
|
- Deft:
- Brutal coder colors ahead! Hehe..
- SvOlli:
- Hey! I only had the base colors, as the brightness is calculated by
the Z axis. And the color pairs also could needed to be calculated very
quick.
"Lieder geil" is the name of
a song by German band
"Deichkind". It means
something like "sorry, it's cool".
If I need some text do display, "leider geil" is some kind of my
"lorem ipsum", because
once an effect is completed, it often feels like "leider geil".
TODO: final check |
Chapter 4
|
- SvOlli:
- There are some effects that are "classics" in demo coding. Tunnels,
checkerboards, starfields, different kinds of scrollers, rasterbars and
plasma effects are some of those. The last two of them are now presented
in this chapter. Some guys from TRSI are stating that "every demo needs
a plasma effect", so that's where the idea from this texts comes from.
TODO: final check |
1D Plasma (aka Rasterbars) |
|
- SvOlli:
- Here one of the first effects I ever coded on the VCS: rasterbars,
technically a plasma effect using just one dimension. This part uses
SARA RAM for copying the XAYAX logo to.
- Deft:
- So coder-colored that I actually love it. Didn't touch it at all, just
to make that clear.
TODO: final check |
2D Plasma |
|
- Deft:
- For whatever reason SvOllis coder colors really worked out here. The
palette seems very well balanced and puts any C64 to a shame as one Revision
2014 visitor said.
- SvOlli:
- And here is one of the two best plasma effects implemented on the VCS
I know of. The other was done by Shadow of Noice in Sphaera Stellarium. It
is done by changing the background color while the beam travels along. Cool
part about this: the black lines are set every 16 pixels, when you draw
something, the size is always a multiple of 3. But still this works, but
how? I'm drawing 15, 18 and 15 pixels = 48 in total, divided by 3 = 16 clean
pixels, and the lines of the sprites cover the "unclean" pixels.
Another
fun fact: there is an FPGA implemented RGB video mod available for the 2600.
This mod saidly breaks this effect slightly. The change of color is delayed
by one CPU clock cycle, so the color change is not hidden by the black bar.
And as I've proven that it's not 100% compatible, I switched back to
composite mods.
TODO: final check |
Chapter 5
|
- SvOlli:
- Here we are at the first crowd pleaser. After I decided, that I would
like to create a demo, I decided that I wanted to entertain people as much
as possible. Mentioning Amiga was one of the things that guarantees cheers.
So here is a whole part dedicated to Amiga, a machine I once owned, but
never did any real coding on.
TODO: final check |
Amiga Kickhand |
|
- SvOlli:
- Starting off with a simulation of a booting Amiga showing the classical
Kickstart hand. Using the same routines as for the Edith Piaf image, but
this time the screenshot was done without the phosphor feature of the
emulator. The image was scaled and post pixeled by hand.
TODO: final check |
Amiga Boing Ball |
|
- SvOlli:
- This part came to live due to a request from Dr. Stefan Höltgen,
asking me if I could assist him in analyzing an Amiga Boing Ball demo for
the 2600 done in 1999. After I took a first look at the code, I decided
that it would be better to rewrite that stuff from scratch. That back and
forth action led up to me writing a chapter for his book, describing the
demo scene in general, and this demo part in special.
- Deft:
- The first Revision-Logo morphs are greatly synced to the music. The
others... oh well.
- SvOlli:
- Of course it drifts out of sync, it's a slow introduction for the
upcoming guru.
TODO: final check |
Amiga Guru |
|
- SvOlli:
- Originally it should state at least "Guru Meditation", but I couldn't
squeeze that message in 48 pixels. So I decided to go for "you know",
which also is a cooler approach.
TODO: final check |
Chapter 6
|
- SvOlli:
- "Those
were the days" is also picking up the title of a song that's been
covered a lot of times, but I wanted to go for my personal "good old
days" in this case. Second crowd pleaser.
TODO: final check |
C64 Loading Screen |
|
- SvOlli:
- The screen simulating the loading of that part from a tape. I originally
wanted to load from floppy, but the messages didn't fit in the 48 pixels
that I've got. This leaves me with space for 12 characters. The typical
"Press Play On Tape" message was also way too long, but if play has already
been pressed on tape, that message would not show up, so this is correct. It
also shows a typical
exomizer
unpacking effect. I also remember the first
time I heard Skyrunners music for this part. It is so cool to hear the VCS
simulate the sound of the superior SID.
TODO: final check |
C64 Logo Bouncer |
|
- SvOlli:
- Here I am reusing the graphics data of the Bresenham sprite part from
Chapter 2. I wanted to simulate a simple effect of the C64: removing the
upper and lower border. And I needed something to display, so the top-down
XAYAX sprite was in use again. Nothing too special as the highlight of
this chapter is coming next. This part uses SARA RAM for copying the XAYAX
logo to.
TODO: final check |
C64 Multiplexer |
|
- SvOlli:
- Ahhh, the multiplexer. Technically one of the most challenging parts.
It took me three weeks of spare time and five tries to get this one running.
The coloring of the two sprites in the middle are simulated to look like
incrementing the color register on a C64. Looking very lame, but fitting
this part so perfectly. It's a bit sad that this part is more to the ones
knowing the limitations of the VCS. This part uses SARA RAM since the sprite
format is slightly different than on the other parts: the multiplexer has
the option of using sprites of different height, which has to be encoded in
the sprite data.
- Deft:
- The music is really great here, Skyrunner flexing some muscles. It's
so hard to make real music instead of noise on the VCS.
TODO: final check |
Chapter 7
|
- SvOlli:
- The greetings. I originally wanted to place greetings as filler for
scrolltexts and alike. But after I figured out the multistarfield in the
last part of this chapter, I wanted to have a space ship shooting the
greetings. The star ship was the one from
Cosmic Ark at
first, implemented with sprites instead of playfield graphics. Later
on I chose to replace it with the one of
Raumpatrouille
Orion, because they are also using their problems for their advantage:
adding some acryl to a flat iron to get some kind of measurement device.
TODO: final check |
Greetings Part 1: Impossible Mission Men |
|
- SvOlli:
- Here is one of my favorite parts. I knew that I needed something to
hold against the
Armalyte ships of
aTaRSI. Since
Impossible
Mission is one of my favorite games, I also knew some of the
internals of this game: for example that the player is drawn by using
three separate sprites. Two were needed because the player was too
high in size, another one to display the white colored area in high
resolution instead of multicolor mode. These sprites are 24x21 pixels
in size each. The VCS only has two 8 bit wide sprites and three that
can be only turned on and off. It was a nice challenge recreate this
animation in all 14 frames. Jumping is not possible, because in this
case there are to many pixels in one line. Each animation frame uses
128 bytes of data which will be decompressed from ROM into the
additional RAM, saving me ~30% of ROM space. Having three men is just
done by using hardware sprite triplication. The additional SARA RAM is
used again for the rasterbars jumping inside the text.
- Deft:
- To me it was a great retro experience ripping these sprites out
of the original C64 game.
TODO: final check |
Greetings Part 2: Boarding Sequence |
|
- SvOlli:
- Again 14 animation frames for the men, scaled down and hand pixeled.
It turned out pretty nice. And where we also see the main actor of the
rest of the greetings: the flying saucer of
Raumpatrouille
Orion. After the release there was one guy claiming that this is
an innuendo that will probably not be understood outside of Germany.
This series is from the mid to end 1960s, so I'm pretty sure that most
people of the demo scene do not understand this innuendo either. Didn't
care. "For those with an eye for the finer details, we salute you..."
as Frankie Goes To Hollywood, said on the cover of "Welcome To The
Pleasuredome". I'd like to put that quote in there as well, but had no
chance to place it.
- Deft:
- I tried hard to make a cooler looking ALARMSTART font. My efforts
were commented with words like "unreadable" (as if that would matter in
a demo!) and "too stylish" (*sigh*). Taking all parameters in account
I came up with something that was only differing in one pixel from
SvOlli's approach. Resulting in "oh screw it".
- SvOlli:
- Sorry, but it should somehow resemble that 60s flair of the TV series.
Yours was just to too much further into the future as the one "Orion"
portraited.
TODO: final check |
Greetings Part 3: Starting Sequence |
|
- SvOlli:
- During the start we hear the tune of Raumpatrouille Orion in a nice
conversion. This starting phase is just used as a bridge to the next
part and was coded in some "leftover bytes".
TODO: final check |
Greetings Part 4: Travelling Through The Greetings |
|
- SvOlli:
- And here we are at another technical highlight. The most complex
parallax star scroller on the VCS so far. This was originally discovered
by Rob Fulop while developing missile command and used later in his game
Cosmic Ark.
I also stumbled about this hardware bug like him, only about 30 years
later. But unlike him, I wrote a program to analyze the bug in detail.
This lead to the ability to use three sprites for stars instead of one,
like in Cosmic Ark. Getting this stable, I was really proud until
Thomas Jensch released a tech-demo showing that he does it will all
five sprites. But that's not stable on all consoles, but my three
sprites are. I also needed the remaining two sprites for the flying
saucer. This part also uses the additional SARA RAM for bringing
the logos to a common format. Most of the logos are 8 pixels in height,
a few use 16 pixels. It also made the "blending" effect possible.
- Deft:
- SvOlli did the greetings logos which are sometimes really hard to
read. A fact that I love. Besides, the MEGA logo is really done well!
- SvOlli:
- Sorry, but I just did a five of the nineteen, if I counted correctly.
The other ones were done by Veto and Titus. I set up a wiki as an easy
way to ask for things and supply the results. Seeing what those two came
up with was big fun. Some of them got a small post pixeling by me as
well... ;-)
Leitstelle 511 e.V. is the local
hackerspace of the Chaos Computer Club in Hannover, you can meet me
there at their open events.
TODO: final check |
Chapter 8
|
- SvOlli:
- This is probably my favorite "chapter quote". Spiceware is a guy who
pushes 2600 development to the max. Using the microcontroller on the Harmony
or Melody boards, he squeezes out much more than what's possible on vanilla
hardware. I sent him this part as a standalone version via the AtariAge
boards. His reply message consisted just of the one word I quoted here.
TODO: final check |
Snake Sprite |
|
- SvOlli:
- This story of the creation of this part is probably the best example
to show, why I can do demo coding on retro hardware, but suck at the
"limitless" PC hardware. It all began with a screen full of 16 "SvOlli"
logos swinging in a sinus motion. And I began to wonder: how tight could
I squeeze the sprites together? The answer: one black line followed by
two lines showing the same data... as shown here. So it was me reaching
out for the limits of the hardware, that led to this part. Greatly
simplified, as there were some more steps in between the 16 logos and
this one. Also an interesting side note: the logo was just intended as a
placeholder. I wanted to have it replaced, but a significant number of
people who watched this during creation urged me not to replace it. So I
kept it in.
TODO: final check |
Chapter 9
|
- SvOlli:
- Showing some boobs helps winning a compo. So here we are at the third
crowd pleaser. I originally wanted to have OhLi to pixel something like her
Pool Girl for the VCS, but
she was too busy becoming a teacher. Deft was already eager to do something
more, so he got the job and did it good. A kind of drawing kind of invented
for this part. Some parts of the original image, which are in the unused
mirrored area, are used for moving the sprites, which are used for the high
detail parts.
TODO: final check |
Deft's Girl: Donna |
|
- SvOlli:
- So there she is: first just in greyscales.
- Deft:
- When I first drew Donna she was a really nice looking girl. I had to
learn that I had to scale her down so much that she got ugly and then tried
to build her up again using sprites. I drew the sprite movements in bits
as well as the sprites themselves into the graphics and SvOlli read them
out automatically so I could experiment better. Also sprite movement is
very limited, so I had to focus on the important parts: The nipples
obviously and other round stuff below :)
- SvOlli:
- The big problem here was, again, ROM space. Each line is just made up
by three bytes, containing the pixels for the "blocky" playfield, the
sprite data for the "hires" areas, the sprite movement and the grayscale.
All encoded in just 24 bits per line. Just the tribal at the sides are
done by a different routine.
- Deft:
- I remember one great conversation with SvOlli. Me: How do you do this
stuff elsewhere? He: I never did a fullscreen image on VCS before!
TODO: final check |
|
- SvOlli:
- An then width additional rotating color bars.
- Deft:
- When SvOlli wanted color rotations he replaced the grey lines which
were my last chance to have some idea of light and shadow on the girl.
She simply got flat otherwise. So I told him about what I did on the
AMIGA game "Jump'n'Roll": I added the color bars onto the grey shades
instead of replacing them thus keeping them intact. SvOlli tried that
and we liked it a lot.
- SvOlli:
- Again, I used the additional RAM, this time for precalculating the
colored areas, just adding the brightness on the fly.
TODO: final check |
Outro
Outro Scroller Part 1: Credits |
|
- SvOlli:
- Fuzz on the lens for a third time. This time it was really hard, because
the interlace sprites destroy the straight line of the fuzz. I had to
counteract this.
TODO: final check |
Outro Scroller Part 2: Blow Others Away Claim |
|
- SvOlli:
- This quote is from Rob Fulop's Blog, where he tells the
story (alternative source) of the
origin of Cosmic Ark,
a story which I stumbled upon after my experiments with the Cosmic Ark
starfield from the greetings part in chapter 7. And what has been true
about the game developers "back then" is still 100% true for the demo
coders on that platform nowadays: I was blown away when I saw
TIM1T by Kylearan of
Cluster which ran in the same compo as "Bang!". For my talks and
workshops I've done some analyzing of other peoples demos, and still I
had no idea on how he did several of the effects in his demo the first
time I saw it.
- Deft:
- The quote from the image almost seemed to be a bit over for me - until
I read that it was from the 1980s and from the Cosmic Ark creators.
TODO: final check |
Outro Scroller Part 3: Only Legal Claim |
|
- SvOlli:
- When coding was done for about 75% of the demo, I realized, that I
wasn't using any illegal opcodes. The times where timing was tight, I
rather chose to look for the solution in using the additional RAM, mostly
because I am not very accustomed to using illegal opcodes. Back in my
C64 days, the assembler didn't support them, and I picked up from there
when I started coding for the VCS. So again am using my faults, my
defects to be a star. ;-)
TODO: final check |
Impossible Mission Man Searching |
|
- SvOlli:
- Again, the idea for this part came from the movies, where I like the
idea of having a joke after the end credits of a film. So that's what I
wanted to have for this movie themed demo as well. This was the first
incarnation of the Impossible Mission man I coded, imitating a scene
from the game, just running around and searching something.
TODO: final check |
Impossible Mission Man Finding |
|
- SvOlli:
- And not only searching, but also finding something: free beer. At
exactly this point, I was tossing beer bottles around to celebrate the
release of the demo.
- Deft:
- At this point on Revision 2014 everyone was already so drunk that
we could not get rid of the beer although I tried hard! *Burp*
TODO: final check |
QR Code |
|
- SvOlli:
- Finally showing a QR code linking to this page.
- Deft:
- We learn: VCS is perfect for QR codes if you keep your URL short ;)
- SvOlli:
- But I wasn't the first, Szuwarek and Factor6 did that in their sound
focused demo
"xSqueeker", but
there they just encoded the name of the demo. It would have been better
to have this page set up by the time the demo was released and not two
weeks later, because it was first visited only seconds after the demo was
shown.
TODO: final check |
Hidden Message |
|
- SvOlli:
- Let me introduce you to the easter egg. If you set the switches to the
positions "COLOR", "LEFT DIFFICULTY A" and "RIGHT DIFFICULTY B", then a
hidden message is displayed after the QR code. This message will differ
from version to version: the download version shows something different
compared to the version that you can buy
on AtariAge. There also is a first release of eight cartridges for
everyone involved and very close co-sceners. They all got their name
displayed in this screen. (The "commentary edition" more like a
placeholder.)
TODO: final check |
Thanks for watching or reading the comments to these 46 screenshots.
ROM Used (Party Version)
This is the ROM usage of the version shown at the party.
bank | free | | comment |
bank0 | 1 | 99.9% | |
bank1 | 34 | 99.1% |
Additional 36 otherwise unsed bytes are filled with an MD5 sum, so a
special edition with a custom hidden message can be proven genuine. |
bank2 | 4 | 99.9% | |
bank3 | 38 | 99.0% |
This was originally less then 10, but I found a nice way to optimize the
boing-ball during the final week of coding. |
bank4 | 1 | 99.9% | |
bank5 | 4 | 99.9% | |
bank6 | 0 | 100.0% | |
bank7 | 14 | 99.6% |
The bank containing the mostly the music. |
total | 96 | 99.7% |
Total available ROM size is 30720 bytes. 2048 of 32768 bytes are missing
because of the additional RAM chip overlapping the ROM. The overall total
code to data ratio is: 47.4% code and 52.3% data. |
Influences, Quotes And Innuendos
- AtariAge
- - special thanks to community for support
- - presenter
- Coca Cola
- - graphics for sprite effect
- Commodore Amiga
- - Amiga startup including the "Kickstart-hand"
- - Boing Ball
- - the "guru meditation" screen
- Commodore C=64
- - tape loading screen.
- - the missing border at top and bottom
- - simulation of the 8 sprites
- - the color-cycling of the 2 "VCS sprites"
- Deichkind
- - "leider geil" as text for the rotate effect
- - small part of the song "leider geil"
- Edith Piaf
- - "Use your faults. Use your defects, then you're gonna be a star."
- Impossible Mission
- - the player in running animation
- Museum of Elecronic Games & Art
- - presenter
- Movies
- - countdown to start
- - introducing presenters
- - scene introduction using text
- - title screen
- - lint on the lense
- - falling green dots from "The Matrix"
- - humorous scene after the credits
- Nintendo Game Boy
- - logo entering from top of screen at beginning
- Pouët
- - presenter
- QR code
- - nowadays almost everything comes with a QR code containing
a link
- Raumpatrouille Orion
- - the spaceship in the greetings
- - music played during the greetings
- Spiceware
- - "Impressive!" quoted
- ZTT Records
- - Frankie Goes To Hollywood: the name "Bang!"
- - Grace Jones "Slave To The Rythm
(Blooded)" (extended version) contains the quote from Edith Piaf