Richard's C64 game projects:
Status: 100% - Project finished - Download available from the TND Games Page

In 1984, she was waiting outside the school gates to clobber the brats. Now 26 years later, the cantankerous old lady is back on a new revamped C64 arcade adventure. - and this time, we show you how the game really should have played too.







SUMMER 2010 SPECIAL RELEASE - Exclusive 4 level playable demo of Bionik Granny Returns:
Click on disk to download preview.



Grannies. Don't you just love 'em or what? Well, Mastertronic Software must have loved them back in 1984. Bionic Granny is a classic piece of code, which many Commodore 64 fans may have remembered (or maybe not). This classic oldie was released on the £1.99 range and took about 7, 8 or 9 minutes to load without any turbo loading. I guess at the time they did not have Burner or Visiload mastering software so they used the ROM loader. Today you would have felt disappointed loading a game from tape for a long while and finding how bad this game really was. Well, this game was terrible.

However, on Thursday 18th February 2010, I checked out the terrible game music and did a remix of it using DMC V4.0. My remix turned out well and the game idea just came out. I didn't really hear about Bionic Granny until I was on MSN messenger and someone told me about it being one of the worse games to have hit the C64. A day later, I find that a post of the Bionic Granny remix had been published. I thought to myself, heheheh! Then I decided to work on a little tribute game based on Bionic Granny, but with more playability involved, instead of the way Mastertronic did the game back in those days. A couple of people suggested that I should do a tribute version to such a bad game. So coming maybe sometime in March (or probably earlier), Bionik Granny Returns. I admit doing a SEUCK version, but it did not turn out very well. Too crap in fact.

So then, what is the story line for Bionik Granny Returns. Well, to cut a long story short, it is generally this: Back in 1984, Bionik Granny was hanging outside a local school waiting to whack kids, using her laser powered brolly as they pass by. However, she gets bored and visits a mad scientist, who builds her a time machine. Granny eventually enters the time machine and enters the year 2010, where she finds herself outside a mini mart. Unfortunately her laser powered brolly was broken, so she sneaks into the mini mart and buys herself a cane. Then waits outside anxiously for the shoppers to pass by, so that the cantankerous old lady can whack the poor victims with her cane. Later on she ventures to different places.

The new concept:

Although this game is going to be taking a makeover. The concept of the game will be simple, but more fun. For example, we will want some real action involved with this silly game, so the player shall have the opportunity to move Granny left/right (like in the original), but instead of running into the people she wants to whack with her cane. Pressing fire will activate the cane. There will also be a hidden quota. As soon as enough people have been hit by the cantankerous old lady, a coin will move downwards. If the player collects enough coins (by whacking enough people with the cane), they will move on to the next level. Also the speed for each character will depend on the level which you are on. Also planned is a front end with a different piece of music, with flip pages. First showing the credits, then the game instructions, then the high score table.

There may also be a bonus stage (Which might be after each level is complete), where Granny wants to go down to the local post office and get her pension. However, she will have to cross a really busy road. If she gets across and inside the correct store, she receives her pension and bonus points are awarded. However, if she enters a wrong building, or gets hit by a vehicle then there will be no bonus. To make things quite interesting for each level. One of the 3 doors could be randomly selected before the level starts.

At the moment there are going to be 4 different scenes (Levels) as well as the bonus. However, it might be possible to expand the game more, if the result for the first 4 levels turn out well enough.

The price of the final game?
It will not cost anything. This is going to be Public Domain software.

Lil' Diary 'o mine.

21st February 2010 - Graphics and a start of some programming.


However, although this game is going to be taking a makeover. The concept of the game will be simple, but more fun. For example, we will want some real action involved with this silly game, so the player shall have the opportunity to move Granny left/right (like in the original), but instead of running into the people she wants to whack with her cane. Pressing fire will activate the cane. There will also be a hidden quota. As soon as enough people have been hit by the cantankerous old lady, a coin will move downwards. If the player collects enough coins (by whacking enough people with the cane), they will move on to the next level. Also the speed for each character will depend on the level which you are on. Also planned is a front end with a different piece of music, with flip pages. First showing the credits, then the game instructions, then the high score table.

Anyway, today I got started on working on some in game graphics for this game. I used the Multi Screen Construction Kit utility to design my own screens for the game. It took a while for me to design those screens as I wanted to add some quite nice detail to the actual game's graphics. The result for outside the Mini Mart turned out quite nicely (See snippet below).

