From 2468c859ac584b512c003344932621bc02f45abd Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Fri, 2 Jun 2023 11:59:48 -0400 Subject: [PATCH] sb: add two placeholder games --- games/sb/Makefile | 35 ++++++++++-- games/sb/cliff.s | 74 +++++++++++++++++++++++++ games/sb/cliff_graphics/Makefile | 27 +++++++++ games/sb/cliff_graphics/cliff_base.png | Bin 0 -> 3349 bytes games/sb/qload.s | 12 ++-- games/sb/target.s | 74 +++++++++++++++++++++++++ games/sb/target_graphics/Makefile | 27 +++++++++ games/sb/target_graphics/target.png | Bin 0 -> 2109 bytes 8 files changed, 238 insertions(+), 11 deletions(-) create mode 100644 games/sb/cliff.s create mode 100644 games/sb/cliff_graphics/Makefile create mode 100644 games/sb/cliff_graphics/cliff_base.png create mode 100644 games/sb/target.s create mode 100644 games/sb/target_graphics/Makefile create mode 100644 games/sb/target_graphics/target.png diff --git a/games/sb/Makefile b/games/sb/Makefile index e560e2ef..b5b052c4 100644 --- a/games/sb/Makefile +++ b/games/sb/Makefile @@ -12,7 +12,7 @@ all: sb.dsk #### -sb.dsk: QBOOT QLOAD TITLE DUCK_POND ROOF RAT +sb.dsk: QBOOT QLOAD TITLE DUCK_POND ROOF TARGET CLIFF RAT cp $(EMPTY_DISK) sb.dsk $(DOS33_RAW) sb.dsk 0 0 QBOOT 0 1 $(DOS33_RAW) sb.dsk 0 2 QBOOT 1 1 @@ -20,8 +20,11 @@ sb.dsk: QBOOT QLOAD TITLE DUCK_POND ROOF RAT $(DOS33_RAW) sb.dsk 1 0 QLOAD 0 0 $(DOS33_RAW) sb.dsk 2 0 TITLE 0 0 $(DOS33_RAW) sb.dsk 5 0 DUCK_POND 0 0 - $(DOS33_RAW) sb.dsk 8 0 ROOF 0 0 - $(DOS33_RAW) sb.dsk 11 0 RAT 0 0 + $(DOS33_RAW) sb.dsk 10 0 ROOF 0 0 +# $(DOS33_RAW) sb.dsk 15 0 ASPLODE 0 0 + $(DOS33_RAW) sb.dsk 20 0 TARGET 0 0 + $(DOS33_RAW) sb.dsk 25 0 CLIFF 0 0 + $(DOS33_RAW) sb.dsk 30 0 RAT 0 0 #### @@ -41,7 +44,6 @@ qload.o: qload.s qboot.inc #### - ROOF: roof.o ld65 -o ROOF roof.o -C $(LINKER_SCRIPTS)/apple2_6000.inc @@ -50,6 +52,29 @@ roof.o: roof.s zx02_optim.s \ ca65 -o roof.o roof.s -l roof.lst +#### + +CLIFF: cliff.o + ld65 -o CLIFF cliff.o -C $(LINKER_SCRIPTS)/apple2_6000.inc + +cliff.o: cliff.s zx02_optim.s \ + cliff_graphics/cliff_base.hgr.zx02 \ + zp.inc hardware.inc + ca65 -o cliff.o cliff.s -l cliff.lst + +#### + +TARGET: target.o + ld65 -o TARGET target.o -C $(LINKER_SCRIPTS)/apple2_6000.inc + +target.o: target.s zx02_optim.s \ + target_graphics/target.hgr.zx02 \ + zp.inc hardware.inc + ca65 -o target.o target.s -l target.lst + + + + #### RAT: rat.o @@ -106,4 +131,4 @@ HELLO: hello.bas #### clean: - rm -f *.lst *.o TITLE ROOF RAT DUCK_POND *~ + rm -f *.lst *.o QBOOT QLOAD TITLE DUCK_POND ROOF TARGET CLIFF RAT *~ diff --git a/games/sb/cliff.s b/games/sb/cliff.s new file mode 100644 index 00000000..78330f69 --- /dev/null +++ b/games/sb/cliff.s @@ -0,0 +1,74 @@ +; Cliff climb minigame from Peasant's Quest +; +; Yet Another HR project +; +; by deater (Vince Weaver) + + +.include "zp.inc" +.include "hardware.inc" + + +hires_start: + + ;=================== + ; set graphics mode + ;=================== + jsr HOME + + bit HIRES + bit FULLGR + bit SET_GR + bit PAGE1 + + + ;=================== + ; Load graphics + ;=================== +load_loop: + + ;============================= + + + ;========================== + ; Load Image + ;=========================== + +load_image: + + ; size in ldsizeh:ldsizel (f1/f0) + + lda #comp_data + sta ZX0_src+1 + + + lda #$20 + + + jsr full_decomp + +; rts + + + +wait_until_keypress: + lda KEYPRESS ; 4 + bpl wait_until_keypress ; 3 + bit KEYRESET ; clear the keyboard buffer + +which_ok: + lda #0 + sta WHICH_LOAD + rts + + + + + + .include "zx02_optim.s" + + +comp_data: + .incbin "cliff_graphics/cliff_base.hgr.zx02" diff --git a/games/sb/cliff_graphics/Makefile b/games/sb/cliff_graphics/Makefile new file mode 100644 index 00000000..a1e21801 --- /dev/null +++ b/games/sb/cliff_graphics/Makefile @@ -0,0 +1,27 @@ +include ../../../Makefile.inc + +ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f +PNG_TO_HGR = ../../../utils/hgr-utils/png2hgr +LINKER_SCRIPTS = ../../../linker_scripts +DOS33 = ../../../utils/dos33fs-utils/dos33 +EMPTY_DISK = ../../../empty_disk/empty.dsk +TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft +PNG2GR = ../../../utils/gr-utils/png2gr +PNG2SPRITES = ../../../utils/gr-utils/png2sprites +HGR_SPRITE = ../../../utils/hgr-utils/hgr_make_sprite + +all: cliff_base.hgr.zx02 + +#### + +cliff_base.hgr.zx02: cliff_base.hgr + $(ZX02) cliff_base.hgr cliff_base.hgr.zx02 + +cliff_base.hgr: cliff_base.png + $(PNG_TO_HGR) cliff_base.png > cliff_base.hgr + +#### + +clean: + rm -f *~ *.o *.lst + diff --git a/games/sb/cliff_graphics/cliff_base.png b/games/sb/cliff_graphics/cliff_base.png new file mode 100644 index 0000000000000000000000000000000000000000..96ae6df7cf99c367e9b250e900bf2b4f6331e614 GIT binary patch literal 3349 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 literal 0 HcmV?d00001 diff --git a/games/sb/qload.s b/games/sb/qload.s index 6c57b029..b1e12830 100644 --- a/games/sb/qload.s +++ b/games/sb/qload.s @@ -165,26 +165,26 @@ error_string: which_disk_array: .byte 1,1,1,1 ; TITLE, DUCK, ROOF, ASPLODE - .byte 1,1,1,1 ; TARGET, CLIFF, RAT + .byte 1,1,1 ; TARGET, CLIFF, RAT load_address_array: .byte $60,$60,$60,$60 ; TITLE, DUCK, ROOF, ASPLODE - .byte $60,$60,$60,$60 ; TARGET, CLIFF, RAT + .byte $60,$60,$60 ; TARGET, CLIFF, RAT track_array: - .byte 2, 5, 8,11 ; TITLE, DUCK, ROOF, ASPLODE - .byte 11,11,11,24 ; TARGET, CLIFF, RAT + .byte 2, 5,10,15 ; TITLE, DUCK, ROOF, ASPLODE + .byte 20,25,30 ; TARGET, CLIFF, RAT sector_array: .byte 0, 0, 0, 0 ; TITLE, DUCK, ROOF, ASPLODE - .byte 0, 0, 0, 0 ; TARGET, CLIFF, RAT + .byte 0, 0, 0 ; TARGET, CLIFF, RAT length_array: .byte 36, 16, 16, 32 ; TITLE, DUCK, ROOF, ASPLODE - .byte 32, 32, 32, 32 ; TARGET, CLIFF, RAT + .byte 32, 32, 32 ; TARGET, CLIFF, RAT qload_end: diff --git a/games/sb/target.s b/games/sb/target.s new file mode 100644 index 00000000..5abda880 --- /dev/null +++ b/games/sb/target.s @@ -0,0 +1,74 @@ +; Archery minigame from Peasant's Quest +; +; Yet Another HR project +; +; by deater (Vince Weaver) + + +.include "zp.inc" +.include "hardware.inc" + + +hires_start: + + ;=================== + ; set graphics mode + ;=================== + jsr HOME + + bit HIRES + bit FULLGR + bit SET_GR + bit PAGE1 + + + ;=================== + ; Load graphics + ;=================== +load_loop: + + ;============================= + + + ;========================== + ; Load Image + ;=========================== + +load_image: + + ; size in ldsizeh:ldsizel (f1/f0) + + lda #comp_data + sta ZX0_src+1 + + + lda #$20 + + + jsr full_decomp + +; rts + + + +wait_until_keypress: + lda KEYPRESS ; 4 + bpl wait_until_keypress ; 3 + bit KEYRESET ; clear the keyboard buffer + +which_ok: + lda #0 + sta WHICH_LOAD + rts + + + + + + .include "zx02_optim.s" + + +comp_data: + .incbin "target_graphics/target.hgr.zx02" diff --git a/games/sb/target_graphics/Makefile b/games/sb/target_graphics/Makefile new file mode 100644 index 00000000..e1f186ab --- /dev/null +++ b/games/sb/target_graphics/Makefile @@ -0,0 +1,27 @@ +include ../../../Makefile.inc + +ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f +PNG_TO_HGR = ../../../utils/hgr-utils/png2hgr +LINKER_SCRIPTS = ../../../linker_scripts +DOS33 = ../../../utils/dos33fs-utils/dos33 +EMPTY_DISK = ../../../empty_disk/empty.dsk +TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft +PNG2GR = ../../../utils/gr-utils/png2gr +PNG2SPRITES = ../../../utils/gr-utils/png2sprites +HGR_SPRITE = ../../../utils/hgr-utils/hgr_make_sprite + +all: target.hgr.zx02 + +#### + +target.hgr.zx02: target.hgr + $(ZX02) target.hgr target.hgr.zx02 + +target.hgr: target.png + $(PNG_TO_HGR) target.png > target.hgr + +#### + +clean: + rm -f *~ *.o *.lst + diff --git a/games/sb/target_graphics/target.png b/games/sb/target_graphics/target.png new file mode 100644 index 0000000000000000000000000000000000000000..e26f576ca7e0d0f4b2bc00e99a6183944a6ee879 GIT binary patch literal 2109 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 literal 0 HcmV?d00001