Showing posts with label ACME. Show all posts
Showing posts with label ACME. Show all posts

Wednesday, 6 May 2020

Lockdown and Loaded

13th March - 6th May 2020

Like many of you, I have been stuck indoors in lockdown. While this lock down has been in place I have been very busy on various C64 game projects. I managed to complete a few over the past 2 or 3 months. Since 15th March 2020. Since I suspect you probably be interested in reading about the game projects, rather than lockdown and all of this. Here is the line up.

Nucleo 448

I teamed up with Leonardo Vettori, to help him improve his game Nucleo 447, by giving it a set of in game enhancements. The game was of course renamed Nucleo 448. This game was originally an entry from last year's Official C64 SEUCK Compo 2019 compo. I helped Leonardo ramp this game up to be more playable and fun. With aid of Martin Piper's framework for SEUCK (SEUCK Redux). Nucleo 448 had a new front end presentation power ups (which allowed the player's bullet to fire faster), in game trance music and also enemy fire AI.



Toilet Paper Stacker

I launched a Lockdown fun compo 2020 on CSDB, in which people could enter the compo and submit either a game, demo or graphics. Music was ruled out of the compo, because there was already a music compo in place. Toilet Paper Stacker was one of these stacker type of games, with a funny theme based on past events. The idea of the game was to stack over sized toilet roll on to a cabinet so that it breaks and kill the virus.




Zzapped in the Butt

Craptastic 2020 was launched earlier on this year. Zzapped in the Butt (Guess where the name ZZapped came from ;)) is a retro style space shoot 'em up. A mother ship is waiting to invade planet Earth, but cannot enter the Earth's atmosphere. So instead, it sends out various aliens to help invade the planet. The ship has to defend its military cities from aliens. The mother ship also decides to attempt to zap your ship in the butt. The game consists of more than 30 levels. Everything crammed into 4K. Expect to see that appear on your C64 in June. :)


Cruiser X-79 (Still in progress)

The vertical scrolling shoot 'em up game project was delayed for some time, but now it has come back in action. New alien movement patterns have been added to the game's code. Not all of the aliens have been put in place, as there are still some more movements in operation. A lot more work has been put into the game project today. Where, I try and restore the alien sprite/sprite collision and do a bit more debugging. Hopefully some time later on this week (or perhaps next week) I should be able to try and restore the game's main game play and get those aliens happy blasting.


All of these games can be found and downloaded from THE NEW DIMENSION for your C64, Ultimate, or theC64

(Except for the latest Cruiser-X 79 preview and Zzapped in the Butt)

Friday, 31 October 2014

X-Force is out!

31st October 2014


Over the past few months or so. I have been working hard on my first ever horizontal scrolling futuristic blaster in co-op with Saul Cross. We are very pleased with the overall result. X-Force is finally finished and has been released on the Commodore Format Archive Power Pack tape 63 project. If you want to know where to get it from. Here's the link:

Commodore Format Archive - Power Pack 63

or for the Trance version on Disk or Tape image, please visit this page below:

The New Dimension - Games-X

What is this game all about?. Well basically it is a horizontal scrolling shoot 'em up, in which you have are on planet Darx. You were mining for minerals in which could be used in the future to build a shield to protect Earth from future alien invasion. Unfortunately, after a hard day's work you decide to fall asleep in your X-Force ship. Suddenly a mother ship approaches over the X-Force fighter and beams it up. Assorted aliens carry you out of the X-Force ship and seal you into a large glass cell. After you wake up, you find yourself trapped. Rather than panic, you unzip your jacket, and reach for the inside pocket. You pick up your laser and blast yourself free. Alarms start going off. You find your X-Force fighter ship and flee off to the exit. As you escape the alien HQ, the aliens follow you ... big time.

Talking about the tape loader:

The first version of the game uses the CF Special tape loader, which I created exclusively for the Commodore Format Archive Power Pack project. I also turned this loader system into Thunderload 7, on the latest TND contributors releases. In which uses the TND logo, and a bit extra programming.Darkland used Halloween themed sprites over the scroll text, whereas the game Rabid Robots used animated stars.


