Cleanup Asar warnings with deprecated #$ format in tables

This commit is contained in:
scawful
2024-09-29 22:01:34 -04:00
parent 76d08711f0
commit 42ce2c4ee2
9 changed files with 153 additions and 181 deletions

View File

@@ -17,10 +17,10 @@ endwhile
; ZS does not clear message data when bank is changed ; ZS does not clear message data when bank is changed
; So the end of the data bank is not as easily searchable. ; So the end of the data bank is not as easily searchable.
org $0EEE75 org $0EEE75
db #$80 db $80
org !addr+1 org !addr+1
db #$80 db $80
org $0ED436 org $0ED436
JML MessageExpand JML MessageExpand
@@ -30,22 +30,22 @@ org $2F8000
MessageExpand: MessageExpand:
{ {
; are we already in expanded bank? ; are we already in expanded bank?
LDA.b $02 : AND.w #$00FF : CMP.w #$000E : BNE + LDA.b $02 : AND.w #$00FF : CMP.w #$000E : BNE +
LDA.w #MessageExpandedData : STA.b $00 LDA.w #MessageExpandedData : STA.b $00
LDA.w #MessageExpandedData>>16 : STA.b $02 LDA.w #MessageExpandedData>>16 : STA.b $02
JML $0ED3FC ; go back to original read message code pointers JML $0ED3FC ; go back to original read message code pointers
+ +
; Restore vanilla code ; Restore vanilla code
LDA.w #$DF40 : STA.b $00 LDA.w #$DF40 : STA.b $00
LDA.w #$000E : STA.b $02 LDA.w #$000E : STA.b $02
JML $0ED3FC ; go back to original read message code pointers JML $0ED3FC ; go back to original read message code pointers
} }
MessageExpandedData: MessageExpandedData:
Message_18D: Message_18D:
db $13, $B0, $2C, $59, $B5, $59, $BE, $2C, $2C, $1A db $13, $B0, $2C, $59, $B5, $59, $BE, $2C, $2C, $1A
db $20, $1E, $59, $35, $3C, $03, $59, $A9, $26, $59 db $20, $1E, $59, $35, $3C, $03, $59, $A9, $26, $59
db $1B, $93, $24, $75, $37, $3A, $59, $3C, $34, $36 db $1B, $93, $24, $75, $37, $3A, $59, $3C, $34, $36
db $3A, $7F db $3A, $7F
db $FF ; end of message pointers checks db $FF ; end of message pointers checks

View File