Other level screens I designed using MSCK were the Park, School and Public Toilets. (I might do a boating port or pub if I get round to designing some more screens. It depends how well the first 4 levels will turn out. There could also be a possibility of some more screens later on if I can think of any more levels for the game. (Huge grin). Then I used the WinVice Monitor to capture all colour and screen data of this game and stored it to the .d64 using:

s "name of file" 8 (source add) (destination add) and that worked out well.

My next step was to make the game sprites. So I dug out the Sprite Editor V1.0 by demo group Faces and drew the characters (sprites) for the game, starting with the Bionic Granny frames (Look much better than the original Bionic Granny), then I drew the kids and lollipop lady and the spinning lollipops. The sprites part is still unfinished, but this will be ongoing for a short period of time. Finally after that, I decided to improve slightly with the Bionic Granny remix, by adding a touch of extra melodies. As soon as the piece of music was finished, I decided to work on the game code. As well as the school stage, I am hoping to add some other characters like, dogs, angry shoppers, drunks, ghetto blaster (blaring notes at you) and some other interesting things.

Unfortunately not much time was spent on the game code for this game, as it was time for tea. So I only programmed in the game screen, IRQ player, etc. But hopefully tomorrow I can implement some more stuff to the code.

As soon as the game is finished and has been tested. It will be released on my web site as a free download and I'll make an authentic tape loader based on the Mastertronic Visiload loader (blue screen and flashing multicolour border) but of course, with loading music.

20th February 2010 - Granny is on the loose,

I done some more work on Bionik Granny Returns today. First of all, I drew some more sprites for this game. I created some shoppers, store man, trolley, ghetto blaster, etc. I shall not tell you everything as that would spoil the surprise.

After dealing with the sprites, I went back to do some more game code. I created some data/byte tables to represent frames and colours of the characters, which Bionik Granny will want to whack during her day out. Also I created some frames for the various hazards that hang around during the game. As soon as I got the byte tables sorted out, I programmed routines to initialize all the sprites, positions.

After the initializing of the character sprites I got started working on the game loop, which will expand the sprite position limitations and also I got the player moving, and animating. Now it is time for me to prepare some logic to this game, so that granny is using her cane to whack anything that comes along. Well, after a bit of logic I successfully got granny's cane moving. Whenever the player presses the fire button. She can use her cane. Now my next task will be to get some characters come into the game, but I'll work on this probably some time tomorrow or Monday afternoon. I do also have the Up in the Air project to work on as well. So I might do UITA tomorrow instead.

22nd February 2010 - Enter the Supermarket

On Saturday I got Bionik Granny to move around and worked on the whacking animation. Today, I did some more programming on this comical game. First of all, before I get the main characters on screen. I decided to program an animation routine, and test each animation on one sprite. Unfortunately the animation never worked. I wonder what went wrong? I did create timers and pointers for the animation and increment those the way I usually do. Apparently there was some strange bug inside the animation routine, which did not allow to cycle. So I decided to reprogram the animation sub routine and was lucky this time round. Unfortunately the animation for each character was a bit of a mess. It seems that I made a few typing errors in the byte tables that represents the animation frame for each character. After correcting those (by testing sprite frames one by one) , I got a better result. Animation's fine.

Now the animation has been updated and the correct animation has been added to each sprite. I programmed some subroutines that will give the bad character some bad behaviour. The supermarket assistant, that hangs around outside doesn't like Granny hanging outside a mini mart, so he moves around left and right and throws a supermarket trolley at a random place. I made the supermarket trolleys move downwards. I also got all the other characters to move downwards, but next time I program on this game. I will make random X/Y stopping positions for each shopper character, so that we get more variety and unpredictable X/Y positions for the shoppers. Making it more enjoyable compared to the original Bionic Granny. :o)


Game in action.

28th February 2010 - I like to move it, move it!

Today I have been working on the tweaking of the IRQ routine. Seems that I was using one that runs on the BASIC kernel, so I decided to switch that off and use the standard non Kernel interrupt vectors $FFFE & $FFFF and also switch to NMI Lock using $FFFA & $FFFB. Works fine, now what I want to do is get those enemies stopping at a certain Y position, then move an X position, then walk the rest of the way downwards off screen. To get this working, I need to create some loops and some data tables. I will also need to create some triggers to make the characters stop moving Y if they are moving X. Also depending on which X direction each character should move, I should create a table with switches to show whether the characters have to go left or right. In theory this method should hopefully work.

I tested the movement for the first character with the random stopping position movements for just one character and it worked a dream. Next I implemented the same routine to all of the characters (except for the store assistant) to get them moving. This wasn't working properly at first, but after a few tweaks or rewriting of the code, I got all the characters moving through a random basis, to make game play slightly more interesting.

Now was the time to work on the sprite to sprite collision. I used the same collision method as usual as it makes programming much easier for me. I know I have used this collision routine time and time again, but it is something that could be remembered really well, without having to do so much research. I created separate routines corresponding to each character and linked all of the collision routines to the player's fire button press routine. Unfortunately there seems to be a silly error in the code, in which all but one character stops if Granny hits that character with her cane. I found where the problem lies. It seems that I RTS the movement command which causes all enemies to stop. So I made some multiple JMP to next routine commands to make things work correctly. Well, it seems to work now. I also got the coin routines to work nicely as well.

After all the collision routines worked correctly, I worked on some sub routines that will show the death animation sequences for the player, and also for the enemies that have been hit as well. Seems to be working fine. Now to add the scoring and lives counter, then I shall call it a day for today and do some other time.
 
Stay tuned for more crazy Granny antics some time soon.

17th March 2010 - Some more levels

Bionik Granny Returns now has 4 levels. Well, 4 different backgrounds implemented into the game that is. I have worked on the level reset routine that will check for any levels that are currently available. So now after the player completes the first level (by collecting coins after whacking enough folk with the cane) the next level background and set of characters (sprites) are changed. I have the following scenes set up: Level 1 - Mini Mart, Level 2 - Park, Level 3 - School and Level 4 - Public Toilets. The levels implemented into the game look very nice, but need some major tweaking for the character sprites. Well, we don't want the sprites to use the same movement patterns as the first level. So a new X+Y movement table will need to be created. I'll do that some other time.

7th April 2010 - A little email from and to DFlame/Blazon/Crypt

I received an email from Michael asking me if he could program a PC port of one of my own games called, Camels in Space. I gave him permission to do exactly that as long the game will be freeware, rather than commercial. After finding out about this game, I will probably be looking forward to seeing the PC port of the game. I do hope that it will be better and more playable, compared to my 2001 version of the Commodore 64 game. People seemed to have enjoyed Camels in Space, so that was a sort of bonus. A shame I don't have the source code for the original game, otherwise I would have probably gave it a major tweaking and release it to Cronosoft. Ah well, Wayne wants me to do a Camels in Space 2 game. I might have some excellent ideas for this one. :o)

I sent an email back to Michael to ask if he would like to draw a logo for the Granny Returns game. I asked him to just use GRANNY RETURNS for the logo and also if he could put a picture of Granny beside the logo on the right hand side. Hopefully the logo should turn out pretty funny. :o)

