WIP sky scroller
This commit is contained in:
parent
1e67d3f98b
commit
eda94e147b
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -4,5 +4,6 @@ loader/tools/cc1541/cc1541
|
|||
|
||||
loader/samples/minexample/*.bak
|
||||
loader/samples/minexample/*.o
|
||||
loader/samples/minexample/*.zx0
|
||||
loader/samples/minexample/*.zx0.prg
|
||||
loader/samples/minexample/*.lz.prg
|
||||
loader/samples/minexample/*.tmp
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 6 KiB After Width: | Height: | Size: 5.9 KiB |
|
|
@ -137,10 +137,11 @@ ZX0PRGS = \
|
|||
field.zx0.prg \
|
||||
falling_star.zx0.prg \
|
||||
lilia.zx0.prg \
|
||||
lilia_hero.zx0.prg
|
||||
lilia_hero.zx0.prg \
|
||||
sky_scroll.zx0.prg
|
||||
|
||||
LZS = \
|
||||
tilemap.bin.lz
|
||||
LZPRGS = \
|
||||
sky_scroll_map.lz.prg
|
||||
|
||||
|
||||
default: diskimage
|
||||
|
|
@ -153,12 +154,12 @@ tellarch:
|
|||
loader: $(LOADER)
|
||||
|
||||
$(LOADER): $(LOADERCFG)
|
||||
make -C $(LOADER_SRC) EXTCONFIGPATH=../samples/$(NAME) PLATFORM=$(_PLATFORM_) INSTALL=1800 RESIDENT=0F00 ZP=02 prg
|
||||
make -C $(LOADER_SRC) EXTCONFIGPATH=../samples/$(NAME) PLATFORM=$(_PLATFORM_) INSTALL=0a00 RESIDENT=0900 ZP=02 prg
|
||||
|
||||
|
||||
assemble: $(ASSEMBLE)
|
||||
|
||||
$(ASSEMBLE): $(SOURCE) $(LOADER) $(LOADERCFG) $(ZX0PRGS) $(LZS)
|
||||
$(ASSEMBLE): $(SOURCE) $(LOADER) $(LOADERCFG)
|
||||
$(MKDIR) $(BUILDDIR)
|
||||
$(MKDIR) $(INTERMDIR)
|
||||
ifeq ($(_PLATFORM_),c64)
|
||||
|
|
@ -172,14 +173,13 @@ endif
|
|||
|
||||
diskimage: $(DISKIMAGE)
|
||||
|
||||
$(DISKIMAGE): $(ASSEMBLE) $(CC1541)
|
||||
$(DISKIMAGE): $(ASSEMBLE) $(CC1541) $(ZX0PRGS) $(LZPRGS)
|
||||
$(RM) $@
|
||||
$(CC1541) -n "ys2 intro" -i otomata \
|
||||
-f "ys2" -w $< \
|
||||
$(CC1541) -n "otomata labs" -i " 2025" \
|
||||
-f "ys2intro" -w $< \
|
||||
-f "sid" -w use_this_sid.bin \
|
||||
-f "badguy" -w badguy.zx0.prg \
|
||||
-f "font" -w font.bin \
|
||||
-f "scrmap" -w tilemap.bin.lz \
|
||||
-f "intrbmp" -w title_320-prepared.zx0.prg \
|
||||
-f "tower" -w tower.zx0.prg \
|
||||
-f "towerbm" -w tower_beam.zx0.prg \
|
||||
|
|
@ -187,6 +187,8 @@ $(DISKIMAGE): $(ASSEMBLE) $(CC1541)
|
|||
-f "fallstar" -w falling_star.zx0.prg \
|
||||
-f "lilia" -w lilia.zx0.prg \
|
||||
-f "lilhero" -w lilia_hero.zx0.prg \
|
||||
-f "skyscr" -w sky_scroll.zx0.prg \
|
||||
-f "skyscrmap" -w sky_scroll_map.lz.prg \
|
||||
$@
|
||||
|
||||
|
||||
|
|
@ -211,15 +213,17 @@ $(ZX02):
|
|||
make -C $(ZX02_SRC) build/zx02
|
||||
|
||||
%.zx0.prg: %.bin $(ZX02)
|
||||
$(ZX02) $< $<.zx0
|
||||
$(PRINTF) "\x00\x80" | cat - $<.zx0 > $@
|
||||
$(RM) $<.zx0
|
||||
$(ZX02) $< $@.tmp
|
||||
$(PRINTF) "\x00\x80" | cat - $@.tmp > $@
|
||||
$(RM) $@.tmp
|
||||
|
||||
%.lz: %
|
||||
$(PYTHON) aart_lz.py $< $@
|
||||
%.lz.prg: %.bin
|
||||
$(PYTHON) aart_lz.py $< $@.tmp
|
||||
$(PRINTF) "\x00\x90" | cat - $@.tmp > $@
|
||||
$(RM) $@.tmp
|
||||
|
||||
clean:
|
||||
-$(RM) $(ZX0PRGS) $(LZS)
|
||||
-$(RM) $(ZX0PRGS) $(LZPRGS)
|
||||
-$(RM) *.o $(ASSEMBLE) $(DISKIMAGE)
|
||||
-$(RM) -rf $(INTERMDIR)
|
||||
-$(RM) $(BUILDDIR)/loader-c64.prg
|
||||
|
|
|
|||
|
|
@ -43,10 +43,6 @@ copy_start:
|
|||
sei
|
||||
lda #$35
|
||||
sta $01
|
||||
lda #>(code_end-CODE_START_ADDR)
|
||||
sta $ff
|
||||
lda #<(code_end-CODE_START_ADDR)
|
||||
sta $fe
|
||||
|
||||
lda #<CODE_START_ADDR
|
||||
sta $fc
|
||||
|
|
@ -58,26 +54,26 @@ copy_start:
|
|||
lda #>code_start
|
||||
sta $fb
|
||||
|
||||
@copy_loop:
|
||||
ldy #0
|
||||
ldx #>(code_end-CODE_START_ADDR)
|
||||
beq :+++
|
||||
:
|
||||
lda ($fa), y
|
||||
sta ($fc), y
|
||||
inc $fc
|
||||
bne :+
|
||||
inc $fd
|
||||
:
|
||||
inc $fa
|
||||
bne :+
|
||||
iny
|
||||
bne :-
|
||||
inc $fb
|
||||
inc $fd
|
||||
dex
|
||||
bne :-
|
||||
beq :+
|
||||
:
|
||||
lda $fe
|
||||
bne :+
|
||||
dec $ff
|
||||
lda ($fa), y
|
||||
sta ($fc), y
|
||||
iny
|
||||
:
|
||||
dec $fe
|
||||
lda $fe
|
||||
ora $ff
|
||||
bne @copy_loop
|
||||
cpy #<(code_end-CODE_START_ADDR)
|
||||
bne :--
|
||||
|
||||
lda #$36
|
||||
sta $01
|
||||
|
|
@ -86,7 +82,7 @@ copy_start:
|
|||
sei
|
||||
lda #$35
|
||||
sta $01
|
||||
jmp CODE_START_ADDR
|
||||
jmp part_9
|
||||
|
||||
.res loadraw - *
|
||||
.incbin "../../build/loader-c64.prg", 2
|
||||
|
|
@ -137,16 +133,7 @@ code_start:
|
|||
|
||||
ldx #<badguy
|
||||
ldy #>badguy
|
||||
jsr loadraw
|
||||
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$20
|
||||
jsr zx02
|
||||
jsr load_8000_zx02_2000
|
||||
|
||||
lda #127
|
||||
sta $dc0d
|
||||
|
|
@ -189,16 +176,8 @@ code_start:
|
|||
sei
|
||||
ldx #<introname
|
||||
ldy #>introname
|
||||
jsr loadraw
|
||||
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$10
|
||||
jsr zx02
|
||||
jsr load_8000_zx02
|
||||
|
||||
ldx #<sidname
|
||||
ldy #>sidname
|
||||
|
|
@ -232,14 +211,8 @@ code_start:
|
|||
lda #1
|
||||
sta timer_mode
|
||||
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$20
|
||||
jsr zx02
|
||||
jsr zx02_8000
|
||||
|
||||
:
|
||||
lda timer_reached
|
||||
|
|
@ -285,15 +258,7 @@ code_start:
|
|||
|
||||
ldx #<towerbeamname
|
||||
ldy #>towerbeamname
|
||||
jsr loadraw
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$20
|
||||
jsr zx02
|
||||
jsr load_8000_zx02_2000
|
||||
|
||||
:
|
||||
lda timer_reached
|
||||
|
|
@ -356,15 +321,7 @@ code_start:
|
|||
|
||||
ldx #<fieldname
|
||||
ldy #>fieldname
|
||||
jsr loadraw
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$20
|
||||
jsr zx02
|
||||
jsr load_8000_zx02_2000
|
||||
|
||||
:
|
||||
lda timer_reached
|
||||
|
|
@ -441,15 +398,7 @@ code_start:
|
|||
|
||||
ldx #<fallingstarname
|
||||
ldy #>fallingstarname
|
||||
jsr loadraw
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$20
|
||||
jsr zx02
|
||||
jsr load_8000_zx02_2000
|
||||
|
||||
:
|
||||
lda timer_reached
|
||||
|
|
@ -492,15 +441,7 @@ code_start:
|
|||
|
||||
ldx #<lilianame
|
||||
ldy #>lilianame
|
||||
jsr loadraw
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$20
|
||||
jsr zx02
|
||||
jsr load_8000_zx02_2000
|
||||
|
||||
:
|
||||
lda timer_reached
|
||||
|
|
@ -547,15 +488,7 @@ code_start:
|
|||
|
||||
ldx #<liliaheroname
|
||||
ldy #>liliaheroname
|
||||
jsr loadraw
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
lda #0
|
||||
sta ZX0_dst
|
||||
lda #$20
|
||||
jsr zx02
|
||||
jsr load_8000_zx02_2000
|
||||
|
||||
:
|
||||
lda timer_reached
|
||||
|
|
@ -571,9 +504,110 @@ code_start:
|
|||
lda timer_reached
|
||||
beq :-
|
||||
|
||||
part_9:
|
||||
jsr init_bmp
|
||||
|
||||
ldx #<skyscrname
|
||||
ldy #>skyscrname
|
||||
lda #$70
|
||||
jsr load_8000_zx02
|
||||
ldx #<skyscrmapname
|
||||
ldy #>skyscrmapname
|
||||
jsr loadraw
|
||||
ldx #0
|
||||
ldy #$90
|
||||
jsr LZ_init_decomp
|
||||
|
||||
; $0c00-$0fff buffer 0 tilemap
|
||||
; $2000-$3fff buffer 0 bitmap
|
||||
; $4000-$5fff buffer 1 bitmap
|
||||
; $6000-$63ff buffer 1 tilemap
|
||||
; $6400-$67ff next buffer CRAM
|
||||
; $7000-$77ff tileset bitmap
|
||||
; $7800-$78ff tileset tile colors
|
||||
; $7900-$79ff tileset CRAM colors
|
||||
; $9000- compressed tilemap
|
||||
|
||||
lda #$38
|
||||
sta $d018
|
||||
lda #<((17+4)*40+$c08)
|
||||
sta text_ptr
|
||||
lda #>((17+4)*40+$c08)
|
||||
sta text_ptr+1
|
||||
ldx #16
|
||||
:
|
||||
lda #0
|
||||
lda text_ptr
|
||||
sec
|
||||
sbc #40
|
||||
sta text_ptr
|
||||
sta scr_ptr
|
||||
sta cram_ptr
|
||||
sta bmp_ptr
|
||||
lda text_ptr+1
|
||||
sbc #0
|
||||
sta text_ptr+1
|
||||
sta scr_ptr+1
|
||||
; carry is always set here
|
||||
adc #$d8-$0c-1
|
||||
sta cram_ptr+1
|
||||
adc #<(($20>>3)-$d8)
|
||||
asl bmp_ptr
|
||||
rol a
|
||||
asl bmp_ptr
|
||||
rol a
|
||||
asl bmp_ptr
|
||||
rol a
|
||||
sta bmp_ptr+1
|
||||
stx temp+1
|
||||
jsr drawrow
|
||||
ldx temp+1
|
||||
dex
|
||||
bpl :-
|
||||
|
||||
:
|
||||
stx $d020
|
||||
inx
|
||||
jmp :-
|
||||
jmp *
|
||||
|
||||
drawrow:
|
||||
ldy #0
|
||||
charloop:
|
||||
sty temp
|
||||
lda #$70>>3
|
||||
sta bmp_addr+1
|
||||
jsr LZ_get_byte
|
||||
tax
|
||||
asl a
|
||||
rol bmp_addr+1
|
||||
asl a
|
||||
rol bmp_addr+1
|
||||
asl a
|
||||
rol bmp_addr+1
|
||||
sta bmp_addr
|
||||
ldy #0
|
||||
.repeat 8, I
|
||||
lda (bmp_addr),y
|
||||
sta (bmp_ptr),y
|
||||
iny
|
||||
.endrepeat
|
||||
clc
|
||||
lda bmp_ptr
|
||||
adc #8
|
||||
sta bmp_ptr
|
||||
bne :+
|
||||
inc bmp_ptr+1
|
||||
:
|
||||
ldy temp
|
||||
lda $7800,x
|
||||
sta (scr_ptr),y
|
||||
lda $7900,x
|
||||
sta (cram_ptr),y
|
||||
iny
|
||||
cpy #24
|
||||
bne charloop
|
||||
rts
|
||||
|
||||
intro:
|
||||
lda #0
|
||||
|
|
@ -1116,6 +1150,8 @@ fieldname: .byte "field", 0
|
|||
fallingstarname: .byte "fallstar", 0
|
||||
lilianame: .byte "lilia", 0
|
||||
liliaheroname: .byte "lilhero", 0
|
||||
skyscrname: .byte "skyscr", 0
|
||||
skyscrmapname: .byte "skyscrmap", 0
|
||||
|
||||
|
||||
darmtower_txt:
|
||||
|
|
@ -1256,6 +1292,24 @@ run_nufli_bmp:
|
|||
.include "zx02.asm"
|
||||
.include "thcmod_lz.asm"
|
||||
|
||||
zx02_8000:
|
||||
pha
|
||||
jmp :+
|
||||
|
||||
load_8000_zx02_2000:
|
||||
lda #$20
|
||||
load_8000_zx02:
|
||||
pha
|
||||
jsr loadraw
|
||||
:
|
||||
lda #0
|
||||
sta ZX0_src
|
||||
sta ZX0_dst
|
||||
lda #$80
|
||||
sta ZX0_src+1
|
||||
pla
|
||||
jmp zx02
|
||||
|
||||
story_writ:
|
||||
.res 11, ' '
|
||||
.byte "story written by"
|
||||
|
|
|
|||
BIN
loader/samples/minexample/sky_scroll.bin
Normal file
BIN
loader/samples/minexample/sky_scroll.bin
Normal file
Binary file not shown.
BIN
loader/samples/minexample/sky_scroll_map.bin
Normal file
BIN
loader/samples/minexample/sky_scroll_map.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue