Add GBC Link, update Masks directory
This commit is contained in:
20
Masks/all_masks.asm
Normal file
20
Masks/all_masks.asm
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
; $02B2 - Mask Form
|
||||||
|
; 00 = Human
|
||||||
|
; 01 = Deku
|
||||||
|
; 02 = Zora
|
||||||
|
; 03 = Wolf
|
||||||
|
; 04 = Bunny Hood
|
||||||
|
; 05 = Minish Form
|
||||||
|
;
|
||||||
|
; $0AAB - Diving Flag
|
||||||
|
|
||||||
|
incsrc "Masks/mask_routines.asm"
|
||||||
|
|
||||||
|
incsrc "Masks/bunny_hood.asm"
|
||||||
|
print "End of Masks/bunny_hood.asm ", pc
|
||||||
|
|
||||||
|
incsrc "Masks/minish_form.asm"
|
||||||
|
incsrc "Masks/deku_mask.asm"
|
||||||
|
incsrc "Masks/zora_mask.asm"
|
||||||
|
incsrc "Masks/wolf_mask.asm"
|
||||||
|
incsrc "Masks/gbc_form.asm"
|
||||||
@@ -50,8 +50,9 @@ LinkItem_SlingshotPrepare:
|
|||||||
{
|
{
|
||||||
LDA #$01 : TSB $50
|
LDA #$01 : TSB $50
|
||||||
LDA $7EF340
|
LDA $7EF340
|
||||||
|
|
||||||
BNE .alpha
|
BNE .alpha
|
||||||
JMP $A270
|
JMP .beta ; $A270
|
||||||
.alpha
|
.alpha
|
||||||
CMP #$01
|
CMP #$01
|
||||||
BNE .void ; unused afaik (RTS?)
|
BNE .void ; unused afaik (RTS?)
|
||||||
@@ -115,7 +116,7 @@ LinkItem_SlingshotPrepare:
|
|||||||
LDA #$80 : STA $4305 ; Set DMA transfer size (high byte)
|
LDA #$80 : STA $4305 ; Set DMA transfer size (high byte)
|
||||||
LDA #$01 : STA $4300 ; Set DMA mode to 1 (2 registers write once)
|
LDA #$01 : STA $4300 ; Set DMA mode to 1 (2 registers write once)
|
||||||
STA $420B ; Start DMA on channel 0
|
STA $420B ; Start DMA on channel 0
|
||||||
RTL ; Return from subroutine long
|
RTL
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,4 +142,6 @@ Link_HandleDekuTransformation: ; Link_HandleBunnyTransformation
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "End of Masks/deku_mask.asm ", pc
|
||||||
pushpc
|
pushpc
|
||||||
48
Masks/gbc_form.asm
Normal file
48
Masks/gbc_form.asm
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
org $3B8000
|
||||||
|
incbin gfx/gbc_link.4bpp
|
||||||
|
|
||||||
|
UpdateGbcPalette:
|
||||||
|
{
|
||||||
|
REP #$30 ; change 16bit mode
|
||||||
|
LDX #$001E
|
||||||
|
|
||||||
|
.loop
|
||||||
|
LDA.l GameboyLinkPalette, 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
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
LinkState_GameboyForm:
|
||||||
|
{
|
||||||
|
CLC
|
||||||
|
LDA $0FFF : BEQ .return ; not in dark world
|
||||||
|
|
||||||
|
; %PlayerTransform()
|
||||||
|
|
||||||
|
JSL UpdateGbcPalette
|
||||||
|
LDA #$3B : STA $BC ; change link's sprite
|
||||||
|
LDA #$06 : STA $02B2
|
||||||
|
BRA .return
|
||||||
|
|
||||||
|
.return
|
||||||
|
LDA $BC : CMP.b #$06 : BNE .not_gbc
|
||||||
|
LDA #$10 : STA $BC
|
||||||
|
.not_gbc
|
||||||
|
CLC
|
||||||
|
RTL
|
||||||
|
}
|
||||||
@@ -154,7 +154,6 @@ Palette_ArmorAndGloves:
|
|||||||
|
|
||||||
SEP #$30
|
SEP #$30
|
||||||
|
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
INC $15
|
INC $15
|
||||||
PLA : PLY : PLX
|
PLA : PLY : PLX
|
||||||
@@ -221,6 +220,7 @@ LinkItem_CheckForSwordSwing_Masks:
|
|||||||
{
|
{
|
||||||
LDA $02B2 : BEQ .return
|
LDA $02B2 : BEQ .return
|
||||||
CMP.b #$02 : BEQ .return ; zora mask can use sword
|
CMP.b #$02 : BEQ .return ; zora mask can use sword
|
||||||
|
CMP.b #$06 : BEQ .return
|
||||||
|
|
||||||
LDA #$01
|
LDA #$01
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
@@ -65,5 +65,7 @@ LinkState_CheckMinishTile:
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "End of Masks/minish_form.asm ", pc
|
||||||
pushpc
|
pushpc
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ LinkItem_ShovelAndFlute:
|
|||||||
LDA $0202 : CMP.b #$0D : BNE .use_wolf_mask
|
LDA $0202 : CMP.b #$0D : BNE .use_wolf_mask
|
||||||
BRL LinkItem_Flute
|
BRL LinkItem_Flute
|
||||||
.use_wolf_mask
|
.use_wolf_mask
|
||||||
BRL LinkItem_WolfMask
|
JMP LinkItem_WolfMask
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ pullpc
|
|||||||
print pc
|
print pc
|
||||||
LinkItem_WolfMask:
|
LinkItem_WolfMask:
|
||||||
{
|
{
|
||||||
SEP #$30
|
; SEP #$30
|
||||||
LDA $02B2 : CMP #$03 : BNE .equip
|
LDA $02B2 : CMP #$03 : BNE .equip
|
||||||
JSR LinkItem_Shovel
|
JSR LinkItem_Shovel
|
||||||
|
|
||||||
@@ -83,7 +83,10 @@ LinkItem_WolfMask:
|
|||||||
%ResetToLinkGraphics()
|
%ResetToLinkGraphics()
|
||||||
|
|
||||||
.return
|
.return
|
||||||
REP #$30
|
; REP #$30
|
||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "End of Masks/wolf_mask.asm ", pc
|
||||||
|
pushpc
|
||||||
@@ -282,4 +282,5 @@ LinkState_ResetMaskAnimated:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "End of Masks/zora_mask.asm ", pc
|
||||||
pushpc
|
pushpc
|
||||||
|
|||||||
Reference in New Issue
Block a user