From bb027fa983a8dbf06497aa4589bca74d8b0d2d4c Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 28 Mar 2022 00:52:40 -0400 Subject: [PATCH] lemm: add level6 --- games/lemm/graphics/Makefile | 27 +- games/lemm/graphics/level6.png | Bin 0 -> 26275 bytes games/lemm/graphics/level6_preview.png | Bin 0 -> 1863 bytes games/lemm/hgr.inc | 10 + ...r_partial_save.s => hgr_partial_restore.s} | 0 games/lemm/level6.s | 299 ++++++++++++++++++ 6 files changed, 334 insertions(+), 2 deletions(-) create mode 100644 games/lemm/graphics/level6.png create mode 100644 games/lemm/graphics/level6_preview.png create mode 100644 games/lemm/hgr.inc rename games/lemm/{hgr_partial_save.s => hgr_partial_restore.s} (100%) create mode 100644 games/lemm/level6.s diff --git a/games/lemm/graphics/Makefile b/games/lemm/graphics/Makefile index b4beb25d..97111ccb 100644 --- a/games/lemm/graphics/Makefile +++ b/games/lemm/graphics/Makefile @@ -11,6 +11,7 @@ all: graphics_test.inc \ graphics_level3.inc \ graphics_level4.inc \ graphics_level5.inc \ + graphics_level6.inc \ sprites.inc ### @@ -42,8 +43,6 @@ graphics_level3.inc: \ echo "level3_lzsa: .incbin \"level3.lzsa\"" > graphics_level3.inc echo "level3_preview_lzsa: .incbin \"level3_preview.lzsa\"" >> graphics_level3.inc - - graphics_level4.inc: \ level4.lzsa \ level4_preview.lzsa @@ -56,6 +55,13 @@ graphics_level5.inc: \ echo "level5_lzsa: .incbin \"level5.lzsa\"" > graphics_level5.inc echo "level5_preview_lzsa: .incbin \"level5_preview.lzsa\"" >> graphics_level5.inc +graphics_level6.inc: \ + level6.lzsa \ + level6_preview.lzsa + echo "level6_lzsa: .incbin \"level6.lzsa\"" > graphics_level6.inc + echo "level6_preview_lzsa: .incbin \"level6_preview.lzsa\"" >> graphics_level6.inc + + ### sprites.inc: sprites.png @@ -391,6 +397,23 @@ level5_fine.hgr: level5_fine.png #### +level6.lzsa: level6.hgr + $(LZSA) -r -f2 level6.hgr level6.lzsa + +level6.hgr: level6.png + $(PNG2HGR) level6.png > level6.hgr + +### + + +level6_preview.lzsa: level6_preview.hgr + $(LZSA) -r -f2 level6_preview.hgr level6_preview.lzsa + +level6_preview.hgr: level6_preview.png + $(PNG2HGR) level6_preview.png > level6_preview.hgr + +### + clean: rm -f *~ graphics_test.inc sprites.inc \ *.lzsa *.gr *.hgr diff --git a/games/lemm/graphics/level6.png b/games/lemm/graphics/level6.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa5568a38c14bcea6c8659dd2e4504e2bfeab1b GIT binary patch literal 26275 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 literal 0 HcmV?d00001 diff --git a/games/lemm/graphics/level6_preview.png b/games/lemm/graphics/level6_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..f33d9a438b784f4d67c9e34bbf1df408afec5b34 GIT binary patch literal 1863 zcmbW1_dgqmAI6i$HAbj)MQN!Bt*WL*DH=3#i4h_;IcG%^BSvGMaYl^V_ao8S^ z@@W}=VWrqs^;pVI3hjigjXS^4G8~iD=G@e}eB*~0=XyM`bgezDpjY*tig{|Xrqu<` zFWHd~WW_ETC*Dwk+GF^7NO+tfrWcUA z9lvgvBcrkpA*@_ZtdI)?K=;5uUwC)h>BuyH$Kys4-)|U8{v_lfB`kZU!-w1jwnGY zjsO?+j*gFy$2@?FWk&@SNCg2E3B|bG1_0!31f~Kj>daIG5KOhiqQJ`_B_XJ$Zuit9 z0aBo%T&c*A;9w$!3P6Svy{SY$l_)Zmq=L4@;#`s>=Uk~=C}`G91i7re!=<~5ykywWJug&nQ)$E2qeW{#-7 z5ANz(DU9>_WF-RySG;x1N<$a4iJYT0sjKI_=giO5CR9<_V zxn*=FAJotE1Vsxg!^h&h@EsjB#Y)H3M3O`5g8mX_E>T|htV7~RFD(6(>#}uyC+kCF z3m-A3{+`Qqa|zMK?90UXUu^r7xiVETy_meNGgjo-@e+-nMcHK2zs3Yr;m3zpJ###q zY#^fr%UYbIHS!r$gSrCZp>1Vt-z)Dtb;dZ=Dai}r}cB-KRNfGDn6`DdGp2C zlu3(ot)KHQ-HU?TBX__QiTICWV|bmJ9ZG;EMonp(7R$58Jb|tt^(^^~lw9g$9x&}A*{Ml^+uAF_!&?U#L!UT((Jq>#{|)v2OO#c|!NF#(5kz%E z10C}-ThF%q0P^_ezUw=&rygg20;k$O2`C*Y{(p7*wx&>IaKP566+h4}KC5Mk(BL;b z(f_x!E*avdFAnqPB7$T>-rQ5M`g65*N3F8`(z;Sb`U&4VB-8JV;(ksBPIbMtx#x=; zZC$?k)mrwQuZY2VIch~zY=bQ3<9XoR@7x!g+Orn!1n)9ALzC=`fE;@;H^ODhIfcgR zNGEGHMJrF9&Wt+GBe2}^tEhEvq{Eo0=8rzUT06nmZ*T&*=g6aq(h3Qe)Cr?oSC2 zz5KSYQu^*N`52e<+uMU~Gd_+SIVxP1k@F*&Oo9>&qT{51scJ5F!(x`+`jkmS$P@P03Gwe#U*=(A|nwyOb!Q+~Tz=em~R74ZB{W}7<)4*73d*gFJ&84*o(4w)edCKO6QF1n`mmT literal 0 HcmV?d00001 diff --git a/games/lemm/hgr.inc b/games/lemm/hgr.inc new file mode 100644 index 00000000..224da79d --- /dev/null +++ b/games/lemm/hgr.inc @@ -0,0 +1,10 @@ +;div7_table = $bc00 +;mod7_table = $bd00 +;hposn_high = $be00 +;hposn_low = $bf00 + +div7_table = $c00 +mod7_table = $d00 +hposn_high = $e00 +hposn_low = $f00 + diff --git a/games/lemm/hgr_partial_save.s b/games/lemm/hgr_partial_restore.s similarity index 100% rename from games/lemm/hgr_partial_save.s rename to games/lemm/hgr_partial_restore.s diff --git a/games/lemm/level6.s b/games/lemm/level6.s new file mode 100644 index 00000000..09bcf3be --- /dev/null +++ b/games/lemm/level6.s @@ -0,0 +1,299 @@ +.include "zp.inc" +.include "hardware.inc" +.include "qload.inc" +.include "lemm.inc" +.include "lemming_status.inc" + +.byte 6 ; level 6 + +do_level6: + + + ;====================== + ; set up initial stuff + ;====================== + lda #3 + sta DOOR_X + lda #20 + sta DOOR_Y + + lda #6 + sta INIT_X + lda #30 + sta INIT_Y + + ; flame locations + + lda #35 ; + sta l_flame_x_smc+1 + lda #69 + sta l_flame_y_smc+1 + sta r_flame_y_smc+1 + + lda #37 ; + sta r_flame_x_smc+1 + + ; door exit location + + lda #33 ; + sta exit_x1_smc+1 + lda #36 + sta exit_x2_smc+1 + + lda #64 + sta exit_y1_smc+1 + lda #100 + sta exit_y2_smc+1 + + + ;============== + ; set up intro + ;============== + + lda #level6_preview_lzsa + sta level_preview_h_smc+1 + + lda #level6_intro_text + sta intro_text_smc_h+1 + + lda #$20 ; BCD + sta PERCENT_NEEDED + lda #$10 + sta PERCENT_ADD + + + ;============== + ; set up music + ;============== + + lda #0 + sta CURRENT_CHUNK + sta DONE_PLAYING + sta BASE_FRAME_L + sta BUTTON_LOCATION + + ; set up first song + + lda #music8_parts_l + sta chunk_l_smc+2 + + lda #music8_parts_h + sta chunk_h_smc+2 + + + lda #$D0 + sta CHUNK_NEXT_LOAD ; Load at $D0 + jsr load_song_chunk + + lda #$D0 ; music starts at $d000 + sta CHUNK_NEXT_PLAY + sta BASE_FRAME_H + + lda #1 + sta LOOP + sta CURRENT_CHUNK + + + + ;======================= + ; show title screen + ;======================= + + jsr intro_level + + ;======================= + ; Load Graphics + ;======================= + + lda #$20 + sta HGR_PAGE + jsr hgr_make_tables + + bit SET_GR + bit PAGE0 + bit HIRES + bit FULLGR + + lda #level6_lzsa + sta getsrc_smc+2 ; LZSA_SRC_HI + + lda #$20 + + jsr decompress_lzsa2_fast + + lda #level6_lzsa + sta getsrc_smc+2 ; LZSA_SRC_HI + + lda #$40 + + jsr decompress_lzsa2_fast + + + ;======================= + ; Setup cursor + ;======================= + + lda #$FF + sta OVER_LEMMING + lda #10 + sta CURSOR_X + lda #100 + sta CURSOR_Y + + + ;======================= + ; init vars + ;======================= + + lda #10 + sta LEMMINGS_TO_RELEASE + + ; set up time + + lda #$5 + sta TIME_MINUTES + lda #$00 + sta TIME_SECONDS + sta TIMER_COUNT ; 1/50 + + jsr init_level + + ;======================= + ; Play "Let's Go" + ;======================= + + jsr play_letsgo + + + ;=================== + ;=================== + ; Main Loop + ;=================== + ;=================== +l4_main_loop: + + ;========================= + ; load next chunk of music + ; if necessary + ;========================= + + jsr load_music + + + +l4_no_load_chunk: + + + lda DOOR_OPEN + bne l4_door_is_open + + jsr draw_door + +l4_door_is_open: + + ;====================== + ; release lemmings + ;====================== + + jsr release_lemming + + ;===================== + ; animate flames + ;===================== + + jsr draw_flames + + lda TIMER_COUNT + cmp #$50 + bcc l4_timer_not_yet + + jsr update_time + + lda #$0 + sta TIMER_COUNT +l4_timer_not_yet: + + + ; main drawing loop + + jsr erase_lemming + + jsr erase_pointer + + jsr move_lemmings + + jsr draw_lemming + + jsr handle_keypress + + jsr draw_pointer + + lda #$ff + jsr wait + + inc FRAMEL + + lda LEVEL_OVER + bne l4_level_over + + jmp l4_main_loop + + +l4_level_over: + + rts + + +.include "graphics/graphics_level6.inc" + + +music8_parts_h: + .byte >lemm9_part1_lzsa,>lemm9_part2_lzsa,>lemm9_part3_lzsa + .byte >lemm9_part4_lzsa,>lemm9_part5_lzsa,>lemm9_part6_lzsa + .byte >lemm9_part7_lzsa + .byte $00 + +music8_parts_l: + .byte