Tuesday, 29 December 2009
Christmas is coming and it is time to do something of a novelty. I did want to do a game in time for Christmas 2009, but unfortunately because of less spare time, I had my own limitations. Well, I suppose I could have done a 1 level preview of Ultimate Stunt Boat Challenge but I would not have had that one done in time. I was hoping to have a new game produced this Christmas, so I decided to do a quick small game called "Bah, Humbug". Because of my own limitations, it took a a couple or 3 days to produce. I mainly worked on the game code first, before I did the in game graphics, music and SFX.
Bah, Humbug! is a game, in which you are Mr. Frosty, a snowman who has be sent out to the freezing cold places to collect presents for Santa (As he has had a bit too much to drink the night before). Mr. Frosty discovers that the only way he can gather presents is by bouncing on a spring board. Mainly because some idiot has laid down candles on to the ground. So it was up to Mr. Frosty to jump and grab presents, avoid falling into the candles. But the idea was just too basic. So I decided to make additional characters to the game to make things more interesting and fun. Each character was given a different feature to enhance game play. Here's what I did:
Present - Scores 300 points (Collect enough to complete level)
Humbug - Scores 200 points
Pudding - The brandy makes Mr.Frosty drunk, so controls are reversed for a short period :o)
Grinch - Swipes 200 points off your score
Smelly Stocking - Swipes a chunk off the bonus timer (The higher the bonus timer, the more points awarded to the player)
Candle - Kills Mr.Frosty
At the end of the last level, I could not resist to add a little joke reward, which the gamers would need to play hard to find out what this little reward could be. It was quite funny.
As soon as the game was finished and the front end was done, I decided to do some tape mastering. So I dug out Martin Piper's IRQ tape loader source from Codebase, made some interesting alterations (No more Dance-A-Load now. I got fed up with it for the time being) and I made a nice black & blue flashing border with loading picture and music. The loader also uses a flashing tape sprite at bottom left corner. This is to represent a positive load, just like what Cyberload did back in the 1980's. Final result looked pretty nice, but why the heck did I add a noisy load on boot up and while loading the music data? Bah, Humbug!
Monday, 7 December 2009
Programming C64 games has been a major hobby of mine. Even if it is programming C64 games using a PC. For the past 2 months or so, I have been very busy with the co-op production with Wayne/Art Ravers' game called "Up in the Air". So far 4 levels have been done, but I have decided to put this on hold until after Christmas is finally over. However, I decided that rather than do nothing, I thought I should dig out one of my old unfinished games and create something new out of it. This is where Ultimate Stunt Boat Challenge came.
I was actually going to call this Professional Stunt Boat Simulator, but Ultimate and Challenge sounds much better, compared to Professional Simulator. Don't you agree? Plus professional and simulator kept getting used time and time again. We know who the culprits are, but the games were pretty good. I'd have to admit.
Anyway, my general idea for this game is somewhat different to what some people would expect. USBC uses the code and graphics from my scrapped Real Speed We Need project, and over the week I have been busy reorganizing the type of sprites, and redesign the level map designs. Also yesterday I have been organizing the enemy sprite types and also sprite movements. I was impressed with the work done so far yesterday. All I will need to do is add sprite/sprite collision, sprite/background collision, add the ramps for the boat, so that it can go over the background in some levels. I was very determined to get a special 4 level version of this game done in time for Christmas Day, but I best not rush it for the sake of Christmas. Plus my full time job takes over most of my time. I do miss the good old pub sessions since I was made redundant at my previous workplace in the end of July 2009.
Here's a video of the game in action:
Wednesday, 21 October 2009
21st October 2009
I thought I have a go at transferring some of my Commodore 64 disks over to PC. Many of my old disks are unlabled, so I don't really know what was on each disk. Many of the old disks are either formatted or corrupt (Except for the ones I have bought of PD libraries in the late 1990's). Now while I was trying one or two disks out on WinVice. I first tried a disk which was labelled in red writing"Assorted Charsets". The disk contained the charsets that were saved from the " 99 Charsets" program by Danish Gold. While browsing through the directory. I came across some particularly weird filenames (File names were the track and sectors of the disk which were recovered with "Dir Master V7". With curiosity, I decided to load the file from disk on to WinVice V2.1 and then typed in run. I run the program, and it defrozen (as in those days I used the action replay MK VI cart for my stuff). I was presented with the C64 BASIC screen. What a waste of time that was.
BUT Wait. There's more. I browsed through the memory with the M/C cartridge and entered the fastload reset mode. Then I entered OLD: and typed in RUN. Well, seems I have unearthed an old unreleased SEUCK game of mine which I have never released. I typed in RUN, but the BASIC did not work for me. There was also some music at $1000-$1xxx, which I did using Music Mixer that I also forgotten about. Although the game itself is crap. It is a mystery unearthed, but the game is not good.
Tuesday, 18 August 2009
17th August 2009
Today, Andrew passed me another .D64 with the Up in the Air prohject graphics. This time yet more great sprites, and a new version of level 6, which I could implement into the game's code later on this week. Anyway, I loaded up the sprites. So many of them, in fact too many of those. It did not put me off though. I decided to relocate the graphics data and use BANK 2 instead of BANK 1, as that way it would make things much easier for me, as the sprites overlapped if loaded at $2000. So now the game source has changed its memory. Here's what we have so far:
$0800-$1000 - Spare memory (That could possibly be used for extra variables, or maybe additional code for the title screen.
$1000-$2400 - The music (Although if the music is larger, as some music editors players like DMC, I could expand it more, otherwise, I could add the exomizer decrunch code in this place)
$2400-$2800 - Decrunched screen data
$2800-$2c00 - Decrunched screen colour data
$2C00 - $4000 - Spare memory, maybe for crunched screen data and exomizer decruncher
$4000 - $7300 - Game sprites data (Bank #$02). Wayne filled a lot of memory with various sprites. Perhaps he got carried away here. Heheheh. Still not to worry, that's where I have placed them.
$7400-$7800 - That will be for the actual screen used!
$7800-$8000 - Game charset
$8000-$C000 - Game code. I am not too sure how big the game code will be, but I have switched the Kernal off by setting #$35 at $01. Which hopefully means I can add further code here. Good eh?
$C800-$CC00 - Title screen logo colour RAM data
$CC00-$D000 - Title screen logo video RAM data
$E000- $FF70 - Title screen bitmap data.
Sadly I did not get round to doing the randomizing of data, scoring, etc but I can continue with that later on this week. So stay tuned. :o) Okay. Now for a can of Foster's lager and a spot of C64 gaming! :o) Oooh, nice!
Tuesday, 4 August 2009
Tuesday 4th July 2009
Don't panic. Darkness has not arisen. Friday last week, I had received another C64 game by Anthony Burns (Created using the Sideways SEUCK) called "Baphomet". The game was deeply inspired by some art by H.R.Giger and also the book "At the Mountains of Madness", by novelist H.P.Lovercraft. Anthony made a few H.P.Lovercraft games in the past, two of which were The Call of Cthulhu and also The Dunwich Horror. I was very happy to add music on to this game as well. But I wont be talking about my activities on this game, just some general information about how this game was made.
Anthony has been working really hard on this game. I am not too sure how long it has taken him to make a game like this, but I was well impressed with the in game graphics. The game starts with the usual SEUCK style title screen (or front end or intro as we all like to call it) with some instructions on what to do to play the game (I done a note file on the disk as well) and the game starts of where you should stand by and not do anything. If you move your player, you will end up crashing into the background which is deadly and die. I did something silly once by starting the game with a joystick in port 1, where the player just could not move - how silly was that eh?.
The game is split into 2 parts. The first part is where you are on foot, fighting against enemy guards and also having to smash some of the cannons (except for the flame throwers). The player could collect the spinning star emblems to boost up their score. The major drawback to this mission is that when the player touches any part of the background, they will die. The background is very deadly, which can be tough for the gamer, but it is a good idea anyhow. When the player goes on to the top part of the screen. It wont be able to move any further than about an eighth of the screen at the top (If I have calculated this correctly that is) . The player has to face two different boss enemies. The first of which are some heads shooting bolts. Later on, an evil skull-type of demon. Once past that stage it is then time to switch the joystick port over to port 1 (as prompted by the message).
Joystick port 1 controls the flying character, who has to fight against various enemies. Instead of this part being a push scroll, it is a continuous scrolling game so there is no need to try and push yourself across the screen. There are enemies that will self-destruct if you can't kill them in time. This is a very clever and probably new idea, which Anthony came up with in SEUCK. At the end of this level, you have to face a big demon, Baphomet and shoot hell out of it :o)
The graphics in this game is well drawn, very nicely detailed. Although it uses the black, white and grey mood. But that does not really matter. The only drawback to this scheme was that the walking player had a *red* score, while the flyer has a *white* score instead. I guess the red score did spoil the theme a bit, but I noticed that with SEUCK or sideways SEUCK, the player's score sprites have always been red if the changable sprite multicolour of the player's object was black. Back to the graphics ... The theme was well detailed and the mood of the game was dark. The theme was based in darkness, and the graphics really suited the theme. What a masterpiece Anthony :o)
This game would have been nicer in SEUCK Redux source, but I did not use it this time, due to the bugs left in the source, which unfortunately crashed the game (I did test the redux version with infinite lives, and not all was working. Player 1 score was black instead of red, the sprite/background collision animation was bugged and also the game crashed somewhere in part 2), but I will release this game on to the friends and contributors page of my web site, as soon as the original, but clean and compressed version is uploaded on to The SEUCK Vault.
Below you can see a video footage preview of Baphomet for the C64. This only features the start of the game. Well, I don't want to give too much away do I?
Monday, 3 August 2009
Well it has been yet another busy afternoon, and still a lot of work is to be done before I can get a fully working level. Last week I was working on preparing the labels for the enemy parameters. Well, today I have done some programming, using parameters and it took a long time to prepare and program, but it was worth the Sunday afternoon for 3 or 4 hours or so.
First of all, I created the data tables (!byte tables) to represent the behaviour of enemy's movement. The movement tables will later on be put inside a timed loop, so that we can vary the enemy's directional movements. Each table will consist with only '0' and '1'. '0' represents the selected direction the enemy moves is switched off, and the '1' represents the selected direction the enemy moves is switched on. For example if I wanted one enemy to move to the left, directions UP, DOWN and RIGHT will be switched off and LEFT will be switched on. Or if I wanted an enemy sprite to move upwards and left, UP and LEFT will be switched on and DOWN and RIGHT will be switched off.
However, I wanted to get this routine working in a correct possible manner, and it took lines of code to program. I had to make an enemy direction store value, so that the directional table that is switched on will make the active enemy sprite move a specified direction. I had to create a LOT of routines to get this to work properly. Mainly comparing the value of the stored direction. If the stored direction label equals 1, the enemy can move that direction. Otherwise the enemy cannot move the specified direction. To make sure the enemy could or could not move, I tested each enemy by setting the first value of the 60 bytes for each table (according to the direction I wanted the enemies to move) and then I assembled and test the movement. Fantastic, it worked. Okay, so it is not ready yet, but it was a good start for enemy movements. My next task will be to vary the movements of the enemies, and then get the floating balloons animated.
Sunday, 19 July 2009
Yesterday after I got back from my 2 week holiday, I found a package in the porch and I wondered to myself, did I order anything? Yes. I sure did. I opened the package to find a new C64 game disk called Knight 'n Grail. Yesterday I had no time to play it because of the excessive new C64 releases on the internet and also because of excessive email messages.
Anyway, today I got to play it on my Commodore 64 (The real machine, not the emulators). After a short delay loading, I used the basic RUN and the front end decrunched with some funky music. Then I started playing the game. The graphics was nice, and the music was okay as well. The game itself was awesome. I just could not believe how hooked I was to this game. Could this game win the best C64 game of 2009? I hope so, as this game is now near to my favourite C64 games of all time. :)
Sunday, 21 June 2009
Wow what an amazing treat I had today. I was checking my email and then Anthony Burns mentioned that he produced another sideways scrolling shoot 'em up with the Sideways SEUCK. I just could not resist to try his game out to see what it was like. Anthony told me that the game was inspired on the Capcom classic on the SEGA Master System (as well as Commodore 64) called MERCS, but based in 1917, during the First World War.
So I checked through Anthony's game and played it all the way in cheat mode from the SEUCK editor. I was well impressed with the game, especially the end of level boss stages, which must have took some time for Anthony to master. I specially liked it where the huge battleship scrolls across the screen, then stops at one position and then scrolls across again. I even liked the ending of the game. Overall this game was amazing and probably was one of the best games I have ever seen done with Sideways SEUCK.
After getting impressed with the game production, I decided to add some music to the game and also import it into Martin Piper's SEUCK REDUX source. For the music, I could not really think of any new combat style tunes, so I dug out my old tune, I died at War and imported the tune into the SEUCK redux source. Also I altered the colour bars for the front end as well, from the green+yellow crap scheme into a nice blue raster bar scheme. Looks much nicer.
Once the SEUCK REDUX version was done, I decided to also do a version of the original sideways SEUCK source, but with the same front end music. The reason for why I done this is because there are NTSC users who would probably enjoy this game, and sadly REDUX doesn't cater for the NTSC machines. The normal sideways SEUCK scrolling engine uses PAL/NTSC. As I noticed with the comments section on CSDB for Trash Course.
Finally I stored the SEUCK source files and also a RAW version of the sideways SEUCK game on to my disk. Bolted the TND intro into both music versions of The Push and then uploaded it all on to the TND web site.
Saturday, 20 June 2009
Saturday 20th June 2009
I seem to be trapped in a world of loaders, where I have been mucking around with the Martyload Tape loader source for Trash Course. I just could not make up my own mind how the loader should operate and which tune of mine I should have used. So at the end I decided to stick to the default loader (Black screen with white text) and then crack on with adding the tape master to the Trash Course disk.
Instead of wasting time with stuff like this, I should really be doing some serious stuff, Flippin' heck!
Sunday, 24 May 2009
It was another programming session for me today. But I can take a break from it tomorrow :) This time it was for me to program a disk menu for the disk version of The Last Amazon trilogy. The first thing I had to do was import all of the data which I was supplied, into the cross-assembly project. Before I could do that, I had to invert the 2x2 font, as the letters are going to be using raster colour bars.
As soon as all of the data was converted to the ACME cross assembler project folder. I started working on the code. The first thing I did was a simple test, which was to display 2 splits. One of which was for the bitmap and the other which was for the 2x2 charset. I put those inside an IRQ interrupt and then assembled those. The split worked.
Now my next job was to put all the raster bars over the 2x2 text. Which I managed to do. So now my next job was to get those raster bars straight by using timing tables. This took some time to do because when I tried to time the rasters, I ended up with the flickering moving all over the place. Once all the rasters were timed, I could add a scroll text routine in to the code and get it scrolling across smoothly.
Then I added a subroutine to read the keyboard, then routines for turning off the IRQ loader, etc and loading in the game, using a black screen and thin blue stripes - to show the disk loading. I was happy with the final result.
Update: I got an email about this menu and Psytronik Software was impressed with the work I done with this menu. I bet they were surprised at how fast such a menu project was. Just a few hours or so :)
Saturday, 23 May 2009
I have been working on the Game Over sequence and also updating The Last Amazon 2, because I recieved the final version of the original SEUCK game with additional enhancements. I played through the whole game in cheat mode. I like it. Amazing new weapons, and even shields.
Now it was time for me to work on the game over routine. I was given a mockup and idea of what the game over sequence should be. So I worked on the gun shot idea which Kenz + Alf came up with. First I drew sprites, then I made some new music..
I programmed the Game Over routine by using 3 IRQ routines (Two for different sized chars and three for colours inside text) and then I created delay routines that will delay game and then delay over. Then the bullet holes come on screen one by one using a faster delay. Then we got a good result.
Friday 22nd May 2009
Back from the pub this evening - 3 pints. When I got online to check my email I was asked if I could put final scores on to the game over sequence for Last Amazon 2. So I converted SEUCK score data into text data and added the scores to the Game Over screen.
Weather is ever so nice today, but I had nothing to do, nowhere to go to meet people. So I decided to do some more of The Last Amazon trilogy project. This time something completely different. I took a look at the latest IRQ tape loader source code by Martin Piper and decided to alter it to make the loader slightly shorter and also base the loader on the same loader I used for Joe Gunn tape version.
I dug out the ACME cross assembler and first of all, I altered the loader's flashing border methods. Rather than have the classic cyber load colours, I wanted something much different. So I changed the Cyber load colours to something like this:
COLOURBASE: LDA #$06
then I changed the INC $D020 where the check sum counts, to INC COLOURBASE+1 so that after each check sum, the loader will change the colour of the thin stripes per load.
Once I done this, I decided to make some additional features to the routine. Starting with altering the speed of the tape loader to medium/fast speed, because duplication can be a problem if the speed of the loader is too fast. Secondly I updated the scroll text routine, and removed the on screen messages "NOW LOADING LEGION OF THE DAMNED" to shorten the loader in size.
Also to shorten the size, I deleted the routines that saves and loads the loader's flashing sprite, and the counter routine. Both of those were not required for this TND/Psytronik loader. I linked the program files of the music, picture data and then game data and assembled the source to get a tape master.
Now I test the assembled tape master file and assembled it to a .prg file and run it in WinVice. I created a test .tap (or tape image as you would prefer to call it) and started to extract all the data on to the .tap image. I tested the loader, and it worked nicely. So I did the same mastering for different games. Then created a disk menu for the master.
The other job which I did was linked all the loader pics (With press space message) to each Last Amazon game. So I created my very own Picture Linker program, which will link pictures made with the Vidcom to TNDPic converter (Only for my personal use :o)). Then I inserted all the TNDPic files into the directory of my Picture Linker source. Then I added all the C64 files (Music, the games, etc) to the source. I assembled the source and linked the picture to each file successfully. Those featuring the linked pictures (With the press space message) will only be for the disk version.
This Last Amazon Trilogy project is nearly finished, all I need to do is program a special disk menu for the disk version of the game and then that's it :)
Saturday, 16 May 2009
Man, what a mammoth of a programming session I had today. First of all I decided to update the second page of the front end for Trash Course. I done this by changing the top 10 ranks into the top 5 ranks. Then I added the end screen message and linked the end screen text to the end screen message display routine. Then linked the Game Over routine to the end message routine (Because even if the game is complete, the player should get a high score if achieved).
Now my next task was to program in the high score routine. So straight after the Game Over screen, I decided to add jump routine that will jump straight to the high score detection routine. Nice!
Now it was time for me to program in the actual high score check routine. I programmed a check routine for each of the 5 positions for the player's high score. If the player reached a high score, according to the rank position. The player's score will be placed there and so will the player's name. Just to make sure this routine was working. I did a test name (As there was no name entry routine added yet). I played the game to try and get a high score and it worked. The test name "PLAYER 1" score hit the high score position along with the high score. Now it was time for me to add a name entry routine.
The name entry routine gave me a bit of a headache, because for some reason after programming all joystick control, etc. I seem to have had no action happening whatsoever. It appeared that where I was trying to reset the default char/screen position for the first char, I poked the low byte twice. So instead of pasting the new char to $7E90 +, it pasted it to $8F8F. And that was completely wrong. After correcting the joystick controlled name entry routine, all worked quite nicely. So now I can update the routines so that it will work with player 2 if he/she scores a high score. After a bit of fiddling around with the code, I got it all to work. Fantastic!
My final job was to update the graphics, as the options screen looked too plain. So using SpritePad V1.5, I drew new sprites for the game options and also I drew a 4 sprite logo for Inferior Software and then I added the logo in to the bottom border, and positioned all the sprites. This looked miles much better than my previous version of the front end.
Now the game production's programming has finally finished (I think). It is time for me to send this final production to Thorsten and Stefan for testing.
Tuesday, 12 May 2009
Sunday 10th May 2009
Martin Piper had updated his SEUCK Redux source code, and it worked pretty nicely with Legion of the Damned. No flickers or SEUCK slowdown syndrome, and sprite/sprite collisions were pixel perfect. So this morning I have been busy updating the game a bit. First by working on the in game music for the game. I used the original LOTD title music work tune in DMC V5.0+ and then I worked on the second song of the same LOTD music and worked on with the in game music. The in game music starts off sounding sort of a bit like the introduction of a Metallica sound track, but it's not. Then the Matt Gray style drums and beats come one. Making the tune pretty atmospheric. After I done the tune, I packed it with the DMC V5.0 packer.
Now music was done, I worked on the LOTD front end. I felt that it needed a good rework, so I redesigned the front end character set from scratch. Some of the characters form swords and others formed bones. So I built the logo using swords and bones, while the rest of the stuff was done as plain text. Then I saved the final game work file and imported it into the SEUCK redux source. The front end came with a nice result. I was happy with what I done. With all music and working collision/improvements, which Martin spent a long time trying to solve. I was really pleased with the final result.
Now that was done, before I uploaded the game on to my TND web site. I decided to program a brand new TND intro. So I prepared the the source files (Char set, TND Logo bitmap data, Music, etc) and put it all together with source code. My intro looked ever so nice and quite professional (although plain) and I bolted it to the LOTD game and then uploaded on to my web site.
I decided to do some more programming with the front end for Trash Course. Things needed to be sorted out. First of all the front end required an options selection. So I decided to add an extra IRQ interrupt so that I could open the bottom border and put the game options sprites into that border. Seems to have been no problem.
Secondly I programmed in the functions for the game options sprites. Not bad. Seems to work fine, except for when I tried to play the game with sound effects the WinVice C64 emulator had crashed. I realized what went wrong. I had forgotten to poke the correct place in memory. LOL. So I fixed the problem and got the sound effects working. The player modes worked nicely.
My next step was to program a Get Ready and Game Over screen for the game. I did not do anything exciting for the Get Ready and Game Over screen, because it wasn't really worth the effort. All I did was create a new IRQ and also got the routines to play the Get Ready and Game Over jingle and linked those to the front end and the game. Now that was working, I had another idea which was to get the Game Over screen to display the final score for the players. To do that I had to convert the SEUCK score plot data into raw screen data. That was easily done by adding the accumulator by $30 and pasting the data to the screen. It worked nicely.
I was working on the high score entry/table routine, but unfortunately I did not do all that good with this, due to the fact that my code was way too big as I was copying the same routine time and time again for each rank position on the high score table. I gave up at the end as I could not figure out a way to do a shorter version of high score ranks. Well, sort of. I sent a message to Martin Piper to ask if he can help me work out how I can do a high score detection using as less code as possible (Optimization).
Wednesday, 6 May 2009
I felt like doing a bit more Trash Course enhancements, so I decided to add a couple more routines that would show Get Ready and Game Over. I also fixed the title screen to execute the sideways SEUCK game after fire is pressed. I also linked the Game Over part to the game after all lives are lost straight away.
Maybe some other time I shall add the game options sprites. My plan is to be crafty and turn off the sideborders and place the options sprites at the bottom left and bottom right hand corner, due to the page flipping from credits text to high score table. Once options done, my final job will be to do the high score table. - Then I can go back to Up in the Air and my Stunt Boat Challenge project.
Sunday, 3 May 2009
I have been a bit busy today preparing some stuff for Trash Course, now that Thorsten (Sledgie) has showed me the final BETA of the game. It was time for me to do some sideways SEUCK enhancements. Well, not quite. I booted up DMC V5.0+ to make the in-game and title screen music a bit longer first, and sound better. Seems to have worked fine. Now that I was happy with the music, I decided to use the DMC V5.0 packer and relocate the music to $9000. How lucky I was that although 4 or 5 tunes were in the same music file that the compressed music file did not go over $2000. Brilliant.
The next thing I done was loaded in Thorsten's snap shot of the SEUCK game, and then I saved the SEUCK game as a finished game from the SEUCK menu. Then I loaded the finished game from BASIC and did the usual SEUCK cleaning and hacking technique (So that the menu was completely wiped away and that there was more room for spare memory. Especially when I get round to working on the new front end for the game.)
As soon as memory was filled with zeroes, I took a look at the Gold Quest 4 waterfall animation hack that I did, and used the same technique to get the game's waterfall animated. Then I saved bits of the 2 SEUCK data (Memory $0900-$6600 and also memory $b6c0 - $ffff as those were compulsory for the game, especially that at $6580 I added the background animation routine).
Now that was done, I needed to sort out a new char set and also D-Flame/Blazon/Crypt's logo. So first of all, I took my font from my old Square Pit 64 game, which I wrote in 2007 for the Forever party. Then I used GangED to convert D-Flame's picture into 3 files (Bitmap, colour RAM and Video RAM). Then I painted sprites for the game options section for my new front end.
After the graphics were sorted out. I created a folder on the PC and converted the C64 files (SEUCK, music, graphics data, etc) into the new folder. After that was done, I copied the cross-assembly and compression .exe files into the project file and got started with programming.
The first thing I had done was a simple test file. Basically, test SEUCK to see if it will decompress and run with a hacked routine that adds the in music to the game. First, this did not work because the first half of the SEUCK game data file was at $0800 instead of $0900. Doh, very silly of me! After correcting this, and crunching again the game started fine with music in the background and also animated background. Brilliant. I am glad that worked.
Now it was time for me to program the main front end. First of all I did the text data (Presentation lines, scroll text and high scores) and then worked on with the main code for the new front end. I imported all C64 files into the source files, then I programmed routines to display the colours of the logo. I also programmed 3 different splits. The first split was for the bitmap logo, which is about 6 or 7 chars high. Then another split for the still text and the last split for the scroll text. Once that was done, I worked on routines that will do the usual Richard Bayliss colour washing technique and also I programmed a routine that will change page after a certain amount of time. One page for the main credits and the other page for the high score table. Colour washing routines change per page as well. I was very happy with this result although still unfinished, because I have a Get Ready, Game Over, High Score entry and also end screen to do.
Tomorrow is a bank holiday, but I wont be doing any programming tomorrow. I'm thinking about digging out some old C64 tapes and playing those. Like, Armalyte, Blazing Thunder, etc.
Wednesday, 29 April 2009
We were returning back to Tilbury at sea. I was very disappointed that it was our last day. There wasn't much we could do on board the ship, but we managed to keep ourselves amused - most of the time playing UNO, where I kept on thrashing Philip at this game. I am just too good at it. Then we played Scrabble, guess what? I lost again. And we also played Checkers, which I also lost.
After lunch we went to the club room for the final informative lecture about Norway, this time it was about What the Norwegians did for us. It was a very interesting and quite amusing lecture about some of the history, but Norway was an interesting and great country which Philip and I visited.
Overall with our holiday, we had a wonderful experience on the cruise and also down the Norwegian Fjords. It was fantastic and I would love to visit Norway again in say, 2 or 3 years time. Or something like that. :)
Sadly I am unable to give you any screen shots of the areas that we visited as Philip has not yet got the photos converted on to the PC. :)
Philip and I found ourselves at a new destination on the cruise ship. We looked outside the ship and it was a pretty sight. We were in the Fjords of Gudvangen. It was freezing cold outside, so we had breakfast inside the ship. Then we got outside the cruise ship on to the tender for our next trip.
When we got to the bank of Gudvangen, I was stopped by a Viking and had a photo taken with him. Quite nice. Then we got on to the coach, listened to some interesting facts about Gudvangen and headed off to the giant waterfall. It was very pretty. Philip took a few photos of the waterfall. Back on the coach again, to Voss. This was our lunch stop, at a buffet restaurant. Food was really nice. I relaxed in the park with my brother then we went to the railway station. We caught the courtesy train and the train took us to the Flám Railway. After we got off the train from Voss to Flám, we got on to the Flám railway.
When we got on to the train in Flám. The speakers turned on and said 'Welcome to the Flám Railway' in a very slow and boring way. Philip and I were laughing as it was very hilarious. Another thing that made me laugh was that one of the cruise tour guides asked the conductor if they could turn up the speakers on the train. The conductor with only 3 teeth, said "No, but you can close the windows if you can't hear". LOL that was rude, but funny.
After we done the Flám railway, we got back on to the ship for tea and it was 'casual' dress code. So Philip and I headed off to the piano bar for a beer and then to the games room, where we played Scrabble. I lost at Scrabble as well as checkers. Will there be a game I am good at? Then we went to bed. It was a great day out, but tiring when you are on the coach most of the time :P.
When I woke up this morning I looked outside the window of our cabin and we saw a beatiful view. We made it to the Fjords of Ulvik. We had breakfast and then got our jackets on and set off to the tender, which took us over to the banks and then we got on to the coach to start the tour.
The tour guide seems to have been enjoying his job, as he loves coach entering the tunnels. We stopped at our first stop, which was the short ferry ride across the Fjord of Ulvik. It took 10 minutes to cross the Fjord, then we moved on to the Nature Centre. It was quite interesting. Following that we went to a water fall, which was quite pretty. Then we got to an old church, which was still being renovated. After we got back on to the coach, the passengers screamed 'CAT - Watch out, watch out!' The driver had almost ran the passing cat over with his coach, and the tour guide got excited and said: 'Oooh dear, looks like that cat almost got run over, what a shame. Ah well :o)'.
The tour was very amusing but went too quick. Philip and I got back on to the ship and the ship sailed off to the next destination, Gudvangen - which will take half a day or so. So Philip and I went to the games room and played a chess game called Checkers (I think this game is called Dame in Germany, not sure TBH). I taught him how to play the game, but unfortunately for me I was always beaten. He was too good at this game.
It was tea time, we had a buffet meal and sadly the food this time wasn't that nice. It was fish and I dislike eating fish, except for salmon, sardines, tuna, pilchards, etc. Unfortunately the fish was scampi and code, rough, etc. Horrible! I did not even know that the food was going to be fish as the food wasn't labelled.
It was 'Informal' for the dress code on the ship, so I donned my shirt and trousers and went to the piano bar. Had a couple of colas and then went into the games room again and played checkers again. Sadly I still lost. Maybe I can play a different game with Philip tomorrow night. :P
A full day at sea today. Ah well, what is there to do around the ship? Not much. Still it did not stop me and Philip exploring around the Marco Polo cruise ship. We spent most of our time in the sitting rooms talking about how much we were looking forward to the trips. Later on in the morning we both went to one of the club rooms and listened to a lecture about The quirks of Norway. The lecture was very informative and amusing. It is funny that Norway 'loves' the Eurovision Song contest and one of the singers that was the first to score NIL points was declared a national hero for that. ROTFL.
Later on in the day, I sat outside with my brother. The weather was very nice and warm so we should make the use of it.
In the evening it was a 'formal' dress code night, so I put on my suit and set off to the restaurant again for the evening meal then went to the piano bar afterwards then we went to bed.
I have got ready and set off with my brother on a cruise to the Norwegian Fjords. First of all we waited outside pickup point to get a coach to Victoria Coach Station, so that we could catch the special coach to our cruise ship. It took 2 1/2 hours from Birmingham to London, and the travelling by coach was boring. After we got off the coach we caught the courtesy coach from London to the ports in Tilbury and then we got on to the cruise ship.
When we got on to the ship, we had a nice buffet meal. Man I sure was starving, I have to admit. I could not stop eating the food for a while and drinking the nice fruit juices. Then Philip and I went to our cabin and relaxed for a bit. After an hour and a half it was time for the safety drill. So we grabbed our life jackets and put them on and set off to the meeting point where the muster stations were. We were surprised that people were forgetting to put on their life jackets and some people did not want to wear them either. LOL.
After the drill, the ship set out to sea. I relaxed in my cabin - well, went to sleep really because I was that tired. Then it was tea time, so Philip and I went to the same buffet restaurant and had our evening meal then had a beer or two then at 9:00pm, we went back to our cabin and fell asleep. The coach travelling really tired us out.
Saturday, 11 April 2009
Saturday 11th April 2009
Yesterday I mentioned about the Ultimate Stunt Boat Challenge game. Well, today I have been doing a little bit more on the project. Before I could do any more to the project I converted the test run file on to a C64 tape using the WAV/PRG program and loaded the test file in to my Commodore 64. Damn, there was a major problem. The player's boat (when expanded MSB for the sprites) screwed up the scrolling engine. So now I have to work out what was causing the problem. Fortunately I figured out what was causing such a disturbance to the scrolling engine. It appeared that I used an insufficient area for the artificial sprite positions. So I altered the OBJPOS label to a different memory location. Crunched it all with the Exomizer and tested it on my real C64. RESULT!
Now that I was happy with everything, It was time for me to add some data tables and program some additional routines. I created some data tables for the sprites, and programmed a sprite animation routine. After that I worked on a small, but very easy routine, where the player can now shoot bullets. Then I started working on getting the enemies to move. At the moment they are the same enemies moving across the screen in the same place. However I can work more on making better movements and behaviour of the enemies next time I go on to this project. Which probably might be tomorrow morning.
So far, so good. Player can move and shoot, scroller is working fine (It uses DMA delay routines) and also the enemies can move - but more work is needed on this part of the project.
Friday, 10 April 2009
Friday 10th April 2009
What a boring day today was so far. So I decided to make a new C64 game. Well, I got started on it really. Earlier on in the week I asked Frank if he could send me the Real Speed We Need graphics data for this game project. As I thought there may have been some boats and other action movie style enemies and obstacles. I sure was right.
Most of this morning I worked on the map graphics using Charpad V1.0 to build the level map and then later on I dug out the old Real Speed We Need source code and modified it a little, and got the new map working nicely with the scroller. One major problem for me was that the map scrolling was just too fast. So I slowed it down a touch and it looked fine.
My next task was to sort out some sprites. So I copied some of the old RSWN sprites which Frank had done before, and I paste them. For this game I wanted enemy air craft, boats and also some ramps, that the player could jump over to try and get over the bridges on later levels. I also grabbed some other sprites that I thought would suit the game.
Although in its early stages yet, and more work to be done. I was dead chuffed with the work done so far. I added some routines to get the player's sprite on to the screen, and also get the player moving as well.
Hopefully tomorrow or Sunday, I should be ready to add some additional routines to get the player shooting and also the enemies starting to take action.
Wednesday, 8 April 2009
Bah, TV sucks. Well that doesn't surprise me. I had nothing else too exciting to do, so I decided to work on a new front end for Last Amazon 2. This time it was a bit of a challenge, but I knew that it should be possible. I prepared a work disk .D64 and transferred all the C64 files into the cross-assembly directory for use with ACME, the same way as I did with The Last Amazon.
Kenz had shown me the mock up screen shot of what he would like me to do for the front end. Oh no ... raster splits :( Seriously, I hate doing raster bars, due to having to get those blasted things timed correctly inside $D012 splits. Ah well, it has to be done, and I shall do that.
I loaded up the Relaunch64 tool and then I created a main source file which will link all the c64 program files (including the game) and got started on the programming side of things. I started off with the IRQ interrupt player routine to see if it will run. The good news was that the player routine did play the music after assembled and crunched with PuCrunch. Now it was time for the serious part of the programming. Getting the bitmap logo and all chars displaying. To do this, I changed the background colour ($D021) so that all small text was white and all large text was yellow. So I built 10 raster splits in total. Everything displayed successfully.
Now it was time to add those raster bars into the text. Well, this I must stress was one of the worse parts of the front end programming. So I built a colour table and a raster timing table for each raster split. It took a lot of time to time out the raster splits so that the text chars looked much more tidier. As soon as I was happy with the result, I worked on the scroll text routine (Which uses raster splits as well) and then added a routine for which the player can press fire in either joystick port to play a 1 or 2 player game. Those worked okay, but sadly timing had altered again. So I moved the raster timing table and also moved the scroll text to a higher location and got everything working. Looks perfect now. Hope Alf and Kenz likes this one.
Tuesday, 31 March 2009
After tea this evening, I decided to work on a loading tune for the first Last Amazon game. So I dug out the DMC V5.0+ music editor and loaded in one of my old work tunes. Kenz fancied a Matt Gray(esque) style tune for the tape loading music. So I loaded in one of my tunes that I done for Last Amazon 2, and then I made a new atmospheric Matt Gray(esque) tune for the loader. Once I was very happy with it I worked on the main tape mastering for the game.
But there was something I just could not resist for the tape loader. Because Martin Piper had done a turbo tape loader routine with a flashing/pulsating sprite. I thought to myself, hmm. I could do a tribute to the classic Cyberload tape loader, but without the CYBERLOAD NOW LOADING GAMENAME thing and draw my own flashing square sprite (But make it look different to the original Cyberload sprite). I positioned the sprite at the bottom and in the middle of the screen and then linked the game music, loading picture and game files into the source code of my version of Martin's loader and then compressed the assembled source and data using the Exomizer, and tested the tape master. Magnificent. I was very pleased with the loader result. I will send this off to Kenz to check out to see what he thinks of it.
Monday, 30 March 2009
Ah. There is nothing quite like a Sunday playing around with SLANG. Well, XLANG really from http://www.ffd2.com/fridge/slang/. What is it precisely? Well, it is a cross-platform programming language that combines sort of BASIC commands with assembly language. Pretty okay stuff if you want to build simple programs to help you do things.
Well, that is what happened this morning. I was writing some commands in the Relaunch 64 text editor, to program some XLANG routines as well as assembly code routines to create a little program that could help me convert pictures that were saved in Vidcom Paint format into one of my own picture formats, so that I could make a much easier tape loader using the Auto boot IRQ Turbo Tape loader source from www.codebase64.com. But I wanted to make a few simple routines that will display the tape loading picture, along with music in the background. After I compiled and compressed the utility. The size it fit was 1K, after Exomizer. A 4 block program? What a result.
I tested the little utility that I made on the C64 and the utility worked fine. So I took one of my old C64 games, repacked it and then I modified the public domain IRQ turbo tape loader source so that it could do the following:
Optional flashing/loading sprite at $0200-$0280
Loading music at $1000-$1fff
Picture data (All bitmap, colour RAM and video RAM in one single load) - $2000-$47e8
Game data $4800-$ffff ;Smaller size is usually preferred.
Of course the game data would not be able to run straight away. So I added a transfer/relocator routine, so that the game that uses a BASIC SYS 2061 address will move from $4800-$xxxx to
$0801-$yyyy and then execute Exomizer's decrunch routine. Loading speed was fast. I sure will use this source for The Last Amazon tape mastering when it is time. :)
Wednesday, 25 March 2009
Yesterday, I managed to create a new front end for The Last Amazon - Special Edition. Pretty good result. However I felt that I should add an ending message to the game instead of the game looping. Well, it sort of worked, but I found it to be boring to have still text, so for the ending part I programmed a FLD routine, and the text moves up and down. Much better :o) There was still something missing. Waz did a couple of tunes that was exclusive for The Last Amazon, but we changed the music for the new version of the first game where title music was by me and in game music by Tonka. So we used Waz's tunes specially for this game. There was one tune I noticed in the HVSC which was originally for the first Last Amazon game, but it never appeared on the game, so I decided to use it for the end part of the game.
Later on, Kenz sent me a scroll text for me to add to the game. So I tried to import the scroll text into the cross-assembly project. Scroll text came in, but sadly there was not enough room for me to place the scroll text. I thought that I had to sacrifice the end tune as it had overlapped the scroll text message. Thankfully there was a lot of space in memory $1300-$18FF, as there was nothing there (As Sideways SEUCK scroll map data was originally at a different area). So I placed Kenz's scroll text at $1300 and it did not overlap anything else.
I wanted to do one more thing to the game before I classed it to be a finished piece. And that was to animate the waterfall background chars. First of all I had to dig out the Action Replay Graphics Support Disk and use the E.SS program to rip out the character set, and then load the character set into the Megaunit Char editor. This was so that I could work out where the waterfall background chars were.
Well, when I tried to animate the waterfall's background, I had a very bad result. Some of the chars that were used for the waterfall were also used for parts of the jungle's background. Sadly that meant I had to sacrifice the background animation for the water fall as the char rolling even happened with the green jungle background, as it used the same chars for it. Still, it should be alright without the animation.
Monday, 23 March 2009
If you remember a few weeks back, I did a new front end for Last Amazon - Special Edition, but yesterday I received an E-mail from Kenz that the Special Edition could do with a new and better front end. So he sent me a mockup up of what himself and Alf would love to see for the new front end. Well, it seems I have another job to do so yesterday evening I got started on it and then felt a bit tired and called it a day.
Today I did loads of programming for this new front end. I was originally scratching my head wondering if I could get anywhere to matching Kenz's example. I estimated the number of raster splits that would have been required for the title screen for this game. It turned out that I needed 10 of those. So I made some test splits (Border colour splits) to work out the areas for where the splits lie, and where I should change the font for the text. Mainly because the text is mixed with 1x1 characters and also 2x2 characters.
After I done the splits, I worked on a few other routines, for example a routine that will the normal SEUCK title screen, so that whenever RESTORE is pressed or the player quits the game it will jump straight back to the new title screen code, not the old SEUCK title screen. Then I added the scroll text, with the colour detail. Then I programmed the options that gives the player to chose between 1 player or 2 plays, and to choose whether to have in game music or sound effects. I tested the front end. Looks very nice. I shall now send it to Kenz :)
Sunday, 22 March 2009
I was watching a video on YOUTUBE.COM, which contained video footage from a US technology show called ScreenSavers. The video consisted of something interesting, which was to make an external disk drive for the good old Commodore C64, which meant people could load C64 programs from the PC on a Commodore C64. I was very interested and learned that you could do an external disk drive from PC if you owned an X or XE 1541 cable and software such as the 64HDD, a DOS compatible piece of software that can emulate the 1541 disk drive. It was my lucky day, I own an XE1541 cable (Although the sites show how to make one) and I even made a system boot disk on a floppy drive.
So now it was time for me to put it to the test. I extracted all the files to the hard disk on the PC, but unfortunately the software wasn't working properly in MSDOS. I could not go to directories with .D64, and .PRG files that were stored on to the PC. Luckily for me on 22nd March 2009 I reinstalled the software properly and connected the XE1541 cable to my 1541 disk drive and I set up the settings for the disk drive. GREAT, it all works.
I tried loading in a .D64 file of a magazine cover disk. I loaded it up, but unfortunately I had to load the games/demos separately as the 64HDD does not seem to be compatible with various C64 hardware/software fast loaders. It is great to have an external disk drive. It is a shame that I could not load programs that use the software fast load on them though.
Saturday, 14 March 2009
Today received an email from Thorsten about Trash Course. He wanted to show me a little more of the progress he made so far in Sideways SEUCK. I played through Thorsten's work using the cheat mode. Bloody hell! This game is very hard to play in proper test mode, but I liked what Thorsten did so far to the game, although a bit of tidying up might be needed near to the end of the game.
Thorsten asked me if I could draw a big army tank for this level. So I went into the sprite editor and drew 4 sprites, which would form a tank. I never thought that drawing a tank is so bloody awkward. Well, it appears so! Afterwards, I imported the sprites for the big tank into 4 different enemy objects. I altered the settings and set the tank to only shoot to the right and also other bits of the tank, to shoot diagonal. I tested the level out and unfortunately one of the sprites flickered, so I had to remove the diagonal shooting from the big tank. Ah well!
The next thing I did was worked on level 2's background graphics, which is basically a desert stage. So I went into the background editor and then built a brown background. This is for sand. Then afterwards, I built some cactus graphics and also some skull graphics as well. The graphics was a bit awkward at first, but I managed to get something out of it (See picture on the left). A wooden bridge, cacti and also skulls. Nice stuff!