Files
oracle-of-secrets/Masks/wolf_mask.asm
2025-01-19 22:13:13 -05:00

78 lines
1.6 KiB
NASM

; =========================================================
; Wolf Mask
; Dig for treasure ability (shovel)
; =========================================================
UpdateWolfPalette:
{
REP #$30 ; change 16bit mode
LDX #$001E
.loop
LDA.l WolfPalette, X
PHX
STA.l !SubPalColor
JSL ColorSubEffect
PLX
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
}
; =========================================================
WolfPalette:
dw $7BDE, $7FFF, $2F7D, $19B5, $3A9C, $14A5, $1A3D, $14B6
dw $4650, $362A, $3F4E, $162B, $318A, $39CC, $1CE7, $76D1
dw $6565, $7271, $14B5, $459B, $3D95, $22D0, $567C, $1890
dw $7616, $0000
; =========================================================
LinkItem_Flute = $07A3DB
LinkItem_Shovel = $07A32C
; LinkItem_Shovel
org $07A3B2
NOP #5
; DigGame_SpawnPrize
org $1DFD5E
NOP #5
; =========================================================
org $07A313
LinkItem_ShovelAndFlute:
{
; Play flute or use the Wolf Mask
LDA $0202 : CMP.b #$0D : BNE .use_wolf_mask
BRL LinkItem_Flute
.use_wolf_mask
JMP LinkItem_WolfMask
}
; assert pc() <= $07A31F
; =========================================================
; Bank 07 Free Space
pullpc
LinkItem_WolfMask:
{
LDA $02B2 : CMP #$03 : BNE .equip
JSR LinkItem_Shovel
.equip
LDA.b #$03
JSL Link_TransformMask
.return
RTS
}
print "End of Masks/wolf_mask.asm ", pc
pushpc