mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-01 01:06:33 +00:00
riven: hook up bridge
This commit is contained in:
parent
b834b3043f
commit
d59c2c5632
@ -89,7 +89,8 @@ riven_disk41.dsk: QBOOT QLOAD TITLE_41 \
|
||||
|
||||
riven_disk43.dsk: QBOOT QLOAD TITLE_43 \
|
||||
disk43_files/DISK43 \
|
||||
disk43_files/LEVEL_CART
|
||||
disk43_files/LEVEL_CART \
|
||||
disk43_files/LEVEL_BRIDGE
|
||||
cp $(EMPTY_DISK)/empty.dsk riven_disk43.dsk
|
||||
$(DOS33_RAW) riven_disk43.dsk 0 0 QBOOT 0 1
|
||||
$(DOS33_RAW) riven_disk43.dsk 0 2 QBOOT 1 1
|
||||
@ -98,6 +99,7 @@ riven_disk43.dsk: QBOOT QLOAD TITLE_43 \
|
||||
$(DOS33_RAW) riven_disk43.dsk 1 0 QLOAD 0 0
|
||||
$(DOS33_RAW) riven_disk43.dsk 1 9 TITLE_43 0 0
|
||||
$(DOS33_RAW) riven_disk43.dsk 2 0 disk43_files/LEVEL_CART 0 0
|
||||
$(DOS33_RAW) riven_disk43.dsk 9 0 disk43_files/LEVEL_BRIDGE 0 0
|
||||
|
||||
###
|
||||
|
||||
|
@ -81,7 +81,8 @@ Disk43 Map (disk has 35 tracks, each 4k in size)
|
||||
T 0 = Qboot
|
||||
T 1 = QLOAD 1762 bytes 8S = 0T8S (2048) 300B free
|
||||
T 1.5 = TITLE 1531 bytes 8S = 0T8S (2048) 500B free
|
||||
T 2 = CART 26736 bytes 112S = 7T0S (28672) 2k free
|
||||
T 2 = CART 23280 bytes = 7T0S (28672) 5k free
|
||||
T 9 = BRIDGE 18609 bytes = 5T0S (20480) 2k free
|
||||
T 27 = MOVIE_CART32275 bytes 128S = 8T0S (32768)500B free
|
||||
|
||||
|
||||
|
@ -44,7 +44,7 @@ location2:
|
||||
.byte $ff ; north exit
|
||||
.byte $FF ; south exit
|
||||
.byte RIVEN_UP3 ; east exit
|
||||
.byte $FF ; west exit
|
||||
.byte $E0|1 ; exit to cart (disk 43) ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_E ; east exit_dir
|
||||
|
@ -3,7 +3,7 @@ include ../../../Makefile.inc
|
||||
LINKER_SCRIPTS = ../../../linker_scripts/
|
||||
|
||||
|
||||
all: DISK43 LEVEL_CART
|
||||
all: DISK43 LEVEL_CART LEVEL_BRIDGE
|
||||
|
||||
####
|
||||
|
||||
@ -27,50 +27,16 @@ level_cart.o: level_cart.s \
|
||||
|
||||
####
|
||||
|
||||
LEVEL_PROJECTOR: level_projector.o
|
||||
ld65 -o LEVEL_PROJECTOR level_projector.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
LEVEL_BRIDGE: level_bridge.o
|
||||
ld65 -o LEVEL_BRIDGE level_bridge.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
level_projector.o: level_projector.s \
|
||||
level_bridge.o: level_bridge.s \
|
||||
../zp.inc ../hardware.inc ../qload.inc \
|
||||
../common_defines.inc disk43_defines.inc \
|
||||
leveldata_projector.inc \
|
||||
graphics_projector/projector_graphics.inc
|
||||
ca65 -o level_projector.o level_projector.s -l level_projector.lst
|
||||
leveldata_bridge.inc \
|
||||
graphics_bridge/bridge_graphics.inc
|
||||
ca65 -o level_bridge.o level_bridge.s -l level_bridge.lst
|
||||
|
||||
####
|
||||
|
||||
LEVEL_MAGSTEPS: level_magsteps.o
|
||||
ld65 -o LEVEL_MAGSTEPS level_magsteps.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
level_magsteps.o: level_magsteps.s \
|
||||
../zp.inc ../hardware.inc ../qload.inc \
|
||||
../common_defines.inc disk43_defines.inc \
|
||||
leveldata_magsteps.inc \
|
||||
graphics_magsteps/magsteps_graphics.inc
|
||||
ca65 -o level_magsteps.o level_magsteps.s -l level_magsteps.lst
|
||||
|
||||
####
|
||||
|
||||
LEVEL_MAGLEV: level_maglev.o
|
||||
ld65 -o LEVEL_MAGLEV level_maglev.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
level_maglev.o: level_maglev.s \
|
||||
../zp.inc ../hardware.inc ../qload.inc \
|
||||
../common_defines.inc disk43_defines.inc \
|
||||
leveldata_maglev.inc \
|
||||
graphics_maglev/maglev_graphics.inc
|
||||
ca65 -o level_maglev.o level_maglev.s -l level_maglev.lst
|
||||
|
||||
####
|
||||
|
||||
MOVIE_MAGLEV_FLIP: movie_maglev_flip.o
|
||||
ld65 -o MOVIE_MAGLEV_FLIP movie_maglev_flip.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||
|
||||
movie_maglev_flip.o: movie_maglev_flip.s \
|
||||
../zp.inc ../hardware.inc ../qload.inc \
|
||||
../common_defines.inc disk43_defines.inc \
|
||||
movie_maglev_flip/movie_maglev_flip.inc
|
||||
ca65 -o movie_maglev_flip.o movie_maglev_flip.s -l movie_maglev_flip.lst
|
||||
|
||||
####
|
||||
|
||||
@ -91,38 +57,21 @@ movie_maglev_ride.o: movie_maglev_ride.s \
|
||||
graphics_cart/cart_graphics.inc:
|
||||
cd graphics_cart && make
|
||||
|
||||
graphics_maglev/maglev_graphics.inc:
|
||||
cd graphics_maglev && make
|
||||
|
||||
graphics_magsteps/magsteps_graphics.inc:
|
||||
cd graphics_magsteps && make
|
||||
|
||||
graphics_projector/projector_graphics.inc:
|
||||
cd graphics_projector && make
|
||||
|
||||
movie_maglev_flip/movie_maglev_flip.inc:
|
||||
cd movie_maglev_flip && make
|
||||
|
||||
movie_maglev_ride/movie_maglev_ride.inc:
|
||||
cd movie_maglev_ride && make
|
||||
graphics_bridge/bridge_graphics.inc:
|
||||
cd graphics_bridge && make
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst \
|
||||
LEVEL_PROJECTOR LEVEL_MAGSTEPS LEVEL_MAGLEV LEVEL_CART \
|
||||
MOVIE_MAGLEV_FLIP MOVIE_MAGLEV_RIDE
|
||||
LEVEL_CART LEVEL_BRIDGE
|
||||
|
||||
####
|
||||
|
||||
distclean:
|
||||
rm -f *~ *.o *.lst \
|
||||
LEVEL_PROJECTOR LEVEL_MAGSTEPS LEVEL_MAGLEV LEVEL_CART \
|
||||
MOVIE_MAGLEV_FLIP MOVIE_MAGLEV_RIDE
|
||||
LEVEL_CART LEVEL_BRIDGE
|
||||
cd graphics_cart && make clean
|
||||
# cd graphics_projector && make clean
|
||||
# cd graphics_magsteps && make clean
|
||||
# cd graphics_maglev && make clean
|
||||
# cd movie_maglev_flip && make clean
|
||||
# cd movie_maglev_ride && make clean
|
||||
cd graphics_bridge && make clean
|
||||
|
||||
|
||||
|
@ -5,30 +5,32 @@ which_disk:
|
||||
|
||||
|
||||
load_address_array:
|
||||
.byte $40,$40,$40,$40 ; TITLE, CART
|
||||
.byte $40,$40,$40,$40 ; TITLE, CART, BRIDGE
|
||||
.byte $00,$00,$00,$00
|
||||
|
||||
track_array:
|
||||
.byte 1, 2, 9,17 ; TITLE, CART
|
||||
.byte 1, 2, 9,17 ; TITLE, CART, BRIDGE
|
||||
.byte 0,0,0,0
|
||||
|
||||
sector_array:
|
||||
.byte 9, 0, 0, 0 ; TITLE, CART
|
||||
.byte 9, 0, 0, 0 ; TITLE, CART, BRIDGE
|
||||
.byte 0,0,0,0
|
||||
|
||||
length_array:
|
||||
.byte 8, 96,123, 64 ; TITLE, CART
|
||||
.byte 8, 96,84, 64 ; TITLE, CART, BRIDGE
|
||||
.byte 0,0,0,0
|
||||
|
||||
; disk 41
|
||||
|
||||
disk_exit_disk: ; note: BCD (yes I'm lazy)
|
||||
.byte 0,0,0,0
|
||||
.byte $41,0,0,0
|
||||
disk_exit_dni_h:
|
||||
.byte 0,0,0,0
|
||||
.byte $01,0,0,0 ; 41 = 1*25 + 3*5 + 1
|
||||
disk_exit_dni_l:
|
||||
.byte 0,0,0,0
|
||||
.byte $31,0,0,0
|
||||
disk_exit_load:
|
||||
.byte 0,0,0,0
|
||||
.byte 4,0,0,0 ; STAIRS2, RIVEN_UP4, E
|
||||
disk_exit_level:
|
||||
.byte 0,0,0,0
|
||||
.byte 2,0,0,0
|
||||
disk_exit_direction:
|
||||
.byte 0,0,0,0
|
||||
.byte DIRECTION_E,0,0,0
|
||||
|
@ -1,5 +1,6 @@
|
||||
LOAD_TITLE = 0
|
||||
LOAD_CART = 1
|
||||
LOAD_BRIDGE = 2
|
||||
|
||||
;================================
|
||||
; Level definitions
|
||||
@ -8,3 +9,9 @@ LOAD_CART = 1
|
||||
|
||||
RIVEN_OUTSIDE_CART = 0
|
||||
RIVEN_IN_CART = 1
|
||||
|
||||
; On Bridge
|
||||
|
||||
RIVEN_MID_BRIDGE = 0
|
||||
RIVEN_FAR_BRIDGE = 1
|
||||
|
||||
|
30
games/riven_hgr/disk43_files/graphics_bridge/Makefile
Normal file
30
games/riven_hgr/disk43_files/graphics_bridge/Makefile
Normal file
@ -0,0 +1,30 @@
|
||||
include ../../../../Makefile.inc
|
||||
|
||||
ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f
|
||||
PNG_TO_HGR = ../../../../utils/hgr-utils/png2hgr
|
||||
|
||||
all: bridge_graphics.inc
|
||||
|
||||
bridge_graphics.inc: \
|
||||
bridge_e.hgr.zx02 bridge_w.hgr.zx02 \
|
||||
bridge_far_e.hgr.zx02 bridge_far_w.hgr.zx02
|
||||
echo "bridge_e_zx02: .incbin \"bridge_e.hgr.zx02\"" > bridge_graphics.inc
|
||||
echo "bridge_w_zx02: .incbin \"bridge_w.hgr.zx02\"" >> bridge_graphics.inc
|
||||
echo "bridge_far_e_zx02: .incbin \"bridge_far_e.hgr.zx02\"" >> bridge_graphics.inc
|
||||
echo "bridge_far_w_zx02: .incbin \"bridge_far_w.hgr.zx02\"" >> bridge_graphics.inc
|
||||
|
||||
|
||||
|
||||
####
|
||||
|
||||
%.hgr: %.png
|
||||
$(PNG_TO_HGR) $< > $@
|
||||
|
||||
%.hgr.zx02: %.hgr
|
||||
$(ZX02) -f $< $@
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst *.zx02 *.hgr bridge_graphics.inc
|
||||
|
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_e.png
Normal file
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_e.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.0 KiB |
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_far_e.png
Normal file
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_far_e.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.0 KiB |
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_far_w.png
Normal file
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_far_w.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.6 KiB |
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_w.png
Normal file
BIN
games/riven_hgr/disk43_files/graphics_bridge/bridge_w.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.0 KiB |
122
games/riven_hgr/disk43_files/level_bridge.s
Normal file
122
games/riven_hgr/disk43_files/level_bridge.s
Normal file
@ -0,0 +1,122 @@
|
||||
; Riven -- Jungle Island -- On the Bridge
|
||||
|
||||
; by deater (Vince Weaver) <vince@deater.net>
|
||||
|
||||
; Zero Page
|
||||
.include "../zp.inc"
|
||||
.include "../hardware.inc"
|
||||
.include "../common_defines.inc"
|
||||
.include "../qload.inc"
|
||||
.include "disk43_defines.inc"
|
||||
|
||||
riven_cart:
|
||||
|
||||
;===================
|
||||
; 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
|
||||
;===================================
|
||||
|
||||
; 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
|
||||
|
||||
;==================================
|
||||
; cart button clicked
|
||||
;==================================
|
||||
; TODO: call cart code
|
||||
|
||||
cart_button_clicked:
|
||||
bit SPEAKER
|
||||
rts
|
||||
|
||||
|
||||
;==========================
|
||||
; includes
|
||||
;==========================
|
||||
|
||||
|
||||
.include "graphics_bridge/bridge_graphics.inc"
|
||||
|
||||
.include "leveldata_bridge.inc"
|
42
games/riven_hgr/disk43_files/leveldata_bridge.inc
Normal file
42
games/riven_hgr/disk43_files/leveldata_bridge.inc
Normal file
@ -0,0 +1,42 @@
|
||||
;===============================================
|
||||
; level data for Bridge
|
||||
;===============================================
|
||||
|
||||
locations:
|
||||
.word location0,location1
|
||||
|
||||
; RIVEN_MID_BRIDGE -- mid-bridge
|
||||
location0:
|
||||
.byte $FF ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte $E0 ; new disk ; east exit
|
||||
.byte RIVEN_FAR_BRIDGE ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_E ; east exit_dir
|
||||
.byte DIRECTION_W ; west exit_dir
|
||||
.word $0000 ; north bg
|
||||
.word $0000 ; south bg
|
||||
.word bridge_e_zx02 ; east bg
|
||||
.word bridge_w_zx02 ; west bg
|
||||
.byte BG_EAST|BG_WEST ; bgs
|
||||
.byte $ff ; special exit
|
||||
|
||||
; RIVEN_FAR_BRIDGE -- far side of bridge
|
||||
location1:
|
||||
.byte $FF ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte RIVEN_MID_BRIDGE ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte $ff ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_E ; east exit_dir
|
||||
.byte DIRECTION_W ; west exit_dir
|
||||
.word $0000 ; north bg
|
||||
.word $0000 ; south bg
|
||||
.word bridge_far_e_zx02 ; east bg
|
||||
.word bridge_far_w_zx02 ; west bg
|
||||
.byte BG_EAST|BG_WEST ; bgs
|
||||
.byte $ff ; special exit
|
||||
|
||||
|
@ -8,11 +8,11 @@ locations:
|
||||
; RIVEN_OUTSIDE_CART -- just outside cart
|
||||
location0:
|
||||
.byte RIVEN_IN_CART ; north exit
|
||||
.byte $ff ; south exit
|
||||
.byte LOAD_BRIDGE<<4|RIVEN_FAR_BRIDGE ; south exit
|
||||
.byte $ff ; east exit
|
||||
.byte $ff ; west exit
|
||||
.byte DIRECTION_E ; north exit_dir
|
||||
.byte $ff ; south exit_dir
|
||||
.byte DIRECTION_E ; south exit_dir
|
||||
.byte $ff ; east exit_dir
|
||||
.byte $ff ; west exit_dir
|
||||
.word cart_n_zx02 ; north bg
|
||||
|
@ -397,7 +397,7 @@ riven_title_image:
|
||||
.incbin "graphics_title/riven_title.hgr.zx02"
|
||||
|
||||
title_text:
|
||||
.byte 0, 0,"LOADING RIVEN SUBSET DISK 00 V0.04",0
|
||||
.byte 0, 0,"LOADING RIVEN SUBSET DISK 00 V0.05",0
|
||||
;
|
||||
;
|
||||
.byte 0, 3,"BASED ON RIVEN BY CYAN",0
|
||||
|
Loading…
Reference in New Issue
Block a user