From 6b6b0763bd4bc67a3d1649bffbfd521553ac0760 Mon Sep 17 00:00:00 2001 From: scawful Date: Fri, 10 Mar 2023 23:10:19 -0600 Subject: [PATCH] start disassembling fairy flipper code --- Masks/zora_mask.asm | 142 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 141 insertions(+), 1 deletion(-) diff --git a/Masks/zora_mask.asm b/Masks/zora_mask.asm index 2acf404..fdb75a6 100644 --- a/Masks/zora_mask.asm +++ b/Masks/zora_mask.asm @@ -1,3 +1,9 @@ +; ============================================================================= +; Zora Mask +; Fairy Flippers RAM Position $7EF33C - 01 + +; Normal Flippers RAM Position $7ef356 - 01 + ; ============================================================================= org $07A569 @@ -14,6 +20,7 @@ LinkItem_ZoraMask: LDA.b #$14 : JSR Player_DoSfx2 LDA $02B2 : CMP #$02 : BEQ .unequip ; is the zora mask on? + JSL UpdateZoraPalette LDA #$36 : STA $BC LDA #$02 : STA $02B2 BRA .return @@ -31,4 +38,137 @@ LinkItem_ZoraMask: org $368000 incbin gfx/zora_link.4bpp -; ============================================================================= \ No newline at end of file +; ============================================================================= + +UpdateZoraPalette: +{ + REP #$30 ; change 16 bit mode + LDX #$001E + + .loop + LDA.l zora_palette, X : STA $7EC6E0, X + DEX : DEX : BPL .loop + + SEP #$30 ; go back to 8 bit mode + INC $15 ; update the palette + RTL +} + +; TODO: Change from "bunny palette" to blue zora palette colors +zora_palette: + dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$19FD, #$14B6 + dw #$55BB, #$362A, #$3F4E, #$162B, #$22D0, #$2E5A, #$1970, #$7616 + dw #$6565, #$7271, #$2AB7, #$477E, #$1997, #$14B5, #$459B, #$69F2 + dw #$7AB8, #$2609, #$19D8, #$3D95, #$567C, #$1890, #$52F6, #$2357, #$0000 + +; ============================================================================= + +LinkItem_UsingZoraMask: +{ + +} + +; ============================================================================= +; Disassembled/Debugged Code of Conn's Zora Flippers +; May God Give Me Strength + +; ============================================================================= +; 22E2A0 +; +; Description: + JSR $E530 + JSL $22E670 + LDA $7F500E + CMP #$01 + BEQ $22E2B2 + JMP $E2F0 + LDA $F0 + SEC + SBC #$0B + BCS $22E2BC + JMP $E2F0 + LDA $F0 + SEC + SBC #$4B + BCS $22E2CB + LDA #$40 + STA $F0 + JMP $879657 + LDA $F0 + SEC + SBC #$BB + BCS $22E2D5 + JMP $E2F0 + +; ================================================================= +; 22E2F0 + + LDA $5D + ASL + TAX + JMP $878106 + + +; ================================================================= +; 22E670 + + LDA $7F500E ; probably free ram + CMP #$01 + BEQ $22E679 + RTL +;------- +; Magic draining loop + LDA $7EF36E ; Load magic + BNE $22E688 ; branch if != 0 + LDA #$3C + STA $012E + JMP $22E141 + LDA $7F500D ; load timer + BNE $22E69E ; branch if != 0 + LDA #$18 + STA $7F500D ; set timer to 18 + LDA $7EF36E ; load magic + DEC ; decrease magic by 1 + STA $7EF36E ; store new magic + RTL +;------- + DEC + STA $7F500D ; decrease timer + RTL + +; ================================================================= +; 22E600 +; Possibly relevant, unconfirmed + + LDA $7EF34A + AND #$00FF + CMP #$0001 + BEQ $22E611 + LDA $7EF35C,X + RTL +;------- + LDA $7EF33B + AND #$00FF + CMP #$0001 + BNE $22E622 + LDA $7EF35C,X + RTL +;------- + SEP #$30 + LDA #$3C + STA $139F + STA $13A1 + STA $13DF + STA $13E1 + REP #$30 + LDA $7EF35C,X + RTL + +; ================================================================= +; 22EF50 +; Possibly relevant + + LDA $7EF3CC + CMP #$0D + BEQ $22EF59 + RTL