Wolf Mask Dig Ability, move Palette_ArmorAndGloves
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
; =============================================================================
|
||||
|
||||
; no glove color
|
||||
org $0DEE24
|
||||
db $80
|
||||
@@ -11,6 +13,8 @@ Link_CheckNewY_ButtonPress:
|
||||
org $078028
|
||||
Player_DoSfx2:
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $278000
|
||||
StartupMasks:
|
||||
{
|
||||
@@ -24,5 +28,75 @@ StartupMasks:
|
||||
RTL
|
||||
}
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $008827
|
||||
JSL StartupMasks
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $1BEDF9
|
||||
JSL Palette_ArmorAndGloves ; 4bytes
|
||||
RTL ; 1byte
|
||||
NOP #$01
|
||||
|
||||
org $1BEE1B
|
||||
JSL Palette_ArmorAndGloves_part_two
|
||||
RTL
|
||||
|
||||
; =============================================================================
|
||||
|
||||
; Code :
|
||||
org $398000
|
||||
Palette_ArmorAndGloves:
|
||||
{
|
||||
LDA.b #$10
|
||||
STA $BC ; Load Original Sprite Location
|
||||
REP #$21
|
||||
LDA $7EF35B
|
||||
JSL $1BEDFF ; Read Original Palette Code
|
||||
RTL
|
||||
.part_two
|
||||
SEP #$30
|
||||
REP #$30
|
||||
LDA $7EF354
|
||||
JSL $1BEE21 ; Read Original Palette Code
|
||||
RTL
|
||||
|
||||
PHX : PHY : PHA
|
||||
; Load armor palette
|
||||
PHB : PHK : PLB
|
||||
|
||||
REP #$20
|
||||
|
||||
; Check what Link's armor value is.
|
||||
LDA $7EF35B : AND.w #$00FF : TAX
|
||||
|
||||
LDA $1BEC06, X : AND.w #$00FF : ASL A : ADC.w #$F000 : STA $00
|
||||
REP #$10
|
||||
|
||||
LDA.w #$01E2 ; Target SP-7 (sprite palette 6)
|
||||
LDX.w #$000E ; Palette has 15 colors
|
||||
|
||||
TXY : TAX
|
||||
|
||||
LDA.b $BC : AND #$00FF : STA $02
|
||||
|
||||
.loop
|
||||
|
||||
LDA [$00] : STA $7EC300, X : STA $7EC500, X
|
||||
|
||||
INC $00 : INC $00
|
||||
|
||||
INX #2
|
||||
|
||||
DEY : BPL .loop
|
||||
|
||||
SEP #$30
|
||||
|
||||
|
||||
PLB
|
||||
INC $15
|
||||
PLA : PLY : PLX
|
||||
RTL
|
||||
}
|
||||
@@ -3,51 +3,11 @@
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $098F5B
|
||||
AddShovelDirt:
|
||||
|
||||
org $098C73
|
||||
AddRecoveredFlute:
|
||||
|
||||
org $098024
|
||||
AddHitStars:
|
||||
|
||||
org $1DFD5C
|
||||
DiggingGameGuy_AttemptPrizeSpawn:
|
||||
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $07D077
|
||||
Link_ShovelTileDetect:
|
||||
|
||||
org $07F8D1
|
||||
Link_ShovelTileDetect_Long:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
JSR Link_ShovelTileDetect
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
org $07802F
|
||||
Player_DoSfx3:
|
||||
|
||||
org $07A772
|
||||
Player_DoSfx3_Long:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
JSR Player_DoSfx3
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
print "Next address for jump in bank07: ", pc
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $07A3DB
|
||||
LinkItem_Flute:
|
||||
LinkItem_Flute:
|
||||
|
||||
org $07A32C
|
||||
LinkItem_Shovel:
|
||||
|
||||
; =============================================================================
|
||||
|
||||
@@ -55,19 +15,32 @@ org $07A313
|
||||
LinkItem_ShovelAndFlute:
|
||||
{
|
||||
; Play flute or use the Wolf Mask
|
||||
LDA $0202 : CMP.b #$0D : BNE LinkItem_WolfMask
|
||||
LDA $0202 : CMP.b #$0D : BNE .use_wolf_mask
|
||||
BRL LinkItem_Flute
|
||||
.use_wolf_mask
|
||||
JSR LinkItem_WolfMask
|
||||
}
|
||||
|
||||
; =============================================================================
|
||||
|
||||
; TODO: Make sure there's no inaccessible code issues past here
|
||||
; LinkItem_Shovel
|
||||
org $07A32C
|
||||
org $07F8E9
|
||||
LinkItem_WolfMask:
|
||||
{
|
||||
JSL LinkItem_UsingWolfMask
|
||||
JSR Link_CheckNewY_ButtonPress : BCC .return
|
||||
LDA $02B2 : CMP #$03 : BNE .equip
|
||||
|
||||
JSR LinkItem_Shovel
|
||||
|
||||
.equip
|
||||
; JSR Link_CheckNewY_ButtonPress : BCC .return
|
||||
|
||||
; joypad 1 register (AXLR|????)
|
||||
; check for R button press
|
||||
LDA $F2 : CMP #$10 : BNE .return
|
||||
LDA $46 : BNE .return
|
||||
TSB $3A
|
||||
SEC
|
||||
; LDA $F4 : AND.b #$10 : BEQ .return
|
||||
|
||||
LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state
|
||||
|
||||
LDA $6C : BNE .return ; in a doorway
|
||||
@@ -92,6 +65,9 @@ LinkItem_WolfMask:
|
||||
RTS
|
||||
}
|
||||
|
||||
print "Next address for jump in bank07: ", pc
|
||||
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $388000
|
||||
@@ -122,155 +98,3 @@ WolfPalette:
|
||||
dw #$7616, #$0000
|
||||
|
||||
; =============================================================================
|
||||
|
||||
LinkItem_Return:
|
||||
{
|
||||
RTL
|
||||
}
|
||||
|
||||
print pc
|
||||
LinkItem_UsingWolfMask:
|
||||
{
|
||||
; Shovel item code
|
||||
|
||||
BIT $3A : BVS .in_use
|
||||
LDA $6C : BNE LinkItem_Return ; .BRANCH_$3A312 ; (RTS, BASICALLY)
|
||||
|
||||
LDA $F2 ; load unfiltered joypad 1 register (AXLR|????)
|
||||
CMP #$10 ; R button pressed?
|
||||
BEQ $03 ; if yes, branch behind the jump that leads to the end and load items instead
|
||||
JMP LinkItem_Return
|
||||
; JSR Link_CheckNewY_ButtonPress : BCC LinkItem_Return ;.BRANCH_$3A312
|
||||
|
||||
LDA $A320 : STA $3D
|
||||
|
||||
STZ $030D
|
||||
STZ $0300
|
||||
|
||||
LDA.b #$01 : STA $037A
|
||||
LDA.b #$01 : TSB $50
|
||||
STZ $2E
|
||||
|
||||
.in_use
|
||||
|
||||
JSR HaltLinkWhenUsingItems ; $AE65 ; $3AE65 IN ROM
|
||||
|
||||
LDA $67 : AND.b #$F0 : STA $67
|
||||
|
||||
DEC $3D : BMI .continue
|
||||
|
||||
RTL
|
||||
|
||||
.continue
|
||||
|
||||
LDX $030D : INX : STX $030D
|
||||
|
||||
LDA $A320, X : STA $3D
|
||||
|
||||
LDA $A326, X : STA $0300 : CMP.b #$01 : BNE .BRANCH_GAMMA
|
||||
|
||||
LDY.b #$02
|
||||
|
||||
PHX
|
||||
|
||||
; JSR $D077 ; $3D077 IN ROM
|
||||
JSL Link_ShovelTileDetect_Long
|
||||
|
||||
PLX
|
||||
|
||||
LDA $04B2 : BEQ .not_flute_spot
|
||||
|
||||
LDA.b #$1B : JSL Player_DoSfx3_Long
|
||||
|
||||
PHX
|
||||
|
||||
; Add recovered flute (from digging). Interesting...
|
||||
LDY.b #$00
|
||||
LDA.b #$36
|
||||
|
||||
JSL AddRecoveredFlute
|
||||
|
||||
PLX
|
||||
|
||||
.not_flute_spot
|
||||
|
||||
LDA $0357 : ORA $035B : AND.b #$01 : BNE .dont_clink
|
||||
|
||||
PHX
|
||||
|
||||
LDY.b #$00
|
||||
LDA.b #$16
|
||||
|
||||
JSL AddHitStars
|
||||
|
||||
PLX
|
||||
|
||||
LDA.b #$05 : JSL Player_DoSfx2
|
||||
|
||||
BRA .finish_up
|
||||
|
||||
.dont_clink
|
||||
|
||||
PHX
|
||||
|
||||
; Add shovel dirt? what? I thought these were aftermath tiles
|
||||
LDY.b #$00
|
||||
LDA.b #$17
|
||||
|
||||
JSL AddShovelDirt
|
||||
|
||||
LDA $03FC : BEQ .digging_game_inactive
|
||||
|
||||
JSL DiggingGameGuy_AttemptPrizeSpawn
|
||||
|
||||
.digging_game_inactive
|
||||
|
||||
PLX
|
||||
|
||||
LDA.b #$12 : JSL Player_DoSfx2
|
||||
|
||||
.finish_up
|
||||
|
||||
CPX.b #$03 : BNE .return
|
||||
|
||||
STZ $030D
|
||||
STZ $0300
|
||||
|
||||
LDA $3A : AND.b #$80 : STA $3A
|
||||
|
||||
STZ $037A
|
||||
|
||||
LDA $50 : AND.b #$FE : STA $50
|
||||
|
||||
.return
|
||||
|
||||
RTL
|
||||
}
|
||||
|
||||
; ==============================================================================
|
||||
|
||||
; *$3AE65-$3AE87 LOCAL
|
||||
HaltLinkWhenUsingItems:
|
||||
{
|
||||
LDA $AD : CMP.b #$02 : BNE .BRANCH_ALPHA
|
||||
|
||||
LDA $0322 : AND.b #$03 : CMP.b #$03 : BNE .BRANCH_ALPHA
|
||||
|
||||
STZ $30
|
||||
STZ $31
|
||||
STZ $67
|
||||
STZ $2A
|
||||
STZ $2B
|
||||
STZ $6B
|
||||
|
||||
.BRANCH_ALPHA:
|
||||
|
||||
; Cane of Somaria transit lines?
|
||||
LDA $02F5 : BEQ .BRANCH_BETA
|
||||
|
||||
STZ $67
|
||||
|
||||
.BRANCH_BETA:
|
||||
|
||||
RTS
|
||||
}
|
||||
Reference in New Issue
Block a user