From 6462d1f4b9cc74f2324c606120dbac5d8aed7e5e Mon Sep 17 00:00:00 2001 From: Karkat Date: Sat, 27 May 2017 00:40:53 -0400 Subject: [PATCH] let's dev 5/27/2017 free world maps medallions for swordless hooks for curtains for swordless --- LTTP_RND_GeneralBugfixes.asm | 2 +- events.asm | 4 ++++ hooks.asm | 13 ++++++++++ inventory.asm | 1 - newitems.asm | 3 +++ pendantcrystalhud.asm | 35 +++++++++++++++++++++++---- swordswap.asm | 27 +++++++++++++++++++++ tables.asm | 46 +++++++++--------------------------- 8 files changed, 90 insertions(+), 41 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index c3b5ace..a8c4b89 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF db #$00 ; expand file to 2mb org $1FFFF8 ; timestamp rom -dl #$20170525 +dl #$20170527 ;================================================================================ diff --git a/events.asm b/events.asm index 443eb4d..d6c5657 100644 --- a/events.asm +++ b/events.asm @@ -44,6 +44,10 @@ OnNewFile: LDA.l StartingTime+2 : STA $7EF454+2 SEP #$20 ; set 8-bit accumulator ;LDA #$FF : STA !RNG_ITEM_LOCK_IN ; reset rng item lock-in + LDA.l SwordlessMode : BEQ + + ;LDA.b #$FF : STA $7EF2XX ; open aga tower curtain + ;LDA.b #$FF : STA $7EF2XX ; open skull woods curtain + + RTL ;-------------------------------------------------------------------------------- OnLinkDamaged: diff --git a/hooks.asm b/hooks.asm index 5d919f5..3ec176b 100644 --- a/hooks.asm +++ b/hooks.asm @@ -657,6 +657,19 @@ NOP LoadNarrowObjectReturn: ;-------------------------------------------------------------------------------- +;================================================================================ +; Swordless Mode +;-------------------------------------------------------------------------------- +org $07A49F ; <- 3A49F - Bank07.asm:5903 (LDA $7EF359 : INC A : AND.b #$FE : BEQ .cant_cast_play_sound) - Ether +JSL.l CheckMedallionSword +;-------------------------------------------------------------------------------- +org $07A574 ; <- 3A574 - Bank07.asm:6025 (LDA $7EF359 : INC A : AND.b #$FE : BEQ BRANCH_BETA) - Bombos +JSL.l CheckMedallionSword +;-------------------------------------------------------------------------------- +org $07A656 ; <- 3A656 - Bank07.asm:6133 (LDA $7EF359 : INC A : AND.b #$FE : BEQ BRANCH_BETA) - Quake +JSL.l CheckMedallionSword +;-------------------------------------------------------------------------------- + ;================================================================================ ; Medallion Tablets ;-------------------------------------------------------------------------------- diff --git a/inventory.asm b/inventory.asm index 3162fe9..52ed2b6 100644 --- a/inventory.asm +++ b/inventory.asm @@ -179,7 +179,6 @@ FullInventoryExternal: !SHAME_CHEST = "$7EF416" ; ---s ---- AddInventory: PHA : PHX : PHP - CPY.b #$0C : BNE + ; Blue Boomerang LDA !INVENTORY_SWAP : ORA #$80 : STA !INVENTORY_SWAP BRL .incrementCounts diff --git a/newitems.asm b/newitems.asm index f0c16d6..3f38728 100755 --- a/newitems.asm +++ b/newitems.asm @@ -260,6 +260,9 @@ AddReceivedItemExpandedGetItem: + CMP.b #$A0 : !BLT + : CMP.b #$B0 : !BGE + ; Free Small Key AND #$0F : TAX LDA $7EF37C, X : INC : STA $7EF37C, X ; Increment Key Count + TXA : ASL : CMP $040C : BNE ++ + LDA $7EF36F : INC : STA $7EF36F + ++ BRL .done + .done diff --git a/pendantcrystalhud.asm b/pendantcrystalhud.asm index 96a1927..78bb16e 100644 --- a/pendantcrystalhud.asm +++ b/pendantcrystalhud.asm @@ -28,18 +28,37 @@ GetCrystalNumber: PLX RTL ;================================================================================ +!INVENTORY_MAP = "$7EF368" OverworldMap_CheckObject: - LDA $FFFFFF PHX + LDA $FFFFFF LDA $7EF3C7 : CMP.b #$03 : BNE + ;LW Map + LDA.l MapMode : BEQ +++ + LDA.l !INVENTORY_MAP : AND.b #$01 : BNE +++ + PHX + LDA.l .lw_map_offsets, X : TAX ; put map offset into X + LDA.l !INVENTORY_MAP, X + PLX + AND.l .lw_map_masks, X : BNE +++ + BRL .fail + +++ LDA.l .lw_offsets, X - BPL +++ : CLC : BRA .done : +++ + BPL +++ : CLC : BRA .done : +++ ; don't display master sword TAX : BRA ++ + : CMP.b #$07 : BNE .fail ;DW Map - LDA.l .dw_offsets, X : TAX - BRA ++ + LDA.l MapMode : BEQ +++ + LDA.l !INVENTORY_MAP : AND.b #$02 : BNE +++ + PHX + LDA.l .dw_map_offsets, X : TAX ; put map offset into X + LDA.l !INVENTORY_MAP, X + PLX + AND.l .dw_map_masks, X : BNE +++ + BRL .fail + +++ + LDA.l .dw_offsets, X + TAX : BRA ++ SEC PLX RTL @@ -64,6 +83,14 @@ RTL db $02, $0A, $03, $FF .dw_offsets db $06, $08, $0C, $0B, $07, $09, $05 +.lw_map_offsets +db $01, $01, $00 +.dw_map_offsets +db $01, $01, $00, $00, $00, $01, $00 +.lw_map_masks +db $20, $10, $20, $00 +.dw_map_masks +db $02, $04, $80, $10, $40, $01, $04 ;================================================================================ SetLWDWMap: PHP diff --git a/swordswap.asm b/swordswap.asm index 5f8eb3c..a299d78 100644 --- a/swordswap.asm +++ b/swordswap.asm @@ -41,4 +41,31 @@ GetSmithSword: REP #$20 : LDA $7EF360 : !SUB.w #$000A : STA $7EF360 : SEP #$20 ; Take 10 rupees JSL ItemSet_SmithSword JMP.l Smithy_AlreadyGotSword +;================================================================================ +CheckMedallionSword: + ;LDA $FFFFFF + PHB : PHX : PHY + LDA.l SwordlessMode : BEQ + + LDA $8A : CMP.b #$70 : BNE ++ + LDA.l MireRequiredMedallion : TAX : LDA.l .medallion_type, X : CMP $0303 : BNE + + LDA $7EF2F0 : AND.b #$20 : BNE + + LDA.b #$08 : PHA : PLB ; set data bank to $08 + LDY.b #$02 : JSL.l Ancilla_CheckIfEntranceTriggered : BCS .permit ; misery mire + BRA + + ++ : CMP.b #$47 : BNE ++ + LDA.l TRockRequiredMedallion : TAX : LDA.l .medallion_type, X : CMP $0303 : BNE + + LDA $7EF2C7 : AND.b #$20 : BNE + + LDA.b #$08 : PHA : PLB ; set data bank to $08 + LDY.b #$03 : JSL.l Ancilla_CheckIfEntranceTriggered : BCS .permit ; turtle rock + ++ + + + PLY : PLX : PLB + LDA $7EF359 +RTL + .permit + PLY : PLX : PLB + LDA.b #$02 ; Pretend we have master sword +RTL +.medallion_type +db #$0F, #$10, #$11 ;================================================================================ \ No newline at end of file diff --git a/tables.asm b/tables.asm index 9390d1b..e5ba42e 100644 --- a/tables.asm +++ b/tables.asm @@ -75,7 +75,7 @@ PedestalMusicCheck: ;db #$01 ; #$01 = Master Sword (default) org $0589B0 ; PC 0x289B0 ; sprite_master_sword.asm : 179 PedestalSword: -db #$01 ; #$01 = Master Sword (default) +db #$6A ; #$01 = Master Sword (default) org $308029 ; PC 0x180029 SmithItemMode: @@ -141,6 +141,10 @@ org $30803E ; PC 0x18003E InvincibleGanon: db #$00 ; #$00 = Off (default) - #$01 = On ;-------------------------------------------------------------------------------- +org $30803F ; PC 0x18003F +SwordlessMode: +db #$00 ; #$00 = Off (default) - #$01 = On +;-------------------------------------------------------------------------------- org $308080 ; PC 0x180080 Upgrade5BombsRefill: db #$00 @@ -347,36 +351,6 @@ db $69 ; Eastern db $7F ; Darkness db $00 ; db $00 ; -; Values are as the table below. -;-------------------------------------------------------------------------------- -; THIS ENTIRE TABLE IS DEPRECATED -;org $0AC52D ; PC 0x5452D -;CrystalNum_Darkness: -;db $7F -; -;org $0AC527 ; PC 0x54527 -;CrystalNum_Swamp: -;db $79 -; -;org $0AC52C ; PC 0x5452C -;CrystalNum_Skull: -;db $6C ; 6C -; -;org $0AC52A ; PC 0x5452A -;CrystalNum_Thieves: -;db $6D -; -;org $0AC528 ; PC 0x54528 -;CrystalNum_Ice: -;db $6E -; -;org $0AC529 ; PC 0x54529 -;CrystalNum_Mire: -;db $6F -; -;org $0AC52B ; PC 0x5452B -;CrystalNum_TRock: -;db $7C ; 7C ;1 Indicator : 7F ;2 Indicator : 79 @@ -951,8 +925,10 @@ db $04 ;6A:Goal Item (Single/Triforce) ;6B:Goal Item (Multi/Power Star) -;70 - Map of --- -;71 - Map of --- +;DO NOT PLACE FREE DUNGEON ITEMS WITHIN THEIR OWN DUNGEONS - USE THE NORMAL VARIANTS + +;70 - Map of Light World +;71 - Map of Dark World ;72 - Map of Ganon's Tower ;73 - Map of Turtle Rock ;74 - Map of Thieves' Town @@ -968,8 +944,8 @@ db $04 ;7E - Map of Hyrule Castle ;7F - Map of Sewers -;80 - Compass of --- -;81 - Compass of --- +;80 - Compass of Light World +;81 - Compass of Dark World ;82 - Compass of Ganon's Tower ;83 - Compass of Turtle Rock ;84 - Compass of Thieves' Town