SUB HUNTER
page 6 of 6
Page 1 / Page 2 / Page 3 / Page 4
/ Page 5 / Page 6


Note: This game project has finally been finished and is now avaiable to download. Either visit the games page
 or download the full game, directly from this page.

To support, Psytronik Software, we have included an extra demo disk, which features playable previews of various games. Or if you wish to buy the game for your real C64 on tape or disk, visit the Psytronik Software web site.



7th May 2008: Smash Zone

Oh no, you're kidding right? Since when had a space game been for Sub Hunter? Well this was just a fast experiment where I needed to work out how to make better and more accurate random sprite routines. Since I was bored on this Wednesday evening, I decided to try and do a little experiment and ended up making a funny little game called "Smash Zone" in ACME cross assembler. This is not really a real game, it was just to make sure a random routine was working correctly. The whole purpose of the routine was to make sure that after a sprite leaves the game screen, a new Position is set to the enemy sprite. Therefore we don't want sprites appearing on the same line to overlap another sprite.

Before I coded the game, I drew the sprites in Sprite Pad and then imported those to the directory. I added a music to the same directory and then I programmed the source code. The source code's purpose was to read the sprites moving across to the right. Once offset the sprite is to appear in a new position, where no visible sprite is at that position. I added an IRAQ (Well, I wanted more things to happen once) and also some usual typical bayliss-game style routines and then added a routine to check the positions of the sprites. The routine checks whether or not a sprite position (read from the random table) reads on the same line of any of the other existing enemy sprites. If it does, then the routine reads the next position and continues searching for a newer position, according to the data table. Then once a spare place is found, the sprite will be repositioned to that new position and appear. This was one hell of a fun way to learn to code certain routines. You can download the actual game + source below too.


DOWNLOAD GAME AND SOURCE HERE

Any crackers who download this and release it on to CSDB with intro link etc. - Why do that? It just some experiment I have done. If you try and crack/intro link this, you're a real loser :oP

All I will need to do now is implement the same routine into Sub Hunter and things should hopefully be much better. When that will be done, I don't really know :o)

11th May 2008 - Random subs and fish

Well after a nice afternoon out to a park in Tamworth. I returned home and while there was an hour and a half free, I thought that I should use that time to tidy up the randomize routine. So I had to remove some of the routines to get this to work properly. Now once I removed the not needed routines, I created a new routine that did exactly the same as what I did with Smash Zone. I tested the random routine. Seemed there were some small errors here. When sprites move off screen, the routine crashed.

I worked out what was causing the problem. I did the comparing values, and loops incorrectly therefore that cause the program to freeze, while music was still playing in the background. I found a solution to the problem by taking a good look at the Smash Zone randomizer and position comparing routine and implemented the same type of routine into Sub Hunter's source. I tested the level once again. It was sort of working okay until I come across a silly mistake where sprites were visibly moving to a random position. Seems that when I used the copy and paste method in Relaunch64. I had forgotten to alter the values for each sprite pointer. So I made some corrections and now it works nicely.

All I will need to do now is to implement the routine into the rest of the save the diver levels and then hopefully after this. I should be ready to implement the same or maybe another routine into the Sea Wolf and Shark Attack style levels. Then some last minute tidying up/improvements for presentation. Then hopefully if all goes to plan (Fingers crossed) the game should be ready in time for September 2008 (Or maybe before then).

17th May 2008 - Another Random tweak

There still seemed to have been something missing in the first level. So I altered the randomizer slightly more and now we have enemy subs and more fish coming on screen more frequent. Now that's cool! :o))

31st May 2008 - Blow up those fish and memory problems

I have been altering some more code today. This time the level complete part. The level complete stages had some odd bugs in there, as the exploding enemies routine did not work properly. So I rewritten the level complete explosion routine from scratch and implemented it into levels 1,4,5 and 7. Seems to work like a dream.

I wanted to update level 2's timer part where after the clock strikes 00 seconds the enemies explode and then an interlude (where enough fish/subs killed or the player failed to kill enough fish/subs). So I had to code another explosion generator routine for that.

Other problems that I noticed was that during an interlude or after a stage was complete, the player ship had stopped animating. I discovered what the problem was. The routine was not calling JSR ANIMATE. So I made some changes to this routine and the player sub animates nicely during the interludes and stage complete interludes.

Now for the bad news :( Unfortunately due to changes in the code, for some reason after level 5, the randomizer stops working. Not only that, Level 9 is messed up (The game keeps going after clock is zero) The other bad thing is that game code is virtually *out of memory*. Therefore tomorrow I shall try and find a way to solve this problem as well as fix the randomizer.  Maybe shorten some routines as well.



1st June 2008 - Problem found

Well seems I do have enough memory to do some fixing. If you remember about what happened yesterday (Please read above) you would have noticed that I had problems with the randomizing routines. Seems that the reason for this was because I changed the labels from RANDPOS1 to RANDSTORE. So all I have to do is change all RANDPOS1 to RANDSTORE so that then we have proper randomizing. I also noticed that I have left a silly bug in level 9 after time is up, nothing happens. The game keeps going, but I have managed to fix this problem though. This has been fixed by putting the exact routine from level 2's engine in to the correct area of level 9's engine. So now there is no trouble.

Secondly, I noticed something which Frank had also pointed out about level 12. Level 12's Shark Attack stage had some pretty amusing bug where one of the baby sharks was going the right direction, but the animation was incorrect. Therefore it looked as if the baby shark that was going to the left was actually moving backwards. So I set the correct animation frame store value to the baby shark and it is now swimming and facing the correct direction. It is something you have to laugh at eh?. I certainly laughed when I saw this error :D



8th June 2008 - 7 days later the divers gone and never came back

I took a look at the google docs, as I had an email from Frank letting me know about the old/new glitches made in the game. Seems I made some new glitches in the game that were not deliberate. It was nothing too drastic or not able to repair. They seemed easy enough to fix and repair, to have a perfect working level.

First of all there was a problem with the swimmer/diver. The first problem which I thought that I solved last week. Seems that I did not do a good enough job with it. Especially when I overwritten the source code with the earlier source code on the same day. Anyway, it was nothing for me to worry about because this glitch was very easy to find. There was a problem with the randomizer routine and therefore the diver would not come on screen. Seems that the routine reads something like this

LDA RANDPOS1
STA OBJPOS+$0F
LDA #00
STA OBJPOS+$0E

It seemed to me that I used the incorrect label. I should have used RANDSTORE again as value of RANDPOS1 was always zero. After a fast change of the code the diver routine was working fine again.

I come across the next goof of level 1, where the player's sub seems to be very restrictive when it is moving upwards or downwards. Frank suggested to me that I should alter the minimum Y position and the maximum Y position for the player on all the save the swimmer levels. I managed to fix this problem simply by changing the stop value for the player's sub movement. The same for the gravity routine too, else the player ship would have been bouncing in a silly fashion :o)


