riven: more locations

This commit is contained in:
Vince Weaver 2024-07-22 00:27:40 -04:00
parent 0cfb2ddbfb
commit 49d55a9dbf
16 changed files with 249 additions and 15 deletions

View File

@ -46,7 +46,8 @@ riven_disk01.dsk: QBOOT QLOAD TITLE_01 \
disk01_files/DISK01 \
disk01_files/LEVEL_ARRIVAL \
disk01_files/LEVEL_ARRIVAL2 \
disk01_files/LEVEL_TELESCOPE
disk01_files/LEVEL_TELESCOPE \
disk01_files/LEVEL_ARRIVAL3
cp $(EMPTY_DISK)/empty.dsk riven_disk01.dsk
$(DOS33_RAW) riven_disk01.dsk 0 0 QBOOT 0 1
$(DOS33_RAW) riven_disk01.dsk 0 2 QBOOT 1 1
@ -57,6 +58,8 @@ riven_disk01.dsk: QBOOT QLOAD TITLE_01 \
$(DOS33_RAW) riven_disk01.dsk 2 0 disk01_files/LEVEL_ARRIVAL 0 0
$(DOS33_RAW) riven_disk01.dsk 9 0 disk01_files/LEVEL_ARRIVAL2 0 0
$(DOS33_RAW) riven_disk01.dsk 13 0 disk01_files/LEVEL_TELESCOPE 0 0
$(DOS33_RAW) riven_disk01.dsk 20 0 disk01_files/LEVEL_ARRIVAL3 0 0
###
@ -309,6 +312,9 @@ disk01_files/LEVEL_ARRIVAL:
disk01_files/LEVEL_ARRIVAL2:
cd disk01_files && make
disk01_files/LEVEL_ARRIVAL3:
cd disk01_files && make
####
disk00_files/DISK00:
cd disk00_files && make
@ -478,6 +484,7 @@ riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \
disk01_files/LEVEL_ARRIVAL \
disk01_files/LEVEL_ARRIVAL2 \
disk01_files/LEVEL_TELESCOPE \
disk01_files/LEVEL_ARRIVAL3 \
disk38_files/DISK38 \
disk38_files/LEVEL_PROJECTOR \
disk39_files/DISK39 \
@ -519,8 +526,9 @@ riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 31 0` disk00_files/LEVEL_START 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 1 0 2` disk01_files/DISK01 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 1 2 0` disk01_files/LEVEL_ARRIVAL 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 1 9 0` disk01_files/LEVEL_ARRIVAL 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 1 9 0` disk01_files/LEVEL_ARRIVAL2 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 1 13 0` disk01_files/LEVEL_TELESCOPE 0 0
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 1 20 0` disk01_files/LEVEL_ARRIVAL3 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 39 0 2` disk39_files/DISK39 0 0

View File

