page 2 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.

16th October 2005: The player invincibility and enemies

I have been quite busy today. O.k so it has been since a couple of weeks, as I have been busy, out or just plain lazy. Still, being that TV was crap today, and I had nowhere to go and nobody to meet today, I carried on working on the Sub Hunter project. I dug out all the resources and worked hard trying to finish off the first level. So what did I do today? Well, generally speaking, I created a routine which makes the player temporarily invincible. To make the player invincible for a short time, I had to add some handy routines which required some kind of logic thinking. This was done by creating a controlled loop, and also a little counter to check how many times the flashing of the player's sprite should take place before switching the shield off. Once the shield routine turns off, the player is no longer invincible.

So, how did I manage to make the player invincible for a few seconds? Well, simply done, I checked whether the variable, which I had created (SHIELD) equals 0 or 1 (Where 0 is off, and 1 is on). So if an enemy touches the player when the shield is on, then the player will not die. Else if the shield is turned on, and an enemy hits the player's ship, then a collision is read, therefore the player loses a life and a life is subtracted. Easy

The second thing that I done with this project is a bit of raster bug fixing, as I noticed a blue flickering line above the game screen, so I examined the code a little more, and figured out the trouble. So I fixed it by adding a simple delay routine, and now the flicker has been moved to where it cannot disturb the game itself much.

Finally, I assembled, compiled, and executed the the program, and now it is working nicely. Good thing cross platform tools, don't you think?

17 October 2005: Finishing touches for the WIP preview

After a very bad day at work, I was going to relax and not worry about anything. One of my work mates asked me what was I going to do this evening. I said, I'll relax and work on Sub Hunter project. Well, I released a work in progress preview this evening. But before I done so, I updated the game a little, to add the preview text. I done all the serious packing and crunching business. I also composed music and added it to the game. Converted the game preview to test on my real Commodore 64 on tape, using WAV/PRG and a stereo (Which Phil uses on his PC instead of PC speakers. (As my trusty 1541 is broken). I tested the game on my C64 and it looked nice. So a released the preview on the TND web site and also onto CSDB.

23rd October 2005: More fishy coding

There have been some more red herrings left in the WIP preview. But hang on, it was a "Work in Progress" preview, but was kind of playable in some kind of way. However I read the feedback to se what needed to be done about the first level with this project. Someone pointed out that there were problems with the bullet/diver collision, as when the bullet flies over the diver, it still kills it. There was a bug with the collision coordinates, so I decided to fix this problem today. So, I dug out my code and added an extra collision read routine which reads the collision for the diver. I had to keep altering the collision coordinates (or size) to make this collision a little more fair.

Another thing which I have done today was to slow down the speed of the enemies a bit by adding a delay control routine. Unfortunately on an emulator, this looks very rough. Unfortunately, the result on the real C64 also looked rough and dire. So I had to take a bit more action to my sprite moving routine. I deleted the delay routine and copied it to the diver moving routine then I went to the sprite enemy data tables and slowed the enemy speeds down. Not only did I slow down the enemy speed. I also slowed down the player's bullets. Looks much better now, but I will need to play around more with the random position routine :)

I just email this preview to Frank Gasking now.

6th November 2005: A bit of fishy business

I added a little feature, which takes away the player's oxygen, for when the player shoots a diver. (As the goal of the game is to rescue all the divers and then reach to the surface). I also tried to add inertia to the player's ship control. Sadly this did not turn out to be very good. The inertia just would not work how I wanted it, so I decided to leave it out for now. I also prepared another playable preview of the first level of Sub Hunter. Intro linked it and uploaded it on to this page.

Next time I do this project will be next week, as I am on annual leave from work from 11th November 2005 to 18th November 2005. Nice!

12th November 2005: A coding afternoon hell!

I have been working hard most of this afternoon trying to add inertia into the game, but sadly no success. After what I have been through with this project I am literally stuck with the inertia front. So if I don't succeed any further, I'll forget this inertia idea. It is a pain in the backside, and I lack good knowledge with high accuracy in game coding. I'm more better being a C64 musician instead of game coder. So I emailed my source code to Honesty/Covenant to see if he could help me out with my problem with coding inertia. Fingers crossed.

14th November 2005: A sticky situation, then a crash!

I was talking on ICQ to Honesty/Covenant. He has been trying to help me out with the inertia routine. Unfortunately, there has been loads of problems with the inertia routine. Instead of the player moving at inertia speed, the player just halts. The second thing is that the game crashes, after the joystick is held. This is unfortunate. So looks as if I cannot go any further until this problem has been properly ironed out.

17h November 2005:  Inertia now working - kind of

