diff --git a/games/lemm/Makefile b/games/lemm/Makefile index 39220db6..e8eb9076 100644 --- a/games/lemm/Makefile +++ b/games/lemm/Makefile @@ -42,6 +42,7 @@ lemm.o: lemm.s zp.inc hardware.inc \ intro_level1.s update_time.s hgr_sprite.s draw_flames.s \ draw_door.s move_lemming.s draw_lemming.s \ interrupt_handler.s keyboard.s \ + pointer_sprites.inc \ level1.s ca65 -o lemm.o lemm.s -l lemm.lst diff --git a/games/lemm/common_sprites.inc b/games/lemm/common_sprites.inc deleted file mode 100644 index dadea43a..00000000 --- a/games/lemm/common_sprites.inc +++ /dev/null @@ -1,72 +0,0 @@ -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 - - - diff --git a/games/lemm/draw_pointer.s b/games/lemm/draw_pointer.s index 2c8f6e95..6303e70e 100644 --- a/games/lemm/draw_pointer.s +++ b/games/lemm/draw_pointer.s @@ -43,9 +43,9 @@ draw_pointer: - lda #point_sprite_l + lda #>crosshair_sprite_l sta INH jsr hgr_draw_sprite_14x14 diff --git a/games/lemm/graphics/sprites.png b/games/lemm/graphics/sprites.png index f2a66905..175ec5c8 100644 Binary files a/games/lemm/graphics/sprites.png and b/games/lemm/graphics/sprites.png differ diff --git a/games/lemm/hgr_14x14_sprite.s b/games/lemm/hgr_14x14_sprite.s index 376dfeb6..d913dc09 100644 --- a/games/lemm/hgr_14x14_sprite.s +++ b/games/lemm/hgr_14x14_sprite.s @@ -73,18 +73,18 @@ hgr_14x14_sprite_yloop: lda (GBASL),Y hds_smc3: - and point_mask_l,X + and crosshair_mask_l,X hds_smc1: - ora point_sprite_l,X + ora crosshair_sprite_l,X sta (GBASL),Y iny lda (GBASL),Y hds_smc4: - and point_mask_r,X + and crosshair_mask_r,X hds_smc2: - ora point_sprite_r,X + ora crosshair_sprite_r,X sta (GBASL),Y inx @@ -204,4 +204,4 @@ save_left_14x14: -.include "common_sprites.inc" +.include "pointer_sprites.inc" diff --git a/games/lemm/pointer_sprites.inc b/games/lemm/pointer_sprites.inc new file mode 100644 index 00000000..31641cf5 --- /dev/null +++ b/games/lemm/pointer_sprites.inc @@ -0,0 +1,138 @@ +crosshair_sprite: + +;=============== +; crosshair sprite +;=============== + +crosshair_sprite_l: ; X 654 3 210 +.byte $40 ; 0 100 0 000 +.byte $00 ; 0 000 0 000 +.byte $40 ; 0 100 0 000 +.byte $00 ; 0 000 0 000 +.byte $40 ; 0 100 0 000 +.byte $00 ; 0 000 0 000 +.byte $73 ; 0 111 0 011 +.byte $73 ; 0 111 0 011 +.byte $00 ; 0 000 0 000 +.byte $40 ; 0 100 0 000 +.byte $00 ; 0 000 0 000 +.byte $40 ; 0 100 0 000 +.byte $00 ; 0 000 0 000 +.byte $40 ; 0 100 0 000 + +crosshair_sprite_r: ; X 654 3 210 +.byte $01 ; 0 000 0 001 +.byte $00 ; 0 000 0 000 +.byte $01 ; 0 000 0 001 +.byte $00 ; 0 000 0 000 +.byte $01 ; 0 000 0 001 +.byte $00 ; 0 000 0 000 +.byte $66 ; 0 110 0 110 +.byte $66 ; 0 110 0 110 +.byte $00 ; 0 000 0 000 +.byte $01 ; 0 000 0 001 +.byte $00 ; 0 000 0 000 +.byte $01 ; 0 000 0 001 +.byte $00 ; 0 000 0 000 +.byte $01 ; 0 000 0 001 + +crosshair_mask_l: ; X 654 3 210 +.byte $bf ; 0 100 0 000 +.byte $ff ; 0 000 0 000 +.byte $bf ; 0 100 0 000 +.byte $ff ; 0 000 0 000 +.byte $bf ; 0 100 0 000 +.byte $ff ; 0 000 0 000 +.byte $8c ; 0 111 0 011 +.byte $8c ; 0 111 0 011 +.byte $ff ; 0 000 0 000 +.byte $bf ; 0 100 0 000 +.byte $ff ; 0 000 0 000 +.byte $bf ; 0 100 0 000 +.byte $ff ; 0 000 0 000 +.byte $bf ; 0 100 0 000 + +crosshair_mask_r: ; X 654 3 210 +.byte $fe ; 0 000 0 001 +.byte $ff ; 0 000 0 000 +.byte $fe ; 0 000 0 001 +.byte $ff ; 0 000 0 000 +.byte $fe ; 0 000 0 001 +.byte $ff ; 0 000 0 000 +.byte $99 ; 0 110 0 110 +.byte $99 ; 0 110 0 110 +.byte $ff ; 0 000 0 000 +.byte $fe ; 0 000 0 001 +.byte $ff ; 0 000 0 000 +.byte $fe ; 0 000 0 001 +.byte $ff ; 0 000 0 000 +.byte $fe ; 0 000 0 001 + + +;================== +; select sprite +;================== + +select_sprite_l: ; X 654 3 210 +.byte $7f ; 0 111 1 111 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $03 ; 0 000 0 011 +.byte $7f ; 0 111 1 111 + +select_sprite_r: ; X 654 3 210 +.byte $7f ; 0 111 1 111 +.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 $60 ; 0 110 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 $60 ; 0 110 0 000 +.byte $60 ; 0 110 0 000 +.byte $60 ; 0 110 0 000 +.byte $7f ; 0 111 1 111 + +select_mask_l: ; X 654 3 210 +.byte $80 ; 0 111 1 111 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $fc ; 0 000 0 011 +.byte $80 ; 0 111 1 111 + +select_mask_r: ; X 654 3 210 +.byte $80 ; 0 111 1 111 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $9f ; 0 110 0 000 +.byte $80 ; 0 111 1 111