This is level 1 - Blast those fish and save the divers :o)

Another thing, well, not really a bug but a kind of request was for me to get the swimmers moving across the screen slightly fast. Well, the solution to this problem was of course to remove the delay routine that slows the swimmer down. I have now corrected this problem. The swimmer now swims at the same speed of the slowest fish. Seems to work fine now.

Now I got back to the documents to see what other problems are in the game. Seems that there is a problem with the bouncing jellyfish, after they get shot, the enemies seem to appear at the same line. This is something I shall look at next week.

Level 5 and level 6 had a slight glitch, where the clock is. For some reason, a funny char bug appears in the status bar below. Well, thankfully it was something easy for me to fix, which did not take 5 minutes or so. I had to add a routine that would copy one correct char to the bugged char. That now fixed the problem.

Finally, to help Frank with his testing, I added a keyboard routine where Frank could press certain keys to be able to enable infinite lives, turn the cheat off, skip a level, pause the game or abandon game (using the space bar).

More work to do on this game next week folks :o)

22nd June 2008 - Countdown to meltdown (Classic game that was)

Not related to the Durrel classic, but more related to Sub Hunter. Well you would not really want me to blog about Countdown to Meltdown eh? Anyway more Sub Hunter work was done today, but not much of it because I was busy adding the final touches to Psykozone for Games That Weren't and Binary Zone PD.

Anyway I browsed through the google docs and Frank had pointed out some new bugs and also some ideas for improvement. And the good news is that it can be done. I only fixed 2 things today, due to the time (It is getting late and I have to be up for work tomorrow morning. Weekends don't last all that long do they? Ah, racked off. Yeah, well racked off. Okay, enough of my silliness here are the things I have been fixing today.

First of all the first fix was very simple. Frank wanted a routine where after enough enemies are killed, the game interlude (Where the diver goes straight across the screen) comes on straight after the last fish killed. Well, all I had to do was alter a routine by faking a time is up routine. This is because the time is up routine triggers an interlude after time is up. This worked nicely.

Finally a major bug was spotted. For some reason after the first shot instead of the hit counter going down from 10 to 09, it went from 10 to 07. Very strange bug. I realized what I did. The routine was calling the value of char #$53 instead of char #$55 where char #$53 is the value for the counter no. 7 and #$55 is the counter 9. This got fixed, and I decided to remove the invisible fish kill limit routine as I no longer needed that. This is because I can easily use the counter value chars and if they are 00 then the diver saved interlude comes on.

There is still a tiny thing to to to improve level 2, but I will work on that later on this week.

25th June 2008 - Level 2, is it ready now? I hope so!

Well, I have been doing some more work fixing level 2 today. There were a couple of things that were required for me to deal with. The first of which is to update the the total number of enemy fish to be killed, up to 14 instead of 10. Before I could actually do this, I had to alter various routines in the game's code. I noticed that parts of the game's code was actually unnecessary so I deleted the old routines and built a new routine, so that setting a number of enemies to be killed on Sea Wolf style stages is set according to the level the player is taking part with.

The second improvement that I had to make, probably was one of the most easiest things I have done today. Frank suggested that the number of divers saved in this game equals 5 instead of 3. Well, saving 3 divers instead of 5 makes this kind of stage too easy.

Hopefully that is level 2 finished but I better not jump over the moon about it yet. You heard of Sod's law eh? If not, then where have you been? Now I do major backups of this project :)

26th July 2008 - Sub Hunter preview

Something slightly different to bug fixing because I just could not resist to create a 4 level demo of the game, so people can actually try it out if they wanted to while more work is being done to the production. I made a copy of the main game code and scanned through various routines. I searched for the level parameters and deleted a load of those so that there were 4 levels. Once I did this, I also fixed the collision routine for the swimmer. The swimmer can't die before reaching X-position of 12 pixels ($0C), that way it makes the game fairer.

Finally to touch things up, I typed a new scroll text, screen text relocated the Sub Hunter Trance tune and programmed a small intro screen with credits and instructions. Assembled everything, and got a working demo. All I need to do now is upload it and then make another backup of my Sub Hunter project.

27th July 2008 - A bit of a trim

Earlier on in the week I had an email from Frank from another person saying that there are too many levels in this game. So he suggested that I should cut some levels out so that instead of 29 levels, we have 25. So I browsed through the code to make a load of changes to the level parameters. The levels I had to take out were level 5, 25,27 and 28. It took a while, but I got there at the end :o)

While I tested the game, there were still some settings that were incorrect during each level. Basically the game timers/counters showed the incorrect things. Sometimes you could see OXYGEN in stages that should have not displayed this kind of text. So I corrected the problem and tested it. Well, the game is nearly finished now :o)

Another idea had hit me for the Luna Lander stages, so I decided to change the music for this stage by using the title music.



3rd August 2008 - Fairer collision and additional game tweaks

Some more high priority bugs had been reported on Lemon64 and elsewhere, which Frank added to the bug fix documentation. In the documentation was a link to the video of one person  play testing the game. I downloaded the video and watched it in a movie player. The video showed that the collision in the game was very unfair because of something which we call "Unfair Game Death Syndrome". When enemies are killed, during the explosion sequence, it appears that the player dies. Unfortunately this is unfair for a game like this, so today I updated the player/enemy collision routines. Something sure was missing there.

So now, to get a collision much fairer, I entered the following in DASM.

PLAYERCOLLISION           LDA OBJPOS+$04
                          CMP COLLISION+0
                          BCC ENEMY2CHECK
                          CMP COLLISION+1
                          BCS ENEMY2CHECK
                          LDA OBJPOS+$05
                          CMP COLLISION+2
                          BCC ENEMY2CHECK
                          CMP COLLISION+3
                          BCS ENEMY2CHECK
                          LDA ENEMY1_DEAD
                          CMP #$01
                          BEQ ENEMY2CHECK
                          LDA #$01
                          STA PLAYER_IS_DEAD
                          RTS

                          ;REST OF PROGRAM

After doing this kind of routine for all the enemies, (and alter the values of the object position) the collision was much fairer. The only time where the player will die when the enemy explodes is if it hits the enemy first after shooting. So collision is much fairer now.

I checked the docs and there was a report of level 2 where it shows that fish are moving faster after the first swimmer is saved. I checked both the preview and the game and I could not see any difference in game speed. So nothing was needed to be fixed here.

Now on to level 3. Someone suggested that rather than use the fire button for me to release the player's sub in all luna lander stages, they thought it would be better for the player to use down when they feel that they are at the correct position. So what I did was update the level 3 joystick settings so that the player can move down at the start of the round. I simply done this by cutting routines from the fire button control and pasting to the down control. I also altered where the routines should jump to so that the release sub routine worked correctly :o)

