notice the 5200 is not Year 2000 compliant
A picture of the Atari Logo boot-up screen before I added the "Y2K compliant" code



5200 pixels, I later found, are not square but rectangular
Early drawings & music notes



The following is a description of how the Atari 5200 renders the characters and backgrounds of Koffi: Yellow Kopter....

Koffi is made up of Player0 and Player1. You can actually get three colors by overlaying pixels in these two players; however, after experimenting a bit, I found I liked Koffi best without the 3rd color so I don't use it. Note that not all emulators accurately show this 3rd color trick.

The Douse Water is Player3, shared with the animals below. Since both elements are at different vertical locations on-screen, I can use the same Player for both Animals and Douse Water by changing the register HPOSP3 (horizontal position) and the Player3 color midscreen via a Display List Interrupt.

Pyro, the top cloud layer, the leaves, trees, vines, fireballs, and fire are all made up of background graphics. The horizontal lightning is also comprised of background graphics.

Pyro's "Shazam!" type of lightning is Player2. I turn it 'off' by making Player2's Horizontal position register a zero, thus removing it from sight. Player2's Missile has become an on-screen Water Level indicator.

The four raindrops are missile 1 (blue1) and missile 3(blue2). Four Raindrops fall at a time and they fall at different speeds. Again, I used a Display List Interrupt to split the missile into two raindrops or snowflakes each.

The animals in the trees below are 3-colors, using Player3, Missile1, and Missile2. It was more work than I care to admit learning how to get these sprites to work together in forming one image and yet not messing up their uses at the top of the screen. This is one of those "fooling the machine to do what it can't" kinds of things, since 5200 sprites are by default 1-color sprites. Note that color 3 MUST be blue.



The following is a sort of online log that I had been keeping during development ...

June 2001

My early goals in figuring out the 5200 and ASM code in general were to draw some simple background graphics, and to animate a character and to move it vertically. This demo grew to become the base code for Koffi. As seen here, I was still using the low-rez ANTIC mode A, and my demo was colorless and blocky. This picture shows my first successful (yet garish) use of a Display List Interrupt on the cloud. I decided not to use this technique in this method after seeing what it looked like.

September 9, 2001

Here is an early screenshot of Koffi in ANTIC mode E, its current graphics mode. You can see Pyro, the trees, and Koffi himself. This screen took quite a bit of time since it crosses a 4K boundary in screen memory, from \\$2FFF to $3000. Antic cannot handle this unless you put an additional "LMS instruction" (its is basically a jump) in the Display List that ANTIC uses to draw the screen. I had to learn all this to get the lower part of the screen to display!



September 27, 2001

Koffi's first title screen was seen here, but I guess I have wiped out the .jpg file from this site. Imagine this picture with only the topcloud , Koffi himself, and the letters k-o-f-f-i.



October 29, 2001

Utilizing more DLI color changes, Koffi's stage 1 is slowly gaining more life. The fire is also implemented yet still unfinished visually. The score section and top cloud are seen.



December 12, 2001

Collision detection is now implemented, allowing Koffi to bump into Pyro and the trees. Koffi now loses a turn if he touches the fire pixels or the lightning. Flames exist at the top of the fire and vegetation is seen below the forest.



December 26, 2001

Pyro's routine is now more efficient and he is able to move around. Start and Level Select (the * key) function, although not all the levels are actually built yet.



January 3, 2002

Emulation does not give 100% the same look as the actual machine. I need to try different colors to get Koffi and Pyro to look their best.

January 21, 2002

After seeing the color differences on the actual 5200 hardware, compared to the VSS and Atari800win emulators (which also have differences between themselves), I decided to program a color debug routine into Koffi's code. Now, using the Asterisk, 0, and Pound Sign keys, I can quickly change the colors for any on-screen item to any color I desire. These screens show the results of lunch-time fun with Koffi Colors.


February 21, 2002

I've been having the hardest time trying to get the DouseFire routines to work without glitching. I'm still not 100% there but, thanks to the debug mode in Dan Boris' VSS .8, I found a major bug! Basically, a bcc didn't work like I expected it to, so I replaced it with a bpl. Here's a picture of the 'jagged look' of the tree as the fire retreats .. still in progress!


March 9, 2002

There is one glitch I have had no success in solving. I know the routine which causes it -- the routine which puts up on-screen points when you rescue an animal -- and it messes up *something* in screen RAM so the top score area becomes garbage. Still trying to figure that one out ... in the meantime, I worked on the Coniferous Forest level lately, and also I have an on-screen Water Level indicator which grows & shrinks as you gain/use water.


May 24, 2002

Koffi's Mountain Valley Stage: slight changes to monkey animation, 4 raindrops simultaneously, and the bg strip of color now has some mountain-range detail. All kinds of Player/BG graphics Priority magic is going on in this stage. The fire is only purple on the emulator, incidentally.


July 15, 2002

The Windy Vines level is in. Wind only affected Rain Drops at first. Eventually I got around to wind affecting Koffi too, varying in strength and effect depending on level & difficulty setting. The wind only 'blows' in the middle part of the screen; the bottom and extreme top are safe spots from it.


August 30, 2002

All the animals from the AtariAge "Koffi Kontest" have been entered into the game. Plus a few others. I had to revamp the "DrawAnimal" routines completely, making them table-driven with more generic code, to fit all the data into the ROM space. It's now as efficient as it can be and hence more animals can fit. For each animal I store 2 frames, each consisting of bytes for the "player3" data and bytes for 2 missiles, and their horizontal position relative to the player sprite. I had to be crafty to avoid wasting space. For example, both missiles' data for both frames is stored on ONE BYTE per scanline and "extracted" by a simple masking algorithm.


September 17, 2002

After much experimentation, Pyro's Mom is essentially complete. I decided to make this boss stage different from the other three, and keep it simple and fast. Well, it gets fast after level 1. Do you recognize her opening musical theme?


October 15, 2002

After wasting one entire week trying to figure out why Koffi was now crashing on the real machine, I finally noticed that my test EPROM cart had a loose wire! Arghh! After that fiasco, the next thing I did was put in the credits screens where I thank/credit those who helped to make Koffi possible.
Thanks for Visiting!

Atari 5200 Koffi: Yellow Kopter
Back to the Atari 5200 Development Index