Showing posts with label 6502. Show all posts
Showing posts with label 6502. Show all posts

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 *
                           
                           

                           

Thursday, 4 October 2012

Here come the critters

October 4th 2012

Still working on Amazon Tales, and so far although it is the early stages. It feels quite promising. Today I worked on ways to animated the enemies and also change their animation per every object offset. I created a small table to test for EIGHT alterations of the enemy object per reset. Result turned out pretty good. After an enemy left the screen, it appeared as a different object. More work to be done this Saturday. Here's a video of the result so far :)


Monday, 1 October 2012

Enter the natives

30th September 2012

More productivity at work today, but before I go on my 12-8 shift, I decided to spend this morning (Since 8:45pm) working a bit more on the Amazon Tales project. The deadline is looming closer, but I still manage to spare some of my free time on C64 activities. So what's been happening today? First of all last week, I got the player on screen, move around and shoot. Now it's time to insert some enemies, in which the player will have to shoot at.

First of all, I wanted to test the game sprites to ensure that they all appear on the screen okay, without any movement. I built a test in which shows four natives a dart (which the natives will shoot, and also an aztec coin). Nothing on the enemy front is supposed to move anywhere on screen. Well, it worked out pretty well. Pretty much happy with this so far.

My next job was to get those enemies moving across the screen (or downwards). The plan for the coins will be for those to drop down on to the ground, prompting the player to pick them up. The coins purpose will be to give the player a better ability to shoot at the baddies or move faster - but that will be revealed later on in the blog. If a life gets lost, he loses all abilities. The bullet sprite will be indestructible. More on that later in the blog, when I get round to working on collision.

I got the enemy and bullet sprites moving in a straight line at the same speed - but that wasn't the end of it. I need to add speed table pointers. This is so that the enemies can move at various different speed values. So I added value X + Y tables, according to the speed and direction of the enemy's movement. I also put that into a loop as well. It worked out quite nicely.

Not much time for any more work on this, so I'll be doing more on this game project later on this week.

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