Items housekeeping
This commit is contained in:
@@ -20,29 +20,24 @@ LinkItem_NewBottle:
|
|||||||
; Check if the bottle is empty
|
; Check if the bottle is empty
|
||||||
CMP.b #$03 : BCC .empty_bottle
|
CMP.b #$03 : BCC .empty_bottle
|
||||||
|
|
||||||
; Confirm we aren't currently catching
|
; Confirm we aren't currently catching
|
||||||
LDA $030D : BNE .empty_bottle
|
LDA $030D : BNE .empty_bottle
|
||||||
|
|
||||||
; If no, prepare and call the LinkItem_Bottles routine
|
; If no, prepare and call the LinkItem_Bottles routine
|
||||||
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,26 +54,23 @@ pose_offset:
|
|||||||
LinkItem_CatchBottle:
|
LinkItem_CatchBottle:
|
||||||
{
|
{
|
||||||
BIT $3A : BVS .y_press
|
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.w pose_id, X : STA $0300
|
||||||
|
LDA.b #$03 : STA $3D
|
||||||
|
|
||||||
LDA $6C : BNE .bottle_exit ; (RTS)
|
STZ $030D, X
|
||||||
|
|
||||||
JSR Link_CheckNewY_ButtonPress : BCC .bottle_exit ; (RTS)
|
LDA.b #$10 : STA $037A
|
||||||
|
LDA.b #$01 : TSB $50
|
||||||
|
|
||||||
LDA $2F : LSR A : TAY
|
STZ $2E
|
||||||
LDX pose_offset, Y
|
|
||||||
LDA.w pose_id, X : STA $0300
|
|
||||||
LDA.b #$03 : STA $3D
|
|
||||||
|
|
||||||
STZ $030D, X
|
LDA.b #$32 : JSR Player_DoSfx2
|
||||||
|
|
||||||
LDA.b #$10 : STA $037A
|
.y_press:
|
||||||
LDA.b #$01 : TSB $50
|
|
||||||
|
|
||||||
STZ $2E
|
|
||||||
|
|
||||||
LDA.b #$32 : JSR Player_DoSfx2
|
|
||||||
|
|
||||||
.y_press:
|
|
||||||
JSR $AE65 ; HaltLinkWhenUsingItems
|
JSR $AE65 ; HaltLinkWhenUsingItems
|
||||||
|
|
||||||
LDA $67 : AND.b #$F0 : STA $67
|
LDA $67 : AND.b #$F0 : STA $67
|
||||||
@@ -99,120 +91,114 @@ 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
|
||||||
|
LDA.l $7EF34F : DEC A : TAX
|
||||||
|
|
||||||
; Check if we have a bottle or not
|
LDA.l $7EF35C, X : BEQ NetExit ; (RTS)
|
||||||
LDA.l $7EF34F : DEC A : TAX
|
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
|
||||||
|
CMP.b #$09 : BEQ .magic_bean
|
||||||
|
CMP.b #$0A : BEQ .milk_bottle
|
||||||
|
BRL .LinkItem_BeeBottle
|
||||||
|
|
||||||
LDA.l $7EF35C, X : BEQ NetExit ; (RTS)
|
.milk_bottle
|
||||||
CMP.b #$03 : BCC .LinkItem_UselessBottle
|
LDA.l $7EF36C : CMP.l $7EF36D : BEQ .LinkItem_UselessBottle
|
||||||
CMP.b #$03 : BEQ .LinkItem_RedPotion
|
JSL Bottle_DrinkMilk
|
||||||
CMP.b #$04 : BEQ .LinkItem_GreenPotion
|
RTS
|
||||||
CMP.b #$05 : BEQ .LinkItem_BluePotion
|
|
||||||
CMP.b #$06 : BEQ .fairy
|
|
||||||
CMP.b #$09 : BEQ .magic_bean
|
|
||||||
CMP.b #$0A : BEQ .milk_bottle
|
|
||||||
|
|
||||||
BRL .LinkItem_BeeBottle
|
.magic_bean
|
||||||
|
JSL ReleaseMagicBean
|
||||||
.milk_bottle
|
|
||||||
LDA.l $7EF36C : CMP.l $7EF36D : BEQ .LinkItem_UselessBottle
|
|
||||||
JSL Bottle_DrinkMilk
|
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.magic_bean
|
.fairy
|
||||||
JSL ReleaseMagicBean
|
BRL .LinkItem_FairyBottle
|
||||||
RTS
|
|
||||||
|
|
||||||
.fairy
|
.LinkItem_RedPotion
|
||||||
BRL .LinkItem_FairyBottle
|
LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red
|
||||||
|
|
||||||
.LinkItem_RedPotion
|
.LinkItem_UselessBottle
|
||||||
LDA.l $7EF36C : CMP.l $7EF36D : BNE .can_drink_red
|
BRL LinkGoBeep ; BRL $07A955 Investigate
|
||||||
|
|
||||||
.LinkItem_UselessBottle
|
.can_drink_red
|
||||||
BRL LinkGoBeep ; BRL $07A955 Investigate
|
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
||||||
|
|
||||||
.can_drink_red
|
LDA.b #$04 : STA.b $11
|
||||||
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
LDA.b $10 : STA.w $010C
|
||||||
|
LDA.b #$0E : STA.b $10
|
||||||
|
LDA.b #$07 : STA.w $0208
|
||||||
|
|
||||||
LDA.b #$04 : STA.b $11
|
JSL RebuildHUD_long
|
||||||
LDA.b $10 : STA.w $010C
|
|
||||||
LDA.b #$0E : STA.b $10
|
|
||||||
LDA.b #$07 : STA.w $0208
|
|
||||||
|
|
||||||
JSL RebuildHUD_long
|
RTS
|
||||||
|
|
||||||
RTS
|
.LinkItem_GreenPotion
|
||||||
|
LDA.l $7EF36E : CMP.b #$80 : BNE .can_drink
|
||||||
|
BRL LinkGoBeep
|
||||||
|
|
||||||
.LinkItem_GreenPotion
|
.can_drink
|
||||||
LDA.l $7EF36E : CMP.b #$80 : BNE .can_drink
|
; Set the bottle empty
|
||||||
BRL LinkGoBeep
|
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
||||||
|
|
||||||
.can_drink
|
; submodule ????
|
||||||
; Set the bottle empty
|
LDA.b #$08 : STA.b $11
|
||||||
LDA.b #$02 : STA.l $7EF35C, X : STZ.w $0301
|
LDA.b $10 : STA.w $010C
|
||||||
|
|
||||||
; submodule ????
|
; Go to text mode
|
||||||
LDA.b #$08 : STA.b $11
|
LDA.b #$0E : STA.b $10
|
||||||
LDA.b $10 : STA.w $010C
|
LDA.b #$07 : STA.w $0208
|
||||||
|
|
||||||
; Go to text mode
|
JSL RebuildHUD_long
|
||||||
LDA.b #$0E : STA.b $10
|
BRA .bottle_exit
|
||||||
LDA.b #$07 : STA.w $0208
|
|
||||||
|
|
||||||
JSL RebuildHUD_long
|
.LinkItem_BluePotion
|
||||||
BRA .bottle_exit
|
LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion
|
||||||
|
LDA $7EF36E : CMP.b #$80 : BNE .useBluePotion
|
||||||
|
BRL LinkGoBeep ; BRL $07A955
|
||||||
|
.useBluePotion
|
||||||
|
LDA.b #$02 : STA $7EF35C, X : STZ $0301
|
||||||
|
|
||||||
.LinkItem_BluePotion
|
; more submodule code
|
||||||
LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion
|
LDA.b #$09 : STA.b $11
|
||||||
LDA $7EF36E : CMP.b #$80 : BNE .useBluePotion
|
LDA.b $10 : STA.w $010C
|
||||||
BRL LinkGoBeep ; BRL $07A955
|
|
||||||
|
|
||||||
.useBluePotion
|
; Go to text mode (?)
|
||||||
LDA.b #$02 : STA $7EF35C, X : STZ $0301
|
LDA.b #$0E : STA.b $10
|
||||||
|
LDA.b #$07 : STA.w $0208
|
||||||
|
|
||||||
; more submodule code
|
JSL RebuildHUD_long
|
||||||
LDA.b #$09 : STA.b $11
|
BRA .bottle_exit
|
||||||
LDA.b $10 : STA.w $010C
|
|
||||||
|
|
||||||
; Go to text mode (?)
|
.LinkItem_FairyBottle
|
||||||
LDA.b #$0E : STA.b $10
|
STZ.w $0301 : LDA.b #$02 : STA.l $7EF35C, X
|
||||||
LDA.b #$07 : STA.w $0208
|
JSL PlayerItem_SpawnFaerie : BPL .released
|
||||||
|
BRL LinkGoBeep ; BRL $07A955
|
||||||
|
.released
|
||||||
|
JSL RebuildHUD_long
|
||||||
|
BRA .bottle_exit
|
||||||
|
|
||||||
JSL RebuildHUD_long
|
.LinkItem_BeeBottle
|
||||||
BRA .bottle_exit
|
STZ.w $0301
|
||||||
|
JSL PlayerItem_ReleaseBee : BPL .bee_spawn_success
|
||||||
|
BRL LinkGoBeep ; BRL $07A955
|
||||||
|
.bee_spawn_success
|
||||||
|
LDA.b #$02 : STA.l $7EF35C, X
|
||||||
|
JSL RebuildHUD_long
|
||||||
|
|
||||||
.LinkItem_FairyBottle
|
.bottle_exit
|
||||||
STZ.w $0301 : LDA.b #$02 : STA.l $7EF35C, X
|
|
||||||
JSL PlayerItem_SpawnFaerie : BPL .released
|
|
||||||
BRL LinkGoBeep ; BRL $07A955
|
|
||||||
|
|
||||||
.released
|
|
||||||
JSL RebuildHUD_long
|
|
||||||
BRA .bottle_exit
|
|
||||||
|
|
||||||
.LinkItem_BeeBottle
|
|
||||||
STZ.w $0301
|
|
||||||
JSL PlayerItem_ReleaseBee : BPL .bee_spawn_success
|
|
||||||
BRL LinkGoBeep ; BRL $07A955
|
|
||||||
|
|
||||||
.bee_spawn_success
|
|
||||||
LDA.b #$02 : STA.l $7EF35C, X
|
|
||||||
JSL RebuildHUD_long
|
|
||||||
|
|
||||||
.bottle_exit
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ NOP
|
|||||||
|
|
||||||
org $079E67
|
org $079E67
|
||||||
NOP #$04
|
NOP #$04
|
||||||
CMP #$FF
|
CMP #$FF
|
||||||
|
|
||||||
org $09F608
|
org $09F608
|
||||||
NOP
|
NOP
|
||||||
@@ -93,4 +93,4 @@ AND #$10 : BNE +
|
|||||||
.branchF
|
.branchF
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ LinkItem_IceRod:
|
|||||||
TXA
|
TXA
|
||||||
STA $7ED004 ; store native x value into ram to regain after code
|
STA $7ED004 ; store native x value into ram to regain after code
|
||||||
|
|
||||||
; wait for vblank to enable dma transfer
|
; wait for vblank to enable dma transfer
|
||||||
LDA $4212 : AND #$80 : BEQ $F9
|
LDA $4212 : AND #$80 : BEQ $F9
|
||||||
|
|
||||||
REP #$30
|
REP #$30
|
||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,25 +47,24 @@ 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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
@@ -79,13 +74,13 @@ LinkItem_JumpFeather:
|
|||||||
|
|
||||||
CheckIfJumpingForSpikeDamage:
|
CheckIfJumpingForSpikeDamage:
|
||||||
{
|
{
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
; Check Z pos of Link
|
; Check Z pos of Link
|
||||||
LDA $5D : CMP.b #$02 : BEQ .airborne
|
LDA $5D : CMP.b #$02 : BEQ .airborne
|
||||||
LDA.w .spike_floor_damage, Y : STA.w $0373
|
LDA.w .spike_floor_damage, Y : STA.w $0373
|
||||||
.airborne
|
.airborne
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
.spike_floor_damage
|
.spike_floor_damage
|
||||||
db $08 ; green
|
db $08 ; green
|
||||||
|
|||||||
@@ -159,4 +159,3 @@ pushpc
|
|||||||
org $07810C
|
org $07810C
|
||||||
JSL MagicRings_CheckForHeart
|
JSL MagicRings_CheckForHeart
|
||||||
pullpc
|
pullpc
|
||||||
|
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ Overworld_OperateCameraScroll_Long:
|
|||||||
|
|
||||||
JSR $BB90
|
JSR $BB90
|
||||||
|
|
||||||
PLB
|
PLB
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
@@ -165,10 +165,10 @@ pullpc
|
|||||||
ScrollToPortal:
|
ScrollToPortal:
|
||||||
{
|
{
|
||||||
REP #$20
|
REP #$20
|
||||||
|
|
||||||
STZ $00
|
STZ $00
|
||||||
STZ $02
|
STZ $02
|
||||||
|
|
||||||
LDA $22 : CMP $7EC186 : BEQ .set_x : BCC .x_low
|
LDA $22 : CMP $7EC186 : BEQ .set_x : BCC .x_low
|
||||||
DEC $02
|
DEC $02
|
||||||
DEC A : CMP $7EC186 : BEQ .set_x
|
DEC A : CMP $7EC186 : BEQ .set_x
|
||||||
@@ -185,7 +185,7 @@ ScrollToPortal:
|
|||||||
.set_x
|
.set_x
|
||||||
|
|
||||||
STA $22
|
STA $22
|
||||||
|
|
||||||
LDA $20 : CMP $7EC184 : BEQ .set_y : BCC .y_low
|
LDA $20 : CMP $7EC184 : BEQ .set_y : BCC .y_low
|
||||||
DEC $00
|
DEC $00
|
||||||
DEC A : CMP $7EC184 : BEQ .set_y
|
DEC A : CMP $7EC184 : BEQ .set_y
|
||||||
@@ -209,12 +209,12 @@ ScrollToPortal:
|
|||||||
.delay_advance
|
.delay_advance
|
||||||
|
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
LDA $00 : STA $30
|
LDA $00 : STA $30
|
||||||
LDA $02 : STA $31
|
LDA $02 : STA $31
|
||||||
|
|
||||||
JSL Overworld_OperateCameraScroll_Long ; $13B90 IN ROM
|
JSL Overworld_OperateCameraScroll_Long ; $13B90 IN ROM
|
||||||
|
|
||||||
LDA $0416 : BEQ .exit
|
LDA $0416 : BEQ .exit
|
||||||
JSL Overworld_ScrollMap_Long ; $17273 IN ROM
|
JSL Overworld_ScrollMap_Long ; $17273 IN ROM
|
||||||
.exit
|
.exit
|
||||||
@@ -229,46 +229,46 @@ pushpc
|
|||||||
; Ancilla_PortalShot:
|
; Ancilla_PortalShot:
|
||||||
; {
|
; {
|
||||||
; LDA $0C54, X : BEQ .traveling_shot
|
; LDA $0C54, X : BEQ .traveling_shot
|
||||||
|
|
||||||
; JMP Ancilla_ConsumingFire
|
; JMP Ancilla_ConsumingFire
|
||||||
|
|
||||||
; .traveling_shot
|
; .traveling_shot
|
||||||
|
|
||||||
; LDA $11 : BNE .just_draw
|
; LDA $11 : BNE .just_draw
|
||||||
|
|
||||||
; STZ $0385, X
|
; STZ $0385, X
|
||||||
|
|
||||||
; JSR Ancilla_MoveHoriz
|
; JSR Ancilla_MoveHoriz
|
||||||
; JSR Ancilla_MoveVert
|
; JSR Ancilla_MoveVert
|
||||||
|
|
||||||
; JSR Ancilla_CheckSpriteCollision : BCS .collided
|
; JSR Ancilla_CheckSpriteCollision : BCS .collided
|
||||||
|
|
||||||
; LDA $0C72, X : ORA.b #$08 : STA $0C72, X
|
; LDA $0C72, X : ORA.b #$08 : STA $0C72, X
|
||||||
|
|
||||||
; JSR Ancilla_CheckTileCollision
|
; JSR Ancilla_CheckTileCollision
|
||||||
|
|
||||||
; PHP
|
; PHP
|
||||||
|
|
||||||
; LDA $03E4, X : STA $0385, X
|
; LDA $03E4, X : STA $0385, X
|
||||||
|
|
||||||
; PLP : BCS .collided
|
; PLP : BCS .collided
|
||||||
|
|
||||||
; LDA $0C72, X : ORA.b #$0C : STA $0C72, X
|
; LDA $0C72, X : ORA.b #$0C : STA $0C72, X
|
||||||
|
|
||||||
; LDA $028A, X : STA $74
|
; LDA $028A, X : STA $74
|
||||||
|
|
||||||
; JSR Ancilla_CheckTileCollision
|
; JSR Ancilla_CheckTileCollision
|
||||||
|
|
||||||
; PHP
|
; PHP
|
||||||
|
|
||||||
; LDA $74 : STA $028A, X
|
; LDA $74 : STA $028A, X
|
||||||
|
|
||||||
; PLP : BCC .no_collision
|
; PLP : BCC .no_collision
|
||||||
|
|
||||||
; .collided
|
; .collided
|
||||||
|
|
||||||
; INC $0C54, X
|
; INC $0C54, X
|
||||||
|
|
||||||
; ; Check if it's blue or orange portal
|
; ; Check if it's blue or orange portal
|
||||||
; LDA $0C68, X
|
; LDA $0C68, X
|
||||||
; CMP.b #$1F
|
; CMP.b #$1F
|
||||||
@@ -290,23 +290,23 @@ pushpc
|
|||||||
; ; CLC : ADC portal creation logic here if necessary
|
; ; CLC : ADC portal creation logic here if necessary
|
||||||
|
|
||||||
; .no_collision
|
; .no_collision
|
||||||
|
|
||||||
; INC $0C5E, X
|
; INC $0C5E, X
|
||||||
|
|
||||||
; LDA $0C72, X : AND.b #$F3 : STA $0C72, X
|
; LDA $0C72, X : AND.b #$F3 : STA $0C72, X
|
||||||
|
|
||||||
; LDA $0385, X : STA $0333
|
; LDA $0385, X : STA $0333
|
||||||
|
|
||||||
; AND.b #$F0 : CMP.b #$C0 : BNE .just_draw
|
; AND.b #$F0 : CMP.b #$C0 : BNE .just_draw
|
||||||
|
|
||||||
; LDA $03E4, X : STA $0333
|
; LDA $03E4, X : STA $0333
|
||||||
|
|
||||||
; AND.b #$F0 : CMP.b #$C0 : BNE .just_draw
|
; AND.b #$F0 : CMP.b #$C0 : BNE .just_draw
|
||||||
|
|
||||||
; .just_draw
|
; .just_draw
|
||||||
|
|
||||||
; JSR PortalShot_Draw
|
; JSR PortalShot_Draw
|
||||||
|
|
||||||
; RTS
|
; RTS
|
||||||
; }
|
; }
|
||||||
|
|
||||||
@@ -314,46 +314,46 @@ pushpc
|
|||||||
; PortalShot_Draw:
|
; PortalShot_Draw:
|
||||||
; {
|
; {
|
||||||
; JSR Ancilla_BoundsCheck
|
; JSR Ancilla_BoundsCheck
|
||||||
|
|
||||||
; LDA $0280, X : BEQ .default_priority
|
; LDA $0280, X : BEQ .default_priority
|
||||||
|
|
||||||
; LDA.b #$30 : TSB $04
|
; LDA.b #$30 : TSB $04
|
||||||
|
|
||||||
; .default_priority
|
; .default_priority
|
||||||
|
|
||||||
; LDA $0C5E, X : AND.b #$0C : STA $02
|
; LDA $0C5E, X : AND.b #$0C : STA $02
|
||||||
|
|
||||||
; PHX
|
; PHX
|
||||||
|
|
||||||
; LDX.b #$02
|
; LDX.b #$02
|
||||||
; LDY.b #$00
|
; LDY.b #$00
|
||||||
|
|
||||||
; .next_oam_entry
|
; .next_oam_entry
|
||||||
|
|
||||||
; STX $03
|
; STX $03
|
||||||
|
|
||||||
; TXA : ORA $02 : TAX
|
; TXA : ORA $02 : TAX
|
||||||
|
|
||||||
; LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
; LDA $00 : CLC : ADC .x_offsets, X : STA ($90), Y
|
||||||
; LDA $01 : CLC : ADC .y_offsets, X : INY : STA ($90), Y
|
; LDA $01 : CLC : ADC .y_offsets, X : INY : STA ($90), Y
|
||||||
|
|
||||||
; LDX $03
|
; LDX $03
|
||||||
|
|
||||||
; LDA .chr, X : INY : STA ($90), Y
|
; LDA .chr, X : INY : STA ($90), Y
|
||||||
; LDA $04 : ORA.b #$02 : INY : STA ($90), Y
|
; LDA $04 : ORA.b #$02 : INY : STA ($90), Y
|
||||||
|
|
||||||
; PHY
|
; PHY
|
||||||
|
|
||||||
; TYA : LSR #2 : TAY
|
; TYA : LSR #2 : TAY
|
||||||
|
|
||||||
; LDA.b #$00 : STA ($92), Y
|
; LDA.b #$00 : STA ($92), Y
|
||||||
|
|
||||||
; PLY : INY
|
; PLY : INY
|
||||||
|
|
||||||
; DEX : BPL .next_oam_entry
|
; DEX : BPL .next_oam_entry
|
||||||
|
|
||||||
; PLX
|
; PLX
|
||||||
|
|
||||||
; RTS
|
; RTS
|
||||||
|
|
||||||
; .x_offsets
|
; .x_offsets
|
||||||
|
|||||||
Reference in New Issue
Block a user