4th August 2008 - Disabling control and a quick flash

I got an email back from Frank. There was something that was needed to be done for level 3, and that was to disable the 'down' control when the player's sub is moving up (After a diver was collected). I added a small routine to disable this control.

Secondly I was fiddling around to try and avoid the colour fading bug, where visible black square chars are amongst the sea beds during the fade in and fade out process for levels 3, 4 and 6. Sadly I was unable to fix this problem. It was way impossible for me to do such a task, so I decided to leave the colour fade how it is for now. I contacted Frank to let him know of this problem. I found it impossible to mask the char colours along with $D021, $D022, $D023 colours.

One more thing which I done is fix the clock in level 15 (Sea Wolf) so that the time is actually 20 seconds instead of 90 seconds. Seems that here I sort of turned the clock value into a REM statement in the assembler, which is why I had 90 seconds instead. So I removed the ';' symbols by the commands and that fixed the problem nicely.

6th August - Let's free some more space for the code

Well seems that after doing some of the fixing in this game project, I was running out of space for tweaking the code. Which is bad really because I do need a little more space to free up. So I activated the M/C monitor on my Action Replay cartridge and I browsed through to see where some wasted memory could be used for the data. So that more source code can be added to the project. Just take a look at this image below. I have way less than 1K left to use for the main game code/tweaks.  That means that after $9168, the code would overwrite the colour data for the title screen char set and scroll.


Not good eh? We need to free this space. :o(

While I was browsing through the M/C monitor, I noticed some more wasted data full of zeroed memory. This wasted data was located at $AD68-$B000. That meant I had some space for the title screen colour data (The colour data for the moving clusters). So I moved the colour data through to $AD68 and altered the title screen code, so that the data at $AD68 is pasted to the colour RAM. The fantastic news is that it worked and now I have just enough memory that can be used for the additional code for the tweaks and improvements for the bug fixing. Look at all that memory below :) The '@' represents empty byte. :) Much better.


That is probably enough memory I need to use :o)

10th August 2008 - Get in line Jellyfish and more bonuses!

Today I have mainly been working on fixing the level 4 stage. There was one problem which was very important with this level. It was mainly to do with the positions of the jellyfish after they left the screen or get shot. The jellyfish still acted strangely as they got bunched over each other. Well I spent just up to two hours to try and solve this problem. For this game we wanted jellyfish to form in a proper line than get bunched together. I fixed the problem. It seems that I should have compared the value of the enemy's position and disable the 'Y' movement for the enemy after it got shot by the player. I should have thought about that ages ago. I also updated the default 'Y' position table values for the enemy jellyfish. I tested it and it worked nicely. I'm pleased with the result for this level. Hopefully Level 4's jellyfish attack stage is finally ready. We'll have to wait and see what Frank says.



Now rather than stop here. I thought I should do a bit more tweaking/fixing. This time it was time for the bonus stages. The bonus stage was way too hard because the mines move way too fast. Instead of going up to 8x speed, I set the final speed for the mines to 4x. That should make things more simple. Another problem which this stage has is that the mines' y position seems to go overboard into the status bar and also if they go too high. they will end up going off screen. I needed to restrict the positions for those mines. So I set the top position as $48 min and bottom position $d2 max, so that those mines will not exceed the limit.

The random tables needed adjusting a little, because of the mines overlapping each other all the time. Well, it cannot really be helped much because avoiding this from happening when mines bounce up and down is extremely difficult, but I altered the randomizer routine to link it with level 1's randomizer routine and sorted the problem out slightly. Unfortunately the mines are still overlapping, but it cannot really be helped.

The final task this time was to add a routine for where the player survives each bonus round. The player should get a reward. So I added a routine which will give the player an extra life if it has less than 4 lives, else no extra life will be given. I tested the routine, but it seemed to have reversed the print extra life sub on screen. So I reversed the position of the routine that does the extra sub display. Now I'll do a major backup of the project and call it a day with this. Will do some more work on the project later on this week or next week.

13th August 2008 - It takes 2 baby!

Now that level 4 is now finished, and the bonus round is sort of finished, I decided to work on level 6, the sea horses stage. There was a suggestion in the google docs which was to make 2 hits for the sea horses before they could die. So I altered the enemy collision routine slightly, which is something like this:

IF STAGE = 7 (Stage 7 = level 6 and 20)
  THEN
       NO OF HITS TO KILL ENEMIES 1,2,5= 2
   ELSE
       NO OF HITS TO KILL ENEMIES 1,3,5 = 1
END IF

As well as altering the collision routine, I also had to add 3 new labels that correspond to the sea horses, so that they get 2 shots. I named those:

ENEMY1_LIFE
ENEMY2_LIFE
ENEMY3_LIFE

and used

DEC ENEMY1_LIFE
LDA ENEMY 1_LIFE
CMP #$00
BEQ KILLENEMY1
RTS

KILLENEMY1:

LDA #$01
STA ENEMY1_DEAD
RTS

and I used the same method for the other three sea horses.

The next thing to fix was the max Y positions for sea horses because the sprites were also going over the status panel. It seemed that I did not set the correct Maximum Y=position. Seems I used #$D8, which was too close to the panel, so I used #$CE instead, which was much better.

Nothing else to do on this level now. So I'm off to bed. Until next time :o)

16th August 2008 - More and more hard work

Quite a big chunk of the project has been done today. Some major bugs fixed and also some game tweaks. Quite a bit to mention here today. Still it should be worth the read anyway.

First of all, I decided to update the counters for the levels from 1 - 14 to the new counter settings. The timers mainly required time increases for the first 12 levels, and a bit of timer decreasing for the other levels. I shall alter the oxygen settings to levels 15-25 either tomorrow or some other time. Once the timers are done I should hopefully have most of the game finished. Just the randomizer bugs to fix and also the guardian stage.

Level 2 and level 8 had problems with the animation. What seemed to have happened is that after the player drops a depth charge on to an enemy sub or an enemy fish, the explosion animation does animate properly. So I had to browse through the code to find out what was causing the problem for those two sea wolf style stages. Seems that the problem was that I accidentally homed the sprite which was being animated as explosion by setting zero to sprite 2's Y-position. So I removed the zero sprite routine from where it should not have been and then compiled the game again. This time the animation worked excellently well. I was overjoyed now that major bug has finally been fixed. It was bugging me for a long time :)

Now's the time to move on to the next problem. Seems that the enemy fish in level 9 was animating badly, so I had to alter the data tables for the fish, so I browsed at the sprite animation which Frank had prepared for me using Sensible Software's Shoot 'em Up Construction Kit (SEUCK). After taking a look at the SEUCK sprite animation I altered the data table in my code for the game's sprite animation. I recompiled the source, and tested it in WinVice again. The animation was still not correct, so I made some more alterations to the data table for that enemy fish. Now it works slightly accurate enough.