@ -107,10 +107,10 @@ Disk01 Map (disk has 35 tracks, each 4k in size)
T 0 = Qboot
T 0.5 = TITLE 1823 bytes 8S = 0T8S (2048) 400B free
T 1 = QLOAD 2393 bytes 16S= 1T0S (4096) 2k free
T 2 = ARRIVAL 25512 bytes = 7T0S (28672) 3k free
T 2 = ARRIVAL 27040 bytes = 7T0S (28672) 1k free
T 9 = ARRIVAL2 15920 bytes = 4T0S (16384) 400B free
T 13 = TELESCOPE 19484 bytes = 7T0S (28672) 9k free
T 20 = ARRIVAL3
T 20 = ARRIVAL3 30786 bytes = 7T15S (32512) 2k free
Disk38 Map (disk has 35 tracks, each 4k in size)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -3,7 +3,7 @@ include ../../../Makefile.inc
LINKER_SCRIPTS = ../../../linker_scripts/
all: DISK01 LEVEL_ARRIVAL LEVEL_ARRIVAL2 LEVEL_TELESCOPE
all: DISK01 LEVEL_ARRIVAL LEVEL_ARRIVAL2 LEVEL_TELESCOPE LEVEL_ARRIVAL3
####
@ -53,6 +53,19 @@ level_telescope.o: level_telescope.s \
####
LEVEL_ARRIVAL3: level_arrival3.o
ld65 -o LEVEL_ARRIVAL3 level_arrival3.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
level_arrival3.o: level_arrival3.s \
../zp.inc ../hardware.inc ../qload.inc \
../common_defines.inc disk01_defines.inc \
leveldata_arrival3.inc \
graphics_arrival3/arrival3_graphics.inc
ca65 -o level_arrival3.o level_arrival3.s -l level_arrival3.lst
####
graphics_arrival/arrival_graphics.inc:
cd graphics_arrival && make
@ -62,18 +75,22 @@ graphics_arrival2/arrival2_graphics.inc:
graphics_telescope/telescope_graphics.inc:
cd graphics_telescope && make
graphics_arrival3/arrival3_graphics.inc:
cd graphics_arrival3 && make
####
clean:
rm -f *~ *.o *.lst \
DISK01 LEVEL_ARRIVAL LEVEL_ARRIVAL2 LEVEL_TELESCOPE
DISK01 LEVEL_ARRIVAL LEVEL_ARRIVAL2 LEVEL_TELESCOPE LEVEL_ARRIVAL3
####
distclean:
rm -f *~ *.o *.lst \
DISK01 LEVEL_ARRIVAL LEVEL_ARRIVAL2 LEVEL_TELESCOPE
DISK01 LEVEL_ARRIVAL LEVEL_ARRIVAL2 LEVEL_TELESCOPE LEVEL_ARRIVAL3
cd graphics_arrival && make clean
cd graphics_arrival2 && make clean
cd graphics_telescope && make clean
cd graphics_arrival3 && make clean

View File

@ -10,18 +10,18 @@ which_disk_bin:
load_address_array:
.byte $40,$40,$40,$40 ; TITLE, ARRIVAL, ARRIVAL2, TELESCOPE
.byte $00,$00,$00,$00
.byte $40,$00,$00,$00 ; ARRIVAL3
track_array:
.byte 0, 2, 9,13 ; TITLE, ARRIVAL, ARRIVAL2, TELESCOPE
.byte 0,0,0,0
.byte 20,0,0,0 ; ARRIVAL3
sector_array:
.byte 8, 0, 0, 0 ; TITLE, ARRIVAL, ARRIVAL2, TELESCOPE
.byte 0,0,0,0
.byte 0,0,0,0 ; ARRIVAL3
length_array:
.byte 8, 112,64, 112 ; TITLE, ARRIVAL, ARRIVAL2, TELESCOPE
.byte 0,0,0,0
.byte 127,0,0,0 ; ARRIVAL3
disk_exit_disk: ; note: not BCD anymore

View File

@ -2,6 +2,7 @@ LOAD_TITLE_01 = 0
LOAD_ARRIVAL = 1
LOAD_ARRIVAL2 = 2
LOAD_TELESCOPE = 3
LOAD_ARRIVAL3 = 4
;================================
; Level definitions
@ -20,3 +21,9 @@ RIVEN_ARRIVAL2 = 0
RIVEN_TELESCOPE = 0
RIVEN_MANHOLE = 1
; Arrival3
RIVEN_ARRIVAL3 = 0
RIVEN_ARRIVAL4 = 1
RIVEN_ARRIVAL5 = 2

View File

@ -7,13 +7,14 @@ all: arrival_graphics.inc
arrival_graphics.inc: \
arrival_near_n.hgr.zx02 arrival_near_s.hgr.zx02 arrival_near_e.hgr.zx02 arrival_near_w.hgr.zx02 \
arrival_n.hgr.zx02 \
arrival_n.hgr.zx02 arrival_s.hgr.zx02 \
arrival_handle_n.hgr.zx02
echo "arrival_near_n_zx02: .incbin \"arrival_near_n.hgr.zx02\"" > arrival_graphics.inc
echo "arrival_near_s_zx02: .incbin \"arrival_near_s.hgr.zx02\"" >> arrival_graphics.inc
echo "arrival_near_e_zx02: .incbin \"arrival_near_e.hgr.zx02\"" >> arrival_graphics.inc
echo "arrival_near_w_zx02: .incbin \"arrival_near_w.hgr.zx02\"" >> arrival_graphics.inc
echo "arrival_n_zx02: .incbin \"arrival_n.hgr.zx02\"" >> arrival_graphics.inc
echo "arrival_s_zx02: .incbin \"arrival_s.hgr.zx02\"" >> arrival_graphics.inc
echo "arrival_handle_n_zx02: .incbin \"arrival_handle_n.hgr.zx02\"" >> arrival_graphics.inc

