From d504e33d52ccd30d5ef825f2a19b29c43601c40e Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Fri, 16 Jan 2026 12:26:29 -0600 Subject: [PATCH] Show button help on map screen --- dungeon_map/current_room_map.asm | 38 +++++++++++ dungeon_map/dungeon_switch.asm | 114 ++++++++++++++++++++++++++++++- dungeon_map/hooks.asm | 2 +- dungeon_map/map_bg3.asm | 27 +++++--- menu/map_icons_6.3bppc | Bin 7 -> 253 bytes menu/map_icons_b.3bpp | Bin 4608 -> 4608 bytes 6 files changed, 169 insertions(+), 12 deletions(-) diff --git a/dungeon_map/current_room_map.asm b/dungeon_map/current_room_map.asm index ff6b39b..fb78e76 100644 --- a/dungeon_map/current_room_map.asm +++ b/dungeon_map/current_room_map.asm @@ -1442,6 +1442,33 @@ DoorsMapSelectCursor: PLP RTL +DoorsMapCurrentRoom: + PHP + REP #$30 + + JSL DetectLinksSection + INC A + XBA + ASL A : ASL A : ASL A : ASL A + ORA.b RoomIndex + STA.l CurrentDisplayedRoom + + STZ.w GFXStripes + JSL ClearDoorsMapBG1 + JSL ClearDoorsMapBG2 + JSL DrawCurrentSupertile + + SEP #$30 + + LDA.b #$08 + STA.b $17 + + LDA.b #$20 + STA.w $012F + + PLP + RTL + DoorsMapNextEntrance: PHP REP #$30 @@ -1456,8 +1483,19 @@ DoorsMapNextEntrance: + TYA CMP.l CurrentDoorEntrance + BNE + + + TYA + ASL A + TAX + LDA.l EntranceData_room_id, X + STA.b $CA + + JSR GetSpecificRoomVisibility + BNE .acceptable BEQ .done ++ TYX LDA.l $82D1EF, X AND.w #$00FF diff --git a/dungeon_map/dungeon_switch.asm b/dungeon_map/dungeon_switch.asm index 6996abf..74a41bd 100644 --- a/dungeon_map/dungeon_switch.asm +++ b/dungeon_map/dungeon_switch.asm @@ -20,6 +20,9 @@ CheckSwitchMap: BIT.b #$20 BNE .next_entrance + BIT.b #$40 + BNE .current_room + AND.b #$0F BEQ .doors_done BIT.b #$08 : BEQ + : LDA.b #$00 : BRA .doors_move_cursor : + @@ -44,6 +47,13 @@ CheckSwitchMap: JSL DoorsMapChangeDungeon BRA .doors_done +.current_room + LDA.l CachedDungeonID + CMP.w DungeonID + BNE .doors_done + JSL DoorsMapCurrentRoom + BRA .doors_done + .doors_done REP #$20 LDA.w #$0002 ; ignore input! nothing to see here! @@ -204,6 +214,7 @@ DrawDungeonLabel: LDY.b #$20 + + ; Dungeon Label REP #$20 LDA.w #$E660 STA.w GFXStripes+$02, Y @@ -214,9 +225,110 @@ DrawDungeonLabel: STA.w GFXStripes+$06, Y LDA.l DungeonLabels+2, X STA.w GFXStripes+$08, Y + + TYA + CLC : ADC.w #$0008 + TAY + + ; L/R switch indicators + LDA.w #$E310 + STA.w GFXStripes+$02, Y + LDA.w #$E910 + STA.w GFXStripes+$0A, Y + LDA.w #$E318 + STA.w GFXStripes+$12, Y + LDA.w #$E918 + STA.w GFXStripes+$1A, Y + + LDA.w #$0300 + STA.w GFXStripes+$04, Y + STA.w GFXStripes+$0C, Y + STA.w GFXStripes+$14, Y + STA.w GFXStripes+$1C, Y + + LDA.w #$49AF + STA.w GFXStripes+$06, Y + STA.w GFXStripes+$16, Y + LDA.w #$099E + STA.w GFXStripes+$08, Y + STA.w GFXStripes+$18, Y + + LDA.w #$099F + STA.w GFXStripes+$0E, Y + STA.w GFXStripes+$1E, Y + LDA.w #$09AF + STA.w GFXStripes+$10, Y + STA.w GFXStripes+$20, Y + + TYA + CLC : ADC.w #$0020 + TAY + + LDA.l DRMode + BEQ .not_doors + LDA.l DungeonMapMode + BEQ .doors +.not_doors + JMP .skip_doors + +.doors + ; Select for Next Entrance indicator + LDA.w #$E311 + STA.w GFXStripes+$02, Y + LDA.w #$E319 + STA.w GFXStripes+$16, Y + + LDA.w #$0F00 + STA.w GFXStripes+$04, Y + STA.w GFXStripes+$18, Y + + LDA.w #$09B8 + LDX.b #$07 +- + STA.w GFXStripes+$06, Y + STA.w GFXStripes+$1A, Y + INC A + INY : INY + DEX + BPL - + + TYA + CLC : ADC.w #$0018 + TAY + + LDA.l CachedDungeonID + AND.w #$00FF + CMP.w DungeonID + BNE .skip_doors + + ; Y for Current Location indicator + LDA.w #$A411 + STA.w GFXStripes+$02, Y + LDA.w #$A419 + STA.w GFXStripes+$12, Y + + LDA.w #$0B00 + STA.w GFXStripes+$04, Y + STA.w GFXStripes+$14, Y + + LDA.w #$09A9 + LDX.b #$05 +- + STA.w GFXStripes+$06, Y + STA.w GFXStripes+$16, Y + INC A + INY : INY + DEX + BPL - + + TYA + CLC : ADC.w #$0014 + TAY + +.skip_doors SEP #$20 LDA.b #$FF - STA.w GFXStripes+$0A, Y + STA.w GFXStripes+$02, Y LDA.b #$01 STA.b NMISTRIPES diff --git a/dungeon_map/hooks.asm b/dungeon_map/hooks.asm index d0fc624..7661ffc 100644 --- a/dungeon_map/hooks.asm +++ b/dungeon_map/hooks.asm @@ -5,7 +5,7 @@ db $08 ; use AA1 = $1C for map stuff org $80E193 skip 4 -db $61, $62, $62, $D6 +db $61, $62, $63, $D6 org $8AE11D LDA.b #$1C diff --git a/dungeon_map/map_bg3.asm b/dungeon_map/map_bg3.asm index 8eea1cd..c0412d8 100644 --- a/dungeon_map/map_bg3.asm +++ b/dungeon_map/map_bg3.asm @@ -203,11 +203,11 @@ dw $1E60, $3EC0, $2111 dw $1F60, $3EC0, $2111 ; left side border -dw $6260, $2AC0, $2110 -dw $6B60, $2AC0, $6110 -dw $2263, $0100, $A100 -dw $2363, $0E40, $A101 -dw $2B63, $0100, $E100 +dw $6260, $1AC0, $2110 +dw $6B60, $1AC0, $6110 +dw $2262, $0100, $A100 +dw $2362, $0E40, $A101 +dw $2B62, $0100, $E100 ; right side top area border dw $4E60, $0100, $2100 @@ -229,12 +229,19 @@ dw $2E63, $0100, $A100 dw $2F63, $1A40, $A101 dw $3D63, $0100, $E100 -; blank between right side areas -dw $4E62, $1E40, $2111 -dw $6E62, $1E40, $2111 +; blank below left side +dw $4262, $4440, $2111 +dw $6262, $4440, $2111 -dw $4063, $4640, $2111 -dw $6063, $4640, $2111 +dw $8262, $1240, $2111 +dw $A262, $1240, $2111 +dw $C262, $1240, $2111 +dw $E262, $1240, $2111 +dw $0263, $1240, $2111 +dw $2263, $1240, $2111 + +dw $4263, $4440, $2111 +dw $6263, $4440, $2111 ; map area inside top area dw $6F60, $1A40, $1D11 diff --git a/menu/map_icons_6.3bppc b/menu/map_icons_6.3bppc index 22451a7ef97eeedeb4ef064b5071ad5875439051..39ff5afd5ce41797da4df7092bbad32a36a1f515 100644 GIT binary patch literal 253 zcmW-by-LGS07lQfH;oxOv~&_W<);S3kO$BbXsXaHs~`x9=%nD_QY6q=a1eX}!NG!) z_y~Cbac~d>FJvfUF^X>xgUiR6&iOuGpg(LKtL`3s2fIbr#TbXr{_CWag0aIO^ylwL zA>=@q4VF-d$y+@hojkgY9`i6gNq5O1it;q|;AoRe4g%yUqs%oJ)p$datsCqF7y)^{D5ap zb4uY~3>b1N95RrCZ?i<}X+cpE3icJ(z8HP`qI>lPYw#oAd3|TePoS%1?%~3*;+`+5 kz6xvf8)>ljuLtZh=dcl*$E#r&^TIh5