Wolf Mask Dig Ability, move Palette_ArmorAndGloves

This commit is contained in:
scawful
2023-03-12 22:01:29 -05:00
parent ca76276091
commit 0c774e42b3
2 changed files with 101 additions and 203 deletions

View File

@@ -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
}

View File

@@ -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
}