Tuesday, 31 March 2009

A Last Amazon master

Monday + Tuesday 31st 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

DIY Slang :)

Sunday 29th 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

Another trip to the Amazon

24th+25th 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

Stuck in the Amazon - Episode 2

23rd 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

An external C64 disk drive - WICKED

Thursday 19th March 2009, Saturday 21st March 2009, Sunday 22nd 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

Building a desert

Saturday 14th 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!

Monday, 9 March 2009

A bit of Trash Course

Monday 9th March 2009

Well, no blog over the weekend - how unusual. Nothing much happened, except for that I have been rather ill the past 2 days and today, I feel much better. Man, I really hate those coughs and colds and I do get it bad!

After a hard working day, I checked one of my emails and Thorsten (Sledgie), from the C64wiki.de, asked for some help with his game project, Trash Course. He came up with the idea that we could use the Gold Quest 4 background graphics using the Sideways SEUCK engine (If you want Sideways SEUCK for your C64, please visit this page here.) Well, the good news is that the block data converted fine, but there were some problems. The roads that I designed were black and Thorsten could not get the rat sprites to blend well with the background, and suggested that colour should be changed. So the roads were changed to dark grey. I also modified the colour of the windows and doors, so that inside, windows were blue, and the door was black. Of course I could easily make more blocks to have different coloured doors, but to be honest I cannot really be asked at this moment in time.

A later email from Thorsten asked me if I could add a new character to the game. Some cheeky dogs. Well, that was easily sorted out and did not take me that long to make. I went to the sprite editor in Sideways SEUCK and then I drew 8 frames for the dog. Drawing the dog facing upwards was very awkward, but that did not stop me from trying. I loved using SEUCK in my old childhood/student memories, and it was great to be back on there again.

After I had the 8 frames for the dog, I created 6 frames for the bone (Which of course will be the dog's bullet). Then I went into the objects editor and made some corrections to some of Thorsten's enemy settings. Then I made some new settings for the dog and the dog's bullet. As soon as the settings were updated for the enemy, I copied the same enemy 3 times and used 2 new colours for the dog objects.

Now I done a test in the attack waves editor to see if all was working correctly for the dog. Seems it worked alright. I just hope Thorsten likes what he sees so far and that he will be happy to put up the level data for the first level up nicely so far.
The production is still at its early stages yet, but should be something fun for SEUCK lovers out there, once Thorsten has built all the levels and I added the enhancements and new front end to the game.

Sunday, 1 March 2009

Enter the cheetah!

1st March 2009

I read my emails and one of the messages was from Kenz, about the new front end for The Last Amazon that I sent him yesterday. There were a few things missing. I had forgotten to credit him for the logo and also I did not add the Last Amazon's eyes to the end of the fading text. So I worked on the front end a little more and added the missing elements. Now I tested the front end. All was okay, apart from the eyes. So instead of using the !SCR command, I used the !BYTE command, and set values for the eyes chars and .... it worked!

Now the front end (as far as I know) was finished, it was then time for me to add a game over routine for after the last life of the player is lost. Kenz came up with a great idea for the game over sequence, which is to have the Last Amazon running across the screen, and then have some cheetahs chasing after her (Din-dins for the cheetahs). So I ripped some sprites from the game, and stored those to $6c00-$6d00 and imported them into the game over source. I then programmed the game over screen in ACME cross assembler, making new interrupts and sprite expansion routines. Once I did all the programming for the end screen, I bolted it to the SEUCK game and tested it. The game over sequence works nicely.

For the final stage of this game, I programmed a small end screen, which shows just yellow text, using the 1x1 charset and linked the ending to where the SEUCK game scroller loop routine was. For the final test, I played the whole game in cheat mode to see if anything was wrong. It seems that everything was fine. Hopefully another Last Amazon front end finally finished. Finger crossed!

Now that was done, I dug out some tunes for The Last Amazon 2 (I will be doing a new front end and enhancements for this game when the first Last Amazon game has been given the OK), and relocated those. Then I loaded up the Last Amazon 2 SEUCK game and added the music to the game, and compressed it with Exomizer, disabling the effect when uncompressing the file and then I put both Last Amazon games on to the .D64 and sent it to Kenz.

I also could not resist playing The Last Amazon 2. It is another of Alf's memorable classic SEUCK games. Alf made many excellent SEUCK games with the great SEUCK editor. I have played many of Alf's classic SEUCK games in my time. I used to love games that were in the Cops series, and also Archetype was one of my all time favorites.

Saturday, 28 February 2009

Once again in the Amazon

28th February 2009

Well it seems as if I have been rather busy on the programming side of things today. Kenz has sent me a .d64 with the enhanced version of The Last Amazon. (See his blog here) The game sure was cool with bonus weaponry, and also the animation of the flowing water was excellent.


Kenz showed me a .gif preview of the type of Front End he would like for this game. It seems to me that he wants a very simple front end with a bitmap logo at the top, a 2x2 charset in the middle of the screen and 1x1 charset at the bottom of the screen. So I took all of the main SEUCK game files , relocated the tunes for the game, and also the other bits of data and created an ACME cross assembler project then I worked on the main code and compressed it, and my result turned out the same as what Kenz expected on the the .gif image example he showed.

Although Kenz did send a text file for me to add to the message lines, I was unable to add the eyes graphics, and numbers, because the text data was being used as !SCR commands in ACME cross assembler. So some of the things had to be left out! After all programming and testing, it seems that I have got a nice result!

Wednesday, 25 February 2009

Raging monsters on the loose


24th February 2009!

Games that Weren't had launched a classic game on to its web site called Monster Museum by Palace Software, a short while ago, and was surprised to see how near to completion this game really was. According to the author, the game was over 90% finished, it needed some final touches, but that was the end of the game.

Anyway, I gave this game a good play and noticed that there were 2 varied versions of this game. One was an earlier version, and the other was probably the main game. I gave this game a bash, but I kept having my head sucked by a mutant plant. That botanic gallery was very tough, I must admit. Still after I got passed that stage, I could not really get any further. It was a tough game, requiring puzzles to be solved for each Gallery, but I enjoyed the game. The music/sounds by the unforgettable C64 legend, Richard Joseph had an atmosphere to it. Especially the plant sucking your head. Which sounds like a horror movie jingle.

I wish that game was 100% finished. It would have been a great commercial title.

Monday, 23 February 2009

Hear the jungle drums playing


23rd February 2009

I was in a music mood today, so I decided to dish out the Demo Music Creator V5.0+, improved by CreaMD/C64.SK (Also available from my web site of course) and do some serious music composing for The Last Amazon 2, as this was the only game that was one game tune short.

I loaded up one of my old tunes and modified some of the instruments slightly. It took about 45 minutes or so to compose, and I ended up with a Tusker-loader(esque) tune in the style of Matt Gray (I loved the original music featured in such a great game by System 3). I kept on playing the tune in the background and boy it did sound catchy. I do hope Kenz and Alf will like this tune.

Now that all of the game tunes for the Last Amazon games are finished, just 2 or 3 more tunes to go for the tape loader. I think the tape loader should use the famous Cyberload colour bars and also a flashing square sprite in the middle. So Martin Piper's IRQ tape loader/master source with some modifications, which I done to display loading picture, etc. should do the trick, quite nicely, just like I did with Egg Catcher as an experiment with the loader source, but I shall remove the 3 digit clock as for picture displays, etc. That'd be rather useless! :)

