From fcf843b626e3453e7f34e713aa5e325b705fac01 Mon Sep 17 00:00:00 2001 From: scawful Date: Mon, 8 Jul 2024 20:27:28 -0400 Subject: [PATCH] add Moosh form to Eon Abyss Song of Soaring --- Items/ocarina.asm | 11 +++++++---- Masks/all_masks.asm | 6 +++++- Masks/gfx/moosh.4bpp | Bin 0 -> 28672 bytes Masks/mask_routines.asm | 31 +++++++++++++++++++++++++++---- Masks/moosh.asm | 35 +++++++++++++++++++++++++++++++++++ Oracle_main.asm | 2 +- 6 files changed, 75 insertions(+), 10 deletions(-) create mode 100644 Masks/gfx/moosh.4bpp create mode 100644 Masks/moosh.asm diff --git a/Items/ocarina.asm b/Items/ocarina.asm index 497359e..53ff9fc 100644 --- a/Items/ocarina.asm +++ b/Items/ocarina.asm @@ -185,9 +185,12 @@ LinkItem_NewFlute: ; Are we indoors? LDA.b $1B : BNE .return - ; Are we in the dark world? The flute doesn't work there. - LDA.b $8A : AND.b #$40 : BNE .return - + ; Are we in the dark world? Then become Moosh form. + LDA.b $8A : AND #$40 : BEQ .light_world + JSL Link_TransformMoosh + RTS + .light_world + ; Also doesn't work in special areas like Master Sword area. LDA.b $10 : CMP.b #$0B : BEQ .return @@ -398,7 +401,7 @@ UpdateFluteSong_Long: ; R Button Pressed - Increment song INC $030F ; increment $030F Song RAM LDA $030F ; load incremented Song RAM - CMP.b #$04 + CMP.b #$05 BCS .wrap_to_min .update_song RTL diff --git a/Masks/all_masks.asm b/Masks/all_masks.asm index 62ec36e..5ba9e55 100644 --- a/Masks/all_masks.asm +++ b/Masks/all_masks.asm @@ -60,4 +60,8 @@ org $388000 org $3B8000 incbin gfx/gbc_link.4bpp - incsrc "Masks/gbc_form.asm" \ No newline at end of file + incsrc "Masks/gbc_form.asm" + +org $338000 + incbin gfx/moosh.4bpp + incsrc "Masks/moosh.asm" diff --git a/Masks/gfx/moosh.4bpp b/Masks/gfx/moosh.4bpp new file mode 100644 index 0000000000000000000000000000000000000000..0273a7d1f2f5df4ba3ef2c51e43a19b73a2f2bf7 GIT binary patch literal 28672 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 JCh(1Z`u}DosOA6w literal 0 HcmV?d00001 diff --git a/Masks/mask_routines.asm b/Masks/mask_routines.asm index d05f51f..b26d08e 100644 --- a/Masks/mask_routines.asm +++ b/Masks/mask_routines.asm @@ -108,6 +108,7 @@ Palette_ArmorAndGloves: CMP.b #$04 : BEQ .bunny_hood CMP.b #$05 : BEQ .minish_form CMP.b #$06 : BEQ .gbc_form + CMP.b #$07 : BEQ .moosh_form JMP .original_sprite .deku_mask @@ -139,11 +140,13 @@ Palette_ArmorAndGloves: LDA.b #$39 : STA $BC : JMP .original_palette .gbc_form - ; Load GBC Link Location - LDA.b #$3B : STA $BC JSL UpdateGbcPalette RTL + .moosh_form + JSL UpdateMooshPalette + RTL + .original_sprite ; Load Original Sprite Location LDA.b #$10 : STA $BC @@ -301,11 +304,10 @@ Link_TransformMask: TAY ; LDA $02B2 CPY !CurrentMask : BEQ .unequip ; check if mask is on - STA $02B2 : TAX LDA .mask_gfx, X : STA $BC ; set the mask gfx JSL Palette_ArmorAndGloves ; set the palette - STA $02F5 ; Somaria platform flag, no dash + ; STA $02F5 ; Somaria platform flag, no dash PLB : CLC : RTL .unequip @@ -322,6 +324,20 @@ Link_TransformMask: db $00, $35, $36, $38, $37, $39, $3A, $3B } +; TODO: Return to normal Link. +Link_TransformMoosh: +{ + PHB : PHK : PLB + + LDA.b #$07 : STA.w !CurrentMask + LDA.b #$33 : STA $BC + %PlayerTransform() + JSL Palette_ArmorAndGloves + + PLB + RTL +} + ; ========================================================= ; Modifies the value of the Y register before it indexes the table @@ -335,6 +351,12 @@ DekuLink_SpinOrRecoil: LDY.b #$05 ; Recoil JML $0DA435 ; JML $0DA40B .spin + ; Moosh form configuration + LDA.w $02B2 : CMP.b #$07 : BEQ + + TYA + LDY.b #$16 ; Pushing + JML $0DA435 + + TYA LDY.b #$1B ; Spin and die JML $0DA40B @@ -1302,6 +1324,7 @@ LinkOAM_CheckForDrawShield: + CMP.w #$0001 : BEQ .no_shield CMP.w #$0003 : BEQ .no_shield + CMP.w #$0007 : BEQ .no_shield .shield RTL } diff --git a/Masks/moosh.asm b/Masks/moosh.asm new file mode 100644 index 0000000..a6314d5 --- /dev/null +++ b/Masks/moosh.asm @@ -0,0 +1,35 @@ +UpdateMooshPalette: +{ + REP #$30 ; change 16bit mode + LDX #$001E + + .loop + LDA.l MooshPalette, X : STA $7EC6E0, X + DEX : DEX : BPL .loop + + SEP #$30 ; go back to 8 bit mode + INC $15 ; update the palette + RTL ; or RTS depending on where you need it +} + + +MooshPalette: +{ + dw #$0000, #$7FFF, #$237E, #$46FF, #$369E, #$14A5, #$01FF, #$1078 + dw #$6E25, #$7AEF, #$6759, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18 +} + +Link_HoverIfMooshWantsToDash: +{ + LDA.w !CurrentMask : CMP.b #$07 : BNE .return + JSL PrepareQuakeSpell + LDA.b #$0A : STA.b $5D + + .return + JSL Link_HandleMovingAnimation_FullLongEntry + RTL +} +print "End of Masks/moosh.asm ", pc + +org $079093 + JSL Link_HoverIfMooshWantsToDash \ No newline at end of file diff --git a/Oracle_main.asm b/Oracle_main.asm index 2e58d13..c2a122f 100644 --- a/Oracle_main.asm +++ b/Oracle_main.asm @@ -10,7 +10,7 @@ ; 2E - HUD ; 2F - Unused ; 30-32 Sprites: all_sprites.asm -; 33 - Unused +; 33 - Moosh Form Gfx and Palette ; 34 - Time System, Custom Overworld Overlays ; 35 - Deku Link Gfx and Palette ; 36 - Zora Link Gfx and Palette