@@ -3,18 +3,18 @@
; Makes Link run quicker when holding ; Makes Link run quicker when holding
; Written by Conn (I think) ; Written by Conn (I think)
; $7EF349 bunny hood RAM slot ; $7EF349 bunny hood RAM slot
; ;
; Adjustable speed table at the end ; Adjustable speed table at the end
; db (0) $18: - Horizontal and vertical walking speed ; db (0) $18: - Horizontal and vertical walking speed
; (Default = 18) ; (Default = 18)
; db (1) $10 - Diagonal walking speed ; db (1) $10 - Diagonal walking speed
; (Default = 10) ; (Default = 10)
; db (2) $0a - Stairs walking speed ; db (2) $0a - Stairs walking speed
; (Default = 0A) ; (Default = 0A)
; db (0c) $14 - walking through heavy grass speed (also shallow water) ; db (0c) $14 - walking through heavy grass speed (also shallow water)
; (Default = 14) ; (Default = 14)
; db (0d) $0d - walking diagonally through heavy grass speed (also shallow water) ; db (0d) $0d - walking diagonally through heavy grass speed (also shallow water)
; (Default = 0D) ; (Default = 0D)
; db (10) $40 - Pegasus boots speed (Default = 40) ; db (10) $40 - Pegasus boots speed (Default = 40)
; ;
; ========================================================= ; =========================================================
@@ -36,10 +36,10 @@ UpdateBunnyPalette:
; ========================================================= ; =========================================================
bunny_palette: bunny_palette:
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$19FD, #$14B6 dw $7BDE, $7FFF, $2F7D, $19B5, $3A9C, $14A5, $19FD, $14B6
dw #$55BB, #$362A, #$3F4E, #$162B, #$22D0, #$2E5A, #$1970, #$7616 dw $55BB, $362A, $3F4E, $162B, $22D0, $2E5A, $1970, $7616
dw #$6565, #$7271, #$2AB7, #$477E, #$1997, #$14B5, #$459B, #$69F2 dw $6565, $7271, $2AB7, $477E, $1997, $14B5, $459B, $69F2
dw #$7AB8, #$2609, #$19D8, #$3D95, #$567C, #$1890, #$52F6, #$2357, #$0000 dw $7AB8, $2609, $19D8, $3D95, $567C, $1890, $52F6, $2357, $0000
print "End of Bunny Hood GFX ", pc print "End of Bunny Hood GFX ", pc
@@ -57,6 +57,8 @@ Link_CheckForBunnyRun:
RTS RTS
pushpc pushpc
SubVelocityValues = $87E227
org $20AF20 org $20AF20
LinkState_BunnyHoodRun: LinkState_BunnyHoodRun:
{ {
@@ -64,12 +66,12 @@ LinkState_BunnyHoodRun:
LDA.w $0202 ; check the current item LDA.w $0202 ; check the current item
CMP.b #$16 : BNE .end ; is it the bunny hood? CMP.b #$16 : BNE .end ; is it the bunny hood?
LDA.w !CurrentMask : CMP.b #$04 : BNE .end LDA.w !CurrentMask : CMP.b #$04 : BNE .end
LDA.l BunnySpeedTable, X ; load new speed values LDA.l BunnySpeedTable, X ; load new speed values
CLC CLC
RTL RTL
.end .end
LDA $87E227, X ; load native speed values LDA.l SubVelocityValues, X ; load native speed values
CLC CLC
RTL RTL
} }
@@ -77,7 +79,7 @@ LinkState_BunnyHoodRun:
org $20AF70 ; this selects the new speed values org $20AF70 ; this selects the new speed values
BunnySpeedTable: BunnySpeedTable:
{ {
db $20 ; 0x00 - walking on ground db $20 ; 0x00 - walking on ground
db $12 ; 0x01 - walking diagonally db $12 ; 0x01 - walking diagonally
db $0A ; 0x02 - walking on stairs db $0A ; 0x02 - walking on stairs
db $18 ; 0x03 - walking on stairs diagonally, impossible to reach db $18 ; 0x03 - walking on stairs diagonally, impossible to reach
@@ -103,10 +105,10 @@ BunnySpeedTable:
db $18 ; 0x17 - slosh dashing diagonally db $18 ; 0x17 - slosh dashing diagonally
db $20 ; 0x18 - dashing on ice db $20 ; 0x18 - dashing on ice
db $15 ; 0x19 - dashing on ice diagonally db $15 ; 0x19 - dashing on ice diagonally
db $F0 ; 0x1A - db $F0 ; 0x1A -
db $00 ; 0x1B - db $00 ; 0x1B -
db $F0 ; 0x1C - db $F0 ; 0x1C -
db $01 ; 0x1D - db $01 ; 0x1D -
} }
; ========================================================= ; =========================================================
@@ -116,7 +118,7 @@ BunnySpeedTable:
org $07A494 org $07A494
LinkItem_Ether: LinkItem_Ether:
{ {
LDA #$04 LDA #$04
JSL Link_TransformMask JSL Link_TransformMask
LDA $0114 : CMP.b #$20 : BNE + LDA $0114 : CMP.b #$20 : BNE +
LDA.b #$03 : STA $5B LDA.b #$03 : STA $5B
@@ -125,4 +127,4 @@ LinkItem_Ether:
RTS RTS
} }
assert pc() <= $07A4F6 assert pc() <= $07A4F6

View File