Honesty/Covenant got back to me, regarding the inertia problem. He managed to fix the inertia routine. I tested the speed of the game's inertia, but unfortunately the speed of the ship seems to be too fast, slightly. I emailed the preview to Frank Gasking to show the inertia that Honesty/Covenant was helping me with. Now awaiting reply.

18th November 2005: Reply back

Frank replied back to me regarding the game's inertia. He said it looks good so far, but the diagonal control is missing. I emailed Honesty regarding this issue. Awaiting response. I also been talking about multiplexors to Frank. He suggested that the game would look even better if more than 5 enemies are on screen. Now will I be able to code this? Well, I have to get inertia sorted first.

3rd December 2005: Honesty replies back

I had sent an email earlier in the week as I never heard from Honesty for a while. I got a reply back from him that he was unable to help me with the diagonal inertia, and that he did not have the time, so it is now up to me to sort of the Sub Hunter inertial for diagonal control. So I replied back to Honesty to let him know that I'll give the diagonal controls a go.

6th December 2005: Stuck like a jelly fish.

Unfortunately not much is happening today. I got started with the diagonal control for the player, but I lack in the knowledge of the way Honesty had changed the joystick routine. I'm more used to using LSR rather than AND #$xx. Maybe I could find something in the C64 user manual on probably might help. Well, I found some handy help and noted dawn the joystick values to be read. Oh me, oh my. What have I done? I done something even more stupid. I loaded the wrong code file and cocked up again. I should have loaded the level1.asm file to modify the inertia. Maybe I'll get on with it tomorrow evening as it is getting late!

28th January 2006: No need for inertia

Well I am no longer stuck with the inertia. I asked Andrew (Merman) if he could test the inertia preview. Sadly the inertia sort of killed the play ability of this game, so I removed the inertia and worked on some tidying up of the game code. I also added a new feature to home the player's submarine for after a level is complete (when 5 divers had been saved)

29th January 2006: Another preview is born

Before I had finished off the first level, I had to make a lot decisions with this project. One of which was to sacrifice a load of sprites so that I could have 128 sprites in total. Most of the sprites that I deleted (to make compact) were mainly explosions and assorted deaths. I think for the game, I'll just use 3 explosions frames and bubbles. Nothing else. I moved all the necessary sprites in place, so that I could fill $2000-$3000 with sprite data that will be used in the game. Once I replaced all those sprites, I saved those sprites, then I took my notepad (paper) and a pen, and noted down the values for the sprite frames.

After saving the sprites (one for sprite pad and another for converting to a .prg style format), I turned off the PC, turned it back on and entered MSDOS mode, so I could use the Star Commander (Mainly because when I use Star Commander in WinXP it freezes. So after I adjusted the file properties in Star Commander, I was ready to boot everything up once again and continue with the project.

When I booted up relaunch64 and the other utilities (including Command Prompt) I tested the game. Well, seems to have sort of messed up the animation. The sprites were moved to different positions, so I adjusted the enemy sprite tables. After saving, assembling and testing, the game sprites worked fine.

After the fix of the sprites, I wanted to make a high score routine, which can detect the player's score and then achieve the high score. Well, it worked nicely. The routine was scanned from the Arrow Busters game, and works a treat. As soon as I was happy with this routine, I went for lunch.

Just after lunch I carried on more and made some additional sinus patterns for the enemy fish. Once ready, I thought I give this preview some finishing touches, by introducing the GET READY, GAME OVER and WELL DONE sprites, which Frank Gasking drew. The GET READY, GAME OVER sprites stay static. The WELL DONE sprites bounce. After those worked a treat, it was time for some new music.

I loaded up WinVice, and DMC V4.0, loaded a tune called "YOU BE MINE.DMC" and then used the same instruments and composed a different tune, for the game. After saving the game, I converted it to the raw prg format for use in the cross platform software. Then I took a tune of mine called POSITIVE THOUGHTS from the HVSC, and used this tune as the title tune (After being relocated with Syndrom/TIA's All Round Relocator).

Once music was done, I prepared a temporary title screen, using the char set from Frank Gasking's game Snazzy Snakes. I captured the screen and colour settings and transferred those using WinVice's monitor, then saved everything.


Finally I coded the title screen, and disabled the RUN+RESTORE keys for the game preview. And.... that's it, my job for today is done.

You can download this new and final playable preview here. Just click on the disk icon to download :o)

11th February 2006
Nothing much has happened here. I forgotten to add an extra update to this page, which is something as follows.

I had an email back from Frank Gasking, and I received the updated sprites. Frank also wanted to show me something else, which was some kind of hires object for the seabed. Looks pretty nice. I'll look forward to seeing the graphics nicely implemented by Frank :) Apart from this, nothing else has been happening, but will do some other time.

25th February 2006
Well, I guess I sort of had been lazy on the games front (Except for the Primal Weapon game I wrote last week :o)). So today I returned to this project from where it was last left off. Frank Gasking had updated the sprites slightly, so I had to adjust the sprite tables for when those updated sprites are imported into the game. I viewed the sprites with Sprite Pad and then I made notes of the frame values for each sprite.

