mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-29 08:55:10 +00:00
lemm: start adding pointer
This commit is contained in:
parent
8c6187d5af
commit
64d38d1cc2
862
games/lemm/common_sprites.inc
Normal file
862
games/lemm/common_sprites.inc
Normal file
@ -0,0 +1,862 @@
|
||||
finger_point_sprite:
|
||||
|
||||
;===============
|
||||
; point sprite
|
||||
;===============
|
||||
|
||||
point_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
point_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
point_mask_l: ; X 654 3 210
|
||||
.byte $9f ; 1 001 1 111
|
||||
.byte $8f ; 1 000 1 111
|
||||
.byte $8f ; 1 000 1 111
|
||||
.byte $8f ; 1 000 1 111
|
||||
.byte $88 ; 1 000 1 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $81 ; 1 000 0 001
|
||||
.byte $81 ; 1 000 0 001
|
||||
.byte $83 ; 1 000 0 011
|
||||
.byte $87 ; 1 000 0 111
|
||||
.byte $8f ; 1 000 1 111
|
||||
.byte $8f ; 1 000 1 111
|
||||
|
||||
point_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
|
||||
finger_grab_sprite:
|
||||
;===============
|
||||
; grab sprite
|
||||
;===============
|
||||
|
||||
grab_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $4c ; 0 100 1 100
|
||||
.byte $4c ; 0 100 1 100
|
||||
.byte $58 ; 0 101 1 000
|
||||
.byte $58 ; 0 101 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $73 ; 0 111 0 011
|
||||
.byte $77 ; 0 111 0 111
|
||||
.byte $7e ; 0 111 1 110
|
||||
.byte $7c ; 0 111 1 100
|
||||
.byte $7c ; 0 111 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
grab_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0d ; 0 000 1 101
|
||||
.byte $0d ; 0 000 1 101
|
||||
.byte $0d ; 0 000 1 101
|
||||
.byte $6d ; 0 110 1 101
|
||||
.byte $6f ; 0 110 1 111
|
||||
.byte $7f ; 0 111 1 111
|
||||
.byte $3f ; 0 011 1 111
|
||||
.byte $3f ; 0 011 1 111
|
||||
.byte $3f ; 0 011 1 111
|
||||
.byte $1f ; 0 001 1 111
|
||||
.byte $1f ; 0 001 1 111
|
||||
.byte $0f ; 0 000 1 111
|
||||
.byte $0f ; 0 000 1 111
|
||||
|
||||
grab_mask_l: ; X 654 3 210
|
||||
.byte $b3 ; 1 011 0 011
|
||||
.byte $81 ; 1 000 0 001
|
||||
.byte $81 ; 1 000 0 001
|
||||
.byte $83 ; 1 000 0 011
|
||||
.byte $83 ; 1 000 0 011
|
||||
.byte $84 ; 1 000 0 100
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $81 ; 1 000 0 001
|
||||
.byte $81 ; 1 000 0 001
|
||||
.byte $83 ; 1 000 0 011
|
||||
.byte $c7 ; 1 100 0 111
|
||||
.byte $c7 ; 1 100 1 111
|
||||
|
||||
grab_mask_r: ; X 654 3 210
|
||||
.byte $f2 ; 1 111 0 010
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $e0 ; 1 110 0 000
|
||||
|
||||
|
||||
;======================
|
||||
; finger left
|
||||
;======================
|
||||
; TODO
|
||||
|
||||
finger_left_sprite:
|
||||
|
||||
finger_left_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_left_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_left_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_left_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
|
||||
;====================
|
||||
; finger right
|
||||
;====================
|
||||
; TODO
|
||||
|
||||
finger_right_sprite:
|
||||
finger_right_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_right_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_right_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_right_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
|
||||
;====================
|
||||
; Finger turn left
|
||||
;====================
|
||||
finger_turn_left_sprite:
|
||||
|
||||
finger_turn_left_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_turn_left_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_turn_left_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_turn_left_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
;=====================
|
||||
; Finger turn right
|
||||
;=====================
|
||||
; TODO
|
||||
|
||||
finger_turn_right_sprite:
|
||||
|
||||
finger_turn_right_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_turn_right_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_turn_right_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_turn_right_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
|
||||
;=====================
|
||||
; finger match
|
||||
;=====================
|
||||
; TODO
|
||||
|
||||
finger_match_sprite:
|
||||
.if 0
|
||||
finger_match_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_match_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_match_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_match_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.endif
|
||||
|
||||
;======================
|
||||
; finger match lit
|
||||
;======================
|
||||
; TODO
|
||||
|
||||
finger_match_lit_sprite:
|
||||
.if 0
|
||||
finger_match_lit_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_match_lit_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_match_lit_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_match_lit_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.endif
|
||||
|
||||
;=========================
|
||||
; finger key sprite
|
||||
;=========================
|
||||
; TODO
|
||||
|
||||
finger_key_sprite:
|
||||
.if 0
|
||||
finger_key_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_key_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_key_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_key_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.endif
|
||||
|
||||
;===========================
|
||||
; finger red sprite
|
||||
;===========================
|
||||
; TODO
|
||||
|
||||
finger_red_page_sprite:
|
||||
|
||||
finger_red_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_red_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_red_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_red_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
;=====================
|
||||
; finger blue sprite
|
||||
;=====================
|
||||
; TODO
|
||||
|
||||
finger_blue_page_sprite:
|
||||
|
||||
finger_blue_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_blue_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_blue_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_blue_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
|
||||
;========================
|
||||
; finger white page
|
||||
;========================
|
||||
; TODO
|
||||
|
||||
finger_white_page_sprite:
|
||||
|
||||
finger_white_sprite_l: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $63 ; 0 110 0 011
|
||||
.byte $66 ; 0 110 0 110
|
||||
.byte $2c ; 0 010 1 100
|
||||
.byte $6c ; 0 110 1 100
|
||||
.byte $78 ; 0 111 1 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $70 ; 0 111 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
.byte $60 ; 0 110 0 000
|
||||
|
||||
finger_white_sprite_r: ; X 654 3 210
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $00 ; 0 000 0 000
|
||||
.byte $0A ; 0 000 1 010
|
||||
.byte $2A ; 0 010 1 010
|
||||
.byte $2D ; 0 010 1 101
|
||||
.byte $37 ; 0 011 0 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $3F ; 0 011 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
.byte $1F ; 0 001 1 111
|
||||
|
||||
finger_white_mask_l: ; X 654 3 210
|
||||
.byte $ff ; 1 001 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 000
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 001
|
||||
.byte $ff ; 1 000 0 011
|
||||
.byte $ff ; 1 000 0 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
.byte $ff ; 1 000 1 111
|
||||
|
||||
finger_white_mask_r: ; X 654 3 210
|
||||
.byte $ff ; 1 111 1 111
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $fe ; 1 111 1 110
|
||||
.byte $e0 ; 1 110 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $80 ; 1 000 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
.byte $c0 ; 1 100 0 000
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -13,9 +13,9 @@ draw_door:
|
||||
sta INH
|
||||
|
||||
ldx #9 ; 63
|
||||
stx CURSOR_X
|
||||
stx XPOS
|
||||
lda #36
|
||||
sta CURSOR_Y
|
||||
sta YPOS
|
||||
|
||||
jsr hgr_draw_sprite
|
||||
|
||||
|
@ -13,9 +13,9 @@ draw_flames:
|
||||
sta INH
|
||||
|
||||
ldx #31 ; 217
|
||||
stx CURSOR_X
|
||||
stx XPOS
|
||||
lda #108
|
||||
sta CURSOR_Y
|
||||
sta YPOS
|
||||
|
||||
jsr hgr_draw_sprite
|
||||
|
||||
@ -31,9 +31,9 @@ draw_flames:
|
||||
sta INH
|
||||
|
||||
ldx #35 ; 245
|
||||
stx CURSOR_X
|
||||
stx XPOS
|
||||
lda #108
|
||||
sta CURSOR_Y
|
||||
sta YPOS
|
||||
|
||||
jmp hgr_draw_sprite
|
||||
|
||||
|
52
games/lemm/draw_pointer.s
Normal file
52
games/lemm/draw_pointer.s
Normal file
@ -0,0 +1,52 @@
|
||||
;====================================
|
||||
; draw pointer
|
||||
;====================================
|
||||
|
||||
|
||||
draw_pointer:
|
||||
|
||||
lda #0
|
||||
sta OVER_LEMMING
|
||||
|
||||
; jsr save_bg_14x14 ; save old bg
|
||||
|
||||
; for now assume the only 14x14 sprites are the pointers
|
||||
|
||||
lda CURSOR_X
|
||||
sta XPOS
|
||||
lda CURSOR_Y
|
||||
sta YPOS
|
||||
|
||||
; see if over lemming
|
||||
|
||||
; TODO
|
||||
|
||||
; see if X1 < X < X2
|
||||
; lda CURSOR_X
|
||||
; ldy #LOCATION_SPECIAL_X1
|
||||
; cmp (LOCATION_STRUCT_L),Y
|
||||
; bcc finger_not_special ; blt
|
||||
|
||||
; ldy #LOCATION_SPECIAL_X2
|
||||
; cmp (LOCATION_STRUCT_L),Y
|
||||
; bcs finger_not_special ; bge
|
||||
|
||||
; see if Y1 < Y < Y2
|
||||
; lda CURSOR_Y
|
||||
; ldy #LOCATION_SPECIAL_Y1
|
||||
; cmp (LOCATION_STRUCT_L),Y
|
||||
; bcc finger_not_special ; blt
|
||||
|
||||
; ldy #LOCATION_SPECIAL_Y2
|
||||
; cmp (LOCATION_STRUCT_L),Y
|
||||
; bcs finger_not_special ; bge
|
||||
|
||||
|
||||
|
||||
lda #>finger_turn_right_sprite
|
||||
sta INL
|
||||
lda #>finger_turn_right_sprite
|
||||
sta INH
|
||||
jsr hgr_draw_sprite_14x14
|
||||
|
||||
rts
|
207
games/lemm/hgr_14x14_sprite.s
Normal file
207
games/lemm/hgr_14x14_sprite.s
Normal file
@ -0,0 +1,207 @@
|
||||
|
||||
;======================
|
||||
; hgr 14x14 draw sprite
|
||||
;======================
|
||||
; SPRITE in INL/INH
|
||||
; Location at CURSOR_X CURSOR_Y
|
||||
|
||||
; left sprite AT INL/INH
|
||||
; right sprite at INL/INH + 14
|
||||
; left mask at INL/INH + 28
|
||||
; right mask at INL/INH + 42
|
||||
|
||||
hgr_draw_sprite_14x14:
|
||||
|
||||
; set up pointers
|
||||
lda INL
|
||||
sta hds_smc1+1
|
||||
lda INH
|
||||
sta hds_smc1+2
|
||||
|
||||
clc
|
||||
lda INL
|
||||
adc #14
|
||||
sta hds_smc2+1
|
||||
lda INH
|
||||
adc #0
|
||||
sta hds_smc2+2
|
||||
|
||||
clc
|
||||
lda INL
|
||||
adc #28
|
||||
sta hds_smc3+1
|
||||
lda INH
|
||||
adc #0
|
||||
sta hds_smc3+2
|
||||
|
||||
clc
|
||||
lda INL
|
||||
adc #42
|
||||
sta hds_smc4+1
|
||||
lda INH
|
||||
adc #0
|
||||
sta hds_smc4+2
|
||||
|
||||
|
||||
ldx #0
|
||||
hgr_14x14_sprite_yloop:
|
||||
txa
|
||||
pha
|
||||
|
||||
clc
|
||||
adc CURSOR_Y
|
||||
|
||||
; ldx #0
|
||||
; ldy #0
|
||||
|
||||
; calc GBASL/GBASH
|
||||
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
|
||||
|
||||
tay
|
||||
|
||||
lda hposn_high,Y
|
||||
sta GBASH
|
||||
lda hposn_low,Y
|
||||
sta GBASL
|
||||
|
||||
|
||||
|
||||
pla
|
||||
tax
|
||||
|
||||
ldy CURSOR_X
|
||||
|
||||
lda (GBASL),Y
|
||||
hds_smc3:
|
||||
and point_mask_l,X
|
||||
hds_smc1:
|
||||
ora point_sprite_l,X
|
||||
sta (GBASL),Y
|
||||
|
||||
iny
|
||||
|
||||
lda (GBASL),Y
|
||||
hds_smc4:
|
||||
and point_mask_r,X
|
||||
hds_smc2:
|
||||
ora point_sprite_r,X
|
||||
sta (GBASL),Y
|
||||
|
||||
inx
|
||||
cpx #14
|
||||
bne hgr_14x14_sprite_yloop
|
||||
|
||||
rts
|
||||
|
||||
|
||||
|
||||
;======================
|
||||
; save bg 14x14
|
||||
;======================
|
||||
|
||||
save_bg_14x14:
|
||||
|
||||
ldx #0
|
||||
save_yloop:
|
||||
txa
|
||||
pha
|
||||
|
||||
clc
|
||||
adc CURSOR_Y
|
||||
|
||||
; ldx #0
|
||||
; ldy #0
|
||||
|
||||
; calc GBASL/GBASH
|
||||
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
|
||||
|
||||
|
||||
tay
|
||||
|
||||
lda hposn_high,Y
|
||||
sta GBASH
|
||||
lda hposn_low,Y
|
||||
sta GBASL
|
||||
|
||||
|
||||
pla
|
||||
tax
|
||||
|
||||
ldy CURSOR_X
|
||||
|
||||
lda (GBASL),Y
|
||||
sta save_left_14x14,X
|
||||
|
||||
iny
|
||||
|
||||
lda (GBASL),Y
|
||||
sta save_right_14x14,X
|
||||
|
||||
inx
|
||||
cpx #14
|
||||
bne save_yloop
|
||||
|
||||
rts
|
||||
|
||||
;======================
|
||||
; restore bg 14x14
|
||||
;======================
|
||||
|
||||
restore_bg_14x14:
|
||||
|
||||
ldx #0
|
||||
restore_yloop:
|
||||
txa
|
||||
pha
|
||||
|
||||
clc
|
||||
adc CURSOR_Y
|
||||
|
||||
; ldx #0
|
||||
; ldy #0
|
||||
|
||||
; calc GBASL/GBASH
|
||||
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
|
||||
|
||||
tay
|
||||
|
||||
lda hposn_high,Y
|
||||
sta GBASH
|
||||
lda hposn_low,Y
|
||||
sta GBASL
|
||||
|
||||
|
||||
pla
|
||||
tax
|
||||
|
||||
ldy CURSOR_X
|
||||
|
||||
lda save_left_14x14,X
|
||||
sta (GBASL),Y
|
||||
|
||||
iny
|
||||
|
||||
lda save_right_14x14,X
|
||||
sta (GBASL),Y
|
||||
|
||||
|
||||
inx
|
||||
cpx #14
|
||||
bne restore_yloop
|
||||
|
||||
rts
|
||||
|
||||
|
||||
;====================
|
||||
; save area
|
||||
;====================
|
||||
|
||||
save_right_14x14:
|
||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
|
||||
save_left_14x14:
|
||||
.byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
|
||||
|
||||
|
||||
|
||||
.include "common_sprites.inc"
|
@ -2,7 +2,7 @@
|
||||
; hgr draw sprite (only at 7-bit boundaries)
|
||||
;===========================================
|
||||
; SPRITE in INL/INH
|
||||
; Location at CURSOR_X CURSOR_Y
|
||||
; Location at XPOS YPOS
|
||||
|
||||
; xsize, ysize in first two bytes
|
||||
|
||||
@ -13,7 +13,7 @@ hgr_draw_sprite:
|
||||
ldy #0
|
||||
lda (INL),Y ; load xsize
|
||||
clc
|
||||
adc CURSOR_X
|
||||
adc XPOS
|
||||
sta sprite_width_end_smc+1 ; self modify for end of line
|
||||
|
||||
iny ; load ysize
|
||||
@ -38,7 +38,7 @@ hgr_sprite_yloop:
|
||||
lda MASK ; row
|
||||
|
||||
clc
|
||||
adc CURSOR_Y ; add in cursor_y
|
||||
adc YPOS ; add in cursor_y
|
||||
|
||||
; calc GBASL/GBASH
|
||||
|
||||
@ -53,7 +53,7 @@ hgr_sprite_page_smc:
|
||||
eor #$00
|
||||
sta GBASH
|
||||
|
||||
ldy CURSOR_X
|
||||
ldy XPOS
|
||||
|
||||
sprite_inner_loop:
|
||||
|
||||
@ -95,7 +95,7 @@ sprite_ysize_smc:
|
||||
; and shifts it if in odd column
|
||||
|
||||
; SPRITE in INL/INH
|
||||
; Location at CURSOR_X CURSOR_Y
|
||||
; Location at XPOS YPOS
|
||||
|
||||
; xsize, ysize in first two bytes
|
||||
|
||||
@ -107,7 +107,7 @@ hgr_draw_sprite_autoshift:
|
||||
|
||||
; SEC=$38 0b0011 1000 CLC=$18 0b0001 10000
|
||||
|
||||
lda CURSOR_X
|
||||
lda XPOS
|
||||
lsr
|
||||
bcc make_it_even
|
||||
|
||||
@ -123,7 +123,7 @@ make_it_so:
|
||||
ldy #0
|
||||
lda (INL),Y ; load xsize
|
||||
clc
|
||||
adc CURSOR_X
|
||||
adc XPOS
|
||||
sta sprite_width_end_smc_as+1 ; self modify for end of line
|
||||
|
||||
iny ; load ysize
|
||||
@ -148,7 +148,7 @@ hgr_sprite_yloop_as:
|
||||
lda MASK ; row
|
||||
|
||||
clc
|
||||
adc CURSOR_Y ; add in cursor_y
|
||||
adc YPOS ; add in cursor_y
|
||||
|
||||
; calc GBASL/GBASH
|
||||
|
||||
@ -163,7 +163,7 @@ hgr_sprite_page_smc_as:
|
||||
eor #$00
|
||||
sta GBASH
|
||||
|
||||
ldy CURSOR_X
|
||||
ldy XPOS
|
||||
|
||||
sprite_inner_loop_as:
|
||||
|
||||
|
@ -251,6 +251,16 @@ zurg:
|
||||
jsr decompress_lzsa2_fast
|
||||
|
||||
|
||||
;=======================
|
||||
; Setup cursor
|
||||
;=======================
|
||||
|
||||
lda #0
|
||||
sta OVER_LEMMING
|
||||
lda #10
|
||||
sta CURSOR_X
|
||||
lda #100
|
||||
sta CURSOR_Y
|
||||
|
||||
;=======================
|
||||
; Play "Let's Go"
|
||||
@ -311,6 +321,9 @@ door_is_open:
|
||||
|
||||
jsr update_time
|
||||
|
||||
jsr draw_pointer
|
||||
|
||||
|
||||
lda #$ff
|
||||
jsr wait
|
||||
|
||||
@ -380,10 +393,13 @@ load_song_chunk_good:
|
||||
; .include "print_help.s"
|
||||
; .include "gr_fast_clear.s"
|
||||
|
||||
|
||||
.include "hgr_14x14_sprite.s"
|
||||
.include "text_print.s"
|
||||
|
||||
.include "lc_detect.s"
|
||||
|
||||
.include "draw_pointer.s"
|
||||
|
||||
.include "hgr_tables.s"
|
||||
.include "hgr_sprite.s"
|
||||
|
@ -40,9 +40,9 @@ draw_time:
|
||||
; 246, 152
|
||||
|
||||
ldx #35 ; 245
|
||||
stx CURSOR_X
|
||||
stx XPOS
|
||||
lda #152
|
||||
sta CURSOR_Y
|
||||
sta YPOS
|
||||
|
||||
jsr hgr_draw_sprite_autoshift
|
||||
|
||||
@ -60,9 +60,9 @@ draw_time:
|
||||
sta INH
|
||||
|
||||
ldx #37
|
||||
stx CURSOR_X
|
||||
stx XPOS
|
||||
lda #152
|
||||
sta CURSOR_Y
|
||||
sta YPOS
|
||||
|
||||
jsr hgr_draw_sprite_autoshift
|
||||
|
||||
@ -78,9 +78,9 @@ draw_time:
|
||||
sta INH
|
||||
|
||||
ldx #38
|
||||
stx CURSOR_X
|
||||
stx XPOS
|
||||
lda #152
|
||||
sta CURSOR_Y
|
||||
sta YPOS
|
||||
|
||||
jsr hgr_draw_sprite_autoshift
|
||||
|
||||
|
@ -59,6 +59,7 @@ DOOR_OPEN = $7C
|
||||
CHUNK_NEXT_LOAD = $7D
|
||||
CHUNK_NEXT_PLAY = $7E
|
||||
LOAD_NEXT_CHUNK = $7F
|
||||
OVER_LEMMING = $80
|
||||
|
||||
APPLEII_MODEL = $8B
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user