From 4c462958abe1b851295e61343481ae758a34628a Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 1 Jun 2023 16:45:32 -0400 Subject: [PATCH] sb: title keyboard navigation --- games/sb/TODO | 3 +- games/sb/graphics/Makefile | 4 +- games/sb/title.s | 91 +++++++++++++++++++++++++++++++++----- games/sb/zp.inc | 25 ++--------- 4 files changed, 87 insertions(+), 36 deletions(-) diff --git a/games/sb/TODO b/games/sb/TODO index 51e39843..14f1c73f 100644 --- a/games/sb/TODO +++ b/games/sb/TODO @@ -1,7 +1,8 @@ Title + Fix menu options -+ Keyboard controls ++ Keyboard navigation + Add cheat loading screen ++ Only play opening sound once? Duck: + Lots diff --git a/games/sb/graphics/Makefile b/games/sb/graphics/Makefile index e794afbc..4da10a5e 100644 --- a/games/sb/graphics/Makefile +++ b/games/sb/graphics/Makefile @@ -104,8 +104,8 @@ czmg4ap_title.hgr: czmg4ap_title.png #### title_sprites.inc: czmg4ap_title_sprites.png - $(HGR_SPRITE) -s -l empty_sprite czmg4ap_title_sprites.png 105 131 118 137 > title_sprites.inc - $(HGR_SPRITE) -s -l arrow_sprite czmg4ap_title_sprites.png 105 111 118 117 >> title_sprites.inc + $(HGR_SPRITE) -s -l empty_sprite czmg4ap_title_sprites.png 105 131 118 138 > title_sprites.inc + $(HGR_SPRITE) -s -l arrow_sprite czmg4ap_title_sprites.png 105 111 118 118 >> title_sprites.inc $(HGR_SPRITE) -s -l purple_sprite czmg4ap_title_sprites.png 175 83 230 102 >> title_sprites.inc diff --git a/games/sb/title.s b/games/sb/title.s index 906d7b7d..44487a40 100644 --- a/games/sb/title.s +++ b/games/sb/title.s @@ -128,7 +128,7 @@ load_title_image: ;========================== ; Play sound ;=========================== - +say_purple: jsr play_purple ;========================== @@ -145,10 +145,16 @@ load_title_image: sta SPRITE_Y jsr hgr_draw_sprite + lda #0 + sta MENU_ITEM +main_loop: ;========================== ; Draw arrow ;=========================== +draw_arrow: + ldx MENU_ITEM + stx OLD_MENU_ITEM lda #empty_sprite + sta INH + lda #(105/7) + sta SPRITE_X + lda arrow_y,X + sta SPRITE_Y + jsr hgr_draw_sprite + + jmp draw_arrow + + +load_from_arrow: + inc MENU_ITEM ; it's zero indexed + +load_new_program: + lda MENU_ITEM sta WHICH_LOAD rts @@ -198,3 +263,7 @@ vid_top: purple_data: .incbin "sound/purple.btc.zx02" + + ; offsets of arrow +arrow_y: + .byte 111,121,131,141,151,161 diff --git a/games/sb/zp.inc b/games/sb/zp.inc index 387dcddb..f3262b63 100644 --- a/games/sb/zp.inc +++ b/games/sb/zp.inc @@ -45,31 +45,12 @@ SOUND_STATUS = $67 SOUND_DISABLED = $80 SOUND_IN_LC = $01 ; $01 sound effects in language card SOUND_MOCKINGBOARD = $02 ; mockingboard detected +MENU_ITEM = $68 +OLD_MENU_ITEM = $69 -;WAITING = $62 -;LETTERL = $63 -;LETTERH = $64 -;LETTERX = $65 -;LETTERY = $66 -;LETTERD = $67 -;LETTER = $68 -;BLARGH = $69 - - ;FACTOR_I = $66 - ;FACTOR_F = $67 - ;DX_I = $68 - ;DX_F = $69 - ;SPACEX_I = $6A - ;SPACEX_F = $6B - ;CX_I = $6C - ;CX_F = $6D - ;DY_I = $6E - ;DY_F = $6F - - -ZPOS = $78 +;ZPOS = $78 REGISTER_DUMP = $70 A_FINE_TONE = $70