Label

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


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
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
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
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
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
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
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
XAYAX Logo
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
Bang! 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

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
48 Pixel
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
48 Pixel
SvOlli:
Now we're getting from the standard part to the really interesting stuff.
TODO: final check
Side-To-Side Scroller
48 Pixel
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

Chapter 2
SvOlli:
This chapter contains the stuff that I considered "typical 2600 stuff", as said in the introduction.
TODO: final check
The Matrix
48 Pixel
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
48 Pixel
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

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

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)
1D Plasma
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
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

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

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

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

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

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.
bankfree comment
bank0 199.9% 
bank13499.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 499.9% 
bank33899.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 199.9% 
bank5 499.9% 
bank6 0100.0% 
bank71499.6% The bank containing the mostly the music.
total9699.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

Mainpage go https Valid CSS Valid HTML 4.01 Transitional