The second tape loader for the second version was in fact a rushed done job today. Since there was no loading picture available for the game. I decided on doing a very simple loading presentation. I took a look at Mastertronic's Dynamix tape loader. It used a simple loading screen with a black border with light blue thin loading stripes. So I decided to base the idea on a similar style. The X-Force logo, with credits. I used Martin Piper's usual turbo tape loader source, worked on a quick tune, for loading and then put it all together. Boot loader with black and red thin stripes, and main loader with black and dark blue thin stripes. The loader plays some trance music in the background, quite similar to the Trance Sector loader theme tune.

The front end:

Saul had originally sent me the front end graphics and suggested that I should use raster bars over the text. I always hated coding raster bars, due to the fact that I have to spend a lot of time timing them. Sometimes I can hardly see the flickering of each raster on screen since I used an LED TV for a monitor. The raster bars scroll up through the text giving a nice effect. Luckily the effect turned out pretty smart, but thankfully the raster bars got fixed by NTSC fixer, Dirk Schmitt.

The music:

There are actually two different music versions of the same game. The first version features the music by Feekzoid which was originally written for horizontal scrolling shoot 'em up, Breakthrough by Jon Wells. After playing the game preview, I was really desperate to hear the news about the game becoming a full release. Sadly it never happened. So I asked Jon nicely if I could use the music for this game. Permission was granted. The second version featured music composed by me. It featured thumping trance sound tracks in the game.

Playing the game:

Using a joystick in port 2, you must guide your X-Force ship across 16 different underground zones of the hostile planet Darx. In order to escape, you must cross through each treacherous zone. Each zone is heavily powered by laser gates, which will switch on or off. You won't be alone, as the aliens will be ready to ram into your ship, should you or an alien crash into each other. Or you crash into any power gates or other background, you will lose a ship. If you have more than one ship at your disposal, at losing a ship. You will be able to quickly construct a new ship. Otherwise if the last ship explodes, you will die.

 


During the journey through each zone, there are pods with some form of mineral in which will help you improve or reduce the abilities of the ship. The coloured pods are as follows:

Pink - Single bullet power up/power down
Green - Double bullet power up/power down
Blue - Power up shield for a short period of time
Yellow - Warp distance activated for a short period of time
Grey - Avoid those at all cost, it will cost you a life. It's a deadly mine.

At the end of each stage will be an end of level boss. You can either kill it (requires 30 hits) or let it move past. Should the boss spot you, it will fire lasers to get you out of its way. Each levels boss has a different sequence of firing lasers. If you destroy it, an extra life will be rewarded. Should you let it pass, level will complete, but you won't receive any extra lives.

The worlds:

Saul Cross suggested that for each level each world should have a BEFORE and AFTER theme to it. The first and second worlds contain the mine theme, but then enters the ruins. Level 3 and 4 takes you through the ruins, to a technological world. I do remember asking Saul for some worlds based on crystals and vegetation. Level 7 has a nice crystal world, and levels 10 and 11 has a world of vegetation. The final level is a final mine before the player can escape. The colour schemes for each level were set according Saul's example maps which I received near to the time of the submission deadline for the Power Pack 63 project.

Inspiration:

X-Force was inspired by Hewson's Subterranea, where as the enemy boss stage was inspired a bit by Powerama by The Power House and Hewson. Although Powerama was a vertical scrolling shoot 'em up. Some alien ideas were inspired by Gradius/Nemesis by Konami.




Thursday, 8 May 2014

A little bit of extraction (And example code)

8th May 2014

Well, well, well. Not much news on the Honey Bee front, as I am still waiting for some more updated graphics for it. Good news however is that I received some new game graphics for one of the screens. Bad news however - it was done in char pad as 1x1 tiles. However good news is that since the game consists of 1x1 tiles. The map screen size is one screen (40 chars across x 25 down).

I extracted the character set tile data, map data and attributes data and imported it into an ACME cross assembler source. Where single screens can be drawn through a map - then colour attributes get extracted according to the screen. I had some silly results at first, but after a third attempt - the overall result worked out quite nicely.

Now here's the source code which does this job ...