Sunday, 22 February 2009

Lost in the Amazon!


22nd February 2009

Today I have been busy, programming a new front for a Psytronik software SEUCK game. I was given a .c64 image one of the games in the The Last Amazon series. Because I am not all that comfortable with CCS64, I decided to make a .tap of the Sideways Scrolling SEUCK game (Left version as there was no right scrolling version) and then save i to the .tap image.

After I saved the SEUCK game on to a .tap image, I loaded the .tap into WinVice which took some time to load - the stripes are strange? I thought SEUCK used multicoloured stripes like Novaload originally did.

After the game loaded, I filled unwanted data with zeroes (Between $6580-$b6c0) and edited $54EF from LDA $8000,y to LDA $5000,y so that the enemy bullets in the SEUCK game will fire on a random basis. I created a work disk and saved 2 separate files for the SEUCK game. From $0900-$6580 and $B6C0-$FFFF.

Next I loaded a disk with a few different files which Kenz supplied me. The disk contained the logo files, and loaded up the Vidcom paint image and saved the image as three separate files on to my work disk and I also saved the 2x1 charset on to the disk as well. Then I drew some sprites using Faces's Sprite Editor.



Now the next thing for me to do was to extract the title and game music by WAZ, from the very first Last Amazon game (Which was suggested by Kenz that I should use this music for the front end of this game). So I saved two separate music files in Voicetracker/Music Assembler format. Then I loaded up the Dutch USA Team Music Assembler and relocated the tunes to estimated possible locations for when I write my new front end for the game.


Once the music was saved, all I had to do was prepare my cross-assembly project, by making a new folder and put all the C64 data into that folder, along with the and also the ACME cross-assembler and also the brilliant Exomizer cruncher.

Now that all files were prepared, I opened Relaunch 64 and I did a test build of the game, by linking all C64 data into the source, using the !bin "filename.prg",,2 command. So as a small test I entered the two SEUCK files and compiled the source then used the Exomizer to compress the data down and tested it all in WinVice.

