From c3f26476d4718e0e3956c3c848cfc604568451e8 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 5 Mar 2023 00:34:12 -0600 Subject: [PATCH] menu dark world location names --- Dungeons/keyblock.asm | 80 ++++++++++++------------ Menu/lw_map_names.asm | 65 -------------------- Menu/menu_gfx_table.asm | 4 +- Menu/menu_map_names.asm | 131 ++++++++++++++++++++++++++++++++++++++++ Menu/menu_text.asm | 13 ++-- 5 files changed, 183 insertions(+), 110 deletions(-) delete mode 100644 Menu/lw_map_names.asm create mode 100644 Menu/menu_map_names.asm diff --git a/Dungeons/keyblock.asm b/Dungeons/keyblock.asm index fe78ead..2536bde 100644 --- a/Dungeons/keyblock.asm +++ b/Dungeons/keyblock.asm @@ -1,47 +1,51 @@ -;=========================================================== +; ============================================================================= ; Key Block Object like Link's Awakening ; Overwrites the Prison Door ; +; Author: XaserLE +; Thanks: - PuzzleDude for finding a drawing bug and get rid of it +; - MathOnNapkins' Zelda Doc's +; - wiiqwertyuiop for his Zelda Disassembly ; -; WRITTEN: by XaserLE -; THANKS TO: -PuzzleDude for finding a drawing bug and get rid of it -; -MathOnNapkins' Zelda Doc's -; -wiiqwertyuiop for his Zelda Disassembly +; The blocks can be opened from up- or downside only +; left and right will not work (will try to fix this in the future). ; -; The blocks can be opened from up- or downside only, left and right will not work (will try to fix this in the future). -; The patch is "in place" so it doesn't overwrite other data or patches you added. -; -; PuzzleDudes Note: ; The key block must always be placed on EVEN x and y. -; The even x or y is: 00, 02, 04, 06, 08, 0A, 0C, 0E, 10, 12 etc. -; HM x and y value of the position of the key block must end with: 0, 2, 4, 6, 8, A, C, E. -;=========================================================== +; 00, 02, 04, 06, 08, 0A, 0C, 0E +; ============================================================================= -lorom +org $01EB8C +Object_KeyBlock: +{ + LDA $7EF36F ; load the small key counter + AND #$00FF ; check if we have at least one small key (AND will not be zero) + BEQ $4C ; if not (AND is zero), do nothing + + ; otherwise we will decrement the small key counter + ; and branch to the code that opens the prison door -ORG $01EB8C ; go to the code that loads the big key holding variable -LDA $7EF36F ; load the small key counter -AND #$00FF ; check if we have at least one small key (AND will not be zero) -BEQ $4C ; if not (AND is zero), don't do anything and especially don't give this "Eh? It's locked..." - message - ; otherwise we will decrement the small key counter and branch to the code that opens the prison door -LDA $7EF36F ; reload small key counter -DEC A ; remove one key -STA $7EF36F ; save the new value at small key counter position -BRA $05 ; branch to the code that opens the prison door + LDA $7EF36F ; reload small key counter + DEC A ; remove one key + STA $7EF36F ; save the new value at small key counter position + BRA $05 ; branch to the code that opens the prison door -; now correct a drawing bug in the original game that causes the floor tile under the door drawed odd -ORG $01EBC8 -LDA.w $9B5A,y -ORG $01EBD1 -LDA.w $9B54,y -ORG $01EBDA -LDA.w $9B5C,y -; draw values representation -; 50- / -; 52- normal -; 54- x mirror -; 56- normal -; 58- x mirror -; 5A- y mirror -; 5C- xy mirror -; 5E- y mirror \ No newline at end of file + ; Fix draw bug from floor tile left by block after unlock. + org $01EBC8 + LDA.w $9B5A,y + + org $01EBD1 + LDA.w $9B54,y + + org $01EBDA + LDA.w $9B5C,y + + ; Draw Values + ; 50 - / + ; 52 - normal + ; 54 - x mirror + ; 56 - normal + ; 58 - x mirror + ; 5A - y mirror + ; 5C - xy mirror + ; 5E - y mirror +} \ No newline at end of file diff --git a/Menu/lw_map_names.asm b/Menu/lw_map_names.asm deleted file mode 100644 index 63bfc53..0000000 --- a/Menu/lw_map_names.asm +++ /dev/null @@ -1,65 +0,0 @@ -OverworldLocationNames: - dw "RANCH___________" ; 00 - dw "RANCH___________" ; 01 - dw "PYRAMID_________" ; 02 - dw "LAND_OF_TREE____" ; 03 - dw "SNOW_MOUNTAIN___" ; 04 - dw "SNOW_MOUNTAIN___" ; 05 - dw "SNOW_MOUNTAIN___" ; 06 - dw "SNOW_MOUNTAIN___" ; 07 - dw "RANCH___________" ; 08 - dw "RANCH___________" ; 09 - dw "INN_____________" ; 0A - dw "KALYXO_CASTLE___" ; 0B - dw "KALYXO_CASTLE___" ; 0C - dw "POTION_SHOP_____" ; 0D - dw "HALL_OF_SECRETS_" ; 0E - dw "CEMETERY________" ; 0F - dw "TOADSTOOL_WOODS_" ; 10 - dw "RANCH_PATH______" ; 11 - dw "CROSSROADS______" ; 12 - dw "KALYXO_CASTLE___" ; 13 - dw "KALYXO_CASTLE___" ; 14 - dw "MOUNTAINSIDE____" ; 15 - dw "PATH_OF_SECRETS_" ; 16 - dw "ANCIENT_SHRINE__" ; 17 - dw "TOADSTOOL_WOODS_" ; 18 - dw "TOADSTOOL_WOODS_" ; 19 - dw "CROSSROADS______" ; 1A - dw "KALYXO_CASTLE___" ; 1B - dw "KALYXO_ROAD_____" ; 1C - dw "CROSSROADS______" ; 1D - dw "SUNKEN_CITY_____" ; 1E - dw "SUNKEN_CITY_____" ; 1F - dw "TOADSTOOL_WOODS_" ; 20 - dw "TOADSTOOL_WOODS_" ; 21 - dw "SWORDSMITHS_____" ; 22 - dw "WAYWARD_VILLAGE_" ; 23 - dw "WAYWARD_VILLAGE_" ; 24 - dw "VILLAGE_ROAD____" ; 25 - dw "SUNKEN_CITY_____" ; 26 - dw "SUNKEN_CITY_____" ; 27 - dw "TOADSTOOL_WOODS_" ; 28 - dw "TOADSTOOL_WOODS_" ; 29 - dw "VILLAGE_ROAD____" ; 2A - dw "WAYWARD_VILLAGE_" ; 2B - dw "WAYWARD_VILLAGE_" ; 2C - dw "VALLEY__________" ; 2D - dw "CITY_ROAD_______" ; 2E - dw "TAIL_PALACE_____" ; 2F - dw "PHANTOM_SHIP____" ; 30 - dw "PHANTOM_SHIP____" ; 31 - dw "SECRET_BEACH____" ; 32 - dw "LOOM_BEACH______" ; 33 - dw "LOOM_BEACH______" ; 34 - dw "BEACH_PATH______" ; 35 - dw "GARO_DESERT_____" ; 36 - dw "GARO_DESERT_____" ; 37 - dw "PHANTOM_SHIP____" ; 38 - dw "PHANTOM_SHIP____" ; 39 - dw "LOST_SEA________" ; 3A - dw "LOOM_BEACH______" ; 3B - dw "LOOM_BEACH______" ; 3C - dw "LOOM_WATERFALL__" ; 3D - dw "GARO_DESERT_____" ; 3E - dw "GARO_DESERT_____" ; 3F \ No newline at end of file diff --git a/Menu/menu_gfx_table.asm b/Menu/menu_gfx_table.asm index fca5170..03a1bad 100644 --- a/Menu/menu_gfx_table.asm +++ b/Menu/menu_gfx_table.asm @@ -12,7 +12,6 @@ NothingGFX: ; ------------------------------------- BowsGFX: - dw $20F5, $20F5, $20F5, $20F5 dw $28BA, $28E9, $28E8, $28CB ; Empty bow dw $28BA, $284A, $2849, $28CB ; Bow and arrows dw $28BA, $28E9, $28E8, $28CB ; Empty silvers bow @@ -134,6 +133,9 @@ StoneMaskGFX: WolfMaskGFX: dw $3086, $7086, $3087, $7087 + dw $3086, $7086, $3087, $7087 + dw $3086, $7086, $3087, $7087 + dw $3086, $7086, $3087, $7087 ; ------------------------------------- diff --git a/Menu/menu_map_names.asm b/Menu/menu_map_names.asm new file mode 100644 index 0000000..3e93eb5 --- /dev/null +++ b/Menu/menu_map_names.asm @@ -0,0 +1,131 @@ +OverworldLocationNames: + dw "RANCH___________" ; 00 + dw "RANCH___________" ; 01 + dw "PYRAMID_________" ; 02 + dw "LAND_OF_TREE____" ; 03 + dw "SNOW_MOUNTAIN___" ; 04 + dw "SNOW_MOUNTAIN___" ; 05 + dw "SNOW_MOUNTAIN___" ; 06 + dw "SNOW_MOUNTAIN___" ; 07 + dw "RANCH___________" ; 08 + dw "RANCH___________" ; 09 + dw "INN_____________" ; 0A + dw "KALYXO_CASTLE___" ; 0B + dw "KALYXO_CASTLE___" ; 0C + dw "POTION_SHOP_____" ; 0D + dw "HALL_OF_SECRETS_" ; 0E + dw "CEMETERY________" ; 0F + dw "TOADSTOOL_WOODS_" ; 10 + dw "RANCH_PATH______" ; 11 + dw "CROSSROADS______" ; 12 + dw "KALYXO_CASTLE___" ; 13 + dw "KALYXO_CASTLE___" ; 14 + dw "MOUNTAINSIDE____" ; 15 + dw "PATH_OF_SECRETS_" ; 16 + dw "ANCIENT_SHRINE__" ; 17 + dw "TOADSTOOL_WOODS_" ; 18 + dw "TOADSTOOL_WOODS_" ; 19 + dw "CROSSROADS______" ; 1A + dw "KALYXO_CASTLE___" ; 1B + dw "KALYXO_ROAD_____" ; 1C + dw "CROSSROADS______" ; 1D + dw "SUNKEN_CITY_____" ; 1E + dw "SUNKEN_CITY_____" ; 1F + dw "TOADSTOOL_WOODS_" ; 20 + dw "TOADSTOOL_WOODS_" ; 21 + dw "SWORDSMITHS_____" ; 22 + dw "WAYWARD_VILLAGE_" ; 23 + dw "WAYWARD_VILLAGE_" ; 24 + dw "VILLAGE_ROAD____" ; 25 + dw "SUNKEN_CITY_____" ; 26 + dw "SUNKEN_CITY_____" ; 27 + dw "TOADSTOOL_WOODS_" ; 28 + dw "TOADSTOOL_WOODS_" ; 29 + dw "VILLAGE_ROAD____" ; 2A + dw "WAYWARD_VILLAGE_" ; 2B + dw "WAYWARD_VILLAGE_" ; 2C + dw "VALLEY__________" ; 2D + dw "CITY_ROAD_______" ; 2E + dw "TAIL_PALACE_____" ; 2F + dw "PHANTOM_SHIP____" ; 30 + dw "PHANTOM_SHIP____" ; 31 + dw "SECRET_BEACH____" ; 32 + dw "LOOM_BEACH______" ; 33 + dw "LOOM_BEACH______" ; 34 + dw "BEACH_PATH______" ; 35 + dw "GARO_DESERT_____" ; 36 + dw "GARO_DESERT_____" ; 37 + dw "PHANTOM_SHIP____" ; 38 + dw "PHANTOM_SHIP____" ; 39 + dw "LOST_SEA________" ; 3A + dw "LOOM_BEACH______" ; 3B + dw "LOOM_BEACH______" ; 3C + dw "LOOM_WATERFALL__" ; 3D + dw "GARO_DESERT_____" ; 3E + dw "GARO_DESERT_____" ; 3F + +DarkWorldLocationNames: + dw "_______________" ; 00 + dw "_______________" ; 01 + dw "_______________" ; 02 + dw "_______________" ; 03 + dw "_______________" ; 04 + dw "_______________" ; 05 + dw "_______________" ; 06 + dw "_______________" ; 07 + dw "_______________" ; 08 + dw "_______________" ; 09 + dw "_______________" ; 0A + dw "_______________" ; 0B + dw "_______________" ; 0C + dw "_______________" ; 0D + dw "_______________" ; 0E + dw "_______________" ; 0F + dw "_______________" ; 10 + dw "_______________" ; 11 + dw "_______________" ; 12 + dw "_______________" ; 13 + dw "_______________" ; 14 + dw "_______________" ; 15 + dw "_______________" ; 16 + dw "_______________" ; 17 + dw "_______________" ; 18 + dw "_______________" ; 19 + dw "_______________" ; 1A + dw "_______________" ; 1B + dw "_______________" ; 1C + dw "_______________" ; 1D + dw "_______________" ; 1E + dw "_______________" ; 1F + dw "_______________" ; 20 + dw "_______________" ; 21 + dw "_______________" ; 22 + dw "_______________" ; 23 + dw "_______________" ; 24 + dw "_______________" ; 25 + dw "_______________" ; 26 + dw "_______________" ; 27 + dw "_______________" ; 28 + dw "_______________" ; 29 + dw "_______________" ; 2A + dw "_______________" ; 2B + dw "_______________" ; 2C + dw "_______________" ; 2D + dw "_______________" ; 2E + dw "_______________" ; 2F + dw "_______________" ; 30 + dw "_______________" ; 31 + dw "_______________" ; 32 + dw "_______________" ; 33 + dw "_______________" ; 34 + dw "_______________" ; 35 + dw "_______________" ; 36 + dw "_______________" ; 37 + dw "_______________" ; 38 + dw "_______________" ; 39 + dw "_______________" ; 3A + dw "_______________" ; 3B + dw "_______________" ; 3C + dw "_______________" ; 3D + dw "_______________" ; 3E + dw "_______________" ; 3F diff --git a/Menu/menu_text.asm b/Menu/menu_text.asm index f992d5a..d754272 100644 --- a/Menu/menu_text.asm +++ b/Menu/menu_text.asm @@ -143,10 +143,10 @@ Menu_DrawItemName: ; ============================================================================= ; ;LDX.w $7E00A0 ; load room number -;------------------------------------- +; ------------------------------------- TestLocationName: dw "YOUR_HOUSE__" -;------------------------------------- +; ------------------------------------- DrawLocationName: { @@ -160,22 +160,23 @@ DrawLocationName: ASL : ASL : ASL : ASL : ASL LDY.w #$000 TAX -.loop + +.draw_overworld_loop LDA.w OverworldLocationNames, X ; Load your text character STA.w $12CC, Y ; Store into the buffer INX : INX - INY : INY : CPY #$0020 : BCC .loop + INY : INY : CPY #$0020 : BCC .draw_overworld_loop RTS .indoors LDX.w #$16 - .loop2 +.draw_indoors_loop LDA.w TestLocationName, X STA.w $12CC, X DEX : DEX - BPL .loop2 + BPL .draw_indoors_loop RTS }