;--------------------------------------------------
;1x1 tile + colour Map extractor
;--------------------------------------------------

                            !to "extractor.prg",cbm
                            *=$2000 ;Import character set
                            !binary "hb_charset_v2.prg",,2
                          
                            *=$3000 ;Import map data (the screen matrix)
                            !binary "hb_map_v2.prg",,2
                            *=$3800 ;Import tiles data
                            !binary "hb_tiles_v2.prg",,2
                            *=$3c00 ;Import attributes (colour data)
                            !binary "hb_attribs_v2.prg",,2
                           
                            *=$c000 ;SYS49152 to execute

                            ldx #$00
loop0                   lda $3000,x ;Read map data from $3000
                            sta $0400,x ;Place on screen RAM $0400 - 256 chars
                            lda $3100,x ;Same again for next segment
                            sta $0500,x
                            lda $3200,x ;and again
                            sta $0600,x
                            lda $32e8,x ;and again
                            sta $06e8,x
                            inx
                            bne loop0
                         
                            ldx #$00
loop1                   ldy $0400,x ;Read the map on screen
                            lda $3c00,y ;Read the tile colour / attributes table
                            sta $d800,x ;Store to the C64 hardware char Colour RAM 256 times
                            ldy $0500,x ;Do the same with the next 256 chars
                            lda $3c00,y
                            sta $d900,x ;Store again ...
                            ldy $0600,x ;and again
                            lda $3c00,y
                            sta $da00,x
                            ldy $06e8,x ;and again
                            lda $3c00,y
                            sta $dae8,x
                                                    
                            inx
                            bne loop1
                          
                            lda #$18
                            sta $d018
                            sta $d016
                            lda #$0e
                            sta $d020
                            sta $d021
                            lda #$08
                            sta $d022
                            lda #$09
                            sta $d023
                            jmp *
                           
                           

                           

Sunday, 23 October 2011

Here comes the bugs!


22nd October 2011

I have been working pretty hard on improving Woolly Jumper. I captured the logo supplied by Shaun and loaded it up into Amica Paint. The logo's based on the loading picture logo by Ste'86. I then loaded up the Charwandler to convert the full sized logo which I received. BUMMER, loads of chars missing. Therefore it was impossible to have a proper logo. I did however come up with an alternative solution to the problem. I resized the logo in Amica Paint, so that it would fit all characters after conversion. Then I converted the characters with the Charwandler and succeeded with the conversion. I also imported Shaun's charset into the source as well. Looks really nice and chunky :)

The next thing I did was programmed the new front end. Looked quite nice, but it seems that the colours of the text looked a bit odd in grey (According to Shaun). Perhaps I should update this so that the colours are white. I also added a flashing "Press fire to start".

As soon as the little front end was done. I worked on building the start maps using Arkitek. I captured every single start map I created, then I used the Exomizer to compress each and every start map separately. Then I imported the source (and Exomizer decruncher) into the code. I feel that for the official release of this game, Magnus Lind deserves the credit for the Exomizer source.

The next thing I did was added some new enemies. The flying propeller bugs. They look kind of funny and suit the backwards. Then I worked on the get ready and level start phase. Now what did I do? Well, I made it so that at the end of each level, the scroll routine stops, and the player can exit the level by moving to the right of the screen. However, I still need to polish the end of each level by adding a rocket for the player to enter. Then the rocket will take off once entered. The player will then go on to the next screen. I also named the levels suggested by Shaun. Looks slightly much better, but for some reason. It's getting late now, so I shall pass another preview of this game over to Shaun and Heavy Stylus and do more on it some other time this week. Possibly Monday!.

Sunday, 18 September 2011

Clumsy sheepoid.

17th September 2011

No screen shots or videos to show you this time, but I have still been working on Woolly Jumper. It is still sort of shaping up quite nicely, apart from that I came across some design faults in the game. (Go on, blame the coder). It turned out that the sinus mode which I originally used for the game wasn't all that good. The sinus was all over the place. That's not what we really want for a game don't you agree?. Well the good news is that I have renewed the sinus movement for the aliens, and after they get shot - they will disappear as they should (and not reappear on screen).

The second issue was the background. When the player jumps out of the screen, it seems to mysteriously die outside the border. This was quite a weird thing that was going on. I do have to admit. Anyway to resolve this problem I lowered the border jump height. So that no collision's made up there.