8th April 2010 - Granny gets an ASBO

Michael got back to me today replying about the logo. He says that he will do a logo for the game. I'll be looking forward to what I see here. Anyway, I got fully motivated today and did some more on this game (As I am hoping to do Up in the Air on a weekend basis). So then what have I been doing today? Well, I added some extra byte data tables, which will represent the X/Y speed of the game sprites. Once I got 4 different X/Y speed tables set up for the game, I went back to the level set-up and added some low/high byte pointers which will store the values of the X/Y speed tables on to the current sprite movement routine.

After I assembled the first routine and compacted the data with the Exomizer compactor (It is not one of those machines which you throw boxes in to to see them get crushed into a huge pile of squashed boxes. Oh no!) then I executed the compacted game in WinVice. Well, it seems that some of the level 1 speed is working okay, but when I started moving Granny left/right. Two of the character sprites seemed to not respond correctly. It seems that instead of just adding the low and high byte of the memory where the speed was. I only stored the low byte of those TWICE. A silly mistake, but I am human, not a robot. After a couple of alterations, we were back to normal with the game. Then played through the whole 4 levels. TOO BLOODY EASY!. Those hazards, which the enemies throw were TOO SLOW. So I altered the speed table and got a better result. Plays much better.

Before I decided to call it a day with today's version of the BGR game, I decided to alter the Game Over text, where instead of saying that Granny found modern society too much, I made a Game Over where she has been reported, the police find her and send her home with an ANTI SOCIAL BEHAVIOUR ORDER (ASBO). I wanted to make some sarcastic/funny game over text to make things look more interesting, so that's what happened today.


This may subject to change.

I'm about to email a preview of the work done so far to Frank Gasking and Martin Piper, to see if they like what they have seen so far :o)

16th April 2010 - Raise the tables

I showed a few of my C64 friends last week's preview of Bionik Granny Returns. They seemed to be impressed with what they saw so far of the game. One or two of the gamers came up with some ideas for future levels. Level 4 is outside the toilets, but at the moment I have the Ghetto Blaster blaring out pure bassline music, which Granny has to avoid. That was only a temporary idea. The idea for level 4 is to have an old tramp as the main enemy and the hazard can be toilet paper. This idea was suggested by Kenz. He come up with some other ideas which could be tried out for level 4 and showed me the Xmas Chortles sprites, which were used in his Amiga game. It made me smile, but I have decided at the end, an old tramp, throwing toilet paper will be ideal for this level.