It seems that the SEUCK game worked, so now I linked all C64 files to possible locations in the source and got ready to program my new front end for the game.

The first thing which I had to do was make some source files for the scroll text and also the front end text. After that was done, I worked on a once at a time run routine. This is where defaults will be set on the title screen for the very first time after decompression had finished. Next I added a routine that turns off all interrupts and a delay routine, so when game is over, the title screen is delayed for a very short amount of time.


Next I added a colour and screen routine, for displaying the colour data for the title screen text and also the logo's colour data. Then I worked on with the main IRQ interrupt routines. Before I did this, I switched off the KERNAL by setting #$35 at $01. This allowed me to use higher memory after $a000-$ffff, except for memory between $d000-$e000, which obviously needs to be used as POKE storage lines anyway!

Now I programmed the raster interrupt init routine. Usually I use the KERNAL $0314-$0315, but this time I used something more complex, which was $FFFE and $FFFF. This made IRQs longer, but I did not need to use KERNAL.

I used 3 IRQs to make 3 raster splits. The first one was for the scroll text, the second was for the bitmap logo and the last one was for the still text. I had to fiddle around with the charset values, so that I could display a charset that was at $7000 while screen memory is at $7c00. I managed to succeed to display the logo and the static 2x1 text.

After the success of the splits, I was programming the 2x1 scroll text, until I came across a problem. After assembling and compressing the program, no scroll text displayed. There was a problem there. I was scratching my head wondering what was up with the routine. Well, the routine was correct, but the scroll text was being pasted at the wrong screen memory. I used the $0400-$07e8 screen RAM instead of the $7C00-$7FE8 screen RAM. Hahahaha, how dumb was that? :oD. After I changed the scroll's screen memory I got the text to tick along the screen. There was no smooth scroll, but I managed to fix this problem by updating the bottom split, so that $D016 was run by the scroll control code.

My next step was to add and position the sprites and expand the sprite positions. So I used the typical software sprite expansion mode which I used for many of my games and programs, by ROR-ing $D010 as usual. I got the sprites to display, so now it was time for me to do some functions for the sprites.

So my next job was to program the options routine. This had to be done where the joystick direction from either joystick port can choose the number of players or to choose music or sound effects, pressing fire will take the player to the game. This was done by creating some labels and routines, that could display the correct sprites that correspond to the option the player selects. There is more to it though, because as well as sprite options, I needed to program the functions for each option, by building some extra routines. Just simple pokes really.

Where I had to program the in game music function. I had to put BIT routines where the SEUCK was playing the sound memory for the game sound effects. I also had to add a poke that would initialize and play the in game music, without being interrupted by the sound effects. When I tried this, the routine unfortunately crashed. I found out where I went wrong here. I was POKEing the wrong address, which was somewhere in the SEUCK's IRQ memory. That was bad! I managed to fix the routine by using the correct address to POKE for initializing the in game music.

The sound effects bit was similar to the in game music method, but I had to restore the correct poke values for the where sounds originally had BIT next to them and should be replaced with STA only for sound effects. This worked successfully.

The only thing that was missing in the game options was the player options, so I added some routines to select between 1 or 2 players by using the standard SEUCK player mode pokes. This worked a treat, and I was happy with the final result.

To end it all, I added the typical Richard Bayliss colour wash routine on to the scroll text, so that there is something interesting going on in the front end. Hahahahaha.

Now all I had to do was have a quick test to see if the game is working. Well, seems it is working at the moment. After game was over, I decided to test the whole game to see if all works. Well fantastic news. The game works, no crashes or missing sprites. Fantastic!

Now I shall send it off to Kenz to look at and also pass to Alf to see what he thinks of the new front end bolted to his magnificent sideways SEUCK game.


A new intro


21st February 2009

As well as my normal C64 web site, featuring my own game productions. I have finally built up a blog page for anyone interested to see some of the things that I get up to and what I have been doing as well.

I have been doing a bit of programming this morning in ACME. Well, I did originally start is a few days ago. About a few weeks ago, somebody had emailed me a TND logo, so I decided to program a new TND intro, using the ACME cross assembler. I had a few slowdowns with this piece of code, due to making little mistakes with the raster time. I even had crashed the C64 by making a typo error with the 2x1 scroll text display routine. After the typo was fixed, the intro finally turned out pretty nice. I might use that for any future games, demos or utilities I write :)

Here's a video of the intro in action (Recorded in WinVice and converted to MPEG)

Fredrik the Ball is Back: Spider Maze 2 in progress

  11th January 2026 First of all, a belated Happy New Year to all C64 and retro kind.   At last, a new blog update and a new C64 project is ...