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 *
                            
                            
                            
Subscribe to:
Comments (Atom)
How Repetition 64 was formed
28th April 2025 During the winter of 2025, I had some time spare in the evenings to participate in the "Simon Basic" game jam ru...
- 
28th April 2025 During the winter of 2025, I had some time spare in the evenings to participate in the "Simon Basic" game jam ru...
 - 
14th March 2020 Great news. Cruiser-X 79 continues this month. Today has been quite a long session. You might probably notice that the ga...
 - 
31st August 2011 Wow, quite a stroke of luck I had today. Winning 1st prize in a quiz at the work place (6 bottles of wine) and also getti...
 