Once I done this, I saved the sprite files and exported to the C: drive on the PC. I turned off the PC, and then entered MSDOS mode to access the Star Commander (In WinXP, SC seems to halt) and adjust the file to make it into a C64 program file. Then I reset the PC and loaded WinXP and the .D64 editor, created a temporary .D64 and imported the PRG into this and exported to my project folder. I also updated the data tables for using the new sprites. Removed the code of the playable preview title screen and edited the batch file to link the updated sprites, instead of the older sprites file. I also tested the game. Seems to be working perfect. Now that's it. Level 1 most definitely complete.

Now that level 1 is finally finished and out of the way, the next thing which I will do (possibly tomorrow or something like that) is the second level (Shark Attack). (Which for now, will be using the level 1 background graphics as that is all I have at the moment) :o))

I also received an email from Frank Gasking, informing me that the other levels for this game are nearly complete and should be ready by Monday this week. I'll be looking forward to this :o)

Tuesday 7th March 2006 - File preparation

Because being a weekday evening and TV is crap (I don't enjoy football). I decided to do some more stuff for this Sub Hunter project. Frank emailed me a specific documentation on how the graphics could be used and also the settings for each level as well. This means a lot of hard work for me, but I'm up to it. This spec doc will help out nicely. But I have not done this yet

Frank had sent be a .vsf snap shot of all the level's graphics he done using Jon Well's Multi Screen Construction Kit (I received those about 1 1/2 weeks ago and forgot to mention this in the diary). After viewing all the level designs, I was very impressed with what I saw, done by Frank. He deserves a good pat on the back for the job he done. I'd better get my lazy arse off the internet, forums, etc. and concentrate more on this game project as it is meant to be a belter of a release. No, you lot can't have the MSCK it was commercial and it probably still is :oP. So call me a tight fisted person if you want. You'll still wont get it from me.

I prepared a .D64 image using WinVice V1.19 and saved the following files from the MSCK, which are as follows.

SUBHUNTEROBJ - All stored object data for the screen's design (Which Frank had already done)
SUBHUNTERCHR - All char set datas for the screen's designs
SUBHUNTERCOL - All colour data for the screen's designs
SUBHUNTERLIB - The final graphics library, stored specially for use in the game

Later I got the .D64 editor handy and I transferred the SUBHUNTERLIB to my Sub Hunter project directory and then done a test run of the updated MSCK levels library file within my game code. Unfortunately it appeared that my game code had messed up the MSCK data, so I removed stuff I did not want. The screen comes on nicely, however there are some glitches to the code. I need to fix a few things here. Should be no problem.

Once I managed to display the game's level graphics correctly, there was something wrong with the game's code. This meant I had to modify my settings for the game's scrolling. So I turned the test colour bars back on, and done a bit of trial & error checking to see where to set up the colour settings and new positions of the raster splits. Once I set up the new settings and tested all the level graphics scrolling, I noticed a flicker in the sea scroll. So I must fix that now :o (

After I fixed the raster splits I read more of Frank's documents which mentions that the game should fade in at the start of the level and also fade out after a level is complete. So I coded a fade in routine for the start of the game. Looks kind of nice for the start. The screen fades nicely and then the parallax scrolling begins. Now what about the fade out routine? Well simple. All I would need to do is reverse the process.  Done. All work saved and I'll continue my work some other time :o)

Yawn, bed time now I think

Friday 14th April 2006 - Rearranging a sock drawer
I felt slightly motivated to continue work with the Sub Hunter project. Well, level 1 has shaped up quite nicely, but there was a little more work to do for this level. I really wanted to get started on the main code for level 2, which was supposed to be one of those depth charge type of games, with rescuing of divers as well. Sadly I wasn't ready for this, because all the code in the game was *that* disorganized. So I spent an hour and a half, or something like that to reorganize bits of the game code, and put those into separate assembly files, then added INCLUDE (filename.asm) for assembly. I assembled the main code file, there were a few errors that needed to be correct. So I modified some of the mismatched bits of code and re-assembled once again. I got a result. The code assembled worked fine. I should have *done* this in the first place.

I'll send an email to Frank to let him know of my progress so far :o)

DOWNLOAD Sub Hunter Preview

Page 1