I wanted to do some more work with the game today before I have my cooked tea. Each level seems to use the same control tables inside the random tables control loop. So I decided to create some new ones that will correspond to the level, which the player is currently based on. So I added some more byte data tables for each level. Then I added three labels where the reading of the data tables lies. I used StorePointer1, StorePointer2, StorePointer3 as the labels. Where StorePointer1 will read the level's character movement X stopping position, StorePointer2 will read the level's character movement as Y limit stopping position. StorePointer3 will read the level's left and right sprite direction control per game character. After I added the labels. I went down to the level setup routines in the code and added commands that will store the two low and high byte addresses of where the data tables for the current level are stored. Then store those on the low and high bytes of the StorePointer address.

After I assembled and test run the game. I played all 4 levels and there were a few minor glitches, but what I did (Storing the low and high byte of the data tables to their chosen pointers) worked nicely. I still have to tweak the tables a little. This is because on level 2, I spotted one of the characters walking off screen, when it was moving to the right. So I checked out the data table for level 2, inside the source code. I found it. It seems that the problem caused was a simple mistake. I used $B0 instead of $80 inside the data table. That is why I had those silly movement errors. Apart from that, everything else was working perfectly.

I shall now call it a day / night with this and do some more work on it perhaps tomorrow afternoon because I am going to be waiting for Wayne's response about the latest UITA preview.

17th April 2010 - Enter the tramp.

Today I have been doing a couple more new sprites for the game. Not much, but just level 4 sprites. I copied the store man sprite and pasted it into the sprite editor and turned the store man sprite into a tramp. Yes, level 4 has a filthy tramp for this stage. To try and make the tramp look quite realistic in the game, I adjusted the coat, by adding some pink to the colour - to make sure that the tramp's coat looks as if it has been torn. I also drew some frames for the toilet paper. Then I imported the sprites into the project source and added some new animation tables to be read, updated the animator loop and then tested the game. Works great. Final touch to the game today, the scoring system - so that will continue when moving on to the next level.

Tomorrow, I shall draw some new graphics for later levels, and also draw some new sprites for those stages as well. I shall also make some colour schemes of the characters for each stage as well.

18th April 2010 - Rebuilt graphics

Oh no. Just when I was about to create some new level graphics, and tried to load the .d64 files. It seems that the .D64 image was corrupt. I took a look at the .D64 using the .D64 editor and found so many of my files were cross linked to other files. Therefore those MSCK files we unrecoverable. So I created a new .D64, imported the graphics charset file into the .d64 and then recreated to in game graphics then saved all the correct data. The graphics design look similar to the previous BGR graphics, so it was worth the effort. I designed all the levels and made a better *school* building for level 3. After a couple of hours or so, I started drawing the graphics design for level 5 - Outside the pub. I gave the pub a name, which is called "The Old Fart". Hahaha! That'll do for today.


Hmm, this pub must be full of grumpy people.

10th May 2010 - It's time for BINGO

The Sideways SEUCK Compo prizes, and the competition has finally finished, so now I can get back to getting the cantankerous old lady, Bionik Granny, back into action. Also, THIS WEEKEND. I WILL be doing more work on Wayne's UP IN THE AIR project. Well, the programming side of it of course. :o)

A few days (or maybe it may have been a couple of days ago), I had was on MSN messenger, speaking online to a C64 fan Lars (I won't give his surname out). Lars came up with a suggestion that for a level for BGR. I should do a bingo hall. We discussed what the baddies could be, and what they could throw. I came up with a funny idea. A bingo caller, throwing large bingo balls at a fast velocity. As for drawing inside the actual bingo hall. I decided not to do this due to a small amount of free characters that I had left were too limited. So I decided to base level 6 outside the bingo hall. It would have looked to plain without any additional background, so I decided to base the bingo hall with an actual car park.

Unfortunately, I thought that things would not really turn out that well on the graphics front for this stage. Especially when I was trying to draw cars inside the background. Luckily for me, I have regular internet access and I thought that I should have a look at what the cars in THE RACE (Players Premier game) looked like, and I tried to draw one of my own. Well, it turned out quite nicely. However one colour car would be too boring, so I decided to do copies of the same car object and paint them a different colour. Now I made some parking spaces, and put those cars inside those parking spaces. Looks nice now.


Red and yellow and ... where's the pink and the green?

Some time later on this week, I have some funny ideas for level 7. I'm thinking about getting ALIENS involved in this game. Yes, you have just heard it. ALIENS. :o) One bad alien with a zap gun, and some other aliens running out of the broken barbed wire fence of AREA 510 :o).

Stay tuned for more Granny antics next time when we - erm, well ... do more on it - if we bother to that is :o))