View File

@ -0,0 +1,31 @@
include ../../../../Makefile.inc
ZX02 = ~/research/6502_compression/zx02.git/build/zx02
PNG_TO_HGR = ../../../../utils/hgr-utils/png2hgr
all: arrival3_graphics.inc
arrival3_graphics.inc: \
arrival3_n.hgr.zx02 arrival3_s.hgr.zx02 arrival3_e.hgr.zx02 arrival3_w.hgr.zx02 \
arrival4_n.hgr.zx02 arrival4_s.hgr.zx02 arrival5_n.hgr.zx02
echo "arrival3_n_zx02: .incbin \"arrival3_n.hgr.zx02\"" > arrival3_graphics.inc
echo "arrival3_s_zx02: .incbin \"arrival3_s.hgr.zx02\"" >> arrival3_graphics.inc
echo "arrival3_e_zx02: .incbin \"arrival3_e.hgr.zx02\"" >> arrival3_graphics.inc
echo "arrival3_w_zx02: .incbin \"arrival3_w.hgr.zx02\"" >> arrival3_graphics.inc
echo "arrival4_n_zx02: .incbin \"arrival4_n.hgr.zx02\"" >> arrival3_graphics.inc
echo "arrival4_s_zx02: .incbin \"arrival4_s.hgr.zx02\"" >> arrival3_graphics.inc
echo "arrival5_n_zx02: .incbin \"arrival5_n.hgr.zx02\"" >> arrival3_graphics.inc
####
%.hgr: %.png
$(PNG_TO_HGR) $< > $@
%.hgr.zx02: %.hgr
$(ZX02) -f $< $@
####
clean:
rm -f *~ *.o *.lst *.zx02 *.hgr arrival3_graphics.inc

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,112 @@
; Riven -- Dome Island -- Arrival3
; by deater (Vince Weaver) <vince@deater.net>
; Zero Page
.include "../zp.inc"
.include "../hardware.inc"
.include "../common_defines.inc"
.include "../qload.inc"
.include "disk01_defines.inc"
riven_arrival2:
;===================
; init screen
;===================
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
;===================================
; done in title
; lda #$20
; sta HGR_PAGE
; jsr hgr_make_tables
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_arrival3/arrival3_graphics.inc"
.include "leveldata_arrival3.inc"

View File

@ -16,10 +16,10 @@ location0:
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.word arrival_n_zx02 ; north bg
.word $0000 ; south bg
.word arrival_s_zx02 ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH
.byte BG_NORTH|BG_SOUTH
.byte $ff ; special exit

View File

@ -0,0 +1,58 @@
;===============================================
; level data for Dome Island level -- arrival3
;===============================================
locations:
.word location0,location1,location2
; RIVEN_ARRIVAL3 - third arrival
location0:
.byte RIVEN_ARRIVAL4 ; north exit
.byte LOAD_TELESCOPE<<4|RIVEN_TELESCOPE ; 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 arrival3_n_zx02 ; north bg
.word arrival3_s_zx02 ; south bg
.word arrival3_e_zx02 ; east bg
.word arrival3_w_zx02 ; west bg
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
.byte $ff ; special exit
; arrival4
location1:
.byte RIVEN_ARRIVAL5 ; north exit
.byte RIVEN_ARRIVAL3 ; 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 arrival4_n_zx02 ; north bg
.word arrival4_s_zx02 ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH
.byte $ff ; special exit
; arrival5
location2:
.byte RIVEN_ARRIVAL4 ; north exit
.byte $FF ; south exit
.byte $FF ; east exit
.byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.word arrival5_n_zx02 ; north bg
.word $0000 ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH
.byte $ff ; special exit

View File

@ -7,7 +7,7 @@ locations:
; RIVEN_TELESCOPE -- near telescope
location0:
.byte $ff ; north exit
.byte LOAD_ARRIVAL3<<4|RIVEN_ARRIVAL3 ; north exit
.byte LOAD_ARRIVAL2<<4|RIVEN_ARRIVAL2 ; south exit
.byte $FF ; east exit
.byte RIVEN_MANHOLE ; west exit