riven: add cove

This commit is contained in:
Vince Weaver 2024-06-24 18:42:24 -04:00
parent 5b1174af93
commit 122dfd9aa6
40 changed files with 354 additions and 8 deletions

View File

@ -72,7 +72,8 @@ riven_disk41.dsk: QBOOT QLOAD TITLE_41 \
disk41_files/LEVEL_TUNNEL \
disk41_files/LEVEL_STAIRS \
disk41_files/LEVEL_COVE \
disk41_files/LEVEL_STAIRS2
disk41_files/LEVEL_STAIRS2 \
disk41_files/MOVIE_COVE
cp $(EMPTY_DISK)/empty.dsk riven_disk41.dsk
$(DOS33_RAW) riven_disk41.dsk 0 0 QBOOT 0 1
$(DOS33_RAW) riven_disk41.dsk 0 2 QBOOT 1 1
@ -84,7 +85,7 @@ riven_disk41.dsk: QBOOT QLOAD TITLE_41 \
$(DOS33_RAW) riven_disk41.dsk 10 0 disk41_files/LEVEL_STAIRS 0 0
$(DOS33_RAW) riven_disk41.dsk 17 0 disk41_files/LEVEL_COVE 0 0
$(DOS33_RAW) riven_disk41.dsk 25 0 disk41_files/LEVEL_STAIRS2 0 0
$(DOS33_RAW) riven_disk41.dsk 32 0 disk41_files/MOVIE_COVE 0 0
riven_disk43.dsk: QBOOT QLOAD TITLE_43 \
disk43_files/DISK43 \

View File

@ -72,8 +72,15 @@ T 1 = QLOAD 1762 bytes 8S = 0T8S (2048) 300B free
T 1.5 = TITLE 1531 bytes 8S = 0T8S (2048) 500B free
T 2 = TUNNEL 30609 bytes = 8T (32768) 2k free
T 10 = STAIRS 25533 100S= 6T4S (28672) 3k free
T 17 = COVE 18337 = 8T (32768)
T 17 = COVE 18337 = 5T (20480) 2k free
T 25 = STAIRS2 24965 = 7T (28672)
T 32 = MOVIE_COVE 1272 = 2T (8192)
3400 4300
3600 5200 = 16500
3500 4500 = 17900
4800 5100
Disk43 Map (disk has 35 tracks, each 4k in size)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -3,7 +3,8 @@ include ../../../Makefile.inc
LINKER_SCRIPTS = ../../../linker_scripts/
all: DISK41 LEVEL_TUNNEL LEVEL_STAIRS LEVEL_COVE LEVEL_STAIRS2
all: DISK41 LEVEL_TUNNEL LEVEL_STAIRS LEVEL_COVE LEVEL_STAIRS2 \
MOVIE_COVE
###
@ -63,6 +64,19 @@ level_cove.o: level_cove.s \
ca65 -o level_cove.o level_cove.s -l level_cove.lst
####
####
MOVIE_COVE: movie_cove.o
ld65 -o MOVIE_COVE movie_cove.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
movie_cove.o: movie_cove.s \
../zp.inc ../hardware.inc ../qload.inc \
../common_defines.inc disk41_defines.inc \
movie_cove/combined_cove.zx02
ca65 -o movie_cove.o movie_cove.s -l movie_cove.lst
####
@ -78,19 +92,25 @@ graphics_stairs2/stairs2_graphics.inc:
graphics_cove/cove_graphics.inc:
cd graphics_cove && make
movie_cove/combined_cove.zx02:
cd movie_cove && make
####
clean:
rm -f *~ *.o *.lst \
DISK41 LEVEL_TUNNEL LEVEL_STAIRS LEVEL_COVE LEVEL_STAIRS2
DISK41 LEVEL_TUNNEL LEVEL_STAIRS LEVEL_COVE \
MOVIE_COVE LEVEL_STAIRS2
####
distclean:
rm -f *~ *.o *.lst \
DISK41 LEVEL_TUNNEL LEVEL_STAIRS LEVEL_COVE LEVEL_STAIRS2
DISK41 LEVEL_TUNNEL LEVEL_STAIRS LEVEL_COVE \
MOVIE_COVE LEVEL_STAIRS2
cd graphics_tunnel && make clean
cd graphics_stairs && make clean
cd graphics_cove && make clean
cd graphics_stairs2 && make clean
cd movie_cove && make clean

View File