Still on level 9's updates. The next thing which I read about this level (In the Google documents) is that Frank suggests that the jelly fish enemy should be replaced with a different enemy, due to the direction it is moving. So I changed this enemy into an octopus. A pink octopus in fact. I tried purple at first, but sort of clashed with the game background.


Now on to level 13. Seems there was a problem with the background colour scheme. The level used a pink/red mix, which clashed with the swimmer's colour. So I altered the colour of the background. At first I tried the green scheme, but unfortunately the background clashed with the enemy fish's colour so I changed the colour scheme to an orange and brown colour scheme. It suits this level quite nicely. Secondly, I got the enemy fish bobbing in this stage, to make things more interesting. Looks a very nice level now!



Now I shall do a couple of backups of this project and continue with this project's fixing stages some other time. When I feel like it that is.

17th August 2008 - Something a bit different

I felt like doing something a bit different yesterday. A front end for the Sub Hunt (Vic 20 style) preview, which I fixed. It sure was a bit of fun there, but this will be for the Sub Hunter goodies disk. The front end looks like the same front end as the original Vic 20 version, but I called the game "Sub Hunt 20" because it was a tribute to the Vic 20's original version of the game.  Sadly the overall result - the Vic 20 tribute game has to be reprogrammed from scratch because it was made about 3 years ago and I had lost the source code for the main game. The collision was poor, and the randomizer was tacky, but I could not resist doing something on it.

18th August 2008 - Oops, that was stupid .... Stupid!

Time for you all to laugh at this crazy clumsy programmer. Yes, there has always been a disadvantage to using cross assembly inside the MSDOS command prompt. Well seems I forgotten to backup what I had done yesterday. I wanted to update one or two of the program filenames, by removing the scrolltext.prg and do a new one for the title screen. I wanted to delete the old prg file. Because I was half asleep, tired from work, but wanted to do a little something else for the project. I typed in a command that deleted every single file in the Sub Hunter diary. The stupidest thing was that the prompt asked me "Are you sure (Y/N)". I should have pressed 'n' but pressed 'y' instead. That was a bit of a stupid mistake. Especially that I forgot to update the backup file when I was doing more on the project on Saturday. A really stupid move. So unfortunately I had to roll back to the sources from 10th August 2008 (Which was thankfully on the CD ROM) and start from after 10th August. So I started fixing some parts of the game.

19th August 2008 - Here we go again ....

Well, because of that stupid mistake yesterday I pushed myself hard to do the fixing from the past few days (or week) and I was pleased that I managed to get most of the backlog work (from previous days) done. The main things that I done (Backlogs) were as follows:

  • Sea wolf stage explosion animation - now correct
  • The check that fish been killed just as clock strikes 00 in sea wolf stages
  • Level 4's Jelly fish correctly in line
  • Level 9's orange fish animating correctly
  • Update time and oxygen counters for all the levels
  • Updated the number of hits to kill the sea horse before it dies to 2 hits
  • Updated the background colour for level 13 to orange.
I still need to fix level 6's stage and also 13, and then I'm back on track again. I'll do the level 6 and 13 fixes tomorrow or Thursday evening, but rest assured I definitely have remembered to do a backup of today's update. Now if I can get 6 and 13 done again, I should hopefully be back on track again. Which would be good news.

20th August 2008 - Level 6 - again!

Well, I have been trying to fix level 6 but the bad news is that I forgot how I fixed it properly. I got the sea horses positioning after killed fixed. I have been trying to fix the octopus bounce, but at the moment it looks off. Maybe I can get those fixed tomorrow. Then level 13 again. Bah!

23rd August 2008 - Level 6 and level 13 fixed and a better randomizer created

Well, on with the Sub Hunter project and this time I done some fixes for level 6 and also level 13. I also worked on a new randomizer and position compare routine, according to the level that the player is taking part in. Looks as if I am getting closer and closer to the end once the new randomizer routine was updated, I linked the randomizer routine to the rest of the remaining levels that required i, except for the Shark Attack stages, which did not really need it.

Now that the updated randomizer routine has been added and sort of correct  the next thing I done was checked on the google docs to see what things I needed to fix. Seems that the Shark Attack stages are all right, apart from level 18. I have also been working on some major update to all the harder levels, to make things more tougher to play. Well now, most of the game is finally finished (I think) but of course there are still one or two things that I will need to fix, including the game's bonus stage. But that can wait until some other day.

For the final trick before I call it a day I done the following:

  • Fixed randomizer routine for most levels (Except for the Shark Attack stages)
  • Updated the enemy colours (Level 6 uses cyan octopus and grey sea horses and colours are different for a later level)
  • Made a new bob sinus for the octopus in level 6
  • Triggered later stages to make them harder (i.e. Level 1's fish is slow and recycled level 1's stage where level 14's fish is faster)
  • Killed the enemy fish bobbing for level 14 - one sacrifice due to lack of memory left in the code.
  • Boss shark stage now in the shark attack caves.
  • Fixed collision for Shark Attack stages
And basically that's the fixes done today.

24th August 2008 - Game and title screen now Finished, I think ;o)

I have been working really hard today to get as much fixed as possible (Those of which needed a major fix up). Seems I have succeeded - I think. First of all there was a problem related to level 1's randomizer. It seemed that there were no enemy subs coming on screen. I realized what happened. Seems that I had put a REM command next to a routine that randomizes the positions of the enemy subs.

Once that was repaired I worked on with the sea wolf stage. Seems that when a phase is done in this stage, the second sprite does not go off screen. So I fixed that one nice and easy.

Thirdly there was a major problem with the bonus stages. The mines had a mind of their own and they did not randomize, so I fixed this problem by updating the bonus stage to randomize well like with previous levels. The mines were still bunched together, so I altered the default start positions so that when they are on screen, they are more spaced out. I had removed the mine's bounce routine before I done that. Seems I managed to fix the mines randomizer quite nicely. So now I brought back the bouncing mine routine. Looks a lot better now.

Now it was time for the shark attack fixing stage. First of all, the red colour scheme looked crap for this stage, so I turned it into a nice blue cave instead. When playing the level itself It seems that this stage was way too easy to play, so I decided to make some alterations to it. First of all I adjusted the minimum x-stop position for the player's sub. That was to make things slightly harder. Secondly, there was something else missing for this stage. The shark needed some protection by the fish. At first when the player is shooting, the player's bullet goes right past the enemy fish. So I quickly added a routine, which checks for a collision with all enemy fish. So if the player's bullet hits the enemy fish, the enemy fish will eat it, instead of the bullet going across the screen. Now that made this stage much harder, but not impossible, because I still manage to defeat the shark without a life being lost.