6th June 2010 - 4 level Preview released

I have decided to be kind to you all and show you the work which has been done on the game so far. This is a 4 level preview in which you must clobber passers by and collect coins, but watch out for the hazards such as shopping trolley, bassline notes, lollipop sign and toilet paper. Plenty of Granny like antics to keep you amused - exclusive to this page too! :o)

9th June 2010 - The aliens are coming, send in the doctor.

Well, it has been a while since I last did some more work on this game project, so today I decided to finish off all the level screens before drawing some sprites. For level 7, I created an Alien Base called Area 15. So where there were some spare charsets remaining in the graphics data, I decided to draw a barbed wired fence with two signs and a silly alien sign, which shows an alien type character rasping. I was sort of determined to draw a blue Tardis to put near the bottom of the screen, but I did not have enough charsets for this one, plus it probably wouldn't have been a good idea anyway. Even for a free game :o)


Now then, who broke that fence wiring? Nothing human.

Now that I am very happy with the level 7 graphics, I decided to do the last stage, which is outside the Poilice Station. There's a plan for what happens after this stage is complete. A funny surprise of course. :o). Ha ha ha. After completing level 8's screen (Police Station) I decided to work on the bonus background stages, where Granny has to cross the busy road to get to the bank for her pension. For a laugh, I have made 3 different small unnamed buildings, so that if she enters a wrong building, no bonus is made. Otherwise a bonus should be scored. :o) So I created 3 similar buildings and also added 3 roads (as for this stage, Granny has to watch out for the cars and bikes, etc for the bonus stage. I'll be drawing the sprites for those stages tomorrow afternoon after work. I saved a VICE snapshot of the game graphics data then I saved all of the Multi Screen Construction Kit colour, charset and graphics map data to a .D64 as well as saved the final library file. I'm finished with the level graphics front. :o)


Level screen built from the Multi Screen Construction Kit

13th June 2010 - Sprites ahoy

Oh all right then, it's not really a pirate game. Slightly later than planned, due to overtime work. Ah well. This afternoon I have been working on the sprites for the whole game. So I downloaded the Sprite Yaper V1.0 by YAP/Albion and I drew  some assorted characters, which included smartly dressed people, an angry bar man, a bingo caller, some aliens and also the police. Well not exactly draw, but more like copy and paste the existing characters and adjust them a little to make them look slightly difficult. I also drew the cars (based on the in game charset graphics from level 6's background map) and I drew something for a surprise game over scheme. I'm not going to tell you what it is, as it would spoil the surprise. I shall not give you any clues to it either. Hahahah.  Finally I saved all of the sprites to disk. My next task later on this week will be to create some new music for the game - then import the new data into the code routines and do heck of a lot more programming on the game.



21st June 2010 - Songs for Summer :o)

Today I have mainly been concentrating with doing some tunes for this game. I loaded up the DMC V4 music editor, and loaded up the Bionic Granny Theme tune bassline remix and altered the tunes. Made some better instruments and worked on the main sounds. Of course, the game music still needed to use the Bionic Granny theme tune, as this is a remix. So I made a sort of disco version of the Bionic Granny theme tune. The introduction uses an echo effect when it starts. I also rewritten the sequences in the sequence editor and also worked on the game over ditty (Minor version of the Bionic Granny theme jingle) and also some Title screen music. The title screen music starts with an interesting introduction, and then the Bionic Granny theme tune comes on. Quite entertaining :o)

22nd June 2010 - Source updating

Just a tiny bit of work has been put into the project today, due to tiredness through to the long hours that I worked today (10 hours to be precise). I relocated the game music to hex $8c00 and also removed all of the unecessary .PRG files and replaced them with the later program data files and the implemented everything into the source code. I used the following addresses:

$0800-$1000 = Multi Screen Construction Kit charset (The MSCK library code relocates the charset to this address)
$1000-$2000 = Reserved space for additional data or code
$2000-$4000 = Game sprites
$4000-$5800 = Game Code
$5800-$8C00 = Reserved space for additional data, such as bitmap picture, scroll text, additional code, etc.
$8C00-$A000 = Music
$A000-$FFFF = Multi Screen Construction Kit Graphics library data.

