diff --git a/Masks/bunny_hood.asm b/Masks/bunny_hood.asm index d061df6..8a602c1 100644 --- a/Masks/bunny_hood.asm +++ b/Masks/bunny_hood.asm @@ -24,21 +24,21 @@ org $07A494 LinkItem_Ether: { JSR Link_CheckNewY_ButtonPress : BCC .return + LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state - LDA $6C : BNE .return ; doorway - LDA $0FFC : BNE .return ; cant open menu - - LDY.b #$04 - LDA.b #$23 - + LDA $6C : BNE .return ; in a doorway + LDA $0FFC : BNE .return ; can't open menu + + LDY.b #$04 : LDA.b #$23 JSL AddTransformationCloud - LDA $02B2 : CMP #$01 : BNE .continue ; is the hood already on? - LDA #$10 : STA $BC ; take the hood off - STZ $02B2 - BRA .return ; do not. -.continue - LDA #$37 : STA $BC - LDA #$01 : STA $02B2 ; set the bunny hood on + LDA.b #$14 : JSR Player_DoSfx2 + + LDA $02B2 : CMP #$04 : BEQ .unequip ; is the hood already on? + LDA #$37 : STA $BC ; change link's sprite + LDA #$04 : STA $02B2 + BRA .return +.unequip + LDA #$10 : STA $BC : STZ $02B2 ; take the hood off .return CLC @@ -48,37 +48,30 @@ LinkItem_Ether: org $378000 incbin bunny_link.4bpp -namespace BunnyHood -{ - Main: - { - lorom - org $87E330 - JSR $FD66 - CLC - org $87FD66 - JSL $20AF20 - RTS +org $87E330 +JSR $FD66 +CLC - org $20AF20 - CPX.b #$11 : BCS end ; speed value upper bound check - LDA.w $0202 ; check the current item - CMP.b #$16 : BNE end ; is it the bunny hood? - LDA.w $02B2 ; did you put it on? - BEQ end - LDA $20AF70,X ; load new speed values - CLC - RTL +org $87FD66 +JSL $20AF20 +RTS - end: { - LDA $87E227,X ; load native speed values - CLC - RTL - } +org $20AF20 +CPX.b #$11 : BCS end ; speed value upper bound check +LDA.w $0202 ; check the current item +CMP.b #$16 : BNE end ; is it the bunny hood? +LDA.w $02B2 ; did you put it on? +BEQ end +LDA $20AF70,X ; load new speed values +CLC +RTL - org $20AF70 ; this selects the new speed values - db $20, $12, $0a, $18, $10, $08, $08, $04, $0c, $10, $09, $19, $14, $0d, $10, $08, $40 - } ; label Main +end: { + LDA $87E227,X ; load native speed values + CLC + RTL +} -} ; namespace BunnyHood +org $20AF70 ; this selects the new speed values +db $20, $12, $0a, $18, $10, $08, $08, $04, $0c, $10, $09, $19, $14, $0d, $10, $08, $40 \ No newline at end of file diff --git a/Masks/deku_mask.asm b/Masks/deku_mask.asm index af26b8a..30b1b2a 100644 --- a/Masks/deku_mask.asm +++ b/Masks/deku_mask.asm @@ -4,30 +4,43 @@ incsrc "../Sprites/sprite_functions_hooks.asm" org $008A01 LDA $BC + +; ============================================================================= + org $07A64B LinkItem_Quake: { JSR Link_CheckNewY_ButtonPress : BCC .return + LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state - LDA $6C : BNE .return ; doorway + LDA $6C : BNE .return ; in a doorway + LDA $0FFC : BNE .return ; can't open menu - LDA $0FFC : BNE .return ; cantopen menu - - LDY.b #$04 - LDA.b #$23 - + LDY.b #$04 : LDA.b #$23 JSL AddTransformationCloud + LDA.b #$14 : JSR Player_DoSfx2 - LDA #$35 : STA $BC + LDA $02B2 : CMP #$01 : BEQ .unequip ; is the deku mask on? + LDA #$35 : STA $BC ; put the mask on + LDA #$01 : STA $02B2 + BRA .return +.unequip + + LDA #$10 : STA $BC : STZ $02B2 ; take the mask off .return + RTS } +; ============================================================================= + org $358000 incbin deku_link.bin +; ============================================================================= + org $1BEDF9 JSL Palette_ArmorAndGloves ; 4bytes RTL ; 1byte @@ -37,6 +50,8 @@ org $1BEE1B JSL Palette_ArmorAndGloves_part_two RTL +; ============================================================================= + ; Code : org $308000 Palette_ArmorAndGloves: @@ -92,14 +107,13 @@ Palette_ArmorAndGloves: RTL } - ; org $07A666 ; Deku_Entry: ; { ; LDA.b #$20 : STA $BC -; STA $7EC178 -; JSL Palette_ArmorAndGloves -; STZ $0710 + ; STA $7EC178 + ; JSL Palette_ArmorAndGloves + ; STZ $0710 ; RTS ; } diff --git a/Masks/wolf_mask.asm b/Masks/wolf_mask.asm index 2d9bf9c..e0533ca 100644 --- a/Masks/wolf_mask.asm +++ b/Masks/wolf_mask.asm @@ -1,9 +1,41 @@ -org $318000 -LinkItem_WolfMask: -{ +org $07A3DB +LinkItem_Flute: +org $07A313 +LinkItem_ShovelAndFlute: +{ + ; Play flute or use the Wolf Mask + LDA $0202 : CMP.b #$0D : BNE LinkItem_WolfMask + BRL LinkItem_Flute } +; TODO: Make sure there's no inaccessible code issues past here +; LinkItem_Shovel +org $07A32C +LinkItem_WolfMask: +{ + JSR Link_CheckNewY_ButtonPress : BCC .return + LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state + + LDA $6C : BNE .return ; in a doorway + LDA $0FFC : BNE .return ; can't open menu + + LDY.b #$04 : LDA.b #$23 + JSL AddTransformationCloud + LDA.b #$14 : JSR Player_DoSfx2 + + LDA $02B2 : CMP #$03 : BEQ .unequip ; is the wolf mask already on? + LDA #$38 : STA $BC ; change link's sprite + LDA #$03 : STA $02B2 + BRA .return + +.unequip + LDA #$10 : STA $BC : STZ $02B2 ; take the mask off + +.return + CLC + RTS +} org $388000 incbin wolf_link.4bpp \ No newline at end of file diff --git a/Masks/zora_mask.asm b/Masks/zora_mask.asm index 78a50c3..44bd5db 100644 --- a/Masks/zora_mask.asm +++ b/Masks/zora_mask.asm @@ -4,21 +4,24 @@ org $07A569 LinkItem_ZoraMask: { JSR Link_CheckNewY_ButtonPress : BCC .return + LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state - LDA $6C : BNE .return ; doorway + LDA $6C : BNE .return ; in a doorway + LDA $0FFC : BNE .return ; can't open menu - LDA $0FFC : BNE .return ; cantopen menu - - LDY.b #$04 - LDA.b #$23 - + LDY.b #$04 : LDA.b #$23 JSL AddTransformationCloud - LDA.b #$14 : JSR Player_DoSfx2 + LDA $02B2 : CMP #$02 : BEQ .unequip ; is the zora mask on? LDA #$36 : STA $BC + LDA #$02 : STA $02B2 + BRA .return +.unequip + LDA #$10 : STA $BC : STZ $02B2 ; take the mask off .return + CLC RTS } diff --git a/Oracle_main.asm b/Oracle_main.asm index 8d85fbc..6333083 100644 --- a/Oracle_main.asm +++ b/Oracle_main.asm @@ -22,6 +22,9 @@ namespace Oracle incsrc "Util/ram.asm" incsrc "Util/functions.asm" + incsrc "Graphics/boat_gfx.asm" + print "End of Graphics/boat_gfx.asm ", pc + ; --------------------------------------------------------- incsrc "KeyBlock/keyblock.asm" print "End of KeyBlock/keyblock.asm ", pc @@ -61,15 +64,19 @@ namespace Oracle ; --------------------------------------------------------- incsrc "Masks/mask_routines.asm" + ; --------------------------------------------------------- incsrc "Masks/deku_mask.asm" print "End of Masks/deku_mask.asm ", pc + ; --------------------------------------------------------- incsrc "Masks/zora_mask.asm" print "End of Masks/zora_mask.asm ", pc + ; --------------------------------------------------------- incsrc "Masks/wolf_mask.asm" print "End of Masks/wolf_mask.asm ", pc + ; --------------------------------------------------------- incsrc "Masks/bunny_hood.asm" print "End of Masks/bunny_hood.asm ", pc