Just some minor tweaks now. The sprite animation. I took a look at the animation frames from the SEUCK animation snapshot which Frank had sent me. Seems that in the game the animation needed some tweaking, so I altered the sprite's animation tables so that the animation for some of the enemies matched the SEUCK animation. First of all, I animated the Jellyfish, as the main animation for the jellyfish was not good in the main game. So I altered the table and animation routine. I managed to get the right sprite animation for this stage. That was great. Now I altered the animation frames to the other enemies that required better animation, and also succeeded there too. Then I finalized points for the enemies shot. Now (fingers crossed) the game is finished.

Now it was time for me to finish off the scroll text and update the title screen. First of all, I entered a new scroll text, then converted it for use with the game project. I slowed the scroll text down a little. My next step was to redesign the presentation lines. I had to make some new clusters for the title screen. So I used the Action Replay screen editor to alter the text, colours and also added some more animated chars to the screen. I saved the colour and screen data and replaced the original colour and screen data files with new colours. I then tested the front end and the game. Looks fantastic and there seems to be no problems. I think the main part of the project is finally finished and that I'll be ready to work on the intro/story line of the game. Should make things interesting :o)



Just to let you know. When I work on the intro stage, I won't show any pictures of the story line. You'll just get text :o)


26th August 2008 - Nope, not finished yet, new bugs to fix!