After inserting all of the data that was available to me, I removed a few unecessary routines and added some JSR statements that would process the Multi Screen Construction Kit data. Unfortunately the screens seem to display in a funny way, by gradually placing the screen data bit by bit visibly. The way to solve this problem was to switch off $D011 so that the data cannot be seen when building the levels (by placing background objects on to the screen).

Now I test the game to see if the 4 levels work 100% so far, with removed routines and the MSCK JSR statements added (Which made the game code slightly shorter). Great. Done :o)

18th July 2010 – Logo received

After coming back from my 2 weeks vacation at the Isle of Wight, I got up this morning to check my emails. I had 29 outstanding emails to answer. Well, 23 as some of it was junk. One email was from Johan (JSL) about the Bionik Granny Logo. I received Johan's logo and I took a glance at it. It's fabulously colourful and I really like it as well. I will most definitely use this awesome logo on the front end for this game.

Note: The Bionik logo might be sprites, as I asked Johan if he could leave out the Bionik :o)


19th July 2010 – Granny gets mashed

Bah. Back to work (I wish I could live in the Isle of Wight :o) ). No, I don't mean the Granny game project. Real life work of course. Well, we all do have to earn a living don't we? :o) Anyway, after I had my tea, I moved back on to this project. Yes my friends, it's the programming side again.

First of all I booted up WinVice and the I auto started the Bionik Granny Returns preview to see whether or not I have the latest sprite data stored into the code. After browsing through the sprites, I found that all correct sprites were stored. So now it was time for me to expand my game code to make way for new enemy frames. So I created loads more byte table data – mainly for the sprite animation frame data. Then I created some new data for the sprite animation store. To be able to do this, I had to browse through the sprite data, by using Datel's Action Replay Cartridge freezer and then enter the sprite viewer. Then I had to work out what the correct value for each sprite frame should be.


After I entered all of the data for animation frames, etc. for the new sprite types. I added additional routines to read the frame data and store to the actual sprite storage pointers. Once I did this, I added some more routines to check for levels 5 and 8. To get level 5 – 8 set up. I copied the level 1 data to make the later levels (for the matter of testing for now) and paste those – renaming them as new levels, but only add the low and high byte of the new enemies for levels 5 to 8. This was only for testing.

After assembling and crunching the source, I restarted the updated .prg file and play tested the game. Sadly there seemed to have been a silly issue after the first level was played. It seems to be the case where the Multi Screen Construction Kit library code needs to use the KERNAL to process the next level screen data. So after a level was completed I enabled the KERNAL flag to process the next level screen from the MSCK library. The good thing about this, is that it worked.

Well, the game seems to be progressing quite well, but all I will need to do is make some new random X / Y moving positions and speed for each level, and then set up routines to change the amount of coins to be collected for the chosen levels … and of course, program in the front end screen, high score table + entry, new game over sequence and end sequence. Then the tape mastering (based on the loader which Mastertronic used before they started using Invade-A-Load).

24th July 2010 - Speed it up

I just about finished  setting up of the game speed, for the levels, although the tables will need a bit of tweaking later on, before I can confirm that the game is finished. I added some set pointers to show how many coins should be collected before a level is complete. Then worked on the front end title screen scroll text. Then I created the text lines for the front end presentation. Finally I programmed the front end, but it is still not quite finished yet, as I want to add granny to the screen, and also make the title screen flip pages to toggle the credits, followed by the high score table.  That can wait until later on, as I have done quite a bit with the project today. :)

25th July 2010 - Give us a high score

After working on the front end yesterday, I worked on adding a little routine which flips the page from the credits on the title screen to the top 5 grannies high score table, simply by adding a timer routine to flip pages, just like I did with the Pour Le Merite game title screen. Now that the high score table was set up. I tested the program, and the front end seems to work quite well. Next I drew some sprites to put inside the logo, using Skylight's Sprite Designer. Then I imported the sprites into the code, and added a routine to display the sprites where the logo is placed.  Now I can confirm that the front end is now finished :)


After the title screen was done, I programmed in the high score name entry and detection routine. I tested it to see how well it works. Seems to work pretty good. Later on this week, I shall work on the bonus stage for this game. As I'm getting a bit tired with programming today, so I'll call it a day for now and do some more on Tuesday evening, then Up in the Air, Wednesday evening. :o)

Due to various events that have been happening recently, I was unable to do any more programming on any of those projects over the week.

1st August 2010 - Bonus round started

Time is quite short today due to stressful attempts at trying to fix my C2N tape deck to get it to work with tape that used the Wildsave loader. Unfortunately, despite all the hard work to get the damn thing working right. It just failed miserably. Perhaps I should consider looking for Interceptor Software's Azimuth Head Alignment program. I think!