@ -0,0 +1,9 @@
ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f
all: cove.btc.zx02
cove.btc.zx02: cove.btc
$(ZX02) cove.btc cove.btc.zx02
clean:
rm -f *.zx02

Binary file not shown.

View File

@ -8,13 +8,17 @@ all: stairs2_graphics.inc
stairs2_graphics.inc: \
stairs_up1_e.hgr.zx02 stairs_up1_w.hgr.zx02 \
stairs_up2_e.hgr.zx02 stairs_up2_w.hgr.zx02 \
stairs_up3_e.hgr.zx02 stairs_up3_w.hgr.zx02
stairs_up3_e.hgr.zx02 stairs_up3_w.hgr.zx02 \
stairs_up4_e.hgr.zx02 stairs_up4_w.hgr.zx02
echo "stairs_up1_e_zx02: .incbin \"stairs_up1_e.hgr.zx02\"" > stairs2_graphics.inc
echo "stairs_up1_w_zx02: .incbin \"stairs_up1_w.hgr.zx02\"" >> stairs2_graphics.inc
echo "stairs_up2_e_zx02: .incbin \"stairs_up2_e.hgr.zx02\"" >> stairs2_graphics.inc
echo "stairs_up2_w_zx02: .incbin \"stairs_up2_w.hgr.zx02\"" >> stairs2_graphics.inc
echo "stairs_up3_e_zx02: .incbin \"stairs_up3_e.hgr.zx02\"" >> stairs2_graphics.inc
echo "stairs_up3_w_zx02: .incbin \"stairs_up3_w.hgr.zx02\"" >> stairs2_graphics.inc
# echo "stairs_up4_e_zx02: .incbin \"stairs_up4_e.hgr.zx02\"" >> stairs2_graphics.inc
# echo "stairs_up4_w_zx02: .incbin \"stairs_up4_w.hgr.zx02\"" >> stairs2_graphics.inc
####

View File

@ -26,7 +26,8 @@ location0:
location1:
.byte $ff ; north exit
.byte $ff ; south exit
.byte LOAD_COVE<<4|RIVEN_DOWN2 ; east exit
.byte LOAD_MOVIE_COVE<<4
; .byte LOAD_COVE<<4|RIVEN_DOWN2 ; east exit
.byte RIVEN_STAIRS ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir

View File

@ -0,0 +1,212 @@
; Lo-res movie player of sorts
; this is the least efficient way of doing things but on time crunch
; should just be drawing sprites or something
; by deater (Vince Weaver) <vince@deater.net>
.include "../zp.inc"
.include "../hardware.inc"
.include "../common_defines.inc"
.include "../qload.inc"
.include "disk41_defines.inc"
;=================================
; so, movie. each frame is 1/2 second (500ms)
movie_cove_start:
;===================
; Setup graphics
;===================
bit SET_GR
bit LORES
bit FULLGR
bit PAGE1
lda #0
sta SCENE_COUNT
lda #4
sta DRAW_PAGE
bit KEYRESET
;===============================
;===============================
; set up graphics
;===============================
;===============================
;=============================
; load huge blob to $4000
;=============================
lda #<movie_data_zx02
sta ZX0_src
lda #>movie_data_zx02
sta ZX0_src+1
lda #$40
jsr full_decomp
;===============================
; initial screen
;===============================
lda #0
sta SCENE_COUNT
jsr draw_scene
jsr flip_pages
lda #0
sta SCENE_COUNT
jsr draw_scene
jsr flip_pages
;===============================
; TODO: play audio
;===============================
;===============================
;===============================
; play the movie
;===============================
;===============================
lda #00
sta SCENE_COUNT
play_movie_loop:
jsr draw_scene
jsr flip_pages
inc SCENE_COUNT
lda SCENE_COUNT
cmp #29
beq done_movie
ldx #10
jsr wait_50xms
jmp play_movie_loop
;===============================
; wait .5s
done_movie:
ldx #10
jsr wait_50xms
bit KEYRESET
;=============================
; return back to game
lda #LOAD_COVE
sta WHICH_LOAD
lda #DIRECTION_E
sta DIRECTION
lda #RIVEN_COVE
sta LOCATION
; needed?
lda #1
sta LEVEL_OVER
rts
;===============================
;===============================
; draw_scene
;===============================
;===============================
draw_scene:
lda #0
sta INL
sta OUTL
; load from $40 + 4*SCENE
; copy 1k to draw page
lda SCENE_COUNT
asl
asl
clc
adc #$40
sta INH
lda DRAW_PAGE
clc
adc #$04
sta OUTH
ldx #4
ldy #0
copy_loop:
lda (INL),Y
sta (OUTL),Y
dey
bne copy_loop
inc INH
inc OUTH
dex
bne copy_loop
rts
;============================
; flip pages
;============================
flip_pages:
lda DRAW_PAGE ; 3
beq was_page1 ; 2/3
was_page2:
bit PAGE2 ; 4
lda #$0 ; 2
beq done_pageflip ; 2/3
was_page1:
bit PAGE1 ; 4
lda #$4 ; 2
done_pageflip:
sta DRAW_PAGE ; 3
rts
;===================================
movie_data_zx02:
.incbin "movie_cove/combined_cove.zx02"