Seems that there are still bugs and some other improvements to have been made. Frank has done a new Google document which is the Sub Hunter Final fixes/improvements. I went through the docs and seems that lots of high priority fixes to be made. Oh no :o( Heheheh. Anyway I didn't do much today, just fixed the first top priority problem.

Level 1 had a problem where enemies were placed in random Y positions. That was good, but the problem was that the bobbing enemy fish appeared at the very top of the sea surface and then disappeared into the raster split which turns them off. So it looks as if enemy fish are vanishing and coming back again. Not good. Not good at all. It took me about a couple of hours to try and work out what was causing this problem. I got really frustrated because the code was correct and there was nothing wrong with the randomizer routine. Finally I discovered my problem. Nothing wrong with the code whatsoever. It seems that my major error was one of the bytes in the random positions data table. I used $40, which puts sprites at the top above the raster split. So I replaced it with $50 and it solved the problem.


28th August 2008 - Slower, Faster

This evening was another interesting fun evening with the project. Well, creative I suppose. It has been said that the Sea Wolf style stages seem to lack in random speed for the enemy fishes or enemy subs, depending on the current Sea Wolf stage which the player is on. So I created a few routines to randomize the enemy speed and then implemented the new speed into the the stages. This will work after an enemy leaves the screen. Not only will it appear at a newer position, but it will either zoom across at a fast speed or a slow speed. It will depend on the calculation for each fish or sub.

The speed of the fish and also the subs were successful but there was still another problem. It seems that in the Sea Wolf stages, the random Y positions seem to have looked a mess for this stage. So I had to create an exclusive new stage random data table and also a new position randomizer that was exclusive for the Sea Wolf stages. This did not take too long to update and fix. So that was good news.

Finally, I did not like the Get Ready bouncer much and I wanted to save some memory, so I removed the bounce sinus data and also the bounce sinus routine from the code. Much better now.

30th August 2008 - A full day of more high priority fixes

Well seems I have been very busy with this Sub Hunter project today. I have been browsing through the high priority section in the final fixes to see what needed to be done. Well, a very bugged game would not be good for a player. Especially if they could end up with a random crash or something stupidly unexpected would cause problems for the player. Anyway let's not gabble on with this paragraph and just jump on to the next paragraph which consists of more bug fix banter.

First of all, on top of the list was something which I never done before with any of my 6502 programmed games, and that is rewarding the player an extra life for a certain amount of points scored. Frank suggested this to be a high priority so I took a look at his formula/hint to make a high score. It reads something like:

REM *** INITIALIZE VARIABLE AT THE START OF EACH NEW GAME
NEXTLIFEAT = 50000

REM *** CHECK IF EXTRA LIFE SHOULD BE AWARDED EACH TIME CURRENTSCORE IS INCREASED WITH POINTS ETC
REM *** MAKE THIS A SUB ROUTINE CALLED JUST AFTER A SCORE INCREASE OCCURS.
IF CURRENTSCORE >= NEXTLIFEAT THEN
     NEXTLIFEAT = NEXTLIFEAT + 50000
     LIVES = LIVES + 1
END IF

Now then how was I to turn this into 6502 assembly code? The second question was how am I to work out the routine. I was spending about 10 minutes thinking about how I could come up with this routine? Well after the 10 minutes thinking time, I come up with a perfect solution. An invisible scoring routine, which will read the score and if the second char in the six chars is read as 5, I call a routine that will award the player an extra life (If number of lives is below 4 else the routine ignored. Maybe I should make it that if lives = 4 then player gets awarded a temporary shield, but I'll have to wait and see what Frank thinks about this ingenious little idea of mine :o)

My second fix which I had to do was update the swimmer's immunity. Seems that when playing level 13 of the game, the swimmer gets killed by the subs and fish too frequent before it even reaches a certain position on screen. So I altered the routine where after the swimmer passes $2C pixels, the immunity is turned off. This makes level 13 slightly easier and fun.

The third fix was to do with the oxygen status. When the player loses oxygen, a life is lost but the oxygen counter does not freeze while the player dies. It is always a good idea for the oxygen counter to reset the current level's default value after the death sequence for the player has finished. So I had to create a new routine that will check if the player is dead and whether or not the player had run out of oxygen. I tested this feature and it worked nicely. There was still another problem with the oxygen counter. It seems that the counter gives 99 points extra to it instead of resetting as default. I found the silly problem and I fixed by changing the two 99 digits to 00. I tested it, and now it seems present and correct.

Now it was time for me to take a look at the bugs in level 2, where there was no baby shark coming on screen. Seems there was nothing wrong with the code apart from that I forgotten to randomize the shark's position. I also cut the routine from level 8 shorter to use level 2's code, because I did not need level 8's longish routines, so I cut those down a bit. Another bug in level 2 is that the explosion/bubble animation were not correct after time runs out or after the last fish or sub is killed. The colour was incorrect and it required looking at. Seems I was trying to activate more than one animation on the same sprite, where explosions mucked up. I fixed this problem now the animation seem to work nicely.

There was also another problem with level 8. There was an unnecessary bug where the player is constantly exploding and losing lives when a certain enemy sub goes past. There was a weird problem with the collision routine, so with a quick fix it is done. The second problem was that anytime the player is killed the player was still able to drop bullets. So I tweaked the routine that was causing the problems, so that the player will not be able to drop bullets when it is going through the explosion death sequence.

Now on to the bonus stage. It looked as if it could do with some improvements where the player collects a gem to score 1000 points. Well it seems to me that this collectable item in the game lacks animation, so I decided to add a new sprite animation frame table for the game and an standalone animation routine. Now when the player collects the gem, the gem will use the player sub's explosion frame and then display the 1000 points sprite for a short time, then all is offset. Now the bonus stage is (hopefully) finally finished.

Finally, the title screen text go realigned so that everything is centred.

31st August 2008 - Twice the effect, twice the sound

Frank suggested that the game would need some sound effects for it, so I dug out the MONASE V1.0 sound effects editor and I created some sound effects for the game. The sounds sounded really cool and MON style. I saved the built player to $9700 and then implemented the sound effects into the game's code. Sadly the SFX player wasn't compatible with my code, so all I could do with the cool SFX is produce a demo featuring those effects, for the Sub Hunter goodies disk.



However that did not stop me from putting sound effects on to the game. I dug out the Cult SFX editor and created some new sound effects and then I added those in to the game code. However before I could do exactly that, I had to update the positions for the title screen code and also the end screen code. Unfortunately I was very limited for memory, because most of it got used up around the whole M/C addresses. So for now, I removed the title code and also the end screen code. Now I added the sound effects which I made using the Cult SFX editor and relocated the player to $9700, added routines to play sound effects - the smallest way where possible. Then I tested the sound effects. Seems to work, despite the sounds sound nothing like MON style sounds, but they will have to do for now, because space is very limited. Plus the sound effects player is compatible with my code.




Now that the sound effects are working (I can improve my new SFX to something better later on this week with the editor as I still have to SFX source). Now it was time for me to add the end screen and title screen code back into the program. I had to move the routines around. A bit of brainstorming was required, but I finally succeeded this problem with thanks to adding some relocator routines for the end screen code, that will transfer data from an illegal address ($D800) and then pasting it to $1600-$1A00.

Finally, I added a routine that will allow the player to chose between sound effects or music, using left/right on the joystick in the title screen. The routine works nicely and now hopefully the majority of this main game is finished, just some small minor tweaks which wont be memory consuming. :o)


1st September 2008 - New look front end and making sounds

Frank saw the new title screen with no scroll text, but sadly it looked pretty boring as there was no scroll text, so he created a new mock-up of the title screen design. So I redesigned the title screen and added a blue border at the bottom of the screen with some Cyan text and added a double lined separator at the top and the bottom of the border. I also added the Psykozone Music and SFX sprites into the title screen, for the availability of allowing the player to choose between music or game sound effects. I showed (what I thought was) the finished front end. He liked what he saw, but found a small mistake in the title screen. The lines were too thick. Seemed that I copied the plan when the screen shot which Frank designed was not drawn to scale. Still that is an easy enough job. I can correct the lines in Cuneiform, but I'll do that some other time.

Although it was getting pretty late and I have to get up early for work at the busy warehouse, I have come across a perfect idea to create some sound effects. I wasn't all that impressed with the SFX editor, so I decided to recreate the game sound effects by programming my own sound effects player and data tables. So I started programming a simple fast interrupt routine (IRAQ) and then built my own routines to initialize and play the sound effects that I'm programming right now. First of all I was looking up some information to make filters because for the player shooting, I wanted to use a filter sweep. After experimenting a  little, I ended up doing a good filter sweep sound for the Commodore 64. This was a perfect sound for the player sub shooting depth charges.

The next sound which I wanted to do was the explosion sound for the player's sub. Well, an echoed drum-beat style sound would suit the explosion sound and I did exactly that. I set the low and high pulse rate as 88, so I had a perfect sound for the drum style explosion effect. Brilliant result.

Now before I go to bed I decide to make two more sounds, which are related to the swimmer rescued and also another sound the swimmer's death. I mixed wave forms and the arpeggios for the sound of the swimmer saved and tried a little scream effect for the swimmer's death. The sounds turned out pretty cool. I would have programmed some more sounds, but sadly time for bed. Maybe tomorrow or Wednesday.

Night, night!

2nd September 2008 - More blips and bloops

It is a late session today. Only spent half an hour to 45 minutes to finish off my sound effects for Sub Hunter.  I worked on the sounds for gem collected (Bonus stage), which was using a sort of arpeggio score. The extra life sound, which is a simple 'ting ' sound. I also worked on the enemy explosions. The enemy subs explosions sound the same as the player's sub explosion, except for that the enemies use a lower pitch to it. Now most interesting of them all is probably the explosion sound effects for the sea creatures. As those sounds are m mixed pitches with some mixed effects. Now the sound effects for the game are finished.


3rd September 2008 - A little more fixing

I only done a a couple of tiny jobs today. First of all, I fixed the lines in the blue border for the Sub Hunter title screen. The char was meant to have 2 thin lines, not one thin and one thick. So I corrected the charset in Cuneiform then replaced the charset file. Looks much better now. One task done, on to another quick task.

 Now that my sound effects were finished, I decided to add the new sounds into the game. So now, I had to assemble my SFX player (Minus IRAQ interrupt) to $9700. Well, that was easily done. The second thing which I had to do was alter the parameters of the player/swimmer collision as it still wasn't quite right. (See what I said earlier). So I updated the collision co-ordinates so that I had an accurate reading for player/swimmer collision.

Well, I shall now take a couple days rest and do some more fixing/updates this weekend and hope that it will be all finished and ready for testing so that I can work on the intro/storyline. Which will be somewhat different. Tomorrow + Friday, Time to play some C64 games.

6th September 2008 - Could this finally be the end of fixing?

Yet a lot more fixing has been done today. So hopefully the final fixing stage of the main game is finished. (Fingers crossed).

First of all the sound effects were required to be updated. There was a problem with the filter sweep effect, so I updated this effect so that instead of using a filter glide, it uses a standard filter. I updated the filter effect and imported it back into the game project file. Once that was done, I had to create some routines that will play sound effects depending on the type of enemy that is being shot. So I updated the routines so that they could play effects.

- Player shoot
- Player explode
- Level start
- Enemy subs explode
- Enemy fish explode
- Swimmer rescued
- Swimmer killed
- Extra life
- Bonus stage gem collected

One major problem that I had when I implemented those sound effects into the game, were some silly interruptions occurring continuously. So I altered the INITFX routine, so that all sounds are set to zero. That way I could have nice clean sounds playing in the background. Much perfect .I'm happy with this.

The next part of the bug fixing/improvements phase was improving the boss shark. It has been reported that the shark's collision was not good as the collision could not read the whole shark. So I added a new calculation to the shark collision and it worked a treat. My next step was to update the boss shark's spitting fish timer. So I created some new routines to make the timers more interesting. The rapid firing of the enemy fish was updated according to the big boss shark's behaviour. The first part, is where the baby sharks will be spat out less frequently. After 10 hits, the behaviour of the shark changes. The fish get spat out slightly more frequently and faster, and after another several hits, the sharks get spat out more frequently and faster. Finally the final part, the boss shark starts moving towards the player's sub, and still spitting the fish at a fast and frequent speed.

Now the boss shark stage is finally fixed I had some minor updates to do to the game. One of which had a major bug that could lose points in the game. On level 6 the player's bullet seems to appear in a strange Y-position when it hit an enemy. I found what was causing this problem. It seems that level 6's bullet collision routine was missing a poke so that the player's bullet was homed off screen after it had hit a sea horse. The routine is now fixed.

Now some other routines, which I also fixed:

- Move the PRESS FIRE chars to a correct position for the end sequence.
- Fix the jump address from the end screen back to the title screen
- Update the clocks and oxygen counters in the game according to the testing documentation issue by Frank
- Fixed the charset for the title screen's presentation.

I am very pleased with the overall result. Hopefully now, the game is finally finished and ready for play testing.

7th September - Intro time

Finally I have nothing else to do to the main game. So now I worked on with the intro story line. First of all, I had to create a new folder, because this time round I wanted to work on the intro using a much more easier cross assembler known as ACME. The first thing I had to do was to extract screens and bitmaps to specific load address to the project folder. Once I done that. I exported the graphics, charset and the rest of the data to the project folder. Next I had to compress all 3 bitmaps, by using the Exomizer level cruncher mode. This reduced the bitmaps to size and I assembled the Exomizer decruncher routine for use with the intro (Magnus will be credited in the final release) to $3800. Then I started programming.

The first thing which I had to do was program a double IRAQ interrupt for the first part. At first I did not get it to do much except to play "Sinful" by Drax (This is a tune which Frank selected for this intro). Now I created a few routines that will decrunch the picture and display it on screen. Seems to work okay.

Now this looked a bit boring, so I checked through the text Frank gave me, and I added some transitions and texts on to the screen for each picture. Then worked on the intro animation sequence. Finally added at TO BE CONTINUED at the end. That's all for today.

13th September 2008 - Back to the game tweaks again

I was browsing the Sub Hunter testing forum and I noticed that some improvements were required to be added to the game, itself. Thankfully not too much. Before I could actually do that I had only $02 bytes free. It seems that I would have been unable to do any more additional code/tweaks for this game unless I had spare memory. Well, how do I get out of this awkward situation? I had to come up with a plan.

Well the good news is that I did come up with a plan to spare memory. First of all, I decided to merge all source code for the title screen, end screen code relocator, sound effects and game code together. As the SFX code was taking up certain areas of memory which I desperately needed for further tweaking. After all of the merged source code assembled I had more than $02 bytes of memory stored. There was still one problem which I had to sort out. Freeing a little more memory (For just in case). Well, I managed to free some more memory by reprogramming the multiple IRAQ interrupts for all the save the swimmer stages.

Now that memory saving was done, I done some further final fixes. The Sea Wolf stages needed to be tweaked slightly as the game was really difficult, due to the speed of the fish or enemy subs. So I followed one of the comments from one of the testers who suggested that I should have a fast speed for level 2's depth charge, medium for level 8, slow(ish) for level 15 and slow(ish) for level 22. He also pointed out that the number of swimmers to be saved should be according to the level played. So I added a couple of new routines that will count the number of swimmers saved and also calculate the speed of the depth charge. It sort of worked, but one problem which I had was the time and amount of enemies to be killed. So I set up the time (for all Sea Wolf levels) to 30 seconds and done as follows:

Level 2:

Time limit: 30 seconds
Fish to kill: 15
Swimmers to save: 1
Depth charge speed: 4
Difficulty: Easy

Level 8:

Time limit: 30 seconds
Subs to kill: 15
Swimmers to save: 2
Depth charge speed: 3
Difficulty: Easy

Level 15:

Time limit: 30 seconds
Subs to kill: 10
Swimmers to save: 3
Depth charge speed: 2
Difficulty: Adequate

Level 22:

Time limit: 30 seconds
Subs to kill: 15
Swimmers to save: 3
Depth charge speed: 2
Difficulty: Hard

Now that was done, I fixed some Luna Lander stage bugs (Which I noticed myself). The joystick control was still in use while the player was moving off screen. So I put a stop to this problem. Secondly the player could still move while it is exploding. I disabled the joystick control for this. Also for some funny reason the swimmer stranded on level 3's animation stopped when the player was dying. I fixed this problem also.

Finally for the game code tweaks, I restored the Get Ready and Well Done bouncing sprites as I now had enough memory for those. Then I updated the title screen layout by centring the text and reducing the gaps between each letter. Also I made a black screen decruncher for before the game decruncher, you get a plain black screen. Professional decrunch was necessary! No text or effects whatsoever. Hopefully the second BETA version for our BETA testers is finally ready. S**t! It's still buggy. Must take a look at some more tomorrow.

14th September 2008 - More major bug fixing

Seems that there were still some major/minor bugs in the game that required to have been fixed. First of all there was a silly error in the code, where the end screen comes on, but after you press fire to go back to the title screen, you get some stupid crash happening. This was plain stupid as I forgot to set the *correct* jump address (As the jump address changed to $4000, and the code originally used $9a20). Lol. What a pilchard I was forgetting this simple mistake.

Secondly I decided to play through the whole game to see what changes should be made. It seems that level 22 was impossible to play. The player had to shoot 15 enemy subs in 30 seconds, but that was way too hard. So I added 5 seconds extra for this level. Now all is possible for this stage. Also in the Sea Wolf stages, at a certain time (funnily enough) the bullet explosion appeared behind the player. This was not meant to have happened. I browsed through the code to find out what was causing the problem. It appears that the problem was caused in the enemy collision read routine. I forgot to add an RTS to the end of the routine. So an RTS got added and finally that problem got fixed.



Another bug in the game was found. Well, it wasn't anything too serious really, just a char colour bug. This only took effect in all of the Shark Attack stages. The bug was fixed by setting black as the char colours. I only did this over the clock and skull with crossbones chars so that they were clear enough to see. Apart from this, hopefully the main game bugs have been fixed now.

The sound effects got altered again. I fixed the $D418 bug (where the player could hear a buzz sound when the bullet is fired).

Level 17's jelly fish y-direction was way too fast which made this level impossible to play without cheat mode, so I updated the speed of the jellyfish where they will only move up and down at a fast speed. The level is still challenging though. So it should bring fun into this stage.

Now for a final test of the game. Should be okay now. I'm happy with the result. Now it is time to send the game to the beta testers.

21st September 2008 - Intro

It seems that the beta testing (and overall conclusion) went well. There were only a couple of minor fixes to have been made. First of all I fixed the no.of hits to kill the sea horse. This is because one of the sea horses died after one hit instead of 2. It seems that I forgotten to zero the player's bullet position for this stage. Another issue which got fixed was that the enemy fish were difficult to see on level 1. So I added a simple routine that will change the outline of the sprites to black for any time they are at the seabed position. To finish off the game fixing, I killed the filter sounds of the player firing, because I cannot handle filtered sounds properly. The game kept buzzing at times. So all filter values were turned off, but the sound effects still sound good in the game, despite filters removed.

Now I moved on to the intro and added some routines where the text fades instead of disappear straight away. The text fade fades from cyan, light blue, medium grey, purple, dark blue then black. The fade was too slow, so I had to upspeed it by updating the delay value to a smaller value. The fader was just about right.

The next thing that I done was update the directions of the moving clouds and changed their speed. Hope Frank likes those. Then the to be continued routine needed a colour shade through it. So I programmed a simple colour wash routine with data that is 256 bytes long. Looks nice yet again.

22nd September 2008 - Hair raising stress, up and away and some Freeload of fun

I did not really sleep very well last night, but when I took a look at the updated docs/fixes, it shows some new low priority fixes in the game which sadly are things I just could not do. I groaned and pulled at my hair at the sight of those impossible fix ups. So I marked those red to say that those fixes (changing the position of the black outline sprites inside a char) are impossible, due to memory issues. And also I decided to not update the blue bar in the title screen. It looked okay to me.

Anyway, I created a new BETA for the testers as I forgot to do one last night before I called it a day. I emailed the beta to Frank to pass on to the other play testers along with a note/fix update which I typed in Suasive Noter V2.0. Then I got myself stuck in with more of the Sub Hunter intro sequence. I made some updates to what was said in the docs. For example the tweaking of the sub that comes along the screen and dives into the water. I also slowed down the clouds and also slowed down the colour wash routine for the "TO BE CONTINUED" screen. Also I added a 1x2 charset and up scroll which will come on screen after the "TO BE CONTINUED" screen. The up scroll was originally using a 1x1 mode, but I managed to update it to the 1x2 mode with some very quick and dirty code. It still needed something interesting, so I shaded 3 char lines with 3 different shades, which were black, dark grey, medium grey and light grey at the top and bottom of the screen. Looks much better now. Then I linked the freeload turbo clock tape loader to the end of the intro. Then finally I packed the intro with a fast packer (Fast pack by Faces).



The up scroll for the intro. (I did not want to show you too much there eh?)



For the final part of today's Sub Hunter session, I just could NOT resist to do a prototype tape master of the game. So I dug out all the files that I needed, relocated a tune by Drax to $A000-$B418 and split a load of files into parts. Then I dug out the Freeload source and updated it to do the mastering for Sub Hunter. After assembling the tape loader source and tape mastering. I used the FinaTAP tool to clean my .tap image of the game prototype master. After cleaning the .tap image, I managed to get the ball rolling (Erm, program loading) and it worked first time. So now this game has a tribute to the OCEAN loader in the late 1980's and early 1990's.


The loader after the intro screen. (I don't want to show too much there as that would spoil the surprises. Heheheheh!)


23rd September 2008 - Monday. Back to work - On Sub Hunter - The final hour!

I have been sent back an email about Sub Hunter game quick fixes that could be made. It seems that the title screen's blue bar was still incorrect, so Frank sent me the correct charset for this and I added it to the game's source. The blue bar looks better, but there was still something missing. It seems that anytime the player selects SFX and game is over, the title screen automatically puts it back as music. Well, this little bug thing is easy to fix. All I have to do is add a very small routine to compare if the music is switched on or whether or not SFX is switched on. I also made a different JMP start for anytime game is over or the game is complete, so that the game goes back to its option which was used in the first place. I removed the trainer keys and I assembled and crunched the game together and thankfully the game is finished. It is just time for people to playtest this finished piece before it is safe for the tape mastering process to commence.

Now the game is finished I decided to move on to the intro's source code. Most of the things were finished. All I had to do was reverse the colour wash routine over the TO BE CONTINUED text. Once I done that, I added a nifty transition routine that will clear the text if the user presses the space bar. I also added a routine that fade's Drax's music and then jumps to the clock loader. I tested the intro. There was still something wrong, but only something very small. The wrong coloured clouds were moving across the screen at the wrong speed. So I updated the speed of the clouds to something correct. Brilliant, the intro is finished. Now I can rest while the testers check it out for any mistakes and stuff then maybe next week I am ready for the tape mastering.


27th September 2008 - Some minor game bugs on luna lander stage and a loader fix

Before I took a look at the game again I decided to update the clock loader for the tape version of the game. It seems to me that the loading was boring and someone suggested that I added the loading music (Winter Bird) on the clock load. I added a small routine that will play music and display a scroll text. Finally to make this loader even cool, I added blue flashing colours and put it over the text. Of course I kept the cyberload  style colour bars for the loading.

There were some very minor bugs in the luna lander stage. After the player had lost all its oxygen when a swimmer was on board the submarine, another swimmer does not drop on to the bottom of the surface. I fixed this problem by adding a very small routine. Seems fixed now. Another problem spotted was the behaviour of the enemy subs in level 1. One of the subs did not come back into the game after it got shot. Also level one of 8's subs never got killed when shot. I corrected those then went to bed.

28th September 2008 - Final fix ups and final tape mastering

This morning I mainly been working on playing through the game in whole many times and I noticed some very minor bugs, which eventually got fixed. The first minor bug was the buzzing at the start of the game (Where the player chosen SFX before starting the game), that finally got fixed. There was also some silly bug where in the luna lander levels, the bullet/diver collision seems to have been active. I deactivated this routine, so that oxygen wasn't swiped off during those stages. A silly error of course. Secondly another error, probably would have called it a major one was where one of the octopus on level 16 and 21 had placed itself in the wrong position. It seems that what I done was called the wrong sprite to reposition another sprite. Now fixed, there was a sound issue. One of the enemies on that stage was missing sound effects. So I added the sounds in. I had a major play at the game for a while and spotted nothing else, and nothing serious. The good news now is that I have finally finished the game after 2 hard working hours of testing with infinite lives and without. Great that this has been done. This game is definitely 100% finished!

Now that the game was finished. I prepared the tape mastering by getting all files together and updating the Freesave/Freeload source to prepare a tape master of the game. So after a few minutes of mastering. I got started loading, cyberload colours on, scroll text on, music on then picture comes on after a moment of loading all bitmap and colour data, then screen goes blank, music turns off. After a short moment the loader decrunches the intro part. Then the intro comes on. After pressing the space bar on the intro screen. The tape started loading the main game part. Success, after the clock struck zero. The screen blanked and the game loaded and decrunch successfully. Finally the tape version of this game is finished. Disk version will be easy enough. All I'll do is add an IRQ disk loader to load the game with music in the background. Then after the intro activate another IRQ loader with loader music again then activate the game.

Project status: Finished!

Download is now available