mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-13 03:29:32 +00:00
lemm: move common code out of the levels
This commit is contained in:
parent
0b732265f6
commit
33034fd868
|
@ -140,6 +140,7 @@ LEVEL1: level1.o
|
||||||
ld65 -o LEVEL1 level1.o -C ../../linker_scripts/apple2_9000.inc
|
ld65 -o LEVEL1 level1.o -C ../../linker_scripts/apple2_9000.inc
|
||||||
|
|
||||||
level1.o: level1.s zp.inc hardware.inc qload.inc lemm.inc \
|
level1.o: level1.s zp.inc hardware.inc qload.inc lemm.inc \
|
||||||
|
release_lemming.s \
|
||||||
graphics/graphics_level1.inc
|
graphics/graphics_level1.inc
|
||||||
ca65 -o level1.o level1.s -l level1.lst
|
ca65 -o level1.o level1.s -l level1.lst
|
||||||
|
|
||||||
|
@ -149,6 +150,7 @@ LEVEL2: level2.o
|
||||||
ld65 -o LEVEL2 level2.o -C ../../linker_scripts/apple2_9000.inc
|
ld65 -o LEVEL2 level2.o -C ../../linker_scripts/apple2_9000.inc
|
||||||
|
|
||||||
level2.o: level2.s zp.inc hardware.inc qload.inc lemm.inc \
|
level2.o: level2.s zp.inc hardware.inc qload.inc lemm.inc \
|
||||||
|
release_lemming.s \
|
||||||
graphics/graphics_level2.inc
|
graphics/graphics_level2.inc
|
||||||
ca65 -o level2.o level2.s -l level2.lst
|
ca65 -o level2.o level2.s -l level2.lst
|
||||||
|
|
||||||
|
@ -158,6 +160,7 @@ LEVEL3: level3.o
|
||||||
ld65 -o LEVEL3 level3.o -C ../../linker_scripts/apple2_9000.inc
|
ld65 -o LEVEL3 level3.o -C ../../linker_scripts/apple2_9000.inc
|
||||||
|
|
||||||
level3.o: level3.s zp.inc hardware.inc qload.inc lemm.inc \
|
level3.o: level3.s zp.inc hardware.inc qload.inc lemm.inc \
|
||||||
|
release_lemming.s \
|
||||||
graphics/graphics_level3.inc
|
graphics/graphics_level3.inc
|
||||||
ca65 -o level3.o level3.s -l level3.lst
|
ca65 -o level3.o level3.s -l level3.lst
|
||||||
|
|
||||||
|
@ -168,6 +171,7 @@ LEVEL4: level4.o
|
||||||
ld65 -o LEVEL4 level4.o -C ../../linker_scripts/apple2_9000.inc
|
ld65 -o LEVEL4 level4.o -C ../../linker_scripts/apple2_9000.inc
|
||||||
|
|
||||||
level4.o: level4.s zp.inc hardware.inc qload.inc lemm.inc \
|
level4.o: level4.s zp.inc hardware.inc qload.inc lemm.inc \
|
||||||
|
release_lemming.s \
|
||||||
graphics/graphics_level4.inc
|
graphics/graphics_level4.inc
|
||||||
ca65 -o level4.o level4.s -l level4.lst
|
ca65 -o level4.o level4.s -l level4.lst
|
||||||
|
|
||||||
|
@ -179,6 +183,7 @@ LEVEL5: level5.o
|
||||||
ld65 -o LEVEL5 level5.o -C ../../linker_scripts/apple2_9000.inc
|
ld65 -o LEVEL5 level5.o -C ../../linker_scripts/apple2_9000.inc
|
||||||
|
|
||||||
level5.o: level5.s zp.inc hardware.inc qload.inc lemm.inc \
|
level5.o: level5.s zp.inc hardware.inc qload.inc lemm.inc \
|
||||||
|
release_lemming.s \
|
||||||
graphics/graphics_level5.inc
|
graphics/graphics_level5.inc
|
||||||
ca65 -o level5.o level5.s -l level5.lst
|
ca65 -o level5.o level5.s -l level5.lst
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
+ ability to walk up hills
|
+ more than 1 lemming
|
||||||
|
+ move common code for lemming release to separate function,
|
||||||
|
update all 5 levels
|
||||||
|
|
||||||
+ wait a second after last lemming gone to exit
|
+ wait a second after last lemming gone to exit
|
||||||
+ update the "in" %
|
+ update the "in" %
|
||||||
+ dig off the map, end level
|
+ dig off the map, end level
|
||||||
+ fill in some of the ground so we don't get stuck when digging
|
+ fill in some of the ground so we don't get stuck when digging
|
||||||
+ Update credits?
|
+ Update credits?
|
||||||
+ "Out" counter is only printed to page1 so gets erased by cursor
|
+ "Out" counter is only printed to page1 so gets erased by cursor
|
||||||
+ Level3
|
|
||||||
+ Falling too far and you go splat
|
+ Falling too far and you go splat
|
||||||
+ See if the jerky animation is due to starting at an odd x vs
|
+ See if the jerky animation is due to starting at an odd x vs
|
||||||
even x, maybe we should start animation 4 frames in if that's
|
even x, maybe we should start animation 4 frames in if that's
|
||||||
|
|
|
@ -8,10 +8,14 @@
|
||||||
.include "qload.inc"
|
.include "qload.inc"
|
||||||
.include "lemming_status.inc"
|
.include "lemming_status.inc"
|
||||||
|
|
||||||
lemm_test_start:
|
lemm:
|
||||||
|
;=====================
|
||||||
|
; initializations
|
||||||
|
;=====================
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
|
sta JOYSTICK_ENABLED
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta WHICH_LEVEL
|
sta WHICH_LEVEL
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
LEMMING_RIGHT = $01
|
||||||
|
LEMMING_LEFT = $FF
|
||||||
|
|
||||||
LEMMING_FALLING = 1
|
LEMMING_FALLING = 1
|
||||||
LEMMING_WALKING = 2
|
LEMMING_WALKING = 2
|
||||||
LEMMING_DIGGING = 3
|
LEMMING_DIGGING = 3
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
.include "qload.inc"
|
.include "qload.inc"
|
||||||
|
@ -102,8 +101,6 @@ do_level1:
|
||||||
; show title screen
|
; show title screen
|
||||||
;=======================
|
;=======================
|
||||||
|
|
||||||
; lda #1
|
|
||||||
; sta WHICH_LEVEL
|
|
||||||
jsr intro_level
|
jsr intro_level
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
|
@ -149,34 +146,7 @@ do_level1:
|
||||||
lda #100
|
lda #100
|
||||||
sta CURSOR_Y
|
sta CURSOR_Y
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Init Lemmings
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta lemming_out
|
|
||||||
sta lemming_exploding
|
|
||||||
lda #12
|
|
||||||
sta lemming_x
|
|
||||||
lda #45
|
|
||||||
sta lemming_y
|
|
||||||
lda #1
|
|
||||||
sta lemming_direction
|
|
||||||
lda #LEMMING_FALLING
|
|
||||||
sta lemming_status
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Play "Let's Go"
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
jsr play_letsgo
|
|
||||||
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; start music
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
; cli
|
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; init vars
|
; init vars
|
||||||
|
@ -187,15 +157,13 @@ do_level1:
|
||||||
sta DOOR_OPEN
|
sta DOOR_OPEN
|
||||||
sta FRAMEL
|
sta FRAMEL
|
||||||
sta LOAD_NEXT_CHUNK
|
sta LOAD_NEXT_CHUNK
|
||||||
sta JOYSTICK_ENABLED
|
|
||||||
sta LEMMINGS_OUT
|
sta LEMMINGS_OUT
|
||||||
|
|
||||||
jsr update_lemmings_out
|
jsr update_lemmings_out ; update display
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta LEMMINGS_TO_RELEASE
|
sta LEMMINGS_TO_RELEASE
|
||||||
|
jsr clear_lemmings_out
|
||||||
; jsr save_bg_14x14 ; save initial bg
|
|
||||||
|
|
||||||
; set up time
|
; set up time
|
||||||
|
|
||||||
|
@ -206,6 +174,14 @@ do_level1:
|
||||||
|
|
||||||
sta TIMER_COUNT
|
sta TIMER_COUNT
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Play "Let's Go"
|
||||||
|
;=======================
|
||||||
|
|
||||||
|
jsr play_letsgo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
;===================
|
;===================
|
||||||
; Main Loop
|
; Main Loop
|
||||||
|
@ -221,7 +197,9 @@ l1_main_loop:
|
||||||
jsr load_music
|
jsr load_music
|
||||||
|
|
||||||
|
|
||||||
|
;=========================
|
||||||
|
; open door
|
||||||
|
;=========================
|
||||||
|
|
||||||
lda DOOR_OPEN
|
lda DOOR_OPEN
|
||||||
bne l1_door_is_open
|
bne l1_door_is_open
|
||||||
|
@ -244,16 +222,13 @@ l1_door_is_open:
|
||||||
and #$f
|
and #$f
|
||||||
bne l1_done_release_lemmings
|
bne l1_done_release_lemmings
|
||||||
|
|
||||||
inc LEMMINGS_OUT
|
jsr release_lemming
|
||||||
jsr update_lemmings_out
|
|
||||||
|
|
||||||
lda #1
|
|
||||||
sta lemming_out
|
|
||||||
|
|
||||||
dec LEMMINGS_TO_RELEASE
|
|
||||||
|
|
||||||
l1_done_release_lemmings:
|
l1_done_release_lemmings:
|
||||||
|
|
||||||
|
;=====================
|
||||||
|
; animate flames
|
||||||
|
;=====================
|
||||||
|
|
||||||
jsr draw_flames
|
jsr draw_flames
|
||||||
|
|
||||||
|
@ -305,6 +280,10 @@ l1_level_over:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.include "release_lemming.s"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.include "graphics/graphics_level1.inc"
|
.include "graphics/graphics_level1.inc"
|
||||||
|
|
||||||
|
@ -328,3 +307,4 @@ lemm5_part4_lzsa:
|
||||||
lemm5_part5_lzsa:
|
lemm5_part5_lzsa:
|
||||||
.incbin "music/lemm5.part5.lzsa"
|
.incbin "music/lemm5.part5.lzsa"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
.include "qload.inc"
|
.include "qload.inc"
|
||||||
|
@ -13,6 +12,7 @@ do_level2:
|
||||||
;======================
|
;======================
|
||||||
; set up initial stuff
|
; set up initial stuff
|
||||||
;======================
|
;======================
|
||||||
|
|
||||||
lda #3
|
lda #3
|
||||||
sta DOOR_X
|
sta DOOR_X
|
||||||
lda #5
|
lda #5
|
||||||
|
@ -23,6 +23,8 @@ do_level2:
|
||||||
lda #15
|
lda #15
|
||||||
sta INIT_Y
|
sta INIT_Y
|
||||||
|
|
||||||
|
; flame locations
|
||||||
|
|
||||||
lda #29 ; 196
|
lda #29 ; 196
|
||||||
sta l_flame_x_smc+1
|
sta l_flame_x_smc+1
|
||||||
lda #122
|
lda #122
|
||||||
|
@ -32,9 +34,9 @@ do_level2:
|
||||||
lda #33 ; 245
|
lda #33 ; 245
|
||||||
sta r_flame_x_smc+1
|
sta r_flame_x_smc+1
|
||||||
|
|
||||||
; exit location (1c 8b)
|
; door exit location
|
||||||
|
|
||||||
lda #29 ;
|
lda #29 ;
|
||||||
sta exit_x1_smc+1
|
sta exit_x1_smc+1
|
||||||
lda #33
|
lda #33
|
||||||
sta exit_x2_smc+1
|
sta exit_x2_smc+1
|
||||||
|
@ -140,35 +142,6 @@ do_level2:
|
||||||
lda #100
|
lda #100
|
||||||
sta CURSOR_Y
|
sta CURSOR_Y
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Init Lemmings
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta lemming_out
|
|
||||||
sta lemming_exploding
|
|
||||||
lda INIT_X
|
|
||||||
sta lemming_x
|
|
||||||
lda INIT_Y
|
|
||||||
sta lemming_y
|
|
||||||
lda #1
|
|
||||||
sta lemming_direction
|
|
||||||
lda #LEMMING_FALLING
|
|
||||||
sta lemming_status
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Play "Let's Go"
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
jsr play_letsgo
|
|
||||||
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; start music
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
; cli
|
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; init vars
|
; init vars
|
||||||
;=======================
|
;=======================
|
||||||
|
@ -178,15 +151,13 @@ do_level2:
|
||||||
sta DOOR_OPEN
|
sta DOOR_OPEN
|
||||||
sta FRAMEL
|
sta FRAMEL
|
||||||
sta LOAD_NEXT_CHUNK
|
sta LOAD_NEXT_CHUNK
|
||||||
sta JOYSTICK_ENABLED
|
|
||||||
sta LEMMINGS_OUT
|
sta LEMMINGS_OUT
|
||||||
|
|
||||||
jsr update_lemmings_out
|
jsr update_lemmings_out ; update display
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta LEMMINGS_TO_RELEASE
|
sta LEMMINGS_TO_RELEASE
|
||||||
|
jsr clear_lemmings_out
|
||||||
; jsr save_bg_14x14 ; save initial bg
|
|
||||||
|
|
||||||
; set up time
|
; set up time
|
||||||
|
|
||||||
|
@ -197,6 +168,14 @@ do_level2:
|
||||||
|
|
||||||
sta TIMER_COUNT
|
sta TIMER_COUNT
|
||||||
|
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Play "Let's Go"
|
||||||
|
;=======================
|
||||||
|
|
||||||
|
jsr play_letsgo
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
;===================
|
;===================
|
||||||
; Main Loop
|
; Main Loop
|
||||||
|
@ -212,7 +191,9 @@ l2_main_loop:
|
||||||
jsr load_music
|
jsr load_music
|
||||||
|
|
||||||
|
|
||||||
|
;=========================
|
||||||
|
; open door
|
||||||
|
;=========================
|
||||||
|
|
||||||
lda DOOR_OPEN
|
lda DOOR_OPEN
|
||||||
bne l2_door_is_open
|
bne l2_door_is_open
|
||||||
|
@ -238,13 +219,14 @@ l2_door_is_open:
|
||||||
inc LEMMINGS_OUT
|
inc LEMMINGS_OUT
|
||||||
jsr update_lemmings_out
|
jsr update_lemmings_out
|
||||||
|
|
||||||
lda #1
|
jsr release_lemming
|
||||||
sta lemming_out
|
|
||||||
|
|
||||||
dec LEMMINGS_TO_RELEASE
|
|
||||||
|
|
||||||
l2_done_release_lemmings:
|
l2_done_release_lemmings:
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; animate flames
|
||||||
|
;======================
|
||||||
|
|
||||||
|
|
||||||
jsr draw_flames
|
jsr draw_flames
|
||||||
|
|
||||||
|
@ -286,8 +268,6 @@ l2_timer_not_yet:
|
||||||
|
|
||||||
l2_level_over:
|
l2_level_over:
|
||||||
|
|
||||||
; bit SET_TEXT
|
|
||||||
|
|
||||||
jsr disable_music
|
jsr disable_music
|
||||||
|
|
||||||
jsr outro_level1
|
jsr outro_level1
|
||||||
|
@ -296,6 +276,9 @@ l2_level_over:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.include "release_lemming.s"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.include "graphics/graphics_level2.inc"
|
.include "graphics/graphics_level2.inc"
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
|
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
.include "qload.inc"
|
.include "qload.inc"
|
||||||
.include "lemm.inc"
|
.include "lemm.inc"
|
||||||
.include "lemming_status.inc"
|
.include "lemming_status.inc"
|
||||||
|
|
||||||
.byte 3 ; level 4
|
.byte 3 ; level 3
|
||||||
|
|
||||||
do_level3:
|
do_level3:
|
||||||
|
|
||||||
|
|
||||||
;======================
|
;======================
|
||||||
; set up initial stuff
|
; set up initial stuff
|
||||||
;======================
|
;======================
|
||||||
|
|
||||||
lda #15
|
lda #15
|
||||||
sta DOOR_X
|
sta DOOR_X
|
||||||
lda #0
|
lda #0
|
||||||
|
@ -23,6 +22,8 @@ do_level3:
|
||||||
lda #11
|
lda #11
|
||||||
sta INIT_Y
|
sta INIT_Y
|
||||||
|
|
||||||
|
; flame location
|
||||||
|
|
||||||
lda #15 ;
|
lda #15 ;
|
||||||
sta l_flame_x_smc+1
|
sta l_flame_x_smc+1
|
||||||
lda #122
|
lda #122
|
||||||
|
@ -32,7 +33,7 @@ do_level3:
|
||||||
lda #19 ;
|
lda #19 ;
|
||||||
sta r_flame_x_smc+1
|
sta r_flame_x_smc+1
|
||||||
|
|
||||||
; exit location
|
; door exit location
|
||||||
|
|
||||||
lda #15 ;
|
lda #15 ;
|
||||||
sta exit_x1_smc+1
|
sta exit_x1_smc+1
|
||||||
|
@ -140,35 +141,6 @@ do_level3:
|
||||||
lda #100
|
lda #100
|
||||||
sta CURSOR_Y
|
sta CURSOR_Y
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Init Lemmings
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta lemming_out
|
|
||||||
sta lemming_exploding
|
|
||||||
lda INIT_X
|
|
||||||
sta lemming_x
|
|
||||||
lda INIT_Y
|
|
||||||
sta lemming_y
|
|
||||||
lda #1
|
|
||||||
sta lemming_direction
|
|
||||||
lda #LEMMING_FALLING
|
|
||||||
sta lemming_status
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Play "Let's Go"
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
jsr play_letsgo
|
|
||||||
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; start music
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
; cli
|
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; init vars
|
; init vars
|
||||||
;=======================
|
;=======================
|
||||||
|
@ -178,15 +150,13 @@ do_level3:
|
||||||
sta DOOR_OPEN
|
sta DOOR_OPEN
|
||||||
sta FRAMEL
|
sta FRAMEL
|
||||||
sta LOAD_NEXT_CHUNK
|
sta LOAD_NEXT_CHUNK
|
||||||
sta JOYSTICK_ENABLED
|
|
||||||
sta LEMMINGS_OUT
|
sta LEMMINGS_OUT
|
||||||
|
|
||||||
jsr update_lemmings_out
|
jsr update_lemmings_out ; update display
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta LEMMINGS_TO_RELEASE
|
sta LEMMINGS_TO_RELEASE
|
||||||
|
jsr clear_lemmings_out
|
||||||
; jsr save_bg_14x14 ; save initial bg
|
|
||||||
|
|
||||||
; set up time
|
; set up time
|
||||||
|
|
||||||
|
@ -197,6 +167,13 @@ do_level3:
|
||||||
|
|
||||||
sta TIMER_COUNT
|
sta TIMER_COUNT
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Play "Let's Go"
|
||||||
|
;=======================
|
||||||
|
|
||||||
|
jsr play_letsgo
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
;===================
|
;===================
|
||||||
; Main Loop
|
; Main Loop
|
||||||
|
@ -212,9 +189,9 @@ l4_main_loop:
|
||||||
jsr load_music
|
jsr load_music
|
||||||
|
|
||||||
|
|
||||||
|
;=========================
|
||||||
l4_no_load_chunk:
|
; open door
|
||||||
|
;=========================
|
||||||
|
|
||||||
lda DOOR_OPEN
|
lda DOOR_OPEN
|
||||||
bne l4_door_is_open
|
bne l4_door_is_open
|
||||||
|
@ -237,16 +214,13 @@ l4_door_is_open:
|
||||||
and #$f
|
and #$f
|
||||||
bne l4_done_release_lemmings
|
bne l4_done_release_lemmings
|
||||||
|
|
||||||
inc LEMMINGS_OUT
|
jsr release_lemming
|
||||||
jsr update_lemmings_out
|
|
||||||
|
|
||||||
lda #1
|
|
||||||
sta lemming_out
|
|
||||||
|
|
||||||
dec LEMMINGS_TO_RELEASE
|
|
||||||
|
|
||||||
l4_done_release_lemmings:
|
l4_done_release_lemmings:
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; animate flames
|
||||||
|
;======================
|
||||||
|
|
||||||
jsr draw_flames
|
jsr draw_flames
|
||||||
|
|
||||||
|
@ -288,8 +262,6 @@ l4_timer_not_yet:
|
||||||
|
|
||||||
l4_level_over:
|
l4_level_over:
|
||||||
|
|
||||||
; bit SET_TEXT
|
|
||||||
|
|
||||||
jsr disable_music
|
jsr disable_music
|
||||||
|
|
||||||
jsr outro_level1
|
jsr outro_level1
|
||||||
|
@ -297,6 +269,7 @@ l4_level_over:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
.include "release_lemming.s"
|
||||||
|
|
||||||
|
|
||||||
.include "graphics/graphics_level3.inc"
|
.include "graphics/graphics_level3.inc"
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
.include "zp.inc"
|
.include "zp.inc"
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
.include "qload.inc"
|
.include "qload.inc"
|
||||||
|
@ -23,6 +22,8 @@ do_level4:
|
||||||
lda #22
|
lda #22
|
||||||
sta INIT_Y
|
sta INIT_Y
|
||||||
|
|
||||||
|
; flame locations
|
||||||
|
|
||||||
lda #29 ;
|
lda #29 ;
|
||||||
sta l_flame_x_smc+1
|
sta l_flame_x_smc+1
|
||||||
lda #23
|
lda #23
|
||||||
|
@ -32,7 +33,7 @@ do_level4:
|
||||||
lda #33 ;
|
lda #33 ;
|
||||||
sta r_flame_x_smc+1
|
sta r_flame_x_smc+1
|
||||||
|
|
||||||
; exit location
|
; door exit location
|
||||||
|
|
||||||
lda #29 ;
|
lda #29 ;
|
||||||
sta exit_x1_smc+1
|
sta exit_x1_smc+1
|
||||||
|
@ -140,34 +141,6 @@ do_level4:
|
||||||
lda #100
|
lda #100
|
||||||
sta CURSOR_Y
|
sta CURSOR_Y
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Init Lemmings
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta lemming_out
|
|
||||||
sta lemming_exploding
|
|
||||||
lda INIT_X
|
|
||||||
sta lemming_x
|
|
||||||
lda INIT_Y
|
|
||||||
sta lemming_y
|
|
||||||
lda #1
|
|
||||||
sta lemming_direction
|
|
||||||
lda #LEMMING_FALLING
|
|
||||||
sta lemming_status
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Play "Let's Go"
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
jsr play_letsgo
|
|
||||||
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; start music
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
; cli
|
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; init vars
|
; init vars
|
||||||
|
@ -178,15 +151,13 @@ do_level4:
|
||||||
sta DOOR_OPEN
|
sta DOOR_OPEN
|
||||||
sta FRAMEL
|
sta FRAMEL
|
||||||
sta LOAD_NEXT_CHUNK
|
sta LOAD_NEXT_CHUNK
|
||||||
sta JOYSTICK_ENABLED
|
|
||||||
sta LEMMINGS_OUT
|
sta LEMMINGS_OUT
|
||||||
|
|
||||||
jsr update_lemmings_out
|
jsr update_lemmings_out
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta LEMMINGS_TO_RELEASE
|
sta LEMMINGS_TO_RELEASE
|
||||||
|
jsr clear_lemmings_out
|
||||||
; jsr save_bg_14x14 ; save initial bg
|
|
||||||
|
|
||||||
; set up time
|
; set up time
|
||||||
|
|
||||||
|
@ -197,6 +168,13 @@ do_level4:
|
||||||
|
|
||||||
sta TIMER_COUNT
|
sta TIMER_COUNT
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Play "Let's Go"
|
||||||
|
;=======================
|
||||||
|
|
||||||
|
jsr play_letsgo
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
;===================
|
;===================
|
||||||
; Main Loop
|
; Main Loop
|
||||||
|
@ -237,16 +215,13 @@ l4_door_is_open:
|
||||||
and #$f
|
and #$f
|
||||||
bne l4_done_release_lemmings
|
bne l4_done_release_lemmings
|
||||||
|
|
||||||
inc LEMMINGS_OUT
|
jsr release_lemming
|
||||||
jsr update_lemmings_out
|
|
||||||
|
|
||||||
lda #1
|
|
||||||
sta lemming_out
|
|
||||||
|
|
||||||
dec LEMMINGS_TO_RELEASE
|
|
||||||
|
|
||||||
l4_done_release_lemmings:
|
l4_done_release_lemmings:
|
||||||
|
|
||||||
|
;=====================
|
||||||
|
; animate flames
|
||||||
|
;=====================
|
||||||
|
|
||||||
jsr draw_flames
|
jsr draw_flames
|
||||||
|
|
||||||
|
@ -288,8 +263,6 @@ l4_timer_not_yet:
|
||||||
|
|
||||||
l4_level_over:
|
l4_level_over:
|
||||||
|
|
||||||
; bit SET_TEXT
|
|
||||||
|
|
||||||
jsr disable_music
|
jsr disable_music
|
||||||
|
|
||||||
jsr outro_level1
|
jsr outro_level1
|
||||||
|
@ -297,6 +270,7 @@ l4_level_over:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
.include "release_lemming.s"
|
||||||
|
|
||||||
|
|
||||||
.include "graphics/graphics_level4.inc"
|
.include "graphics/graphics_level4.inc"
|
||||||
|
|
|
@ -16,6 +16,20 @@ do_level5:
|
||||||
lda #24
|
lda #24
|
||||||
sta DOOR_Y
|
sta DOOR_Y
|
||||||
|
|
||||||
|
lda #12
|
||||||
|
sta INIT_X
|
||||||
|
lda #40
|
||||||
|
sta INIT_Y
|
||||||
|
|
||||||
|
; flame locations
|
||||||
|
|
||||||
|
; n/a
|
||||||
|
|
||||||
|
; exit location
|
||||||
|
|
||||||
|
; n/a
|
||||||
|
|
||||||
|
|
||||||
;==============
|
;==============
|
||||||
; set up intro
|
; set up intro
|
||||||
;==============
|
;==============
|
||||||
|
@ -65,8 +79,6 @@ do_level5:
|
||||||
; show title screen
|
; show title screen
|
||||||
;=======================
|
;=======================
|
||||||
|
|
||||||
lda #5
|
|
||||||
sta WHICH_LEVEL
|
|
||||||
jsr intro_level
|
jsr intro_level
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
|
@ -112,33 +124,6 @@ do_level5:
|
||||||
lda #100
|
lda #100
|
||||||
sta CURSOR_Y
|
sta CURSOR_Y
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Init Lemmings
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta lemming_out
|
|
||||||
sta lemming_exploding
|
|
||||||
lda #12
|
|
||||||
sta lemming_x
|
|
||||||
lda #40
|
|
||||||
sta lemming_y
|
|
||||||
lda #1
|
|
||||||
sta lemming_direction
|
|
||||||
lda #LEMMING_FALLING
|
|
||||||
sta lemming_status
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; Play "Let's Go"
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
jsr play_letsgo
|
|
||||||
|
|
||||||
;=======================
|
|
||||||
; start music
|
|
||||||
;=======================
|
|
||||||
|
|
||||||
; cli
|
|
||||||
|
|
||||||
;=======================
|
;=======================
|
||||||
; init vars
|
; init vars
|
||||||
|
@ -149,15 +134,13 @@ do_level5:
|
||||||
sta DOOR_OPEN
|
sta DOOR_OPEN
|
||||||
sta FRAMEL
|
sta FRAMEL
|
||||||
sta LOAD_NEXT_CHUNK
|
sta LOAD_NEXT_CHUNK
|
||||||
sta JOYSTICK_ENABLED
|
|
||||||
sta LEMMINGS_OUT
|
sta LEMMINGS_OUT
|
||||||
|
|
||||||
jsr update_lemmings_out
|
jsr update_lemmings_out
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta LEMMINGS_TO_RELEASE
|
sta LEMMINGS_TO_RELEASE
|
||||||
|
jsr clear_lemmings_out
|
||||||
; jsr save_bg_14x14 ; save initial bg
|
|
||||||
|
|
||||||
; set up time
|
; set up time
|
||||||
|
|
||||||
|
@ -168,6 +151,14 @@ do_level5:
|
||||||
|
|
||||||
sta TIMER_COUNT
|
sta TIMER_COUNT
|
||||||
|
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Play "Let's Go"
|
||||||
|
;=======================
|
||||||
|
|
||||||
|
jsr play_letsgo
|
||||||
|
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
;===================
|
;===================
|
||||||
; Main Loop
|
; Main Loop
|
||||||
|
@ -183,6 +174,9 @@ l5_main_loop:
|
||||||
jsr load_music
|
jsr load_music
|
||||||
|
|
||||||
|
|
||||||
|
;=====================
|
||||||
|
; open door
|
||||||
|
;=====================
|
||||||
|
|
||||||
|
|
||||||
lda DOOR_OPEN
|
lda DOOR_OPEN
|
||||||
|
@ -206,16 +200,13 @@ l5_door_is_open:
|
||||||
and #$f
|
and #$f
|
||||||
bne l5_done_release_lemmings
|
bne l5_done_release_lemmings
|
||||||
|
|
||||||
inc LEMMINGS_OUT
|
jsr release_lemming
|
||||||
jsr update_lemmings_out
|
|
||||||
|
|
||||||
lda #1
|
|
||||||
sta lemming_out
|
|
||||||
|
|
||||||
dec LEMMINGS_TO_RELEASE
|
|
||||||
|
|
||||||
l5_done_release_lemmings:
|
l5_done_release_lemmings:
|
||||||
|
|
||||||
|
;=====================
|
||||||
|
; animate flames
|
||||||
|
;=====================
|
||||||
|
|
||||||
; jsr draw_flames
|
; jsr draw_flames
|
||||||
|
|
||||||
|
@ -257,8 +248,6 @@ l5_timer_not_yet:
|
||||||
|
|
||||||
l5_level_over:
|
l5_level_over:
|
||||||
|
|
||||||
; bit SET_TEXT
|
|
||||||
|
|
||||||
jsr disable_music
|
jsr disable_music
|
||||||
|
|
||||||
jsr outro_level1
|
jsr outro_level1
|
||||||
|
@ -266,6 +255,8 @@ l5_level_over:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
.include "release_lemming.s"
|
||||||
|
|
||||||
|
|
||||||
.include "graphics/graphics_level5.inc"
|
.include "graphics/graphics_level5.inc"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
|
||||||
|
lemming_x:
|
||||||
|
.byte 0,0,0,0,0,0,0,0,0,0
|
||||||
|
lemming_y:
|
||||||
|
.byte 0,0,0,0,0,0,0,0,0,0
|
||||||
|
lemming_direction:
|
||||||
|
.byte 0,0,0,0,0,0,0,0,0,0
|
||||||
|
lemming_out:
|
||||||
|
.byte 0,0,0,0,0,0,0,0,0,0
|
||||||
|
lemming_frame:
|
||||||
|
.byte 0,0,0,0,0,0,0,0,0,0
|
||||||
|
lemming_status:
|
||||||
|
.byte 0,0,0,0,0,0,0,0,0,0
|
||||||
|
lemming_exploding:
|
||||||
|
.byte 0,0,0,0,0,0,0,0,0,0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;==========================
|
;==========================
|
||||||
; move them
|
; move them
|
||||||
;==========================
|
;==========================
|
||||||
|
@ -188,27 +211,6 @@ remove_lemming:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
lemming_direction:
|
|
||||||
.byte 1
|
|
||||||
|
|
||||||
lemming_x:
|
|
||||||
.byte 12
|
|
||||||
lemming_y:
|
|
||||||
.byte 45
|
|
||||||
|
|
||||||
lemming_out:
|
|
||||||
.byte $0
|
|
||||||
|
|
||||||
lemming_frame:
|
|
||||||
.byte 0
|
|
||||||
|
|
||||||
lemming_status:
|
|
||||||
.byte LEMMING_FALLING
|
|
||||||
|
|
||||||
lemming_exploding:
|
|
||||||
.byte $00
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;=============================
|
;=============================
|
||||||
; collision check ground
|
; collision check ground
|
||||||
|
|
48
games/lemm/release_lemming.s
Normal file
48
games/lemm/release_lemming.s
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Clear Lemmings Out
|
||||||
|
;=======================
|
||||||
|
clear_lemmings_out:
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
ldy #0
|
||||||
|
clear_lemmings_loop:
|
||||||
|
sta lemming_out,Y
|
||||||
|
iny
|
||||||
|
cpy LEMMINGS_TO_RELEASE
|
||||||
|
bne clear_lemmings_loop
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; Init Lemmings
|
||||||
|
;=======================
|
||||||
|
release_lemming:
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
sta lemming_out,Y
|
||||||
|
lda #0
|
||||||
|
sta lemming_exploding,Y
|
||||||
|
lda INIT_X
|
||||||
|
sta lemming_x,Y
|
||||||
|
lda INIT_Y
|
||||||
|
sta lemming_y,Y
|
||||||
|
lda #LEMMING_RIGHT
|
||||||
|
sta lemming_direction,Y
|
||||||
|
lda #LEMMING_FALLING
|
||||||
|
sta lemming_status,Y
|
||||||
|
|
||||||
|
inc LEMMINGS_OUT
|
||||||
|
jsr update_lemmings_out
|
||||||
|
|
||||||
|
dec LEMMINGS_TO_RELEASE
|
||||||
|
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user