The next issue was that I programmed the lives and sprite/sprite collision. The sheep has too much on it's plate (Thanks for pointing this out Shaun) where the enemies appear on screen frequently. Oh dear :( We don't really want that to happen do we?. So I have come to a decision to add a delay/timer before letting loose the next batch of aliens. This will give the player chance to jump over platforms on to the next one. To make the player die. I added a little routine which made the sheep jump to the top of the screen, then fall into the water. The basic idea is to have an amusing frame, for where the sheep goes up, then add a splash sprite to make it look as if it had jumped into the water. I also did some jingles where one made the sheep scream if hit, then a splash sound for when it ends up in the water.

One final issue which I spotted, but pointed it out to Shaun, was a mapping fault. Basically the platforms were too far from each other in parts of the map, making it virtually impossible for the poor sheep to jump over. I also noticed a silly bug today in which killed the sheep when on top of the shaded area of the platform where the meat hooks hang. That will be simple enough to fix. Simply locate the charset number

I also had two .D64's from Shaun, featuring his new sprites for the game. So I loaded up the Sideways SEUCK (As Shaun used this to make them) and attached the .D64 with (what was meant to have been) the source files. Sadly I could not get those to load. It turned out that the disk image was corrupt as the file name ended with a *PRG inside the disk directory. This is known as a splat file. Perhaps the .D64 wasn't detached from VICE before I received it. Anyway I received the latest disk with the sprites. Those were Power Ups, alien species and of course the player animations. Looks absolutely great :) I will be looking forward to the final sprites :)

Saturday, 13 August 2011

Let's bounce

Saturday 13th August 2011

I am feeling afresh from my 2 week break in Somerset. Now I am ready for some more programming and music composing. On Thursday (Although I didn't mention it in the blog) I have been drawing some test graphics and sprites for the "Horizontal scrolling platform framework" for the 16KB cartridge game for the RGCD competition, which is currently in progress (And I am aiming to get it released down there in November). I also designed a map for the framework. Looks very basic and sort of rubbish graphics, but well, it's not the actual game graphics for Woolly Jumper. As Shaun's working on those :)

Today I felt like doing some more programming on the platform scroll engine. Although on Thursday I did add the new map to the project, I decided to update the scroll engine slightly. It appeared that I was using the KERNAL IRQ vectors, using #$37 as the $01 value. Because this was limited. I decided to switch off the basic KERNAL vectors, by simply changing the value of $01 to #$35 and then I changed all $0314 and $0315 vectors to $fffe and $ffff. I also add pointers to $fffa and $fffb to disable the RESTORE key from crashing the program. As soon as I was happy with the interrupts, I added an extra interrupt in which uses a standard multicolour for the water, and also a different colour scheme for the platforms. I made the default map colour to use a red scheme. Okay, not really bad. :) I tested the scroll and the scroll seems to work well.

There appears to be something missing. Those of which are SPRITES :). I imported the test sprites into the source code, as raw sprites. Then I got the sprites to display on to the screen. Well, just the player sprite for now that is :). Next I worked on the joystick read routine, so that the player can move up/down left or right (no shooting yet). Once I did that, the next job was to program in the self-modifying Sprite to background collision detection. So I check the value of the character sets which were being used for the top of the platform. The basic idea is to test to see if the player touches any part of the upper charset that represents the platform (anywhere on screen). If the player touches it, the sheep will flash until it is off the background.

After testing the routine was working, I programmed some additional routines that will make the sheep jump continuously. So that I could get the jumping slightly more at an accurate level. After a lot of tweaking with the jumping routine, I altered the joystick routine even more and got the player jumping and falling perfectly. Finally I added the moving aliens (Which still require a variety of movements, which will be implemented later on this week.) I also enabled the player to be able to fire bullets as well. After assembly of the framework so far, things are starting to take shape quite nicely. Enjoy the video! :)

Sunday, 3 May 2009

Trashing time.

Sunday 3rd 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, 8 April 2009

Another Last Amazon front end

Tuesday 7th April 2009 + Wednesday 8th 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.

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