riven: hook up more of disk16

This commit is contained in:
Vince Weaver 2024-08-25 01:06:38 -04:00
parent e89bbeda98
commit 6faba28f36
18 changed files with 367 additions and 7 deletions

View File

@ -179,7 +179,9 @@ riven_disk10.dsk: QBOOT QLOAD TITLE_10 \
riven_disk16.dsk: QBOOT QLOAD TITLE_16 \
disk16_files/DISK16 \
disk16_files/LEVEL_BRIDGE
disk16_files/LEVEL_BRIDGE \
disk16_files/LEVEL_BRIDGE2 \
disk16_files/LEVEL_DOME
cp $(EMPTY_DISK)/empty.dsk riven_disk16.dsk
$(DOS33_RAW) riven_disk16.dsk 0 0 QBOOT 0 1
$(DOS33_RAW) riven_disk16.dsk 0 2 QBOOT 1 1
@ -188,6 +190,9 @@ riven_disk16.dsk: QBOOT QLOAD TITLE_16 \
$(DOS33_RAW) riven_disk16.dsk 0 8 TITLE_16 0 0
$(DOS33_RAW) riven_disk16.dsk 1 0 QLOAD 0 0
$(DOS33_RAW) riven_disk16.dsk 2 0 disk16_files/LEVEL_BRIDGE 0 0
$(DOS33_RAW) riven_disk16.dsk 9 0 disk16_files/LEVEL_BRIDGE2 0 0
$(DOS33_RAW) riven_disk16.dsk 15 0 disk16_files/LEVEL_DOME 0 0
###
@ -687,6 +692,12 @@ disk10_files/LEVEL_32:
disk16_files/LEVEL_BRIDGE:
cd disk16_files && make
disk16_files/LEVEL_BRIDGE2:
cd disk16_files && make
disk16_files/LEVEL_DOME:
cd disk16_files && make
####
disk38_files/LEVEL_PROJECTOR:
@ -924,6 +935,8 @@ riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \
disk10_files/LEVEL_32 \
disk16_files/DISK16 \
disk16_files/LEVEL_BRIDGE \
disk16_files/LEVEL_BRIDGE2 \
disk16_files/LEVEL_DOME \
disk38_files/DISK38 \
disk38_files/LEVEL_PROJECTOR \
disk38_files/LEVEL_ENTRY \
@ -1009,6 +1022,8 @@ riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 10 23 0` disk10_files/LEVEL_PILLARS 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 16 0 2` disk16_files/DISK16 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 16 2 0` disk16_files/LEVEL_BRIDGE 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 16 9 0` disk16_files/LEVEL_BRIDGE2 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 16 15 0` disk16_files/LEVEL_DOME 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 38 0 2` disk38_files/DISK38 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 38 2 0` disk38_files/LEVEL_PROJECTOR 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 38 8 0` disk38_files/LEVEL_ENTRY 0 0

View File

@ -133,7 +133,9 @@ Disk16 Map (disk has 35 tracks, each 4k in size)
T 0 = Qboot
T 0.5 = TITLE 1805 bytes 8S = 0T8S (2048) 400B free
T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free
T 2 = BRIDGE 21162 bytes = 6T0S (28672) 6k free
T 2 = BRIDGE 26859 bytes = 7T0S (28672) 2k free
T 9 = BRIDGE2 4984 bytes = 6T0S (24576) 20k free
T 15 = DOME 6813 bytes = 6T0S (24576) 18k free
Disk38 Map (disk has 35 tracks, each 4k in size)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -361,3 +363,7 @@ stained glass:
chair room
shadow 72? 69/45?
or instead levels auto?
inside done:
close one. 80/69 brightness/contrast?

View File

@ -13,15 +13,15 @@ load_address_array:
.byte $40,$00,$00,$00 ;
track_array:
.byte 0, 2, 8,15 ; TITLE, BRIDGE, BRIDGE2, DOME
.byte 22,0,0,0 ;
.byte 0, 2, 9,15 ; TITLE, BRIDGE, BRIDGE2, DOME
.byte 21,0,0,0 ;
sector_array:
.byte 8, 0, 0, 0 ; TITLE, BRIDGE, BRIDGE2, DOME
.byte 0,0,0,0 ;
length_array:
.byte 8, 96,112,80 ; TITLE, BRIDGE, BRIDGE2, DOME
.byte 8,112,96,80 ; TITLE, BRIDGE, BRIDGE2, DOME
.byte 80,0,0,0

