update goldstar
This commit is contained in:
@@ -313,23 +313,25 @@ Goldstar_SetChainProperties:
|
|||||||
|
|
||||||
pushpc
|
pushpc
|
||||||
org $0DA6E3
|
org $0DA6E3
|
||||||
JSL Link_OAM_Actually
|
JSL LinkOAM_GoldstarWeaponTiles
|
||||||
NOP
|
NOP
|
||||||
pullpc
|
pullpc
|
||||||
|
|
||||||
|
LinkOAM_WeaponTiles = $0D839B
|
||||||
|
|
||||||
; 22D880
|
; 22D880
|
||||||
Link_OAM_Actually:
|
LinkOAM_GoldstarWeaponTiles:
|
||||||
{
|
{
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.w $0202 : AND.w #$00FF : CMP.w #$0003 : BEQ +
|
LDA.w $0202 : AND.w #$00FF : CMP.w #$0003 : BEQ +
|
||||||
LDA $839B,Y ; LinkOAM_WeaponTiles
|
LDA.w LinkOAM_WeaponTiles, Y
|
||||||
RTL
|
RTL
|
||||||
+ ; $22D892
|
+ ; $22D892
|
||||||
LDA $839B,Y : CMP.w #$221A : BEQ ++
|
LDA.w LinkOAM_WeaponTiles, Y : CMP.w #$221A : BEQ ++
|
||||||
RTL
|
RTL
|
||||||
++ ; $22D89B
|
++ ; $22D89B
|
||||||
LDA GoldstarOrHookshot : AND.w #$00FF : CMP.w #$0002 : BEQ +++
|
LDA.w GoldstarOrHookshot : AND.w #$00FF : CMP.w #$0002 : BEQ +++
|
||||||
LDA $839B,Y ; LinkOAM_WeaponTiles
|
LDA.w LinkOAM_WeaponTiles, Y
|
||||||
RTL
|
RTL
|
||||||
+++ ; $22D8AA
|
+++ ; $22D8AA
|
||||||
LDA.w #$241E
|
LDA.w #$241E
|
||||||
@@ -780,8 +782,8 @@ BallChain_SFX_Control:
|
|||||||
Routine_22DCA0:
|
Routine_22DCA0:
|
||||||
{
|
{
|
||||||
LDA $7A : CMP #$00 : BNE + ;$A2DCAB
|
LDA $7A : CMP #$00 : BNE + ;$A2DCAB
|
||||||
LDA $0DBB5B,X
|
LDA $0DBB5B, X
|
||||||
RTL
|
RTL
|
||||||
+
|
+
|
||||||
LDA #$00
|
LDA #$00
|
||||||
RTL
|
RTL
|
||||||
@@ -789,33 +791,29 @@ Routine_22DCA0:
|
|||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; 22DD90
|
; 22DD90
|
||||||
; TODO: Investigate the purpose of the $7A timer here
|
|
||||||
|
|
||||||
CheckAndClearAncillaId:
|
CheckAndClearAncillaId:
|
||||||
{
|
{
|
||||||
SEP #$30
|
SEP #$30
|
||||||
; Check if hookshot ancillae in this slot
|
; Check if hookshot ancillae in this slot
|
||||||
LDA $0C4A : CMP #$1F : BEQ + ; $22DDC9
|
LDA $0C4A : CMP #$1F : BEQ + ; $22DDC9
|
||||||
LDA $0C4C : CMP #$1F : BEQ ++ ; $22DDB1
|
LDA $0C4C : CMP #$1F : BEQ ++ ; $22DDB1
|
||||||
LDA $0C4D : CMP #$1F : BEQ +++ ; $22DDB9
|
LDA $0C4D : CMP #$1F : BEQ +++ ; $22DDB9
|
||||||
LDA $0C4B : CMP #$1F : BEQ ++++ ; $22DDC1
|
LDA $0C4B : CMP #$1F : BEQ ++++ ; $22DDC1
|
||||||
LDA $7A ; Ball Chain Timer
|
LDA $7A ; Ball Chain Timer
|
||||||
RTS
|
RTS
|
||||||
++ ; 22DDB1
|
++ ; 22DDB1
|
||||||
NOP : NOP
|
STZ $0C4C : LDA $7A
|
||||||
STZ $0C4C : LDA $7A
|
RTS
|
||||||
RTS
|
+++ ; 22DDB9
|
||||||
+++ ; 22DDB9
|
STZ $0C4D : LDA $7A
|
||||||
NOP : NOP
|
RTS
|
||||||
STZ $0C4D : LDA $7A
|
++++ ; 22DDC1
|
||||||
|
STZ $0C4B : LDA $7A
|
||||||
RTS
|
RTS
|
||||||
++++ ; 22DDC1
|
|
||||||
NOP : NOP
|
|
||||||
STZ $0C4B : LDA $7A
|
|
||||||
RTS
|
|
||||||
+ ; 22DDC9
|
+ ; 22DDC9
|
||||||
STZ $0C4A : LDA $7A
|
STZ $0C4A : LDA $7A
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
@@ -856,18 +854,6 @@ CheckForSomariaBlock:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; 22E5F0 doesnt execute?
|
|
||||||
Routine_22E5F0:
|
|
||||||
{
|
|
||||||
LDA $7EF33C : BNE + ;$22E5F7
|
|
||||||
RTL
|
|
||||||
+ ; 22E5F7
|
|
||||||
LDA $4D : BEQ ++ ; $22E5FC
|
|
||||||
RTL
|
|
||||||
++ ; 22E5FC
|
|
||||||
JMP $E108
|
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
;22EE80
|
;22EE80
|
||||||
; TODO: Handle the somaria blast case, these JMPs are invalid.
|
; TODO: Handle the somaria blast case, these JMPs are invalid.
|
||||||
@@ -966,8 +952,12 @@ Hookshot_Init:
|
|||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
|
|
||||||
Goldstar_Begin:
|
BeginGoldstarOrHookshot:
|
||||||
{
|
{
|
||||||
|
LDA GoldstarOrHookshot : CMP #$02 : BEQ .begin_goldstar
|
||||||
|
JMP .begin_hookshot
|
||||||
|
|
||||||
|
.begin_goldstar:
|
||||||
JSL CheckForBallChain
|
JSL CheckForBallChain
|
||||||
JSL Hookshot_Init
|
JSL Hookshot_Init
|
||||||
JSL BallChain_StartAnimationFlag
|
JSL BallChain_StartAnimationFlag
|
||||||
@@ -975,40 +965,12 @@ Goldstar_Begin:
|
|||||||
JSL $099B10 ; AncillaAdd_Hookshot
|
JSL $099B10 ; AncillaAdd_Hookshot
|
||||||
JSL TransferGFXinRAM
|
JSL TransferGFXinRAM
|
||||||
RTL
|
RTL
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
CheckForSwitchToGoldstar:
|
|
||||||
{
|
|
||||||
%CheckNewR_ButtonPress() : BEQ .continue
|
|
||||||
LDA GoldstarOrHookshot : CMP #$01 : BEQ .set_hookshot
|
|
||||||
LDA #$01 : STA GoldstarOrHookshot
|
|
||||||
JMP .continue
|
|
||||||
.set_hookshot:
|
|
||||||
LDA #$02 : STA GoldstarOrHookshot
|
|
||||||
.continue:
|
|
||||||
LDA.b $3A : AND.b #$40 ; Restore vanilla code
|
|
||||||
RTL
|
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
BeginGoldstarOrHookshot:
|
|
||||||
{
|
|
||||||
LDA GoldstarOrHookshot : CMP #$02 : BEQ .begin_goldstar
|
|
||||||
JMP .return
|
|
||||||
|
|
||||||
.begin_goldstar:
|
|
||||||
JSL Goldstar_Begin
|
|
||||||
RTL
|
|
||||||
|
|
||||||
.return
|
.begin_hookshot
|
||||||
JSL Hookshot_Init
|
JSL Hookshot_Init
|
||||||
LDA #$13 : STA $5D ; Set hookshot state
|
LDA.b #$13 : STA $5D ; Set hookshot state
|
||||||
LDA #$01 : STA.w $037B
|
LDA.b #$01 : STA.w $037B
|
||||||
LDY.b #$03
|
LDY.b #$03 : LDA.b #$1F ; ANCILLA 1F
|
||||||
LDA.b #$1F ; ANCILLA 1F
|
|
||||||
JSL $099B10 ; AncillaAdd_Hookshot
|
JSL $099B10 ; AncillaAdd_Hookshot
|
||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
@@ -1041,17 +1003,35 @@ ApplyGoldstarDamageClass:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; =========================================================
|
||||||
|
|
||||||
|
CheckForSwitchToGoldstar:
|
||||||
|
{
|
||||||
|
%CheckNewR_ButtonPress() : BEQ .continue
|
||||||
|
LDA GoldstarOrHookshot : CMP #$01 : BEQ .set_hookshot
|
||||||
|
LDA #$01 : STA GoldstarOrHookshot
|
||||||
|
JMP .continue
|
||||||
|
.set_hookshot:
|
||||||
|
LDA #$02 : STA GoldstarOrHookshot
|
||||||
|
.continue:
|
||||||
|
LDA.b $3A : AND.b #$40 ; Restore vanilla code
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
pushpc
|
pushpc
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; Main Hookshot/Goldstar hooks
|
; Main Hookshot/Goldstar hooks
|
||||||
|
|
||||||
|
; LinkItem_Hookshot
|
||||||
org $07AB25
|
org $07AB25
|
||||||
JSL CheckForSwitchToGoldstar
|
JSL CheckForSwitchToGoldstar
|
||||||
|
|
||||||
|
; Ancilla_CheckDamageToSprite.not_airborne
|
||||||
org $06ECF2
|
org $06ECF2
|
||||||
JSL ApplyGoldstarDamageClass
|
JSL ApplyGoldstarDamageClass
|
||||||
|
|
||||||
|
; LinkItem_Hookshot
|
||||||
org $07AB3A ;$07AB40
|
org $07AB3A ;$07AB40
|
||||||
JSL BeginGoldstarOrHookshot
|
JSL BeginGoldstarOrHookshot
|
||||||
RTS
|
RTS
|
||||||
|
|||||||
Reference in New Issue
Block a user