From 7ac23267ef06b1610e1155f6bb911db830f08134 Mon Sep 17 00:00:00 2001 From: scawful Date: Mon, 19 Feb 2024 08:59:29 -0500 Subject: [PATCH] Gbc Link form in DW dungeons, tunic color change --- Masks/gbc_form.asm | 51 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/Masks/gbc_form.asm b/Masks/gbc_form.asm index 4a8c8d3..1c1728b 100644 --- a/Masks/gbc_form.asm +++ b/Masks/gbc_form.asm @@ -1,11 +1,14 @@ org $3B8000 incbin gfx/gbc_link.4bpp +print pc UpdateGbcPalette: { REP #$30 ; change 16bit mode LDX #$001E + LDA $7EF35B : AND.w #$00FF : CMP #$0001 : BEQ .blue_mail + .loop LDA.l GameboyLinkPalette, X : STA $7EC6E0, X DEX : DEX : BPL .loop @@ -13,26 +16,56 @@ UpdateGbcPalette: SEP #$30 ; go back to 8 bit mode INC $15 ; update the palette RTL ; or RTS depending on where you need it + +.blue_mail + LDX #$001E + .loop2 + LDA.l GameboyLinkBlueMail, X : STA $7EC6E0, X + DEX : DEX : BPL .loop2 + SEP #$30 ; go back to 8 bit mode + INC $15 ; update the palette + RTL ; or RTS depending on where you need it } GameboyLinkPalette: { dw #$0000, #$7FFF, #$237E, #$B711, #$369E, #$14A5, #$01FF, #$1078, #$46FF - dw #$22A2, #$3B68, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18, #$7FFF - dw #$237E, #$B711, #$369E, #$14A5, #$01FF, #$1078, #$46FF, #$7E03 - dw #$7691, #$2678, #$435C, #$1199, #$7A18, #$7FFF, #$237E, #$B711 - dw #$369E, #$14A5, #$01FF, #$1078, #$46FF, #$147F, #$457E, #$6DF3 - dw #$7EB9, #$2A5C, #$2227, #$7A18, #$7FFF, #$237E, #$B711, #$369E - dw #$14A5, #$01FF, #$1078, #$46FF, #$05FF, #$3B68, #$0A4A, #$12EF - dw #$567E, #$1872, #$7A18, #$5276, #$0352 + dw #$22A2, #$3B68, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18 } +GameboyLinkBlueMail: +{ + dw #$0000, #$7FFF, #$237E, #$B711, #$369E, #$14A5, #$01FF, #$1078, #$46FF + dw #$4D25, #$3B68, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18 +} + +LinkState_GameboyInDungeonEntrance: +{ + + LDA $0FFF : CMP #$00 : BEQ .return + LDA $BC : CMP #$06 : BEQ .return + + JSL UpdateGbcPalette + LDA #$3B : STA $BC ; change link's sprite + +.return + + JSL $0AFE80 ; Underworld_HandleLayerEffect + RTL +} + + org $07A9B1 LinkMode_MagicMirror: { JSL LinkState_GameboyForm } +org $0287A4 +{ + JSL LinkState_GameboyInDungeonEntrance +} + pullpc LinkState_GameboyForm: { @@ -40,8 +73,10 @@ LinkState_GameboyForm: LDA $02B2 : CMP.b #$06 : BEQ .already_gbc LDA $7EF357 : BEQ .return ; doesnt have the pearl LDA $0FFF : BEQ .return ; not in dark world + +.transform %PlayerTransform() - + JSL UpdateGbcPalette LDA #$3B : STA $BC ; change link's sprite LDA #$06 : STA $02B2