mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-28 02:55:03 +00:00
riven_hgr: add pointer code from mist_hgr
This commit is contained in:
parent
064fd3bf10
commit
fb54ea2c6e
@ -39,6 +39,8 @@ MAIN: main.o
|
||||
main.o: main.s zp.inc hardware.inc \
|
||||
zx02_optim.s \
|
||||
hgr_sprite.s hgr_tables.s \
|
||||
keyboard.s \
|
||||
hgr_14x14_sprite.s \
|
||||
graphics/maglev1.hgr.zx02
|
||||
ca65 -o main.o main.s -l main.lst
|
||||
|
||||
|
862
games/riven_hgr/common_sprites.inc
Normal file
862
games/riven_hgr/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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
5 HOME
|
||||
10 PRINT "LOADING KEEN V0.08"
|
||||
20 PRINT " KEEN1 PROOF-OF-CONCEPT DEMAKE"
|
||||
10 PRINT "LOADING RIVEN SUBSET V0.01"
|
||||
20 PRINT " RIVEN SCENES"
|
||||
30 PRINT:PRINT
|
||||
70 PRINT "BASED ON KEEN1 BY ID"
|
||||
70 PRINT "BASED ON RIVEN BY CYAN"
|
||||
75 PRINT:PRINT
|
||||
80 PRINT "APPLE II PORT: VINCE WEAVER"
|
||||
90 PRINT "DISK CODE : QKUMBA"
|
||||
|
195
games/riven_hgr/hgr_14x14_sprite.s
Normal file
195
games/riven_hgr/hgr_14x14_sprite.s
Normal file
@ -0,0 +1,195 @@
|
||||
|
||||
;======================
|
||||
; 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
|
||||
|
||||
tax
|
||||
lda hposn_high,X
|
||||
sta GBASH
|
||||
lda hposn_low,X
|
||||
sta GBASL
|
||||
|
||||
; ldx #0
|
||||
; ldy #0
|
||||
|
||||
; calc GBASL/GBASH
|
||||
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
|
||||
|
||||
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
|
||||
|
||||
tax
|
||||
lda hposn_high,X
|
||||
sta GBASH
|
||||
lda hposn_low,X
|
||||
sta GBASL
|
||||
|
||||
; calc GBASL/GBASH
|
||||
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
|
||||
|
||||
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
|
||||
|
||||
tax
|
||||
lda hposn_high,X
|
||||
sta GBASH
|
||||
lda hposn_low,X
|
||||
sta GBASL
|
||||
|
||||
; calc GBASL/GBASH
|
||||
; jsr HPOSN ; (Y,X),(A) (values stored in HGRX,XH,Y)
|
||||
|
||||
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
|
241
games/riven_hgr/keyboard.s
Normal file
241
games/riven_hgr/keyboard.s
Normal file
@ -0,0 +1,241 @@
|
||||
|
||||
;==============================
|
||||
; Handle Keypress
|
||||
;==============================
|
||||
handle_keypress:
|
||||
|
||||
; first handle joystick
|
||||
lda JOYSTICK_ENABLED
|
||||
beq actually_handle_keypress
|
||||
|
||||
; only check joystick every-other frame
|
||||
lda FRAMEL
|
||||
and #$1
|
||||
beq actually_handle_keypress
|
||||
|
||||
check_button:
|
||||
lda PADDLE_BUTTON0
|
||||
bpl button_clear
|
||||
|
||||
lda JS_BUTTON_STATE
|
||||
bne js_check
|
||||
|
||||
lda #1
|
||||
sta JS_BUTTON_STATE
|
||||
lda #' '
|
||||
jmp handle_input
|
||||
|
||||
button_clear:
|
||||
lda #0
|
||||
sta JS_BUTTON_STATE
|
||||
|
||||
js_check:
|
||||
; jsr handle_joystick
|
||||
|
||||
js_check_left:
|
||||
; lda value0
|
||||
; cmp #$20
|
||||
; bcs js_check_right ; if less than 32, left
|
||||
; lda #'A'
|
||||
; bne handle_input
|
||||
|
||||
js_check_right:
|
||||
cmp #$40
|
||||
bcc js_check_up
|
||||
lda #'D'
|
||||
bne handle_input
|
||||
|
||||
js_check_up:
|
||||
; lda value1
|
||||
; cmp #$20
|
||||
; bcs js_check_down
|
||||
; lda #'W'
|
||||
|
||||
bne handle_input
|
||||
|
||||
js_check_down:
|
||||
cmp #$40
|
||||
bcc done_joystick
|
||||
lda #'S'
|
||||
bne handle_input
|
||||
|
||||
|
||||
done_joystick:
|
||||
|
||||
|
||||
|
||||
actually_handle_keypress:
|
||||
lda KEYPRESS
|
||||
bmi keypress
|
||||
|
||||
jmp no_keypress
|
||||
|
||||
keypress:
|
||||
and #$7f ; clear high bit
|
||||
cmp #' '
|
||||
beq handle_input ; make sure not to lose space
|
||||
and #$df ; convert uppercase to lower case
|
||||
|
||||
|
||||
handle_input:
|
||||
|
||||
pha
|
||||
jsr restore_bg_14x14 ; restore old background
|
||||
inc UPDATE_POINTER
|
||||
pla
|
||||
|
||||
;check_sound:
|
||||
; cmp #$14 ; control-T
|
||||
; bne check_joystick
|
||||
;
|
||||
; lda SOUND_STATUS
|
||||
; eor #SOUND_DISABLED
|
||||
; sta SOUND_STATUS
|
||||
; jmp done_keypress
|
||||
|
||||
; can't be ^J as that's the same as down
|
||||
;check_joystick:
|
||||
; cmp #$10 ; control-P
|
||||
; cmp #'J'
|
||||
; bne check_load
|
||||
|
||||
; lda JOYSTICK_ENABLED
|
||||
; eor #1
|
||||
; sta JOYSTICK_ENABLED
|
||||
; jmp done_keypress
|
||||
|
||||
;check_load:
|
||||
; cmp #$C ; control-L
|
||||
; bne check_save
|
||||
|
||||
; jsr load_game
|
||||
; jmp done_keypress
|
||||
|
||||
;check_save:
|
||||
; cmp #$13 ; control-S
|
||||
; bne check_left
|
||||
|
||||
; jsr save_game
|
||||
; jmp done_keypress
|
||||
|
||||
check_left:
|
||||
cmp #'A'
|
||||
beq left_pressed
|
||||
cmp #8 ; left key
|
||||
bne check_right
|
||||
left_pressed:
|
||||
lda CURSOR_X ; if 41<x<$FE don't decrement
|
||||
cmp #41
|
||||
bcc do_dec_cursor_x
|
||||
cmp #$FE
|
||||
bcc done_left_pressed
|
||||
do_dec_cursor_x:
|
||||
dec CURSOR_X
|
||||
done_left_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
check_right:
|
||||
cmp #'D'
|
||||
beq right_pressed
|
||||
cmp #$15 ; right key
|
||||
bne check_up
|
||||
right_pressed:
|
||||
lda CURSOR_X ; if 40<x<$FE don't increment
|
||||
cmp #40
|
||||
bcc do_inc_cursor_x
|
||||
cmp #$FE
|
||||
bcc done_right_pressed
|
||||
do_inc_cursor_x:
|
||||
inc CURSOR_X
|
||||
done_right_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
check_up:
|
||||
cmp #'W'
|
||||
beq up_pressed
|
||||
cmp #$0B ; up key
|
||||
bne check_down
|
||||
up_pressed:
|
||||
lda CURSOR_Y ; if 191<y<$F0 don't decrement
|
||||
cmp #191
|
||||
bcc do_dec_cursor_y
|
||||
cmp #$F0
|
||||
bcc done_up_pressed
|
||||
do_dec_cursor_y:
|
||||
dec CURSOR_Y
|
||||
dec CURSOR_Y
|
||||
dec CURSOR_Y
|
||||
dec CURSOR_Y
|
||||
|
||||
done_up_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
check_down:
|
||||
cmp #'S'
|
||||
beq down_pressed
|
||||
cmp #$0A
|
||||
bne check_return
|
||||
down_pressed:
|
||||
lda CURSOR_Y ; if 191<y<$EE don't decrement
|
||||
cmp #191
|
||||
bcc do_inc_cursor_y
|
||||
cmp #$EE
|
||||
bcc done_down_pressed
|
||||
do_inc_cursor_y:
|
||||
inc CURSOR_Y
|
||||
inc CURSOR_Y
|
||||
inc CURSOR_Y
|
||||
inc CURSOR_Y
|
||||
done_down_pressed:
|
||||
jmp done_keypress
|
||||
|
||||
;check_escape:
|
||||
; cmp #27
|
||||
; bne check_return
|
||||
;escape_pressed:
|
||||
; inc ESCAPE_PRESSED
|
||||
|
||||
; jmp done_keypress
|
||||
|
||||
check_return:
|
||||
cmp #' '
|
||||
beq return_pressed
|
||||
cmp #13
|
||||
bne done_keypress
|
||||
|
||||
return_pressed:
|
||||
|
||||
; lda IN_SPECIAL
|
||||
; beq not_special_return
|
||||
|
||||
;special_return:
|
||||
; jsr handle_special
|
||||
|
||||
; special case, don't make cursor visible
|
||||
; jmp no_keypress
|
||||
|
||||
;not_special_return:
|
||||
|
||||
; lda IN_RIGHT
|
||||
; beq not_right_return
|
||||
|
||||
; cmp #1
|
||||
; beq right_return
|
||||
|
||||
;right_uturn:
|
||||
; jsr uturn
|
||||
; jmp no_keypress
|
||||
|
||||
;right_return:
|
||||
; jsr turn_right
|
||||
jmp no_keypress
|
||||
|
||||
done_keypress:
|
||||
lda #1 ; make cursor visible
|
||||
sta CURSOR_VISIBLE
|
||||
|
||||
no_keypress:
|
||||
bit KEYRESET
|
||||
rts
|
||||
|
||||
|
@ -166,11 +166,41 @@ done_setup_sound:
|
||||
; init
|
||||
;===================================
|
||||
|
||||
lda #$0
|
||||
lda #$20
|
||||
sta HGR_PAGE
|
||||
jsr hgr_make_tables
|
||||
|
||||
lda #0
|
||||
sta JOYSTICK_ENABLED
|
||||
sta UPDATE_POINTER
|
||||
|
||||
lda #20
|
||||
sta CURSOR_X
|
||||
sta CURSOR_Y
|
||||
|
||||
jsr save_bg_14x14 ; save old bg
|
||||
|
||||
blah:
|
||||
|
||||
jsr handle_keypress
|
||||
|
||||
lda UPDATE_POINTER
|
||||
beq no_draw_pointer
|
||||
|
||||
lda #0
|
||||
sta UPDATE_POINTER
|
||||
|
||||
jsr save_bg_14x14 ; save old bg
|
||||
|
||||
|
||||
lda #<finger_point_sprite
|
||||
sta INL
|
||||
lda #>finger_point_sprite
|
||||
sta INH
|
||||
jsr hgr_draw_sprite_14x14
|
||||
|
||||
no_draw_pointer:
|
||||
|
||||
jmp blah
|
||||
|
||||
.if 0
|
||||
@ -397,11 +427,15 @@ init_vars:
|
||||
|
||||
; .include "lc_detect.s"
|
||||
|
||||
.include "keyboard.s"
|
||||
|
||||
.include "hgr_14x14_sprite.s"
|
||||
|
||||
new_title:
|
||||
.incbin "graphics/maglev1.hgr.zx02"
|
||||
|
||||
.include "common_sprites.inc"
|
||||
|
||||
.if 0
|
||||
|
||||
.include "graphics/title_sprites.inc"
|
||||
|
@ -165,6 +165,9 @@ SPRITE_X = $B8 ; title
|
||||
HGR_PAGE = $B9 ; title
|
||||
MENU_OPTION = $BA ; title
|
||||
WHICH_CURSOR = $BB ; title
|
||||
CURSOR_X = $BC
|
||||
CURSOR_Y = $BD
|
||||
UPDATE_POINTER = $BE
|
||||
|
||||
WHICH_SLOT = $DA
|
||||
JS_BUTTON_STATE = $DB
|
||||
|
Loading…
Reference in New Issue
Block a user