From eec04fdc92dd33bf9ce84521f6ea6d4634698511 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 3 Aug 2024 15:54:59 -0400 Subject: [PATCH] riven: add another location on disk2 --- games/riven_hgr/Makefile | 10 +- games/riven_hgr/NOTES | 1 + games/riven_hgr/disk02_files/Makefile | 23 +++- games/riven_hgr/disk02_files/disk02.s | 8 +- .../riven_hgr/disk02_files/disk02_defines.inc | 4 + .../disk02_files/graphics_bridge/Makefile | 28 +++++ .../disk02_files/graphics_bridge/bridge_e.png | Bin 0 -> 4396 bytes .../disk02_files/graphics_bridge/bridge_n.png | Bin 0 -> 2821 bytes .../disk02_files/graphics_bridge/bridge_s.png | Bin 0 -> 3925 bytes .../disk02_files/graphics_bridge/bridge_w.png | Bin 0 -> 5068 bytes games/riven_hgr/disk02_files/level_bridge.s | 113 ++++++++++++++++++ .../disk02_files/leveldata_bridge.inc | 23 ++++ .../riven_hgr/disk02_files/leveldata_top.inc | 2 +- games/riven_hgr/disk04_files/disk04.s | 4 +- 14 files changed, 205 insertions(+), 11 deletions(-) create mode 100644 games/riven_hgr/disk02_files/graphics_bridge/Makefile create mode 100644 games/riven_hgr/disk02_files/graphics_bridge/bridge_e.png create mode 100644 games/riven_hgr/disk02_files/graphics_bridge/bridge_n.png create mode 100644 games/riven_hgr/disk02_files/graphics_bridge/bridge_s.png create mode 100644 games/riven_hgr/disk02_files/graphics_bridge/bridge_w.png create mode 100644 games/riven_hgr/disk02_files/level_bridge.s create mode 100644 games/riven_hgr/disk02_files/leveldata_bridge.inc diff --git a/games/riven_hgr/Makefile b/games/riven_hgr/Makefile index e383bc3d..2f0c4041 100644 --- a/games/riven_hgr/Makefile +++ b/games/riven_hgr/Makefile @@ -69,7 +69,8 @@ riven_disk02.dsk: QBOOT QLOAD TITLE_02 \ disk02_files/DISK02 \ disk02_files/LEVEL_STEPS1 \ disk02_files/LEVEL_STEPS3 \ - disk02_files/LEVEL_TOP + disk02_files/LEVEL_TOP \ + disk02_files/LEVEL_BRIDGE cp $(EMPTY_DISK)/empty.dsk riven_disk02.dsk $(DOS33_RAW) riven_disk02.dsk 0 0 QBOOT 0 1 $(DOS33_RAW) riven_disk02.dsk 0 2 QBOOT 1 1 @@ -80,6 +81,8 @@ riven_disk02.dsk: QBOOT QLOAD TITLE_02 \ $(DOS33_RAW) riven_disk02.dsk 2 0 disk02_files/LEVEL_STEPS1 0 0 $(DOS33_RAW) riven_disk02.dsk 8 0 disk02_files/LEVEL_STEPS3 0 0 $(DOS33_RAW) riven_disk02.dsk 14 0 disk02_files/LEVEL_TOP 0 0 + $(DOS33_RAW) riven_disk02.dsk 20 0 disk02_files/LEVEL_BRIDGE 0 0 + ### @@ -524,6 +527,9 @@ disk02_files/LEVEL_STEPS3: disk02_files/LEVEL_TOP: cd disk02_files && make +disk02_files/LEVEL_BRIDGE: + cd disk02_files && make + #### disk03_files/LEVEL_DOWNSTEPS: @@ -734,6 +740,7 @@ riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \ disk02_files/LEVEL_STEPS1 \ disk02_files/LEVEL_STEPS3 \ disk02_files/LEVEL_TOP \ + disk02_files/LEVEL_BRIDGE \ disk03_files/DISK03 \ disk03_files/LEVEL_DOWNSTEPS \ disk03_files/LEVEL_DOWNSTEPS3 \ @@ -799,6 +806,7 @@ riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \ $(PRODOS_RAW) riven_hgr.2mg `./dts_block 2 2 0` disk02_files/LEVEL_STEPS1 0 0 $(PRODOS_RAW) riven_hgr.2mg `./dts_block 2 8 0` disk02_files/LEVEL_STEPS3 0 0 $(PRODOS_RAW) riven_hgr.2mg `./dts_block 2 14 0` disk02_files/LEVEL_TOP 0 0 + $(PRODOS_RAW) riven_hgr.2mg `./dts_block 2 20 0` disk02_files/LEVEL_BRIDGE 0 0 $(PRODOS_RAW) riven_hgr.2mg `./dts_block 3 0 2` disk03_files/DISK03 0 0 $(PRODOS_RAW) riven_hgr.2mg `./dts_block 3 2 0` disk03_files/LEVEL_DOWNSTEPS 0 0 $(PRODOS_RAW) riven_hgr.2mg `./dts_block 3 8 0` disk03_files/LEVEL_DOWNSTEPS3 0 0 diff --git a/games/riven_hgr/NOTES b/games/riven_hgr/NOTES index 94a26744..b74c0ac7 100644 --- a/games/riven_hgr/NOTES +++ b/games/riven_hgr/NOTES @@ -88,6 +88,7 @@ T 1 = QLOAD 2314 bytes 16S= 1T0S (4096) 2k free T 2 = STEPS1 21647 bytes = 6T0S (24576) 3k free T 8 = STEPS3 15872 bytes = 6T0S (24576) 9k free T 14 = TOP 15658 bytes = 6T0S (24576) 9k free +T 20 = BRIDGE 15021 bytes = 6T0S (24575) 9k free Disk03 Map (disk has 35 tracks, each 4k in size) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/games/riven_hgr/disk02_files/Makefile b/games/riven_hgr/disk02_files/Makefile index 696971ba..6214944a 100644 --- a/games/riven_hgr/disk02_files/Makefile +++ b/games/riven_hgr/disk02_files/Makefile @@ -2,7 +2,7 @@ include ../../../Makefile.inc LINKER_SCRIPTS = ../../../linker_scripts/ -all: DISK02 LEVEL_STEPS1 LEVEL_STEPS3 LEVEL_TOP +all: DISK02 LEVEL_STEPS1 LEVEL_STEPS3 LEVEL_TOP LEVEL_BRIDGE #### @@ -51,6 +51,19 @@ level_top.o: level_top.s \ #### +LEVEL_BRIDGE: level_bridge.o + ld65 -o LEVEL_BRIDGE level_bridge.o -C $(LINKER_SCRIPTS)/apple2_4000.inc + +level_bridge.o: level_bridge.s \ + ../zp.inc ../hardware.inc ../qload.inc \ + ../common_defines.inc disk02_defines.inc \ + leveldata_bridge.inc \ + graphics_bridge/bridge_graphics.inc + ca65 -o level_bridge.o level_bridge.s -l level_bridge.lst + + +#### + graphics_steps1/steps1_graphics.inc: cd graphics_steps1 && make @@ -60,20 +73,24 @@ graphics_steps3/steps3_graphics.inc: graphics_top/top_graphics.inc: cd graphics_top && make +graphics_bridge/bridge_graphics.inc: + cd graphics_bridge && make + #### clean: rm -f *~ *.o *.lst \ - LEVEL_STEPS1 LEVEL_STEPS3 LEVEL_TOP + LEVEL_STEPS1 LEVEL_STEPS3 LEVEL_TOP LEVEL_BRIDGE #### distclean: rm -f *~ *.o *.lst \ - LEVEL_STEPS1 LEVEL_STEPS3 LEVEL_TOP + LEVEL_STEPS1 LEVEL_STEPS3 LEVEL_TOP LEVEL_BRIDGE cd graphics_steps1 && make clean cd graphics_steps3 && make clean cd graphics_top && make clean + cd graphics_bridge && make clean diff --git a/games/riven_hgr/disk02_files/disk02.s b/games/riven_hgr/disk02_files/disk02.s index 9e630607..08c3c447 100644 --- a/games/riven_hgr/disk02_files/disk02.s +++ b/games/riven_hgr/disk02_files/disk02.s @@ -12,19 +12,19 @@ which_disk_bin: load_address_array: .byte $40,$40,$40,$40 ; TITLE, STEPS1, STEPS3, TOP - .byte $40,$40,$40,$40 ; + .byte $40,$40,$40,$40 ; BRIDGE track_array: .byte 0, 2, 8,14 ; TITLE, STEPS1, STEPS3, TOP - .byte 20,0,0,0 ; + .byte 20,0,0,0 ; BRIDGE sector_array: .byte 8, 0, 0, 0 ; TITLE, STEPS1, STEPS3, TOP - .byte 0,0,0,0 ; + .byte 0,0,0,0 ; BRIDGE length_array: .byte 8, 96,96,96 ; TITLE, STEPS1, STEPS3, TOP - .byte 80,0,0,0 ; + .byte 96,0,0,0 ; ; disk 1 diff --git a/games/riven_hgr/disk02_files/disk02_defines.inc b/games/riven_hgr/disk02_files/disk02_defines.inc index 65a87a79..d79491a0 100644 --- a/games/riven_hgr/disk02_files/disk02_defines.inc +++ b/games/riven_hgr/disk02_files/disk02_defines.inc @@ -2,6 +2,7 @@ LOAD_TITLE_02 = 0 LOAD_STEPS1 = 1 LOAD_STEPS3 = 2 LOAD_TOP = 3 +LOAD_BRIDGE = 4 ;================================ ; Level definitions @@ -21,3 +22,6 @@ RIVEN_STEPS4 = 1 RIVEN_TOP = 0 RIVEN_ALCOVE = 1 +; BRIDGE +RIVEN_BRIDGE = 0 + diff --git a/games/riven_hgr/disk02_files/graphics_bridge/Makefile b/games/riven_hgr/disk02_files/graphics_bridge/Makefile new file mode 100644 index 00000000..e44da17d --- /dev/null +++ b/games/riven_hgr/disk02_files/graphics_bridge/Makefile @@ -0,0 +1,28 @@ +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_n.hgr.zx02 bridge_s.hgr.zx02 bridge_e.hgr.zx02 bridge_w.hgr.zx02 + echo "bridge_n_zx02: .incbin \"bridge_n.hgr.zx02\"" > bridge_graphics.inc + echo "bridge_s_zx02: .incbin \"bridge_s.hgr.zx02\"" >> bridge_graphics.inc + echo "bridge_e_zx02: .incbin \"bridge_e.hgr.zx02\"" >> bridge_graphics.inc + echo "bridge_w_zx02: .incbin \"bridge_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 + diff --git a/games/riven_hgr/disk02_files/graphics_bridge/bridge_e.png b/games/riven_hgr/disk02_files/graphics_bridge/bridge_e.png new file mode 100644 index 0000000000000000000000000000000000000000..a06d437b943f9c361b874af7375f9dd10ffcc8e5 GIT binary patch literal 4396 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 X$LlC;SfGam00000NkvXXu0mjf1lmbH literal 0 HcmV?d00001 diff --git a/games/riven_hgr/disk02_files/graphics_bridge/bridge_s.png b/games/riven_hgr/disk02_files/graphics_bridge/bridge_s.png new file mode 100644 index 0000000000000000000000000000000000000000..223055a82b5a6e56ed13ba38e81925989cb94437 GIT binary patch literal 3925 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 + +; Zero Page + .include "../zp.inc" + .include "../hardware.inc" + .include "../common_defines.inc" + .include "../qload.inc" + .include "disk02_defines.inc" + +bridge_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_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_bridge/bridge_graphics.inc" + +.include "leveldata_bridge.inc" diff --git a/games/riven_hgr/disk02_files/leveldata_bridge.inc b/games/riven_hgr/disk02_files/leveldata_bridge.inc new file mode 100644 index 00000000..806fab53 --- /dev/null +++ b/games/riven_hgr/disk02_files/leveldata_bridge.inc @@ -0,0 +1,23 @@ +;=============================================== +; level data for top of steps +;=============================================== + +locations: + .word location0 + +; RIVEN_BRIDGE -- first part of bridge +location0: + .byte $ff ; north exit + .byte LOAD_STEPS3<<4|RIVEN_STEPS4 ; south exit + .byte $E2 ; east exit + .byte LOAD_TOP<<4|RIVEN_TOP ; west exit + .byte $00 ; north exit_dir + .byte $00 ; south exit_dir + .byte DIRECTION_E ; east exit_dir + .byte DIRECTION_W ; west exit_dir + .word bridge_n_zx02 ; north bg + .word bridge_s_zx02 ; south bg + .word bridge_e_zx02 ; east bg + .word bridge_w_zx02 ; west bg + .byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST ; all bgs + .byte $ff ; special exit diff --git a/games/riven_hgr/disk02_files/leveldata_top.inc b/games/riven_hgr/disk02_files/leveldata_top.inc index b4bfc675..f4b42cfb 100644 --- a/games/riven_hgr/disk02_files/leveldata_top.inc +++ b/games/riven_hgr/disk02_files/leveldata_top.inc @@ -9,7 +9,7 @@ locations: location0: .byte $E1 ; north exit .byte LOAD_STEPS3<<4|RIVEN_STEPS4 ; south exit - .byte $E2 ; east exit + .byte LOAD_BRIDGE<<4|RIVEN_BRIDGE ; east exit .byte RIVEN_ALCOVE ; west exit .byte DIRECTION_N ; north exit_dir .byte DIRECTION_S ; south exit_dir diff --git a/games/riven_hgr/disk04_files/disk04.s b/games/riven_hgr/disk04_files/disk04.s index e5797749..8a5ef660 100644 --- a/games/riven_hgr/disk04_files/disk04.s +++ b/games/riven_hgr/disk04_files/disk04.s @@ -53,12 +53,12 @@ disk_exit_dni_l: ; disk_exit_load: - .byte LOAD_TOP + .byte LOAD_BRIDGE .byte LOAD_PROJECTOR .byte LOAD_CHAIR .byte LOAD_CYAN disk_exit_level: - .byte RIVEN_TOP + .byte RIVEN_BRIDGE .byte RIVEN_PROJECTOR .byte RIVEN_CHAIR .byte 0