78 lines
1.6 KiB
NASM
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
|
|
|