Anyway, I got started with the bonus stage, by adding a new routine which will display the bonus stage screen. Then I added a single IRQ interrupt to test to see whether or not the music will play and code outside the IRQ (Inside the cleared IRQ flag) will synchronise. Simply by adding inside the synchronise loop an INC $D020. Then I inserted the granny sprite into the code, and added a routine to get her moving. Seems to be turning out quite well. I shall leave it like that for now. Will do some more work on this game tomorrow :)

2nd August 2010 - Granny gets hit by a car

Now that the design's finished. I worked on adding some more code to the bonus game so that Granny can cross the road. I also added some raster splits to display MORE than just 8 sprites for the cars. Then after I got those cars on screen, I called the animation routine and had the cars animating quite nicely. Now it was time for me to get those vehicles moving across the screen, so I added the usual routine which makes sprites move across the screen. Just a simple data table and a loop controlling the virtual movements of the objects. Finally I added a very simple $D01E collision routine, as all sprites are of course cars. Then I added a funny feature. If Granny gets hit by those passing cars, she will fly across the screen. Then a message "YOU GOT HIT BY A CAR - NO BONUS!" appears on screen, with "PRESS FIRE TO CONTINUE" underneath it. I also got the bonus time ticking as well.

5th August 2010 - Finishing the bonus stage

On Monday I started working on the bonus stage and today I decided to do some more on it. Starting with updating the Y speed of Granny's movement. She seemed to have moved slower when moving up or down. This was a typical mistake, which should be sorted out as the bonus stage was just too difficult. After correcting Granny's walking speed it was time to do some random building entries. As granny has to enter the correct building within a time limit, otherwise no bonus would be awarded. What I had to do first was to position the player at the actual building, so that I could work out the range for the door ways. Then I created a loop that would check for the X and Y position of the player - to see if it would MATCH the position of the doorways, so that Granny could enter one of the three buildings. As today was a hard working day at work, I decided to call it a day with this. Maybe I shall do some more tomorrow evening after I have been down the pub for 2 pints of lager (After work of course). :o)

7th August 2010 - Finishing the bonus stage part 2

Quite a bit has been done for this bonus stage. What I done this time is added a routine which will randomise the type of building which the player enters. So when the player enters any of the three buildings, either it is a wrong building or it is a correct one. I also came across some silly problems with the bonus stage's interrupts. There appeared to have been cars in wrong positions on the screen, I altered the IRQ slightly more to get a better layout so the cars were in a very accurate position without any glitches whatsoever. After dealing with the bonus stage, and adding a bonus counter which gives points left from the time to the player's score (If sucessful enough that is). I returned back to the main game source code.

I wanted to add a selection of different colours to the game characters, so that when the level is on appropriate colours were used on each character, depending on the level. I cannot really be asked to create colour new tables and randomise the colours as the characters look just about right for the levels. Plus there's not really any need for random colours anyway :o). Then I stored the Bonus level game speed (of the cars) to the game then linked the bonus stage to the game code.


Finally I tweaked the levels slightly as I could see sprites at the right of the game screen near outside the border. This only occurred for any time a player hits an enemy before the enemy is repositioned. So I updated this routine, so that the enemy is further outside the game screen - and that the player cannot see it after it has been hit - until it comes out of the building again.

... tomorrow I will be working on the end sequence for the game, and code a little end demo for it as well :o). Then final stage tweaking and beta testing shall probably commence this coming week. If all goes well, Bionik Granny Returns will be released near to the end of this month (or maybe before then). :)


8th August 2010 - Final touches - the end sequence

I have been spending most of today tweaking the game code, and also adding an end sequence. I split the end sequence into two parts. The first part is a funny sketch where Granny walks on to the screen, and bumps into PC McPlod. McPlod tries to deal with Granny, such as arrest her, but you will have to wait for yourself what happens - I don't wish to give too much away here :o)



The second part of the ending contained a little colourful demo with a huge scrolling message with some nice colour rolling ending. Then I linked a routine to see if the player will get a high score, after they press the fire button in joystick port 2. Finally, I updated the game movement table data and set up new default positions, so that it looks as if each character appears through the doorway. Nice :) Final touches - if a bonus stage is complete and successful, Granny is awarded an extra life as well as bonus points - as the game gets harder per level complete.

Finally, I mastered the BETA test version of this game with Martin Piper's IRQ tape loader source and rather than use Dance-A-Load, I used the Bionic Granny Garage/Bassline remix, which was used in the 4 level preview - but I'll be doing some new loader music for the full game, using Martin's latest version of the Music Studio V2.1 editor.