View File

@ -10,3 +10,10 @@ LOAD_DOME = 3
RIVEN_DOME_BRIDGE = 0
; DOME_BRIDGE2
RIVEN_DOME_BRIDGE2 = 0
; DOME
RIVEN_DOME = 0

View File

@ -8,12 +8,14 @@ all: bridge_graphics.inc
bridge_graphics.inc: \
dome_bridge_n.hgr.zx02 dome_bridge_s.hgr.zx02 \
dome_bridge_e.hgr.zx02 dome_bridge_w.hgr.zx02 \
dome_bridge_s_blocked.hgr.zx02
dome_bridge_s_blocked.hgr.zx02 \
dome_bridge_e_pressed.hgr.zx02
echo "dome_bridge_n_zx02: .incbin \"dome_bridge_n.hgr.zx02\"" > bridge_graphics.inc
echo "dome_bridge_s_zx02: .incbin \"dome_bridge_s.hgr.zx02\"" >> bridge_graphics.inc
echo "dome_bridge_e_zx02: .incbin \"dome_bridge_e.hgr.zx02\"" >> bridge_graphics.inc
echo "dome_bridge_w_zx02: .incbin \"dome_bridge_w.hgr.zx02\"" >> bridge_graphics.inc
echo "dome_bridge_s_blocked_zx02: .incbin \"dome_bridge_s_blocked.hgr.zx02\"" >> bridge_graphics.inc
echo "dome_bridge_e_pressed_zx02: .incbin \"dome_bridge_e_pressed.hgr.zx02\"" >> bridge_graphics.inc
####

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,25 @@
include ../../../../Makefile.inc
ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f
PNG_TO_HGR = ../../../../utils/hgr-utils/png2hgr
all: bridge2_graphics.inc
bridge2_graphics.inc: \
dome_bridge2_n.hgr.zx02 dome_bridge2_s.hgr.zx02
echo "dome_bridge2_n_zx02: .incbin \"dome_bridge2_n.hgr.zx02\"" > bridge2_graphics.inc
echo "dome_bridge2_s_zx02: .incbin \"dome_bridge2_s.hgr.zx02\"" >> bridge2_graphics.inc
####
%.hgr: %.png
$(PNG_TO_HGR) $< > $@
%.hgr.zx02: %.hgr
$(ZX02) -f $< $@
####
clean:
rm -f *~ *.o *.lst *.zx02 *.hgr bridge2_graphics.inc

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,25 @@
include ../../../../Makefile.inc
ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f
PNG_TO_HGR = ../../../../utils/hgr-utils/png2hgr
all: dome_graphics.inc
dome_graphics.inc: \
inside_dome_n.hgr.zx02 inside_dome_s.hgr.zx02
echo "inside_dome_n_zx02: .incbin \"inside_dome_n.hgr.zx02\"" > dome_graphics.inc
echo "inside_dome_s_zx02: .incbin \"inside_dome_s.hgr.zx02\"" >> dome_graphics.inc
####
%.hgr: %.png
$(PNG_TO_HGR) $< > $@
%.hgr.zx02: %.hgr
$(ZX02) -f $< $@
####
clean:
rm -f *~ *.o *.lst *.zx02 *.hgr dome_graphics.inc

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -193,6 +193,17 @@ room_no_wrap:
jsr update_exit
; display "button pressed" animation
lda #<dome_bridge_e_pressed_zx02
sta ZX0_src
lda #>dome_bridge_e_pressed_zx02
sta ZX0_src+1
lda #$20
jsr full_decomp
; only play sound if language card
lda SOUND_STATUS
@ -231,6 +242,17 @@ do_play_audio:
done_play_audio:
; restore button
lda #<dome_bridge_e_zx02
sta ZX0_src
lda #>dome_bridge_e_zx02
sta ZX0_src+1
lda #$20
jsr full_decomp
; TODO: tail call
rts

View File

