Add Bottle/Bug Catching Net combo WIP
This commit is contained in:
269
Items/bottle_net.asm
Normal file
269
Items/bottle_net.asm
Normal file
@@ -0,0 +1,269 @@
|
|||||||
|
; =============================================================================
|
||||||
|
; Bottle Net Code
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
org $07B073
|
||||||
|
Link_CheckNewY_ButtonPress:
|
||||||
|
|
||||||
|
org $078028
|
||||||
|
Player_DoSfx2:
|
||||||
|
|
||||||
|
org $1EFE33
|
||||||
|
PlayerItem_SpawnFaerie:
|
||||||
|
|
||||||
|
org $1EDCCF
|
||||||
|
PlayerItem_ReleaseBee:
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
; LinkItem_Bottle
|
||||||
|
org $07A15B
|
||||||
|
{
|
||||||
|
BIT $3A : BVS .return ;if Y or B are already pressed
|
||||||
|
|
||||||
|
LDA $6C : BNE .return ; if we are standing in a dooray or not
|
||||||
|
|
||||||
|
JSR Link_CheckNewY_ButtonPress : BCC .return; Check if we just pressed Y Button ;
|
||||||
|
|
||||||
|
JSL LinkItem_NewBottle
|
||||||
|
|
||||||
|
.return
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
org $328000
|
||||||
|
LinkItem_NewBottle:
|
||||||
|
{
|
||||||
|
; Check if we have a bottle or not
|
||||||
|
LDA $7EF34F : DEC A : TAX
|
||||||
|
LDA $7EF35C, X : BEQ .exit
|
||||||
|
|
||||||
|
; Check if the bottle is empty
|
||||||
|
CMP.b #$03 : BCC .empty_bottle
|
||||||
|
|
||||||
|
; If so, prepare and call the LinkItem_Bottles routine
|
||||||
|
JSR LinkItem_Bottles
|
||||||
|
|
||||||
|
.empty_bottle
|
||||||
|
; Otherwise, prepare and call the LinkItem_BugCatchingNet routien
|
||||||
|
JSR LinkItem_BugCatchingNet
|
||||||
|
|
||||||
|
.exit
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
; *$3A15B-$3A249 JUMP LOCATION
|
||||||
|
LinkItem_Bottles:
|
||||||
|
{
|
||||||
|
LDA $3A : AND.b #$BF : STA $3A
|
||||||
|
|
||||||
|
; Check if we have a bottle or not
|
||||||
|
LDA $7EF34F : DEC A : TAX
|
||||||
|
|
||||||
|
LDA $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 $7EF36C : CMP $7EF36D : BNE .can_drink
|
||||||
|
|
||||||
|
.LinkItem_UselessBottle:
|
||||||
|
|
||||||
|
BRL $07A955
|
||||||
|
|
||||||
|
.can_drink:
|
||||||
|
|
||||||
|
LDA.b #$02 : STA $7EF35C, X
|
||||||
|
|
||||||
|
STZ $0301
|
||||||
|
|
||||||
|
LDA.b #$04 : STA $11
|
||||||
|
LDA $10 : STA $010C
|
||||||
|
LDA.b #$0E : STA $10
|
||||||
|
LDA.b #$07 : STA $0208
|
||||||
|
|
||||||
|
JSL $0DFA58
|
||||||
|
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.LinkItem_GreenPotion:
|
||||||
|
|
||||||
|
LDA $7EF36E : CMP.b #$80 : BNE .BRANCH_THETA
|
||||||
|
|
||||||
|
BRL $07A955
|
||||||
|
|
||||||
|
.BRANCH_THETA:
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
BRA .BRANCH_IOTA
|
||||||
|
|
||||||
|
.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
|
||||||
|
|
||||||
|
LDA.b #$09 : STA $11
|
||||||
|
LDA $10 : STA $010C
|
||||||
|
LDA.b #$0E : STA $10
|
||||||
|
LDA.b #$07 : STA $0208
|
||||||
|
|
||||||
|
JSL $0DFA58
|
||||||
|
|
||||||
|
BRA .BRANCH_IOTA
|
||||||
|
|
||||||
|
.LinkItem_FairyBottle:
|
||||||
|
|
||||||
|
STZ $0301
|
||||||
|
JSL PlayerItem_SpawnFaerie : BPL .BRANCH_NU
|
||||||
|
BRL $07A955
|
||||||
|
|
||||||
|
.BRANCH_NU:
|
||||||
|
|
||||||
|
LDA.b #$02 : STA $7EF35C, X
|
||||||
|
JSL $0DFA58
|
||||||
|
BRA .BRANCH_IOTA
|
||||||
|
|
||||||
|
.LinkItem_BeeBottle:
|
||||||
|
|
||||||
|
STZ $0301
|
||||||
|
JSL PlayerItem_ReleaseBee : BPL .bee_spawn_success
|
||||||
|
BRL $07A955
|
||||||
|
|
||||||
|
.bee_spawn_success
|
||||||
|
|
||||||
|
LDA.b #$02 : STA $7EF35C, X
|
||||||
|
JSL $0DFA58
|
||||||
|
|
||||||
|
.BRANCH_IOTA:
|
||||||
|
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
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
|
||||||
|
db $09, $04, $05, $06, $07, $08, $01, $02, $03, $04 ; left
|
||||||
|
db $0A, $08, $01, $02, $03, $04, $05, $06, $07, $08 ; right
|
||||||
|
|
||||||
|
pose_offset:
|
||||||
|
db $00 ; up
|
||||||
|
db $0A ; down
|
||||||
|
db $14 ; left
|
||||||
|
db $1E ; right
|
||||||
|
|
||||||
|
; *$3AFF8-$3B072 LOCAL
|
||||||
|
LinkItem_BugCatchingNet:
|
||||||
|
{
|
||||||
|
LDA $2F : LSR A : TAY
|
||||||
|
LDX pose_offset, Y
|
||||||
|
LDA pose_id, X : STA $0300
|
||||||
|
LDA.b #$03 : STA $3D
|
||||||
|
|
||||||
|
STZ $030D, X
|
||||||
|
|
||||||
|
LDA.b #$10 : STA $037A
|
||||||
|
LDA.b #$01 : TSB $50
|
||||||
|
|
||||||
|
STZ $2E
|
||||||
|
|
||||||
|
; LDA.b #$32 : JSL Player_DoSfx2
|
||||||
|
|
||||||
|
.y_press:
|
||||||
|
|
||||||
|
JSR Unknown ; $3AE65 IN ROM
|
||||||
|
|
||||||
|
LDA $67 : AND.b #$F0 : STA $67
|
||||||
|
DEC $3D : BPL .BRANCH_BETA
|
||||||
|
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
|
||||||
|
|
||||||
|
STZ $030D
|
||||||
|
STZ $0300
|
||||||
|
|
||||||
|
LDA $3A : AND.b #$80 : STA $3A
|
||||||
|
STZ $037A
|
||||||
|
|
||||||
|
LDA $50 : AND.b #$FE : STA $50
|
||||||
|
LDA.b #$80 : STA $44 : STA $45
|
||||||
|
|
||||||
|
.BRANCH_BETA:
|
||||||
|
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
; *$3AE65-$3AE87 LOCAL
|
||||||
|
Unknown:
|
||||||
|
{
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
@@ -10,6 +10,28 @@
|
|||||||
; Intro skip after leaving house
|
; Intro skip after leaving house
|
||||||
; Key block link's awakening
|
; Key block link's awakening
|
||||||
; Lost Sea Area Combo
|
; Lost Sea Area Combo
|
||||||
|
;
|
||||||
|
; Expanded Banks Key:
|
||||||
|
; 20 - None
|
||||||
|
; 21 - None
|
||||||
|
; 22 - None
|
||||||
|
; 23 - House Tag
|
||||||
|
; 24 - Menu
|
||||||
|
; 25 - None
|
||||||
|
; 26 - HUD
|
||||||
|
; 27 - Mask Routines(?)
|
||||||
|
; 28 - Deku Link Code
|
||||||
|
; 29 - Farore Sprite
|
||||||
|
; 30 - Palette_ArmorAndGloves
|
||||||
|
; 31 - None
|
||||||
|
; 32 - Bottle / Net Item
|
||||||
|
; 33 - None
|
||||||
|
; 34 - Jump Feather
|
||||||
|
; 35 - Deku Link GFX
|
||||||
|
; 36 - Zora Link GFX
|
||||||
|
; 37 - Bunny Link GFX
|
||||||
|
; 38 - Wolf Link GFX
|
||||||
|
; 39 - None
|
||||||
;
|
;
|
||||||
;===========================================================
|
;===========================================================
|
||||||
|
|
||||||
@@ -42,6 +64,10 @@ namespace Oracle
|
|||||||
incsrc "Menu/menu.asm"
|
incsrc "Menu/menu.asm"
|
||||||
print "End of Menu/menu.asm ", pc
|
print "End of Menu/menu.asm ", pc
|
||||||
|
|
||||||
|
; ---------------------------------------------------------
|
||||||
|
incsrc "Items/bottle_net.asm"
|
||||||
|
print "End of Items/bottle_net.asm ", pc
|
||||||
|
|
||||||
; ---------------------------------------------------------
|
; ---------------------------------------------------------
|
||||||
incsrc "Events/intro.asm"
|
incsrc "Events/intro.asm"
|
||||||
print "End of Events/intro.asm ", pc
|
print "End of Events/intro.asm ", pc
|
||||||
|
|||||||
Reference in New Issue
Block a user