Items housekeeping

This commit is contained in:
scawful
2024-11-27 17:09:48 -05:00
parent c11e112a40
commit 1c2686c4a7
6 changed files with 178 additions and 200 deletions

View File

@@ -27,22 +27,17 @@ LinkItem_NewBottle:
JSR LinkItem_Bottles JSR LinkItem_Bottles
BRA .exit BRA .exit
.empty_bottle .empty_bottle
; Otherwise, prepare and call the LinkItem_BugCatchingNet routine ; Otherwise, prepare and call the LinkItem_BugCatchingNet routine
JSR LinkItem_CatchBottle JSR LinkItem_CatchBottle
.exit .exit
RTS RTS
} }
assert pc() <= $07A249 assert pc() <= $07A249
pullpc pullpc
print " LinkItem_CatchBottle ", pc print " LinkItem_CatchBottle ", pc
; =============================================================================
pose_id: pose_id:
db $0B, $06, $07, $08, $01, $02, $03, $04, $05, $06 ; up db $0B, $06, $07, $08, $01, $02, $03, $04, $05, $06 ; up
db $01, $02, $03, $04, $05, $06, $07, $08, $01, $02 ; down db $01, $02, $03, $04, $05, $06, $07, $08, $01, $02 ; down
@@ -59,11 +54,8 @@ pose_offset:
LinkItem_CatchBottle: LinkItem_CatchBottle:
{ {
BIT $3A : BVS .y_press BIT $3A : BVS .y_press
LDA $6C : BNE .bottle_exit ; (RTS) LDA $6C : BNE .bottle_exit ; (RTS)
JSR Link_CheckNewY_ButtonPress : BCC .bottle_exit ; (RTS) JSR Link_CheckNewY_ButtonPress : BCC .bottle_exit ; (RTS)
LDA $2F : LSR A : TAY LDA $2F : LSR A : TAY
LDX pose_offset, Y LDX pose_offset, Y
LDA.w pose_id, X : STA $0300 LDA.w pose_id, X : STA $0300
@@ -78,7 +70,7 @@ LinkItem_CatchBottle:
LDA.b #$32 : JSR Player_DoSfx2 LDA.b #$32 : JSR Player_DoSfx2
.y_press: .y_press:
JSR $AE65 ; HaltLinkWhenUsingItems JSR $AE65 ; HaltLinkWhenUsingItems
LDA $67 : AND.b #$F0 : STA $67 LDA $67 : AND.b #$F0 : STA $67
@@ -99,17 +91,15 @@ LinkItem_CatchBottle:
LDA $50 : AND.b #$FE : STA $50 LDA $50 : AND.b #$FE : STA $50
LDA.b #$80 : STA $44 : STA $45 LDA.b #$80 : STA $44 : STA $45
.bottle_exit: .bottle_exit:
NetExit: NetExit:
RTS RTS
} }
; =============================================================================
print " LinkItem_Bottles ", pc print " LinkItem_Bottles ", pc
LinkItem_Bottles: LinkItem_Bottles:
{ {
JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS) JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS)
LDA.b $3A : AND.b #$BF : STA.b $3A LDA.b $3A : AND.b #$BF : STA.b $3A
; Check if we have a bottle or not ; Check if we have a bottle or not
@@ -123,28 +113,27 @@ LinkItem_Bottles:
CMP.b #$06 : BEQ .fairy CMP.b #$06 : BEQ .fairy
CMP.b #$09 : BEQ .magic_bean CMP.b #$09 : BEQ .magic_bean
CMP.b #$0A : BEQ .milk_bottle CMP.b #$0A : BEQ .milk_bottle
BRL .LinkItem_BeeBottle BRL .LinkItem_BeeBottle
.milk_bottle .milk_bottle
LDA.l $7EF36C : CMP.l $7EF36D : BEQ .LinkItem_UselessBottle LDA.l $7EF36C : CMP.l $7EF36D : BEQ .LinkItem_UselessBottle
JSL Bottle_DrinkMilk JSL Bottle_DrinkMilk
RTS RTS
.magic_bean .magic_bean
JSL ReleaseMagicBean JSL ReleaseMagicBean
RTS RTS
.fairy .fairy
BRL .LinkItem_FairyBottle BRL .LinkItem_FairyBottle
.LinkItem_RedPotion .LinkItem_RedPotion
LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red
.LinkItem_UselessBottle .LinkItem_UselessBottle
BRL LinkGoBeep ; BRL $07A955 Investigate BRL LinkGoBeep ; BRL $07A955 Investigate
.can_drink_red .can_drink_red
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301 LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
LDA.b #$04 : STA.b $11 LDA.b #$04 : STA.b $11
@@ -156,11 +145,11 @@ LinkItem_Bottles:
RTS RTS
.LinkItem_GreenPotion .LinkItem_GreenPotion
LDA.l $7EF36E : CMP.b #$80 : BNE .can_drink LDA.l $7EF36E : CMP.b #$80 : BNE .can_drink
BRL LinkGoBeep BRL LinkGoBeep
.can_drink .can_drink
; Set the bottle empty ; Set the bottle empty
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301 LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
@@ -175,12 +164,11 @@ LinkItem_Bottles:
JSL RebuildHUD_long JSL RebuildHUD_long
BRA .bottle_exit BRA .bottle_exit
.LinkItem_BluePotion .LinkItem_BluePotion
LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion
LDA $7EF36E : CMP.b #$80 : BNE .useBluePotion LDA $7EF36E : CMP.b #$80 : BNE .useBluePotion
BRL LinkGoBeep ; BRL $07A955 BRL LinkGoBeep ; BRL $07A955
.useBluePotion
.useBluePotion
LDA.b #$02 : STA $7EF35C, X : STZ $0301 LDA.b #$02 : STA $7EF35C, X : STZ $0301
; more submodule code ; more submodule code
@@ -194,25 +182,23 @@ LinkItem_Bottles:
JSL RebuildHUD_long JSL RebuildHUD_long
BRA .bottle_exit BRA .bottle_exit
.LinkItem_FairyBottle .LinkItem_FairyBottle
STZ.w $0301 : LDA.b #$02 : STA.l $7EF35C, X STZ.w $0301 : LDA.b #$02 : STA.l $7EF35C, X
JSL PlayerItem_SpawnFaerie : BPL .released JSL PlayerItem_SpawnFaerie : BPL .released
BRL LinkGoBeep ; BRL $07A955 BRL LinkGoBeep ; BRL $07A955
.released
.released
JSL RebuildHUD_long JSL RebuildHUD_long
BRA .bottle_exit BRA .bottle_exit
.LinkItem_BeeBottle .LinkItem_BeeBottle
STZ.w $0301 STZ.w $0301
JSL PlayerItem_ReleaseBee : BPL .bee_spawn_success JSL PlayerItem_ReleaseBee : BPL .bee_spawn_success
BRL LinkGoBeep ; BRL $07A955 BRL LinkGoBeep ; BRL $07A955
.bee_spawn_success
.bee_spawn_success
LDA.b #$02 : STA.l $7EF35C, X LDA.b #$02 : STA.l $7EF35C, X
JSL RebuildHUD_long JSL RebuildHUD_long
.bottle_exit .bottle_exit
RTS RTS
} }

