;=================================================================== ;BLASTOPIA (C) 2018 THE NEW DIMENSION ;PROGRAMMING, GRAPHICS, SFX AND MUSIC BY RICHARD BAYLISS ;http://tnd64.unikat.sk ;=================================================================== STARTINGLEVEL = 0 ;Part of the Assemble It tutorial ;FEATURING: ;-Assorted alien movement patterns using set paths ; from TND's Alien Formation Maker V1.0 ;-Software sprite/background collision ;-Smooth scrolling of short maps (using 256 bytes) ;-Background animation ;-Level decompression (Exomizer) ;-Purely fun game play ;Generate C64 file !to "blastopia.prg",cbm ;Import source variables !source "variables.asm" ;Import graphics charset data (Raw Binary form) *=$0800 CHARSET !bin "files/gamecharset.bin" ;Actual sprite movement table data to store ;to, due to code/data memory. *=$1000 ;A spare table for the formation X/Y copy formationX !fill $100,$00 formationY !fill $100,$00 ;Import game sprites (Raw Binary format) *=$2000 !bin "files/gamesprites.bin" ;Import start screen (Raw binary format) *=$3c00 STARTMAP !bin "files/startscreen.bin" ;Import game map (Test map) ;TO: Compress each map for other levels using ;exomizer cruncher. Then extract/decrunch each map ;to specific address with decruncher source *=$4000 sei lda #$36 sta $01 lda $02a6 ;PAL/NTSC patch sta SYSTEM lda #250 sta $0328 ;Disable RUN/RESTORE key lda #TITLESCREEN sta $0319 ;One time - Backup char 42 and store as a temporary byte ;The lazer char should switch on and off! ldx #$00 BackupLazer lda CHARSET+42*8,x sta LazerBackup,x inx cpx #8 bne BackupLazer ;One time hidden cheat lda $dc00 lsr ;up (ignore) lsr ;down (ignore) lsr ;left (ignore) lsr ;Pull right to enable infinite lives bcs NoCheat ;Cheat activated - Give player infinite lives lda #$2c sta LivesCheat NoCheat !source "gamecode.asm" ;Call separate file to assemble ;Align the next segment of data to the nearest ;$100 position in memory !align $ff,$00 ;Import the sprite formation formation01 !bin "files/formation01.prg",,2 formation02 !bin "files/formation02.prg",,2 formation03 !bin "files/formation03.prg",,2 formation04 !bin "files/formation04.prg",,2 formation05 !bin "files/formation05.prg",,2 formation06 !bin "files/formation06.prg",,2 formation07 !bin "files/formation07.prg",,2 formation08 !bin "files/formation08.prg",,2 formation09 !bin "files/formation09.prg",,2 formation10 !bin "files/formation10.prg",,2 formation11 !bin "files/formation11.prg",,2 formation12 !bin "files/formation12.prg",,2 formation13 !bin "files/formation13.prg",,2 formation14 !bin "files/formation14.prg",,2 formation15 !bin "files/formation15.prg",,2 formation16 !bin "files/formation16.prg",,2 formation17 !bin "files/formation17.prg",,2 formation18 !bin "files/formation18.prg",,2 formation19 !bin "files/formation19.prg",,2 formation20 !bin "files/formation20.prg",,2 formation21 !bin "files/formation21.prg",,2 formation22 !bin "files/formation22.prg",,2 formation23 !bin "files/formation23.prg",,2 formation24 !bin "files/formation24.prg",,2 ;Import music data $8F00 (As it exceeds 4096 bytes) *=$8F00 !bin "files/music.prg",,2 ;All compressed files through exomizer have been ;set to depack to the address $a000-$b400. So no ;additional relocation code will be required. The ;decruncher will do its job. *=$a000 GAMEMAP !bin "files/level1map.bin" ;Compressed level data *=$b400 LEVEL1MAPSTART !bin "level1map_cr.prg",,2 LEVEL1MAPEND !byte 0 LEVEL2MAPSTART !bin "level2map_cr.prg",,2 LEVEL2MAPEND !byte 0 LEVEL3MAPSTART !bin "level3map_cr.prg",,2 LEVEL3MAPEND !byte 0 LEVEL4MAPSTART !bin "level4map_cr.prg",,2 LEVEL4MAPEND !byte 0 LEVEL5MAPSTART !bin "level5map_cr.prg",,2 LEVEL5MAPEND !byte 0 LEVEL6MAPSTART !bin "level6map_cr.prg",,2 LEVEL6MAPEND !byte 0 LEVEL7MAPSTART !bin "level7map_cr.prg",,2 LEVEL7MAPEND !byte 0 LEVEL8MAPSTART !bin "level8map_cr.prg",,2 LEVEL8MAPEND !byte 0 ;Import the DASM assembled Exomizer decruncher ;(Note the -P0 prefix should be added when level ;packing data if using Exomizer V3.0.1 or higher *=$c400 !bin "files/leveldecruncher.prg",,2 ;Import the game status panel mask !align $ff,$00 STATUSPANEL !bin "files/statuspanel.bin" STATUSPANELEND !align $ff,$00 LOGOMATRIX !bin "files/titlescreenlogo.bin" !align $ff,$00