@@ -22,8 +22,8 @@ UpdateDekuPalette:
} }
deku_palette: deku_palette:
dw #$6739, #$15C5, #$150E, #$26C9, #$17AA, #$21F4, #$17DF, #$42DB dw $6739, $15C5, $150E, $26C9, $17AA, $21F4, $17DF, $42DB
dw #$14A5, #$14BC, #$14B2, #$14A5, #$7FFF, #$7A18, #$178C dw $14A5, $14BC, $14B2, $14A5, $7FFF, $7A18, $178C
print "End of Masks/deku_mask.asm ", pc print "End of Masks/deku_mask.asm ", pc
@@ -35,7 +35,7 @@ LinkItem_DekuMask:
; Don't use magic unless deku form ; Don't use magic unless deku form
LDA.w $02B2 : CMP.b #$01 : BNE .continue LDA.w $02B2 : CMP.b #$01 : BNE .continue
; Don't shoot while transform is active ; Don't shoot while transform is active
LDA.w $0C4E : BNE .continue LDA.w $0C4E : BNE .continue
JSR Link_CheckNewY_ButtonPress : BCC .continue JSR Link_CheckNewY_ButtonPress : BCC .continue
LDA $3A : AND.b #$BF : STA $3A LDA $3A : AND.b #$BF : STA $3A
LDX.b #$02 LDX.b #$02
@@ -66,9 +66,9 @@ org $07A6BE
LinkState_UsingQuake: LinkState_UsingQuake:
{ {
.anim_step .anim_step
db #$00, #$01, #$02, #$03 db $00, $01, $02, $03
db #$00, #$01, #$02, #$03 db $00, $01, $02, $03
db #$10, #$10, #$00, #$00 ; 16 db $10, $10, $00, $00 ; 16
.anim_timer .anim_timer
db 5, 5, 5, 5 db 5, 5, 5, 5

View File

@@ -1,6 +1,6 @@
; ======================================== ; =========================================================
; GBC Link ; GBC Link
; ======================================== ; =========================================================
UpdateGbcPalette: UpdateGbcPalette:
{ {
@@ -13,46 +13,38 @@ UpdateGbcPalette:
.loop .loop
LDA.l GameboyLinkPalette, X : STA $7EC6E0, X LDA.l GameboyLinkPalette, X : STA $7EC6E0, X
DEX : DEX : BPL .loop DEX : DEX : BPL .loop
SEP #$30 ; go back to 8 bit mode SEP #$30 ; go back to 8 bit mode
INC $15 ; update the palette INC $15 ; update the palette
RTL ; or RTS depending on where you need it RTL ; or RTS depending on where you need it
.blue_mail
.blue_mail
LDX #$001E LDX #$001E
.loop2 .loop2
LDA.l GameboyLinkBlueMail, X : STA $7EC6E0, X LDA.l GameboyLinkBlueMail, X : STA $7EC6E0, X
DEX : DEX : BPL .loop2 DEX : DEX : BPL .loop2
SEP #$30 ; go back to 8 bit mode SEP #$30 ; go back to 8 bit mode
INC $15 ; update the palette INC $15 ; update the palette
RTL ; or RTS depending on where you need it RTL ; or RTS depending on where you need it
.red_mail .red_mail
LDX #$001E LDX #$001E
.loop3 .loop3
LDA.l GameboyLinkRedMail, X : STA $7EC6E0, X LDA.l GameboyLinkRedMail, X : STA $7EC6E0, X
DEX : DEX : BPL .loop3 DEX : DEX : BPL .loop3
SEP #$30 ; go back to 8 bit mode SEP #$30 ; go back to 8 bit mode
INC $15 ; update the palette INC $15 ; update the palette
RTL ; or RTS depending on where you need it RTL ; or RTS depending on where you need it
} }
GameboyLinkPalette: GameboyLinkPalette:
{ dw $0000, $7FFF, $237E, $B711, $369E, $14A5, $01FF, $1078
dw #$0000, #$7FFF, #$237E, #$B711, #$369E, #$14A5, #$01FF, #$1078 dw $46FF, $22A2, $3B68, $0A4A, $12EF, $2A5C, $1571, $7A18
dw #$46FF, #$22A2, #$3B68, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18
}
GameboyLinkBlueMail: GameboyLinkBlueMail:
{ dw $0000, $7FFF, $237E, $B711, $369E, $14A5, $01FF, $1078
dw #$0000, #$7FFF, #$237E, #$B711, #$369E, #$14A5, #$01FF, #$1078 dw $46FF, $4D25, $3B68, $0A4A, $12EF, $2A5C, $1571, $7A18
dw #$46FF, #$4D25, #$3B68, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18
}
GameboyLinkRedMail: GameboyLinkRedMail:
{ dw $0000, $7FFF, $237E, $B711, $369E, $14A5, $01FF, $1078
dw #$0000, #$7FFF, #$237E, #$B711, #$369E, #$14A5, #$01FF, #$1078 dw $46FF, $081D, $3B68, $0A4A, $12EF, $2A5C, $1571, $7A18
dw #$46FF, #$081D, #$3B68, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18
}
LinkState_GameboyInDungeonEntrance: LinkState_GameboyInDungeonEntrance:
{ {
@@ -60,12 +52,9 @@ LinkState_GameboyInDungeonEntrance:
LDA $0FFF : CMP #$00 : BEQ .return LDA $0FFF : CMP #$00 : BEQ .return
LDA.w !CurrentMask : CMP.b #$05 : BEQ .return LDA.w !CurrentMask : CMP.b #$05 : BEQ .return
LDA $BC : CMP #$06 : BEQ .return LDA $BC : CMP #$06 : BEQ .return
JSL UpdateGbcPalette JSL UpdateGbcPalette
LDA #$3B : STA $BC ; change link's sprite LDA #$3B : STA $BC ; change link's sprite
.return
.return
JSL $0AFE80 ; Underworld_HandleLayerEffect JSL $0AFE80 ; Underworld_HandleLayerEffect
RTL RTL
} }
@@ -76,13 +65,11 @@ LoadOverworld_CheckForGbcLink:
LDA $0FFF : BEQ .return_lw LDA $0FFF : BEQ .return_lw
LDA.w !CurrentMask : CMP.b #$05 : BEQ .return LDA.w !CurrentMask : CMP.b #$05 : BEQ .return
LDA.b #$06 : STA $02B2 LDA.b #$06 : STA $02B2
LDA.b #$3B : STA $BC ; change link's sprite LDA.b #$3B : STA $BC ; change link's sprite
JSL UpdateGbcPalette JSL UpdateGbcPalette
JMP .return JMP .return
.return_lw .return_lw
STZ.w $02B2 STZ.w $02B2
.return .return
JSL Palette_ArmorAndGloves JSL Palette_ArmorAndGloves
STZ.b $B0 STZ.b $B0
@@ -92,7 +79,7 @@ LoadOverworld_CheckForGbcLink:
OverworldTransition_CheckForGbcLink: OverworldTransition_CheckForGbcLink:
{ {
LDA $0FFF : BEQ .return LDA $0FFF : BEQ .return
LDA.w !CurrentMask : CMP.b #$05 : BEQ .return LDA.w !CurrentMask : CMP.b #$05 : BEQ .return
LDA #$3B : STA $BC ; change link's sprite LDA #$3B : STA $BC ; change link's sprite
LDA #$06 : STA $02B2 LDA #$06 : STA $02B2
@@ -124,8 +111,7 @@ LinkState_GameboyForm:
LDA $0FFF : BEQ .return ; not in dark world LDA $0FFF : BEQ .return ; not in dark world
.transform .transform
%PlayerTransform() %PlayerTransform()
LDA #$3B : STA $BC ; change link's sprite
LDA #$3B : STA $BC ; change link's sprite
LDA #$06 : STA $02B2 LDA #$06 : STA $02B2
JSL UpdateGbcPalette JSL UpdateGbcPalette
BRA .return BRA .return
@@ -135,9 +121,8 @@ LinkState_GameboyForm:
LDA #$10 : STA $BC LDA #$10 : STA $BC
STZ $02B2 STZ $02B2
JSL Palette_ArmorAndGloves JSL Palette_ArmorAndGloves
.return .return
JSL $07F1E6 JSL $07F1E6
RTL RTL
} }
pushpc pushpc

View File

@@ -12,18 +12,15 @@ UpdateMooshPalette:
RTL ; or RTS depending on where you need it RTL ; or RTS depending on where you need it
} }
MooshPalette: MooshPalette:
{ dw $0000, $7FFF, $237E, $46FF, $369E, $14A5, $01FF, $1078
dw #$0000, #$7FFF, #$237E, #$46FF, #$369E, #$14A5, #$01FF, #$1078 dw $6E25, $7AEF, $6759, $0A4A, $12EF, $2A5C, $1571, $7A18
dw #$6E25, #$7AEF, #$6759, #$0A4A, #$12EF, #$2A5C, #$1571, #$7A18
}
Link_HoverIfMooshWantsToDash: Link_HoverIfMooshWantsToDash:
{ {
LDA.w !CurrentMask : CMP.b #$07 : BNE .return LDA.w !CurrentMask : CMP.b #$07 : BNE .return
JSL PrepareQuakeSpell JSL PrepareQuakeSpell
RTL RTL
.return .return
JSL Link_HandleMovingAnimation_FullLongEntry JSL Link_HandleMovingAnimation_FullLongEntry
RTL RTL
@@ -31,4 +28,4 @@ Link_HoverIfMooshWantsToDash:
print "End of Masks/moosh.asm ", pc print "End of Masks/moosh.asm ", pc
org $079093 org $079093
JSL Link_HoverIfMooshWantsToDash JSL Link_HoverIfMooshWantsToDash

View File

@@ -1,33 +1,30 @@
; ========================================================= ; =========================================================
; Wolf Mask ; Wolf Mask
;
; Talk to animals
; Dig for treasure ability (shovel) ; Dig for treasure ability (shovel)
;
; ========================================================= ; =========================================================
UpdateWolfPalette: UpdateWolfPalette:
{ {
REP #$30 ; change 16bit mode REP #$30 ; change 16bit mode
LDX #$001E LDX #$001E
.loop .loop
LDA.l WolfPalette, X : STA $7EC6E0, X LDA.l WolfPalette, X : STA $7EC6E0, X
DEX : DEX : BPL .loop DEX : DEX : BPL .loop
SEP #$30 ; go back to 8 bit mode SEP #$30 ; go back to 8 bit mode
INC $15 ; update the palette INC $15 ; update the palette
RTL ; or RTS depending on where you need it RTL ; or RTS depending on where you need it
} }
; ========================================================= ; =========================================================
WolfPalette: WolfPalette:
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$1A3D, #$14B6 dw $7BDE, $7FFF, $2F7D, $19B5, $3A9C, $14A5, $1A3D, $14B6
dw #$4650, #$362A, #$3F4E, #$162B, #$318A, #$39CC, #$1CE7, #$76D1 dw $4650, $362A, $3F4E, $162B, $318A, $39CC, $1CE7, $76D1
dw #$6565, #$7271, #$14B5, #$459B, #$3D95, #$22D0, #$567C, #$1890 dw $6565, $7271, $14B5, $459B, $3D95, $22D0, $567C, $1890
dw #$7616, #$0000 dw $7616, $0000
; ========================================================= ; =========================================================
org $07A3DB org $07A3DB
@@ -51,10 +48,9 @@ LinkItem_ShovelAndFlute:
{ {
; Play flute or use the Wolf Mask ; Play flute or use the Wolf Mask
LDA $0202 : CMP.b #$0D : BNE .use_wolf_mask LDA $0202 : CMP.b #$0D : BNE .use_wolf_mask
BRL LinkItem_Flute BRL LinkItem_Flute
.use_wolf_mask .use_wolf_mask
JMP LinkItem_WolfMask JMP LinkItem_WolfMask
} }
; assert pc() <= $07A31F ; assert pc() <= $07A31F
@@ -65,16 +61,15 @@ pullpc
LinkItem_WolfMask: LinkItem_WolfMask:
{ {
LDA $02B2 : CMP #$03 : BNE .equip LDA $02B2 : CMP #$03 : BNE .equip
JSR LinkItem_Shovel JSR LinkItem_Shovel
.equip .equip
LDA.b #$03 LDA.b #$03
JSL Link_TransformMask JSL Link_TransformMask
.return .return
RTS RTS
} }
print "End of Masks/wolf_mask.asm ", pc print "End of Masks/wolf_mask.asm ", pc
pushpc pushpc

View File

@@ -3,10 +3,10 @@
; Based on the Fairy Flippers item by Conn ; Based on the Fairy Flippers item by Conn
; Special Thanks to Zarby89 for the PaletteArmorAndGloves hook ; Special Thanks to Zarby89 for the PaletteArmorAndGloves hook
; ;
; Transforms Link into Zora Link ; Transforms Link into Zora Link
; Allows Link to dive underwater in the overworld and dungeons as Zora Link. ; Allows Link to dive underwater in the overworld and dungeons as Zora Link.
; ;
; How To Use: ; How To Use:
; Press R to transform into Zora Link. Press R again to transform back. ; Press R to transform into Zora Link. Press R again to transform back.
; Press Y in deep water to dive. Press Y again to resurface. ; Press Y in deep water to dive. Press Y again to resurface.
; ========================================================= ; =========================================================
@@ -22,15 +22,15 @@ UpdateZoraPalette:
SEP #$30 ; go back to 8 bit mode SEP #$30 ; go back to 8 bit mode
INC $15 ; update the palette INC $15 ; update the palette
RTL RTL
} }
; ========================================================= ; =========================================================
; TODO: Finish the Zora palette ; TODO: Finish the Zora palette
zora_palette: zora_palette:
dw #$7BDE, #$7FFF, #$2F7D, #$19B5, #$3A9C, #$14A5, #$4E48, #$3582 dw $7BDE, $7FFF, $2F7D, $19B5, $3A9C, $14A5, $4E48, $3582
dw #$55BB, #$6EF7, #$7BDE, #$55C7, #$6ECD, #$2E5A, #$1970, #$7616 dw $55BB, $6EF7, $7BDE, $55C7, $6ECD, $2E5A, $1970, $7616
; dw #$6565, #$7271, #$2AB7, #$477E, #$1997, #$14B5, #$459B, #$69F2 ; dw #$6565, #$7271, #$2AB7, #$477E, #$1997, #$14B5, #$459B, #$69F2
; dw #$7AB8, #$2609, #$19D8, #$3D95, #$567C, #$1890, #$52F6, #$2357 ; dw #$7AB8, #$2609, #$19D8, #$3D95, #$567C, #$1890, #$52F6, #$2357
@@ -44,7 +44,7 @@ zora_palette:
org $0998FC org $0998FC
AddTransitionSplash: AddTransitionSplash:
; ========================================================= ; =========================================================
; Replaces Bombos medallion ; Replaces Bombos medallion
@@ -74,58 +74,58 @@ org $079781
pullpc ; Bank07 Free Space from Deku Mask pullpc ; Bank07 Free Space from Deku Mask
LinkState_UsingZoraMask: LinkState_UsingZoraMask:
{ {
; Check if the mask is equipped ; Check if the mask is equipped
LDA $02B2 : CMP #$02 : BNE .normal LDA $02B2 : CMP #$02 : BNE .normal
; Check if we are in water or not ; Check if we are in water or not
LDA $5D : CMP #$04 : BEQ .swimming LDA $5D : CMP #$04 : BEQ .swimming
.normal .normal
; Return to normal state ; Return to normal state
STZ $55 STZ $55
STZ $5E ; Reset speed to normal STZ $5E ; Reset speed to normal
STZ $037B STZ $037B
STZ $0351 STZ $0351
JMP .return JMP .return
.swimming .swimming
; Check if we are indoors or outdoors ; Check if we are indoors or outdoors
LDA $1B : BNE .dungeon ; z flag is 1 LDA $1B : BNE .dungeon ; z flag is 1
; OVERWORLD --------------------------------------------- ; OVERWORLD ---------------------------------------------
.overworld .overworld
{ {
; Check the Y button and clear state if activated ; Check the Y button and clear state if activated
JSR Link_CheckNewY_ButtonPress : BCC .return JSR Link_CheckNewY_ButtonPress : BCC .return
LDA $3A : AND.b #$BF : STA $3A LDA $3A : AND.b #$BF : STA $3A
; Check if already underwater ; Check if already underwater
LDA !ZoraDiving : BEQ .dive LDA !ZoraDiving : BEQ .dive
STZ $55 ; Reset cape flag STZ $55 ; Reset cape flag
STZ !ZoraDiving ; Reset underwater flag STZ !ZoraDiving ; Reset underwater flag
STZ $0351 ; Reset ripple flag STZ $0351 ; Reset ripple flag
STZ $037B ; Reset invincibility flag STZ $037B ; Reset invincibility flag
LDA #$04 : STA $5D ; Put Link in Swimming State LDA #$04 : STA $5D ; Put Link in Swimming State
JMP .return JMP .return
.dive .dive
; Handle overworld underwater swimming ; Handle overworld underwater swimming
LDA #$01 : STA $55 ; Set cape flag LDA #$01 : STA $55 ; Set cape flag
STA $037B ; Set invincible flag STA $037B ; Set invincible flag
LDA #$08 : STA $5E ; Set underwater speed LDA #$08 : STA $5E ; Set underwater speed
LDA #$01 : STA !ZoraDiving ; Set underwater flag LDA #$01 : STA !ZoraDiving ; Set underwater flag
STA $0351 ; Set ripple flag STA $0351 ; Set ripple flag
; Splash visual effect ; Splash visual effect
LDA.b #$15 : LDY.b #$00 LDA.b #$15 : LDY.b #$00
JSL AddTransitionSplash JSL AddTransitionSplash
; Stay in swimming mode ; Stay in swimming mode
LDA #$04 : STA $5D LDA #$04 : STA $5D
; Splash sound effect ; Splash sound effect
; LDA #$24 : STA $012E ; LDA #$24 : STA $012E
.return .return
JSR $E8F0 ; HandleIndoorCameraAndDoors JSR $E8F0 ; HandleIndoorCameraAndDoors
RTS RTS
@@ -134,7 +134,7 @@ LinkState_UsingZoraMask:
; DUNGEON DIVE ------------------------------------------ ; DUNGEON DIVE ------------------------------------------
.dungeon .dungeon
{ {
; Check if we are in water or not ; Check if we are in water or not
LDA $5D : CMP #$04 : BNE .return_dungeon LDA $5D : CMP #$04 : BNE .return_dungeon
; Check if already underwater ; Check if already underwater
LDA !ZoraDiving : BNE .return_dungeon LDA !ZoraDiving : BNE .return_dungeon
@@ -143,17 +143,16 @@ LinkState_UsingZoraMask:
LDA $3A : AND.b #$BF : STA $3A LDA $3A : AND.b #$BF : STA $3A
.dive_dungeon .dive_dungeon
; Splash effect ; Splash effect
LDA.b #$15 : LDY.b #$00 LDA.b #$15 : LDY.b #$00
JSL AddTransitionSplash JSL AddTransitionSplash
STZ $5D ; reset player to ground state STZ $5D ; reset player to ground state
STZ $EE ; move link to lower level STZ $EE ; move link to lower level
LDA #$72 : STA $9A ; Set layer
LDA #$72 : STA $9A ; Set layer LDA #$08 : STA $5E ; Set the player speed
LDA #$08 : STA $5E ; Set the player speed
STZ $0345 ; Reset deep water flag STZ $0345 ; Reset deep water flag
LDA #$01 : STA !ZoraDiving ; Set the player underwater flag LDA #$01 : STA !ZoraDiving ; Set the player underwater flag
.return_dungeon .return_dungeon
JSR $E8F0 ; HandleIndoorCameraAndDoors JSR $E8F0 ; HandleIndoorCameraAndDoors
@@ -163,7 +162,7 @@ LinkState_UsingZoraMask:
pushpc pushpc
; End of LinkState_Default ; End of LinkState_Default
org $0782D2 org $0782D2
JSR LinkState_UsingZoraMask_dungeon_resurface JSR LinkState_UsingZoraMask_dungeon_resurface
JSR $E8F0 ; HandleIndoorCameraAndDoors JSR $E8F0 ; HandleIndoorCameraAndDoors
@@ -176,9 +175,9 @@ pullpc
.dungeon_resurface .dungeon_resurface
{ {
LDA $1B : BEQ .return_overworld ; We are in overworld actually LDA $1B : BEQ .return_overworld ; We are in overworld actually
; Check if the player is actually diving ; Check if the player is actually diving
LDA !ZoraDiving : BEQ .return_default LDA !ZoraDiving : BEQ .return_default
; Check precise tile types for interaction ; Check precise tile types for interaction
@@ -199,15 +198,15 @@ pullpc
LDA.b #$15 : LDY.b #$00 : JSL AddTransitionSplash LDA.b #$15 : LDY.b #$00 : JSL AddTransitionSplash
.remove_dive .remove_dive
LDA #$04 : STA $5D ; Set Link to Swimming State LDA #$04 : STA $5D ; Set Link to Swimming State
LDA #$01 : STA $EE ; Set Link to upper level LDA #$01 : STA $EE ; Set Link to upper level
STA $0345 ; Set deep water flag STA $0345 ; Set deep water flag
; Remove Diving Effects ; Remove Diving Effects
.player_is_falling .player_is_falling
LDA $67 : AND #$01 : STA $2F LDA $67 : AND #$01 : STA $2F
STZ $5E ; Reset speed to normal STZ $5E ; Reset speed to normal
STZ !ZoraDiving ; Reset underwater flag STZ !ZoraDiving ; Reset underwater flag
STZ $0351 ; Reset ripple flag STZ $0351 ; Reset ripple flag
STZ $24 ; Reset z coordinate for link STZ $24 ; Reset z coordinate for link
STZ $0372 ; Reset link bounce flag STZ $0372 ; Reset link bounce flag
@@ -240,7 +239,7 @@ pullpc
{ {
LDA $02B2 : CMP #$02 : BNE .return_hop LDA $02B2 : CMP #$02 : BNE .return_hop
STZ $5E ; Reset speed to normal STZ $5E ; Reset speed to normal
STZ !ZoraDiving ; Reset underwater flag STZ !ZoraDiving ; Reset underwater flag
LDA #$62 : STA $9A ; Reset dungeon layer LDA #$62 : STA $9A ; Reset dungeon layer
.return_hop .return_hop
LDA #$06 : STA $5D ; Set Link to Recoil State LDA #$06 : STA $5D ; Set Link to Recoil State

View File

@@ -968,7 +968,6 @@ Sprite_DarkLink_Main:
LDA.w SprTimerA, X : BNE + LDA.w SprTimerA, X : BNE +
%GotoAction(13) %GotoAction(13)
+ +
RTS RTS
} }
@@ -987,7 +986,6 @@ Sprite_DarkLink_Main:
Dead: Dead:
{ {
RTS RTS
} }
@@ -1000,7 +998,6 @@ Sprite_DarkLink_Main:
LDA dlinkPalRed, X : STA $7EC600, X LDA dlinkPalRed, X : STA $7EC600, X
DEX : DEX : BNE -- DEX : DEX : BNE --
INC $15 ;Refresh Palettes INC $15 ;Refresh Palettes
SEP #$20 SEP #$20
PLX PLX
@@ -1016,7 +1013,7 @@ Sprite_DarkLink_Main:
} }
dlinkPalRed: dlinkPalRed:
dw #$7FFF, #$14A5, #$2108, #$294A, #$1CF5, #$7E4E, #$001D, #$6FF4 dw $7FFF, $14A5, $2108, $294A, $1CF5, $7E4E, $001D, $6FF4
} }
; ========================================================= ; =========================================================

View File

@@ -62,13 +62,13 @@ Follower_Main = $099F91
org $3CA62A ; Expanded space for our routine org $3CA62A ; Expanded space for our routine
{ {
LDA.l $7EF3C5 : CMP.b #$02 : BCS .continue ; Check if in main game LDA.l $7EF3C5 : CMP.b #$02 : BCS .continue ; Check if in main game
JSL Follower_Main JSL Follower_Main
RTL RTL
.continue .continue
LDA $F2 : CMP #$70 : BEQ $03 : JMP END ; Check L, R and X button LDA $F2 : CMP #$70 : BEQ $03 : JMP END ; Check L, R and X button
if !BetaRelease = 0 if !BetaRelease == 0
; How many bombs you have. Can exceed 0x50, up to 0xff. ; How many bombs you have. Can exceed 0x50, up to 0xff.
LDA #$50 : STA !Bombs LDA #$50 : STA !Bombs
@@ -77,22 +77,21 @@ if !BetaRelease = 0
STA !TitansMitt STA !TitansMitt
; 0 - nothing. 1 - Fire Rod ; 0 - nothing. 1 - Fire Rod
LDA #$01 : STA !FireRod LDA #$01 : STA !FireRod
STA !IceRod STA !IceRod
LDA #$01 : STA !BunnyMask LDA #$01 : STA !BunnyMask
LDA #$01 : STA !DekuMask LDA #$01 : STA !DekuMask
LDA #$01 : STA !ZoraMask LDA #$01 : STA !ZoraMask
LDA #$01 : STA !WolfMask LDA #$01 : STA !WolfMask
LDA #$01 : STA !MagicCape LDA #$01 : STA !MagicCape
; 0 - nothing. 1 - shovel. 2 - flute, no bird. 3 - flue, bird activated ; 0 - nothing. 1 - shovel. 2 - flute, no bird. 3 - flue, bird activated
LDA #$01 : STA !BookOfMudora
LDA #$01 : STA !BookOfMudora
LDA #$01 : STA !CaneOfSomaria LDA #$01 : STA !CaneOfSomaria
LDA #$01 : STA !PegasusBoots LDA #$01 : STA !PegasusBoots
STA !Flippers STA !Flippers
STA !WolfMask STA !WolfMask
; 0 - nothing. 1 - Fighter Sword. 2 - Master Sword. 3 - Tempered Sword. 4 - Golden Sword ; 0 - nothing. 1 - Fighter Sword. 2 - Master Sword. 3 - Tempered Sword. 4 - Golden Sword
@@ -104,14 +103,14 @@ if !BetaRelease = 0
; 0 - nothing. 1 - Green Mail. 2 - Blue Mail. 3 - Red Mail ; 0 - nothing. 1 - Green Mail. 2 - Blue Mail. 3 - Red Mail
LDA #$02 : STA !Mail LDA #$02 : STA !Mail
; 0-No bottle. ; 0-No bottle.
; 1-Mushroom (no use). 2-Empty bottle. ; 1-Mushroom (no use). 2-Empty bottle.
; 3-Red Potion. 4-Green Potion. ; 3-Red Potion. 4-Green Potion.
; 5-Blue Potion. 6-Fairy. ; 5-Blue Potion. 6-Fairy.
; 7-Bee. 8-Good Bee ; 7-Bee. 8-Good Bee
LDA #$01 : STA !Bottles ; has bottles LDA #$01 : STA !Bottles ; has bottles
LDA #$03 : STA !Bottle1 LDA #$03 : STA !Bottle1
LDA #$05 : STA !Bottle2 LDA #$05 : STA !Bottle2
LDA #$04 : STA !Bottle3 LDA #$04 : STA !Bottle3
LDA #$06 : STA !Bottle4 LDA #$06 : STA !Bottle4
@@ -125,26 +124,26 @@ if !BetaRelease = 0
; Pendants: Bit 0 = Courage, Bit 1 = Wisdom, Bit 2 = Power ; Pendants: Bit 0 = Courage, Bit 1 = Wisdom, Bit 2 = Power
LDA #$07 : STA !Pendants LDA #$07 : STA !Pendants
; Ability Flags: Bit 0: ----. ; Ability Flags: Bit 0: ----.
; Bit 1: Swim. ; Bit 1: Swim.
; Bit 2: Run / Dash. ; Bit 2: Run / Dash.
; Bit 3: Pull. Bit 4: ----. ; Bit 3: Pull. Bit 4: ----.
; Bit 5: Talk. ; Bit 5: Talk.
; Bit 6: Read. Bit 7: ---- ; Bit 6: Read. Bit 7: ----
LDA #$6E : STA !AbilityFlags LDA #$6E : STA !AbilityFlags
; Crystals: ; Crystals:
; Bit 0 = Misery Mire ; Bit 0 = Misery Mire
; Bit 1 = Dark Palace ; Bit 1 = Dark Palace
; Bit 2 = Ice Palace ; Bit 2 = Ice Palace
; Bit 3 = Turtle Rock ; Bit 3 = Turtle Rock
; Bit 4 = Swamp Palace ; Bit 4 = Swamp Palace
; Bit 5 = Gargoyle's Domain ; Bit 5 = Gargoyle's Domain
; Bit 6 = Skull Woods ; Bit 6 = Skull Woods
LDA #$00 : STA !Crystals LDA #$00 : STA !Crystals
; 0 - nothing. 1 - hookshot ; 0 - nothing. 1 - hookshot
LDA #$01 : STA !Hookshot LDA #$01 : STA !Hookshot
; Magic usage: 0: normal consumption. 1: 1/2 consumption. 2: 1/4 consumption ; Magic usage: 0: normal consumption. 1: 1/2 consumption. 2: 1/4 consumption
LDA #$02 : STA !MagicUsage LDA #$02 : STA !MagicUsage
@@ -160,18 +159,16 @@ endif
; 0 - nothing. 1 - blue boomerang. 2 - red boomerang ; 0 - nothing. 1 - blue boomerang. 2 - red boomerang
LDA #$02 : STA !Boomerang LDA #$02 : STA !Boomerang
STA !Mirror STA !Mirror
STA !CaneOfByrna STA !CaneOfByrna
; 0 - nothing. 1 - Lamp ; 0 - nothing. 1 - Lamp
LDA #$01 : STA !Lamp LDA #$01 : STA !Lamp
STA !MagicHammer STA !MagicHammer
STA !MoonPearl STA !MoonPearl
; fill all hearts ; fill all hearts
LDA #$A0 : STA !Hearts LDA #$A0 : STA !Hearts
; magic power, maximum is 0x80 ; magic power, maximum is 0x80
LDA #$80 : STA !MagicPower LDA #$80 : STA !MagicPower
@@ -179,4 +176,4 @@ END:
JSL Follower_Main JSL Follower_Main
RTL RTL
} }