9th August 2010 - A bit of tweaking and fixing.

I have had a report from one of the BETA testers about the glitches in the game. The testers mentioned that there was only one level in the game. Oops, it seems to me that I forgotton to reset the first level to be level 1, and the person was actually playing level 8. Man, I hate making mistakes, and was probably one of the most silliest errors I made last night - especially when I send the thing to all of my chose BETA testers. Man, what a silly move. I have now corrected this problem today. Anyway, I got a small report back about the end sequence. It seems that the cartoon part's text changed too quick, so I added another timer routine, to delay the text. The same person also mentioned about the name entry in the high score table. When the fire button is pressed after the game over screen, the button is too sensitive. So I have added a waiting delay routine to delay the high score entry more. Also the end screen was missing the BIONIK logo, so I added that as well. I also added some delays to some of the routines. Tested the game. After game is over, number of lives is now 5 and the number of coins for level 1 is 5.

Finally to end it all today, I loaded up Martin Piper's PC/SID music editor Music Studio V2.1 and worked on a brand new loader tune, exclusively for this game. (No, not another version of the Dance-A-Load tune, silly, but the loader tune might sound quite familiar if you downloaded Grid Zone Remix and loaded the .TAP image from my web site. However the loader tune I done for this game, has a bit more variation to it. Then I mastered everything and sent BETA V1.2 to all the BETA testers of this project. - Hopefully no clumsiness this time. :o)

10th August 2010 - Could this be the final tweak and fix? Well? I bloody well hope so :o)

I got some reports from the BETA testers about BETA V1.2 of Bionik Granny Returns. It appears that there were more problems in the game, than there should have been. The high score entry crashed and also there were some weird sprite bug on the end demo. Well, I took a look at the code and assembled it with the V3 command. It appears that the logo's colour RAM data overwritten the code for the high score table. So I moved the colour RAM to somewhere else and updated the title and end demo's code. So that it will display the colour RAM  from $5800 rather than $8000 (Where the rest of the high score code now rests). Frank Gasking suggested that I should tweak the levels, so that the harzards start moving faster and more frequent per level. I also noticed that level 7 was HARDER than level 8, so I swapped the level tables round so that level 8 is the most difficult stage, but possible of course. I did a final test - all seems to work fine now. But it's up to the BETA testers to try BETA V1.3 out shortly. :o) ... I bet that Bionik Granny tune is getting on their nerves already :o)) Okay, I'm off to do a new TND intro for the final version of the game now ... Byeeeee!

15th August 2010 - All done - The end of the project. !!

Some fantastic news is that the final bug (the tape loader high score bug) is finally fixed. Now that all bugs are fixed, the final disk was compiled. I also did two different versions of the tape master, for the same disk. One, which is a high speed loader with no music, and another which is a longer loader, but can play loading music during loading time. Unfortunately I cannot try those out on my real C64, because all 3 of my datasettes are not working. I've ordered a new one on EBAY today. I do hope this new one will last LONGER compared to the one that I received a couple of months ago (Messing up with some of the tape loaders, such as Wild Save). So for probably about 2 weeks, I've got no datasette.

20th August 2010 - Got another Datasette

This is quite a surprise for me, as on that Friday afternoon after I came home from Work, I recieved my order for my C64 datasette, which I won on EBAY. I was surprised that delivery was fast - although it was despatched the day before as second class post. A good thing was that it was working on most tapes, including the dreaded wildsave and pavloda. Some tapes would not load, but it appeared that the datasette heads required a good clean. And so it happened and works nicely. I created some new tape masters of the game and saved the game to disk. Brilliant, it works!

21st August 2010 - Bionik Granny Returns Inlay

Quite a funny thing happened today. I recieved the the printable Bionik Granny Returns tape inlay for the game, and I just could not resist printing the little sucker and making my own tape badge for sticking on to the tape. It looks quite authentic, except that when I printed the thing off, it was too flippin' small. So I had to resize the thing. It still printed a bit small, but I managed to stick it on to the tape okay - with selotape HAHAHA!. It'll be up to the gamer to update their tape inlay thingy if they needed to. :o)



After printing off the tape inlay, I inserted it into an empty case, along with the tape. Finally all this has finally finished.

22nd August 2010 - A couple of suprises - and it's released AT LAST!

I was mucking around today making some surprise releases. I won't say what they are. It's just up to you to find it. The game has been released, and also consists of a new Dance-A-Load loader theme tune for the tape mastering. Although the loader itself looks pretty authentic. :)

The game is finally available on the TND Games Page and also the TND Games Room page. Not to mention, I have upped a .D64 on to CSDB as well. Enjoy the production. :o)