View File

@@ -100,15 +100,13 @@ VramDmaTransfer:
{ {
LDA #$007E ; load origin of bytes to transfer (7E/d000) LDA #$007E ; load origin of bytes to transfer (7E/d000)
STA $4304 STA $4304
LDA #$D000 LDA #$D000 : STA $4302
STA $4302
SEP #$30 SEP #$30
LDA #$18 ; bus LDA #$18 ; bus
STA $4301 STA $4301
LDA #$04 ; transfer 4 bytes LDA #$04 ; transfer 4 bytes
STA $4305 STA $4305
LDA #$01 LDA #$01 : STA $4300
STA $4300
STA $420B ; make dma transfer STA $420B ; make dma transfer
RTS RTS
} }

View File

@@ -30,16 +30,12 @@ assert pc() <= $07D248
pullpc pullpc
LinkItem_JumpFeather: LinkItem_JumpFeather:
{ {
JSL $07983A ; Reset swim state JSL Link_ResetSwimmingState
LDA $46 : BNE .cantuseit LDA $46 : BNE .cant_use_it
LDA #$02 : STA $5D ; set link state recoil LDA #$02 : STA $5D ; set link state recoil
LDA #$02 : STA $4D ; set jumping state (ledge hop) LDA #$02 : STA $4D ; set jumping state (ledge hop)
LDA #$20 : STA $46 ; length of the jump
; Length of the jump LDA #$24 ; Height of the jump
LDA #$20 : STA $46
; Height of the jump
LDA #$24
; Set vertical resistance ; Set vertical resistance
STA $29 STA $29
@@ -51,24 +47,23 @@ LinkItem_JumpFeather:
; Reset Link movement offsets ; Reset Link movement offsets
STZ $31 : STZ $30 STZ $31 : STZ $30
LDA $F4 : AND #$08 : BEQ .noUp LDA $F4 : AND #$08 : BEQ .no_up
LDA #-8 ; Change that -8 if you want higher speed moving up LDA #-8
STA $27 ; Vertical recoil STA $27 ; Vertical recoil
.noUp .no_up
LDA $F4 : AND #$04 : BEQ .noDown LDA $F4 : AND #$04 : BEQ .no_down
LDA #8 ; Change that -8 if you want higher speed moving down LDA #8
STA $27 STA $27
.noDown .no_down
LDA $F4 : AND #$02 : BEQ .noLeft LDA $F4 : AND #$02 : BEQ .no_left
LDA #-8 ; Change that -8 if you want higher speed moving left LDA #-8
STA $28 ; Horizontal recoil STA $28 ; Horizontal recoil
.noLeft .no_left
LDA $F4 : AND #$01 : BEQ .noRight LDA $F4 : AND #$01 : BEQ .no_right
LDA #8 ; Change that 8 if you want higher speed moving right LDA #8
STA $28 STA $28
.noRight .no_right
.cant_use_it
.cantuseit
RTL RTL
} }

View File

@@ -159,4 +159,3 @@ pushpc
org $07810C org $07810C
JSL MagicRings_CheckForHeart JSL MagicRings_CheckForHeart
pullpc pullpc