@ -0,0 +1,106 @@
; Riven -- Bridge to Dome2
; by deater (Vince Weaver) <vince@deater.net>
; Zero Page
.include "../zp.inc"
.include "../hardware.inc"
.include "../common_defines.inc"
.include "../qload.inc"
.include "disk16_defines.inc"
bridge2_start:
;===================
; init screen
;===================
; jsr TEXT
; jsr HOME
bit KEYRESET
bit SET_GR
bit PAGE1
bit HIRES
bit FULLGR
;========================
; set up location
;========================
lda #<locations
sta LOCATIONS_L
lda #>locations
sta LOCATIONS_H
lda #0
sta DRAW_PAGE
sta LEVEL_OVER
lda #0
sta JOYSTICK_ENABLED
sta UPDATE_POINTER
lda #1
sta CURSOR_VISIBLE
lda #20
sta CURSOR_X
sta CURSOR_Y
;===================================
; init
;===================================
jsr change_location
jsr save_bg_14x14 ; save old bg
game_loop:
;===================================
; draw pointer
;===================================
jsr draw_pointer
;===================================
; handle keypress/joystick
;===================================
jsr handle_keypress
;===================================
; increment frame count
;===================================
inc FRAMEL
bne frame_no_oflo
inc FRAMEH
frame_no_oflo:
;====================================
; check level over
;====================================
lda LEVEL_OVER
bne really_exit
jmp game_loop
really_exit:
rts
;==========================
; includes
;==========================
.include "graphics_bridge2/bridge2_graphics.inc"
.include "leveldata_bridge2.inc"

View File

@ -0,0 +1,106 @@
; Riven -- just inside dome
; by deater (Vince Weaver) <vince@deater.net>
; Zero Page
.include "../zp.inc"
.include "../hardware.inc"
.include "../common_defines.inc"
.include "../qload.inc"
.include "disk16_defines.inc"
dome_start:
;===================
; init screen
;===================
; jsr TEXT
; jsr HOME
bit KEYRESET
bit SET_GR
bit PAGE1
bit HIRES
bit FULLGR
;========================
; set up location
;========================
lda #<locations
sta LOCATIONS_L
lda #>locations
sta LOCATIONS_H
lda #0
sta DRAW_PAGE
sta LEVEL_OVER
lda #0
sta JOYSTICK_ENABLED
sta UPDATE_POINTER
lda #1
sta CURSOR_VISIBLE
lda #20
sta CURSOR_X
sta CURSOR_Y
;===================================
; init
;===================================
jsr change_location
jsr save_bg_14x14 ; save old bg
game_loop:
;===================================
; draw pointer
;===================================
jsr draw_pointer
;===================================
; handle keypress/joystick
;===================================
jsr handle_keypress
;===================================
; increment frame count
;===================================
inc FRAMEL
bne frame_no_oflo
inc FRAMEH
frame_no_oflo:
;====================================
; check level over
;====================================
lda LEVEL_OVER
bne really_exit
jmp game_loop
really_exit:
rts
;==========================
; includes
;==========================
.include "graphics_dome/dome_graphics.inc"
.include "leveldata_dome.inc"

View File

@ -7,7 +7,7 @@ locations:
; RIVEN_BRIDGE -- bridge to dome
location0:
.byte $ff ; north exit
.byte LOAD_DOME_BRIDGE2<<4|RIVEN_DOME_BRIDGE2 ; north exit
.byte $E0 ; south exit
.byte $ff ; east exit
.byte $ff ; west exit

View File

@ -0,0 +1,23 @@
;===============================================
; level data for bridge to dome2
;===============================================
locations:
.word location0
; RIVEN_BRIDGE2 -- bridge to dome2
location0:
.byte LOAD_DOME<<4|RIVEN_DOME ; north exit
.byte LOAD_DOME_BRIDGE<<4|RIVEN_DOME_BRIDGE ; south exit
.byte $ff ; east exit
.byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.word dome_bridge2_n_zx02 ; north bg
.word dome_bridge2_s_zx02 ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH
.byte $ff

View File

@ -0,0 +1,23 @@
;===============================================
; level data for just inside dome
;===============================================
locations:
.word location0
; RIVEN_DOME -- dome
location0:
.byte $ff ; north exit
.byte LOAD_DOME_BRIDGE2<<4|RIVEN_DOME_BRIDGE2 ; south exit
.byte $ff ; east exit
.byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.word inside_dome_n_zx02 ; north bg
.word inside_dome_s_zx02 ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH
.byte $ff