Reorganize Bank07 free space with pushpc/pullpc
This commit is contained in:
@@ -12,13 +12,14 @@ PlayerItem_ReleaseBee:
|
|||||||
; LinkItem_Bottle
|
; LinkItem_Bottle
|
||||||
|
|
||||||
org $07A15B
|
org $07A15B
|
||||||
JSL LinkItem_NewBottle
|
JSR LinkItem_NewBottle
|
||||||
RTS
|
RTS
|
||||||
; *$3A15B-$3A249 FREE SPACE STILL AVAILABLE
|
; *$3A15B-$3A249 FREE SPACE STILL AVAILABLE
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $2C8000
|
; Bank 07 Free Space
|
||||||
|
org $07FAAD
|
||||||
LinkItem_NewBottle:
|
LinkItem_NewBottle:
|
||||||
{
|
{
|
||||||
; Check if we have a bottle or not
|
; Check if we have a bottle or not
|
||||||
@@ -29,29 +30,19 @@ LinkItem_NewBottle:
|
|||||||
CMP.b #$03 : BCC .empty_bottle
|
CMP.b #$03 : BCC .empty_bottle
|
||||||
|
|
||||||
; If no, prepare and call the LinkItem_Bottles routine
|
; If no, prepare and call the LinkItem_Bottles routine
|
||||||
JSL LinkItem_Bottles_Long
|
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
|
||||||
JSL LinkItem_BugCatchingNet_Long
|
JSR LinkItem_NewBugCatchingNet
|
||||||
|
|
||||||
.exit
|
.exit
|
||||||
RTL
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
; Bank 07 Free Space
|
|
||||||
; Previous Zora Mask
|
|
||||||
org $07FAAD
|
|
||||||
LinkItem_BugCatchingNet_Long:
|
|
||||||
{
|
|
||||||
PHB : PHK : PLB
|
|
||||||
JSR LinkItem_NewBugCatchingNet
|
|
||||||
PLB
|
|
||||||
RTL
|
|
||||||
}
|
|
||||||
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
|
||||||
@@ -65,7 +56,6 @@ pose_offset:
|
|||||||
db $1E ; right
|
db $1E ; right
|
||||||
|
|
||||||
; *$3AFF8-$3B072 LOCAL
|
; *$3AFF8-$3B072 LOCAL
|
||||||
|
|
||||||
LinkItem_NewBugCatchingNet:
|
LinkItem_NewBugCatchingNet:
|
||||||
{
|
{
|
||||||
BIT $3A : BVS .y_press
|
BIT $3A : BVS .y_press
|
||||||
@@ -117,14 +107,6 @@ NetExit:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
LinkItem_Bottles_Long:
|
|
||||||
{
|
|
||||||
PHB : PHK : PLB
|
|
||||||
JSR LinkItem_Bottles
|
|
||||||
PLB
|
|
||||||
RTL
|
|
||||||
}
|
|
||||||
|
|
||||||
LinkItem_Bottles:
|
LinkItem_Bottles:
|
||||||
{
|
{
|
||||||
JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS)
|
JSR Link_CheckNewY_ButtonPress : BCC NetExit ; (RTS)
|
||||||
@@ -165,7 +147,6 @@ LinkItem_Bottles:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
.LinkItem_GreenPotion:
|
.LinkItem_GreenPotion:
|
||||||
JSR $A1A9
|
|
||||||
LDA $7EF36E : CMP.b #$80 : BNE .can_drink
|
LDA $7EF36E : CMP.b #$80 : BNE .can_drink
|
||||||
BRL $07A955 ; LinkGoBeep TODO(scawful): Investigate
|
BRL $07A955 ; LinkGoBeep TODO(scawful): Investigate
|
||||||
|
|
||||||
@@ -181,7 +162,7 @@ LinkItem_Bottles:
|
|||||||
LDA.b #$07 : STA $0208
|
LDA.b #$07 : STA $0208
|
||||||
|
|
||||||
JSL $0DFA58 ; RebuildHUD_long TODO(scawful)
|
JSL $0DFA58 ; RebuildHUD_long TODO(scawful)
|
||||||
RTS
|
BRA .bottle_exit
|
||||||
|
|
||||||
.LinkItem_BluePotion:
|
.LinkItem_BluePotion:
|
||||||
LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion
|
LDA $7EF36C : CMP $7EF36D : BNE .useBluePotion
|
||||||
@@ -200,14 +181,14 @@ LinkItem_Bottles:
|
|||||||
LDA.b #$07 : STA.w $0208
|
LDA.b #$07 : STA.w $0208
|
||||||
|
|
||||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||||
RTS
|
BRA .bottle_exit
|
||||||
|
|
||||||
.LinkItem_FairyBottle:
|
.LinkItem_FairyBottle:
|
||||||
STZ.w $0301
|
STZ.w $0301
|
||||||
JSL PlayerItem_SpawnFaerie : BPL .BRANCH_NU
|
JSL PlayerItem_SpawnFaerie : BPL .released
|
||||||
BRL $07A955
|
BRL $07A955
|
||||||
|
|
||||||
.BRANCH_NU:
|
.released:
|
||||||
LDA.b #$02 : STA.l $7EF35C, X
|
LDA.b #$02 : STA.l $7EF35C, X
|
||||||
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
JSL $0DFA58 ; RebuildHUD_Long TODO(scawful)
|
||||||
BRA .bottle_exit
|
BRA .bottle_exit
|
||||||
@@ -225,4 +206,6 @@ LinkItem_Bottles:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print pc
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
@@ -1,11 +1,7 @@
|
|||||||
; =============================================================================
|
; =============================================================================
|
||||||
; Deku Mask
|
; Deku Mask
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
; Link Sprite hook
|
|
||||||
org $008A01
|
|
||||||
LDA $BC
|
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
@@ -14,6 +10,52 @@ incbin gfx/deku_link.bin
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
org $07A64B ; formerly Quake
|
||||||
|
LinkItem_DekuMask:
|
||||||
|
{
|
||||||
|
; Check for R button held
|
||||||
|
LDA $F2 : CMP #$10 : BNE .return
|
||||||
|
|
||||||
|
JSR Link_CheckNewY_ButtonPress : BCC .return
|
||||||
|
LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state
|
||||||
|
|
||||||
|
LDA $6C : BNE .return ; in a doorway
|
||||||
|
LDA $0FFC : BNE .return ; can't open menu
|
||||||
|
|
||||||
|
LDY.b #$04 : LDA.b #$23
|
||||||
|
JSL AddTransformationCloud
|
||||||
|
LDA.b #$14 : JSR Player_DoSfx2
|
||||||
|
|
||||||
|
LDA $02B2 : CMP #$01 : BEQ .unequip ; is the deku mask on?
|
||||||
|
JSL Palette_ArmorAndGloves ; set the palette
|
||||||
|
|
||||||
|
LDA.l $7EF359 : STA $0AA5 ; Store the current sword
|
||||||
|
LDA.l $7EF35A : STA $0AAF ; Store the current shield
|
||||||
|
LDA.b #$00 : STA $7EF359 : STA $7EF35A ; Clear the sword and shield
|
||||||
|
LDA #$02 : STA $7E03FC ; Set the override to Bow (pea shooter)
|
||||||
|
|
||||||
|
LDA #$35 : STA $BC ; put the mask on
|
||||||
|
LDA #$01 : STA $02B2
|
||||||
|
|
||||||
|
BRA .return
|
||||||
|
|
||||||
|
.unequip
|
||||||
|
JSL Palette_ArmorAndGloves
|
||||||
|
STZ $5D
|
||||||
|
|
||||||
|
; Restore the sword and shield
|
||||||
|
LDA $0AA5 : STA.l $7EF359
|
||||||
|
LDA $0AAF : STA.l $7EF35A
|
||||||
|
LDA #$00 : STA $7E03FC ; clear the override
|
||||||
|
LDA #$10 : STA $BC : STZ $02B2 ; take the mask off
|
||||||
|
|
||||||
|
|
||||||
|
.return
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
org $079CD9
|
org $079CD9
|
||||||
JSL LinkItem_CheckForSwordSwing_Masks
|
JSL LinkItem_CheckForSwordSwing_Masks
|
||||||
|
|
||||||
@@ -113,51 +155,6 @@ LinkItem_SlingshotPrepare:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
; =============================================================================
|
|
||||||
|
|
||||||
org $07A64B ; formerly Quake
|
|
||||||
LinkItem_DekuMask:
|
|
||||||
{
|
|
||||||
; Check for R button held
|
|
||||||
LDA $F2 : CMP #$10 : BNE .return
|
|
||||||
|
|
||||||
JSR Link_CheckNewY_ButtonPress : BCC .return
|
|
||||||
LDA $3A : AND.b #$BF : STA $3A ; clear the Y button state
|
|
||||||
|
|
||||||
LDA $6C : BNE .return ; in a doorway
|
|
||||||
LDA $0FFC : BNE .return ; can't open menu
|
|
||||||
|
|
||||||
LDY.b #$04 : LDA.b #$23
|
|
||||||
JSL AddTransformationCloud
|
|
||||||
LDA.b #$14 : JSR Player_DoSfx2
|
|
||||||
|
|
||||||
LDA $02B2 : CMP #$01 : BEQ .unequip ; is the deku mask on?
|
|
||||||
JSL Palette_ArmorAndGloves ; set the palette
|
|
||||||
|
|
||||||
LDA.l $7EF359 : STA $0AA5 ; Store the current sword
|
|
||||||
LDA.l $7EF35A : STA $0AAF ; Store the current shield
|
|
||||||
LDA.b #$00 : STA $7EF359 : STA $7EF35A ; Clear the sword and shield
|
|
||||||
LDA #$02 : STA $7E03FC ; Set the override to Bow (pea shooter)
|
|
||||||
|
|
||||||
LDA #$35 : STA $BC ; put the mask on
|
|
||||||
LDA #$01 : STA $02B2
|
|
||||||
|
|
||||||
BRA .return
|
|
||||||
|
|
||||||
.unequip
|
|
||||||
JSL Palette_ArmorAndGloves
|
|
||||||
STZ $5D
|
|
||||||
|
|
||||||
; Restore the sword and shield
|
|
||||||
LDA $0AA5 : STA.l $7EF359
|
|
||||||
LDA $0AAF : STA.l $7EF35A
|
|
||||||
LDA #$00 : STA $7E03FC ; clear the override
|
|
||||||
LDA #$10 : STA $BC : STZ $02B2 ; take the mask off
|
|
||||||
|
|
||||||
|
|
||||||
.return
|
|
||||||
RTS
|
|
||||||
}
|
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
@@ -165,8 +162,8 @@ org $07811A
|
|||||||
JSR Link_HandleDekuTransformation
|
JSR Link_HandleDekuTransformation
|
||||||
|
|
||||||
; Bank 07 Free Space
|
; Bank 07 Free Space
|
||||||
; Previous function LinkState_CheckMinishTile
|
; TODO: CHECK IF THIS ACTUALLY EXECUTES CAUSE I'M NOT SURE IT DOES
|
||||||
org $07F903
|
pullpc
|
||||||
Link_HandleDekuTransformation:
|
Link_HandleDekuTransformation:
|
||||||
{
|
{
|
||||||
LDA $5D : CMP.b #$0A : BEQ .continue
|
LDA $5D : CMP.b #$0A : BEQ .continue
|
||||||
@@ -181,5 +178,4 @@ Link_HandleDekuTransformation:
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
pushpc
|
||||||
print "==> Link_HandleDekuTransformation ", pc
|
|
||||||
@@ -13,6 +13,10 @@ org $078028
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
; Link Sprite hook
|
||||||
|
org $008A01
|
||||||
|
LDA $BC
|
||||||
|
|
||||||
org $008827
|
org $008827
|
||||||
JSL StartupMasks
|
JSL StartupMasks
|
||||||
|
|
||||||
@@ -24,8 +28,8 @@ org $1BEDF9
|
|||||||
org $1BEE1B
|
org $1BEE1B
|
||||||
JSL Palette_ArmorAndGloves_part_two
|
JSL Palette_ArmorAndGloves_part_two
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
org $278000
|
org $3A8000
|
||||||
StartupMasks:
|
StartupMasks:
|
||||||
{
|
{
|
||||||
; from vanilla:
|
; from vanilla:
|
||||||
@@ -40,9 +44,6 @@ StartupMasks:
|
|||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
org $398000
|
|
||||||
Palette_ArmorAndGloves:
|
Palette_ArmorAndGloves:
|
||||||
{
|
{
|
||||||
LDA $02B2 : CMP #$01 : BEQ .deku_mask
|
LDA $02B2 : CMP #$01 : BEQ .deku_mask
|
||||||
@@ -161,6 +162,8 @@ Overworld_CgramAuxToMain_Override:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
org $02C769
|
org $02C769
|
||||||
Overworld_CgramAuxToMain:
|
Overworld_CgramAuxToMain:
|
||||||
{
|
{
|
||||||
@@ -168,8 +171,4 @@ Overworld_CgramAuxToMain:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; no glove color (don't think this does anything?)
|
|
||||||
org $0DEE24
|
|
||||||
db $80
|
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
; Reacts to Tile ID 64 to transform into Minish Link
|
; Reacts to Tile ID 64 to transform into Minish Link
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $3A8000
|
org $398000
|
||||||
incbin gfx/minish_link.4bpp
|
incbin gfx/minish_link.4bpp
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
@@ -12,10 +12,9 @@ incbin gfx/minish_link.4bpp
|
|||||||
org $07DA2A
|
org $07DA2A
|
||||||
TileDetection_OverworldAttributeJumpTable:
|
TileDetection_OverworldAttributeJumpTable:
|
||||||
|
|
||||||
; Tile ID 64
|
|
||||||
org $07DAF2
|
org $07DAF2
|
||||||
dw LinkState_CheckForMinishForm
|
dw LinkState_CheckForMinishForm ; Tile ID 64
|
||||||
dw LinkState_CheckMinishTile
|
dw LinkState_CheckMinishTile ; Tile ID 65
|
||||||
|
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
@@ -49,7 +48,7 @@ LinkState_CheckForMinishForm:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
print "==> LinkState_CheckForMinishForm ", pc
|
; =============================================================================
|
||||||
|
|
||||||
LinkState_CheckMinishTile:
|
LinkState_CheckMinishTile:
|
||||||
{
|
{
|
||||||
@@ -64,5 +63,6 @@ LinkState_CheckMinishTile:
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
print "==> LinkState_CheckMinishTile ", pc
|
||||||
|
pushpc
|
||||||
|
|
||||||
print "==> LinkState_CheckMinishTile ", pc
|
|
||||||
@@ -57,8 +57,7 @@ LinkItem_ShovelAndFlute:
|
|||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
; Bank 07 Free Space
|
; Bank 07 Free Space
|
||||||
; Previous routine `Link_HandleDekuTransformation`
|
pullpc
|
||||||
org $07F914
|
|
||||||
LinkItem_WolfMask:
|
LinkItem_WolfMask:
|
||||||
{
|
{
|
||||||
LDA $02B2 : CMP #$03 : BNE .equip
|
LDA $02B2 : CMP #$03 : BNE .equip
|
||||||
@@ -88,6 +87,4 @@ LinkItem_WolfMask:
|
|||||||
.return
|
.return
|
||||||
CLC
|
CLC
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
print "==> LinkItem_WolfMask ", pc
|
|
||||||
@@ -1,11 +1,19 @@
|
|||||||
; =============================================================================
|
; =============================================================================
|
||||||
; Zora Mask
|
; Zora Mask - by scawful
|
||||||
; Fairy Flippers RAM Position $7EF33C - 01
|
; Based on the Fairy Flippers item by Conn
|
||||||
; Normal Flippers RAM Position $7EF356 - 01
|
; Special Thanks to Zarby89 for the PaletteArmorAndGloves hook
|
||||||
|
;
|
||||||
|
; Transforms Link into Zora Link
|
||||||
|
; Allows Link to dive underwater in the overworld and dungeons as Zora Link.
|
||||||
|
;
|
||||||
|
; How To Use:
|
||||||
|
; 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.
|
||||||
;
|
;
|
||||||
; Underwater Flag RAM Position $7F500E
|
; RAM Used:
|
||||||
; =============================================================================
|
; $02B2 - Current Form
|
||||||
|
; $0AAB - Diving Flag
|
||||||
|
;
|
||||||
; =============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
org $368000
|
org $368000
|
||||||
@@ -97,7 +105,8 @@ org $07C307
|
|||||||
|
|
||||||
; Bank07 Free Space
|
; Bank07 Free Space
|
||||||
; Predecessor: Wolf Mask I think
|
; Predecessor: Wolf Mask I think
|
||||||
org $07F95D
|
; org $07F95D
|
||||||
|
pullpc
|
||||||
LinkState_UsingZoraMask:
|
LinkState_UsingZoraMask:
|
||||||
{
|
{
|
||||||
; Check if the mask is equipped
|
; Check if the mask is equipped
|
||||||
@@ -209,7 +218,7 @@ LinkState_UsingZoraMask:
|
|||||||
|
|
||||||
LDA $0114 : CMP #$85 : BEQ .return_default
|
LDA $0114 : CMP #$85 : BEQ .return_default
|
||||||
LDA $0114 : CMP #$09 : BEQ .return_default
|
LDA $0114 : CMP #$09 : BEQ .return_default
|
||||||
LDA $5B : CMP #$02 : BEQ .player_is_falling
|
LDA $5B : CMP #$02 : BEQ .dungeon_stairs
|
||||||
|
|
||||||
; Check if the ground level is safe
|
; Check if the ground level is safe
|
||||||
; Otherwise, eject the player back to the surface
|
; Otherwise, eject the player back to the surface
|
||||||
@@ -286,5 +295,4 @@ LinkState_ResetMaskAnimated:
|
|||||||
}
|
}
|
||||||
|
|
||||||
print "==> LinkState_ResetMaskAnimated ", pc
|
print "==> LinkState_ResetMaskAnimated ", pc
|
||||||
|
pushpc
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user