August 14 2013


C64 Diary

[On Hold]

This is the part where I will try to explain how I am building up my horizontally scrolling shoot ‘em up game, Frixxion.

As much as  I am calling it a “Diary”, it isn’t a diary with a date, as I work funny hours in work and there are times when I can’t actually do anything, so there would be huges gaps in the Diary.

It will mainly be a Part 1 through to…. errr, what ever part I get to. So I might as well start…

Part 1 – Set up the Raster Splits
In this part I just set the basic screen up, with two splits, there was a 21 char down  area for the main scroll area, and 3 char down area for the scores, etc.

Part 2 – Tidied up Source Code & Tweaked
Not a lot happened there, just really what it says on the tin.

Part 3 – Added some essential requirements, like a double buffer scroller
Now, I say they were essential, all I did was change some of the code to allow me to change things easier.. i.e. instead of having $d001 in the code, I had sprite1_y_pos = $d001, made things easier to follow, and easier to change at a later date.I also added the scroller, which at first it was a single screen, 21 line scroller, which was simple, but they I remembered, I was advised to do it Double Buffer, so I re-wrote the code, and viola…

Part 4 – Added 8 Sprites
Now every game has sprites, and I thought i need to get them on the screen, and take into account the whole, hmmm it is going past 255, Ahhh, the MSB, sorted that!

Part 5 – Added Joystick Routine
Sooooo… you have the sprites, you have the player, how ya move him? well this routine sorted that  out.

Part 6 – Changed Sprite Routine & Tweaked
ok, see Part 4, had a little problem with my MSB, it glitched, whenon the hunt for some help  from a few friends, then got reminded of the easy way of doing it, so I changed the code.

Part 7 – Added Map Scroller
First attempt to getting tile to display on the screen, and it worked, or so I thought, I noticed  it was only display the 1 line of the tile (as it was a 3 by 3 block), soooo I tried to get that working. I did, but,  the tiles where appearing back to front, I was talking to a mate of mine, and he said… “Well that is what ya get for trying to be different”.

Part 8 – Added X Y Print Text Routine
Had this routine ages ago in a cracktro I wrote, couldn’t find the source, so had to re-write it,  you pass it the X and Y of the text, and the Hi and Lo bytes of the message, and it displays it, simple really, but  can be used a lot.

Part 9 – Re-Wrote Tile Displayer & Tweaked
After pulling my hair out, and moving on to other peoples hair, I decided to re-write the tile  displayer, took advice from a certain persion (not to mention any name TMR =-) and it worked, first time, well I  lie, it was actually the 3rd time, but hey what is 2 between friends…

Part 10 – Added Bullet Routine
I needed a routine that fired from my main sprite, so I did the routine, check the fire, start  it moving, don’t allow fire to be pressed until it reaces the end, and compiled, and errrrrrr didn’t work, it was a simple thing…….the c64 has two joystick ports…

Part 11 – Added Move Enemy Routine & Tweaked
Simple thing for now, moving the sprites around on their own accord, but with the added feature, expansion, the routine I did, will allow me to run along side it a alien wave routine, more to follow.

Part 12 – Added Bounding Box Collision Detect
Ok, finally got around to doing this bit, you move around, you want to see if you have hit anything, every game needs one, but I ain’t using $d019, as Action Replay Cartridges love that…

Part 13 – Added Bullet Collsion
Needed to tweak the routine for player collision, because, well your bullet can kill enemies too.

Part 14 – Added Some Graphics
Got some graphics for the game (added to test/dummy sprites also), so added them, and a test tune.

Part 15 -> Part 17 – General Tidy up
Just tidied around with my code, relabeling a few things, deleting some test code, etc.

Part 18 – Sprite to Char Routine
Finally got around to doing the routine that detects the characters on the map below the main player sprite, decided I can use a 3 by 3 block, so I can detect any section (with a 3 by 3) of the player (please note Graphics are not corrupt, this was for debuging/testing purposes).

Part 19 – Alien Attack Routine
Finally got around to doing the Alien Attack routine (with the help of TMR/Cosine) chucked some animation into it and decided to add a score just to test it works… Oh, and the lives go down when ya collide, ain’t done the explosion routine yet…

Part 20 -> 29 – Ch…ch…ch…ch…changes…
Ok, confession time.  I forgot to make notes about all the little changes that took place during these parts… so on to the next part…

Part 30 – Front End
Got a Simple Front End up and running (special thanks to Andy Vaisey for the Frixxion logo).

Part 31 – High Score Routine
Managed to hunt out some old source code of mine (from 1991) and used it for something worthwhile.

Part 32 – Game Over
Added a few little things, like a ‘game over’ message between last life and highscore, added a delay when you die to allow you to move out the way without dying again and generally tidied a few things up.

Part ?? – To do on the game…
Things I am planning on doing to the game soon:

  • Work out why the title screen doesn’t display again properly
  • Sort the timing’s of the colour bars/rasters
  • More Levels/Attack Waves