View File

@ -0,0 +1,90 @@
include ../../../../Makefile.inc
ZX02 = ~/research/6502_compression/zx02.git/build/zx02
PNG2GR = ../../../../utils/gr-utils/png2gr
all: combined_cove.zx02
combined_cove.zx02: combined_cove
$(ZX02) -f combined_cove combined_cove.zx02
combined_cove: \
cove_bg_040.gr \
cove_bg_045.gr \
cove_bg_050.gr \
cove_bg_055.gr \
cove_bg_060.gr \
cove_bg_065.gr \
cove_bg_070.gr \
cove_bg_075.gr \
cove_bg_080.gr \
cove_bg_085.gr \
cove_bg_090.gr \
cove_bg_095.gr \
cove_bg_100.gr \
cove_bg_105.gr \
cove_bg_110.gr \
cove_bg_115.gr \
cove_bg_120.gr \
cove_bg_125.gr \
cove_bg_130.gr \
cove_bg_135.gr \
cove_bg_140.gr \
cove_bg_145.gr \
cove_bg_150.gr \
cove_bg_155.gr \
cove_bg_160.gr \
cove_bg_165.gr \
cove_bg_170.gr \
cove_bg_175.gr \
cove_bg_180.gr
cat cove_bg_040.gr > combined_cove
cat cove_bg_045.gr >> combined_cove
cat cove_bg_050.gr >> combined_cove
cat cove_bg_055.gr >> combined_cove
cat cove_bg_060.gr >> combined_cove
cat cove_bg_065.gr >> combined_cove
cat cove_bg_070.gr >> combined_cove
cat cove_bg_075.gr >> combined_cove
cat cove_bg_080.gr >> combined_cove
cat cove_bg_085.gr >> combined_cove
cat cove_bg_090.gr >> combined_cove
cat cove_bg_095.gr >> combined_cove
cat cove_bg_100.gr >> combined_cove
cat cove_bg_105.gr >> combined_cove
cat cove_bg_110.gr >> combined_cove
cat cove_bg_115.gr >> combined_cove
cat cove_bg_120.gr >> combined_cove
cat cove_bg_125.gr >> combined_cove
cat cove_bg_130.gr >> combined_cove
cat cove_bg_135.gr >> combined_cove
cat cove_bg_140.gr >> combined_cove
cat cove_bg_145.gr >> combined_cove
cat cove_bg_150.gr >> combined_cove
cat cove_bg_155.gr >> combined_cove
cat cove_bg_160.gr >> combined_cove
cat cove_bg_165.gr >> combined_cove
cat cove_bg_170.gr >> combined_cove
cat cove_bg_175.gr >> combined_cove
cat cove_bg_180.gr >> combined_cove
#movie_cove.inc: \
# cove_bg.gr.zx02
# echo "cove_bg_zx02: .incbin \"cove_bg.gr.zx02\"" > movie_cove.inc
####
%.gr: %.png
$(PNG2GR) $< $@
%.gr.zx02: %.gr
$(ZX02) -f $< $@
####
clean:
rm -f *~ *.o *.lst *.zx02 *.gr movie_cove.inc
distclean:
rm -f *~ *.o *.lst *.zx02 *.gr movie_cove.inc
cd overlays && make clean

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -64,6 +64,7 @@ qload_start:
main_game_loop:
jsr load_file
entry_smc:
jsr $4000 ; all entry points currently $4000
; CHECK LEVEL_OVER
@ -84,6 +85,7 @@ load_file:
lda LOAD_ADDRESS_ARRAY,X
sta load_address
sta entry_smc+2
lda TRACK_ARRAY,X
sta load_track