Bottles/Bug Catching Net, fix menu item icons
This commit is contained in:
@@ -2,12 +2,6 @@
|
||||
; Bottle Net Code
|
||||
; =============================================================================
|
||||
|
||||
org $07B073
|
||||
Link_CheckNewY_ButtonPress:
|
||||
|
||||
org $078028
|
||||
Player_DoSfx2:
|
||||
|
||||
org $1EFE33
|
||||
PlayerItem_SpawnFaerie:
|
||||
|
||||
@@ -18,123 +12,9 @@ PlayerItem_ReleaseBee:
|
||||
; LinkItem_Bottle
|
||||
|
||||
org $07A15B
|
||||
JMP $FFA0 ; Local Bank Conditional
|
||||
|
||||
; =============================================================================
|
||||
; $07FFA0
|
||||
|
||||
org $07FFA0
|
||||
{
|
||||
LDA $030D
|
||||
|
||||
BNE $07FFBD
|
||||
LDA $0300
|
||||
BNE $07FFBD
|
||||
LDA $7F5020
|
||||
TAX
|
||||
LDA $7EF35B, X
|
||||
CMP #$02
|
||||
BEQ $07FFBD
|
||||
JSR $B073
|
||||
JMP $A15E
|
||||
|
||||
; 07FFBD
|
||||
JMP $AFF8 ; LinkItem_BugCatchingNet
|
||||
JMP $FAF0 ;
|
||||
NOP
|
||||
JSR $B073
|
||||
STZ $030F
|
||||
JSL LinkItem_NewBottle
|
||||
RTS
|
||||
}
|
||||
|
||||
; =============================================================================
|
||||
; LinkItem_BugCatchingNet
|
||||
|
||||
org $07AFF8
|
||||
{
|
||||
BIT $3A
|
||||
BVS $07B029
|
||||
LDA $6C
|
||||
BNE $07AFB4
|
||||
JSR $B073
|
||||
BCC $07AFB4
|
||||
LDA $2F
|
||||
LSR
|
||||
TAY
|
||||
LDX $AFF4,Y
|
||||
LDA $AFCC,X
|
||||
STA $0300
|
||||
LDA #$03
|
||||
STA $3D
|
||||
STZ $030D
|
||||
LDA #$10
|
||||
STA $037A
|
||||
JSL $8EFEF0
|
||||
STZ $2E
|
||||
LDA #$32
|
||||
JSR $8028
|
||||
JSR $AE65
|
||||
LDA $67
|
||||
AND #$F0
|
||||
STA $67
|
||||
DEC $3D
|
||||
BPL $07B072
|
||||
LDX $030D
|
||||
INX
|
||||
STX $030D
|
||||
LDA #$03
|
||||
STA $3D
|
||||
LDA $2F
|
||||
LSR
|
||||
TAY
|
||||
LDA $AFF4,Y
|
||||
CLC
|
||||
ADC $030D
|
||||
TAY
|
||||
LDA $AFCC,Y
|
||||
STA $0300
|
||||
CPX #$0A
|
||||
BNE $07B072
|
||||
STZ $030D
|
||||
STZ $0300
|
||||
LDA $3A
|
||||
AND #$80
|
||||
STA $3A
|
||||
STZ $037A
|
||||
JSL $8EFEF8
|
||||
STA $50
|
||||
LDA #$80
|
||||
STA $44
|
||||
STA $45
|
||||
RTS
|
||||
}
|
||||
|
||||
; 07B073
|
||||
org $07B073
|
||||
{
|
||||
BIT $3A
|
||||
BVS $07B085
|
||||
LDA $46
|
||||
BNE $07B085
|
||||
LDA $F4
|
||||
AND #$40
|
||||
BEQ $07B085
|
||||
TSB $3A
|
||||
SEC
|
||||
RTS
|
||||
|
||||
; 07B085
|
||||
org $07B085
|
||||
CLC
|
||||
RTS
|
||||
}
|
||||
|
||||
; $8EFEF0
|
||||
LDA #$01
|
||||
TSB $50
|
||||
STA $0112
|
||||
RTL
|
||||
|
||||
; *$3A15B-$3A249 FREE SPACE STILL AVAILABLE
|
||||
|
||||
; =============================================================================
|
||||
|
||||
@@ -148,122 +28,28 @@ LinkItem_NewBottle:
|
||||
; Check if the bottle is empty
|
||||
CMP.b #$03 : BCC .empty_bottle
|
||||
|
||||
; If so, prepare and call the LinkItem_Bottles routine
|
||||
JSR LinkItem_Bottles
|
||||
; If no, prepare and call the LinkItem_Bottles routine
|
||||
JSL LinkItem_Bottles_Long
|
||||
BRA .exit
|
||||
|
||||
.empty_bottle
|
||||
; Otherwise, prepare and call the LinkItem_BugCatchingNet routien
|
||||
JSR LinkItem_BugCatchingNet
|
||||
|
||||
; Otherwise, prepare and call the LinkItem_BugCatchingNet routine
|
||||
JSL LinkItem_BugCatchingNet_Long
|
||||
|
||||
.exit
|
||||
RTL
|
||||
}
|
||||
|
||||
; =============================================================================
|
||||
|
||||
; *$3A15B-$3A249 JUMP LOCATION
|
||||
LinkItem_Bottles:
|
||||
org $07FA9F
|
||||
LinkItem_BugCatchingNet_Long:
|
||||
{
|
||||
LDA.b $3A : AND.b #$BF : STA.b $3A
|
||||
|
||||
; Check if we have a bottle or not
|
||||
LDA.l $7EF34F : DEC A : TAX
|
||||
|
||||
LDA.l $7EF35C, X : BEQ .exit ; (RTS)
|
||||
CMP.b #$03 : BCC .LinkItem_UselessBottle
|
||||
CMP.b #$03 : BEQ .LinkItem_RedPotion
|
||||
CMP.b #$04 : BEQ .LinkItem_GreenPotion
|
||||
CMP.b #$05 : BEQ .LinkItem_BluePotion
|
||||
CMP.b #$06 : BEQ .fairy
|
||||
|
||||
BRL .LinkItem_BeeBottle
|
||||
|
||||
.exit
|
||||
RTS
|
||||
|
||||
.fairy:
|
||||
BRL .LinkItem_FairyBottle
|
||||
|
||||
.LinkItem_RedPotion:
|
||||
LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red
|
||||
|
||||
.LinkItem_UselessBottle:
|
||||
BRL $07A955 ; LinkGoBeep TODO(scawful): Investigate
|
||||
|
||||
.can_drink_red:
|
||||
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
||||
|
||||
LDA.b #$04 : STA.b $11
|
||||
LDA.b $10 : STA.w $010C
|
||||
LDA.b #$0E : STA.b $10
|
||||
LDA.b #$07 : STA.w $0208
|
||||
|
||||
JSL $0DFA58
|
||||
|
||||
RTS
|
||||
|
||||
.LinkItem_GreenPotion:
|
||||
LDA $7EF36E : CMP.b #$80 : BNE .can_drink
|
||||
BRL $07A955 ; LinkGoBeep TODO(scawful): Investigate
|
||||
|
||||
.can_drink:
|
||||
LDA $02 : STA $7EF35C, X : STZ $0301
|
||||
|
||||
; submodule ????
|
||||
LDA.b #$08 : STA $11
|
||||
LDA $10 : STA $010C
|
||||
|
||||
; Go to text mode
|
||||
LDA.b #$0E : STA $10
|
||||
LDA.b #$07 : STA $0208
|
||||
|
||||
JSL $0DFA58 ; RebuildHUD_long TODO(scawful)
|
||||
BRA .bottle_exit
|
||||
|
||||
.LinkItem_BluePotion:
|
||||
LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion
|
||||
LDA $7EF36E : CMP.b #$80 : BNE .useBluePotion
|
||||
BRL $07A955
|
||||
|
||||
.useBluePotion
|
||||
LDA.b #$02 : STA $7EF35C, X : STZ $0301
|
||||
|
||||
; more submodule code
|
||||
LDA.b #$09 : STA.b $11
|
||||
LDA.b $10 : STA.w $010C
|
||||
|
||||
; Go to text mode (?)
|
||||
LDA.b #$0E : STA.b $10
|
||||
LDA.b #$07 : STA.w $0208
|
||||
|
||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||
BRA .bottle_exit
|
||||
|
||||
.LinkItem_FairyBottle:
|
||||
STZ.w $0301
|
||||
JSL PlayerItem_SpawnFaerie : BPL .BRANCH_NU
|
||||
BRL $07A955
|
||||
|
||||
.BRANCH_NU:
|
||||
LDA.b #$02 : STA.l $7EF35C, X
|
||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||
BRA .bottle_exit
|
||||
|
||||
.LinkItem_BeeBottle:
|
||||
STZ.w $0301
|
||||
JSL PlayerItem_ReleaseBee : BPL .bee_spawn_success
|
||||
BRL $07A955 ; LinkGoBeep
|
||||
|
||||
.bee_spawn_success
|
||||
LDA.b #$02 : STA.l $7EF35C, X
|
||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||
|
||||
.bottle_exit:
|
||||
RTS
|
||||
PHB : PHK : PLB
|
||||
JSR LinkItem_NewBugCatchingNet
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
; =============================================================================
|
||||
|
||||
pose_id:
|
||||
db $0B, $06, $07, $08, $01, $02, $03, $04, $05, $06 ; up
|
||||
db $01, $02, $03, $04, $05, $06, $07, $08, $01, $02 ; down
|
||||
@@ -277,8 +63,15 @@ pose_offset:
|
||||
db $1E ; right
|
||||
|
||||
; *$3AFF8-$3B072 LOCAL
|
||||
LinkItem_BugCatchingNet:
|
||||
|
||||
LinkItem_NewBugCatchingNet:
|
||||
{
|
||||
BIT $3A : BVS .y_press
|
||||
|
||||
LDA $6C : BNE .bottle_exit ; (RTS)
|
||||
|
||||
JSR Link_CheckNewY_ButtonPress : BCC .bottle_exit ; (RTS)
|
||||
|
||||
LDA $2F : LSR A : TAY
|
||||
LDX pose_offset, Y
|
||||
LDA pose_id, X : STA $0300
|
||||
@@ -291,20 +84,20 @@ LinkItem_BugCatchingNet:
|
||||
|
||||
STZ $2E
|
||||
|
||||
; LDA.b #$32 : JSL Player_DoSfx2
|
||||
LDA.b #$32 : JSR Player_DoSfx2
|
||||
|
||||
.y_press:
|
||||
|
||||
JSR Unknown ; $3AE65 IN ROM
|
||||
|
||||
LDA $67 : AND.b #$F0 : STA $67
|
||||
DEC $3D : BPL .BRANCH_BETA
|
||||
DEC $3D : BPL .bottle_exit
|
||||
LDX $030D : INX : STX $030D
|
||||
LDA.b #$03 : STA $3D
|
||||
LDA $2F : LSR A : TAY
|
||||
LDA pose_offset, Y : CLC : ADC $030D : TAY
|
||||
LDA pose_id, Y : STA $0300
|
||||
CPX.b #$0A : BNE .BRANCH_BETA
|
||||
CPX.b #$0A : BNE .bottle_exit
|
||||
|
||||
STZ $030D
|
||||
STZ $0300
|
||||
@@ -315,7 +108,7 @@ LinkItem_BugCatchingNet:
|
||||
LDA $50 : AND.b #$FE : STA $50
|
||||
LDA.b #$80 : STA $44 : STA $45
|
||||
|
||||
.BRANCH_BETA:
|
||||
.bottle_exit:
|
||||
|
||||
RTS
|
||||
}
|
||||
@@ -341,9 +134,122 @@ Unknown:
|
||||
|
||||
STZ $67
|
||||
|
||||
.BRANCH_BETA:
|
||||
|
||||
.BRANCH_BETA:
|
||||
NetExit:
|
||||
RTS
|
||||
}
|
||||
|
||||
print "Next address for jump in bank07: ", pc
|
||||
|
||||
; =============================================================================
|
||||
|
||||
org $07FB71
|
||||
LinkItem_Bottles_Long:
|
||||
{
|
||||
PHB : PHK : PLB
|
||||
JSR LinkItem_Bottles
|
||||
PLB
|
||||
RTL
|
||||
}
|
||||
|
||||
LinkItem_Bottles:
|
||||
{
|
||||
JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS)
|
||||
|
||||
LDA.b $3A : AND.b #$BF : STA.b $3A
|
||||
|
||||
; Check if we have a bottle or not
|
||||
LDA.l $7EF34F : DEC A : TAX
|
||||
|
||||
LDA.l $7EF35C, X : BEQ NetExit ; (RTS)
|
||||
CMP.b #$03 : BCC .LinkItem_UselessBottle
|
||||
CMP.b #$03 : BEQ .LinkItem_RedPotion
|
||||
CMP.b #$04 : BEQ .LinkItem_GreenPotion
|
||||
CMP.b #$05 : BEQ .LinkItem_BluePotion
|
||||
CMP.b #$06 : BEQ .fairy
|
||||
|
||||
BRL .LinkItem_BeeBottle
|
||||
|
||||
.fairy:
|
||||
BRL .LinkItem_FairyBottle
|
||||
|
||||
.LinkItem_RedPotion:
|
||||
LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red
|
||||
|
||||
.LinkItem_UselessBottle:
|
||||
BRL $07A955 ; LinkGoBeep TODO(scawful): Investigate
|
||||
|
||||
.can_drink_red:
|
||||
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
||||
|
||||
LDA.b #$04 : STA.b $11
|
||||
LDA.b $10 : STA.w $010C
|
||||
LDA.b #$0E : STA.b $10
|
||||
LDA.b #$07 : STA.w $0208
|
||||
|
||||
JSL $0DFA58
|
||||
|
||||
RTS
|
||||
|
||||
.LinkItem_GreenPotion:
|
||||
JSR $A1A9
|
||||
LDA $7EF36E : CMP.b #$80 : BNE .can_drink
|
||||
BRL $07A955 ; LinkGoBeep TODO(scawful): Investigate
|
||||
|
||||
.can_drink:
|
||||
LDA $02 : STA $7EF35C, X : STZ $0301
|
||||
|
||||
; submodule ????
|
||||
LDA.b #$08 : STA $11
|
||||
LDA $10 : STA $010C
|
||||
|
||||
; Go to text mode
|
||||
LDA.b #$0E : STA $10
|
||||
LDA.b #$07 : STA $0208
|
||||
|
||||
JSL $0DFA58 ; RebuildHUD_long TODO(scawful)
|
||||
RTS
|
||||
|
||||
.LinkItem_BluePotion:
|
||||
LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion
|
||||
LDA $7EF36E : CMP.b #$80 : BNE .useBluePotion
|
||||
BRL $07A955
|
||||
|
||||
.useBluePotion
|
||||
LDA.b #$02 : STA $7EF35C, X : STZ $0301
|
||||
|
||||
; more submodule code
|
||||
LDA.b #$09 : STA.b $11
|
||||
LDA.b $10 : STA.w $010C
|
||||
|
||||
; Go to text mode (?)
|
||||
LDA.b #$0E : STA.b $10
|
||||
LDA.b #$07 : STA.w $0208
|
||||
|
||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||
RTS
|
||||
|
||||
.LinkItem_FairyBottle:
|
||||
STZ.w $0301
|
||||
JSL PlayerItem_SpawnFaerie : BPL .BRANCH_NU
|
||||
BRL $07A955
|
||||
|
||||
.BRANCH_NU:
|
||||
LDA.b #$02 : STA.l $7EF35C, X
|
||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||
BRA .bottle_exit
|
||||
|
||||
.LinkItem_BeeBottle:
|
||||
STZ.w $0301
|
||||
JSL PlayerItem_ReleaseBee : BPL .bee_spawn_success
|
||||
BRL $07A955 ; LinkGoBeep
|
||||
|
||||
.bee_spawn_success
|
||||
LDA.b #$02 : STA.l $7EF35C, X
|
||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||
|
||||
.bottle_exit:
|
||||
RTS
|
||||
}
|
||||
|
||||
; =============================================================================
|
||||
Reference in New Issue
Block a user