Item and mask cleanup

This commit is contained in:
scawful
2025-01-09 02:35:38 -05:00
parent 006690858c
commit bc591c4e7a
6 changed files with 69 additions and 110 deletions

View File

@@ -1,13 +1,13 @@
; ============================================================================= ; ===========================================================
; Bottle Net Code ; Bottle Net Code
; ============================================================================= ; ===========================================================
!BottleFlag = $0AA6 !BottleFlag = $0AA6
PlayerItem_SpawnFaerie = $1EFE33 PlayerItem_SpawnFaerie = $1EFE33
PlayerItem_ReleaseBee = $1EDCCF PlayerItem_ReleaseBee = $1EDCCF
; ============================================================================= ; ===========================================================
; LinkItem_Bottle ; LinkItem_Bottle
org $07A15B org $07A15B

View File

@@ -9,7 +9,7 @@
; $7F5BA2 RAM for fishing mode - 1 = rod out, 2 = pull ; $7F5BA2 RAM for fishing mode - 1 = rod out, 2 = pull
; $7F5BA3 RAM Index for the fishing floater ; $7F5BA3 RAM Index for the fishing floater
; Modify the code of the sprite "RunningBoy" 0x74 ; Modify the code of the sprite "RunningBoy" 0x74
; ========================================================= ; ====================================================
; Sprite_2D_NecklessMan_bounce ; Sprite_2D_NecklessMan_bounce
org $06C0B2 org $06C0B2
@@ -285,9 +285,6 @@ RestoreCaneBlockHammerGfx:
RTL RTL
} }
FloaterBoySpriteCheck: FloaterBoySpriteCheck:
{ {
PHB : PHK : PLB PHB : PHK : PLB

View File

@@ -9,9 +9,9 @@
pullpc pullpc
TransferGFXinRAM: TransferGFXinRAM:
{ {
PHX ; keep X PHX
PHP ; keep processor byte PHP
REP #$20 ; 16bit is a bit faster REP #$20
LDX #$80 LDX #$80
-- --
@@ -28,8 +28,7 @@ TransferGFXinRAM:
pushpc pushpc
; OAM Draw Pattern for spikeball gfx ; OAM Draw Pattern for spikeball gfx
org $0085C4 org $0085C4 : dw $0040
dw $0040
; ========================================================= ; =========================================================
; Zarby Code ; Zarby Code

View File

@@ -25,15 +25,11 @@ DekuFloating = $70
; Unset, will shoot deku bubble instead ; Unset, will shoot deku bubble instead
DekuHover = $71 DekuHover = $71
; =========================================================
AddTransformationCloud = $09912C AddTransformationCloud = $09912C
Link_CheckNewY_ButtonPress = $07B073 Link_CheckNewY_ButtonPress = $07B073
LinkItem_EvaluateMagicCost = $07B0AB LinkItem_EvaluateMagicCost = $07B0AB
Player_DoSfx2 = $078028 Player_DoSfx2 = $078028
; =========================================================
incsrc "Masks/mask_routines.asm" incsrc "Masks/mask_routines.asm"
; Start of free space in bank 07 ; Start of free space in bank 07

View File

@@ -3,7 +3,7 @@
macro PlayerTransform() macro PlayerTransform()
LDY.b #$04 : LDA.b #$23 LDY.b #$04 : LDA.b #$23
JSL AddTransformationCloud JSL AddTransformationCloud
LDA.b #$14 : STA.w $0CF8 LDA.b #$14 : STA.w $0CF8
JSL $0DBB67 ; Link_CalculateSFXPan JSL $0DBB67 ; Link_CalculateSFXPan
ORA.w $0CF8 ORA.w $0CF8
@@ -21,7 +21,7 @@ endmacro
org $008827 : JSL StartupMasks org $008827 : JSL StartupMasks
; Link Sprite hook before game starts ; Link Sprite hook before game starts
org $008A01 : LDA $BC org $008A01 : LDA $BC
; ========================================================= ; =========================================================
; Change Link's palette based on $02B2 (mask value) ; Change Link's palette based on $02B2 (mask value)
@@ -102,50 +102,45 @@ ForceResetMask_SaveAndQuit:
Palette_ArmorAndGloves: Palette_ArmorAndGloves:
{ {
LDA !CurrentMask : CMP #$01 : BEQ .deku_mask LDA !CurrentMask : CMP.b #$01 : BEQ .deku_mask
CMP.b #$02 : BEQ .zora_mask CMP.b #$02 : BEQ .zora_mask
CMP.b #$03 : BEQ .wolf_mask CMP.b #$03 : BEQ .wolf_mask
CMP.b #$04 : BEQ .bunny_hood CMP.b #$04 : BEQ .bunny_hood
CMP.b #$05 : BEQ .minish_form CMP.b #$05 : BEQ .minish_form
CMP.b #$06 : BEQ .gbc_form CMP.b #$06 : BEQ .gbc_form
CMP.b #$07 : BEQ .moosh_form CMP.b #$07 : BEQ .moosh_form
JMP .original_sprite JMP .original_sprite
.deku_mask .deku_mask
; Load Deku Mask Location LDA.b #$35 : STA $BC
LDA.b #$35 : STA $BC JSL UpdateDekuPalette
JSL UpdateDekuPalette RTL
RTL
.zora_mask .zora_mask
; Load Zora Mask Location LDA.b #$36 : STA $BC
LDA.b #$36 : STA $BC JSL UpdateZoraPalette
JSL UpdateZoraPalette RTL
RTL
.wolf_mask .wolf_mask
; Load Wolf Mask Location LDA.b #$38 : STA $BC
LDA.b #$38 : STA $BC JSL $38F000
JSL $38F000 RTL
RTL
.bunny_hood .bunny_hood
; Load Bunny Hood Location LDA.b #$37 : STA $BC
LDA.b #$37 : STA $BC JSL $37F000
JSL $37F000 RTL
RTL
.minish_form .minish_form
; Load Minish Form Location LDA.b #$39 : STA $BC : JMP .original_palette
LDA.b #$39 : STA $BC : JMP .original_palette
.gbc_form .gbc_form
JSL UpdateGbcPalette JSL UpdateGbcPalette
RTL RTL
.moosh_form .moosh_form
JSL UpdateMooshPalette JSL UpdateMooshPalette
RTL RTL
.original_sprite .original_sprite
; Load Original Sprite Location ; Load Original Sprite Location
@@ -212,17 +207,17 @@ Overworld_CgramAuxToMain_Override:
LDX.b #$00 LDX.b #$00
.loop .loop
LDA $7EC300, X : STA $7EC500, X LDA $7EC300, X : STA $7EC500, X
LDA $7EC340, X : STA $7EC540, X LDA $7EC340, X : STA $7EC540, X
LDA $7EC380, X : STA $7EC580, X LDA $7EC380, X : STA $7EC580, X
LDA $7EC3C0, X : STA $7EC5C0, X LDA $7EC3C0, X : STA $7EC5C0, X
LDA $7EC400, X : STA $7EC600, X LDA $7EC400, X : STA $7EC600, X
LDA $7EC440, X : STA $7EC640, X LDA $7EC440, X : STA $7EC640, X
LDA $7EC480, X : STA $7EC680, X LDA $7EC480, X : STA $7EC680, X
LDA !CurrentMask : BNE .has_mask_palette LDA !CurrentMask : BNE .has_mask_palette
LDA $7EC4C0, X : STA $7EC6C0, X LDA $7EC4C0, X : STA $7EC6C0, X
.has_mask_palette .has_mask_palette
INX #2 : CPX.b #$40 : BNE .loop INX #2 : CPX.b #$40 : BNE .loop
SEP #$20 SEP #$20
@@ -238,13 +233,13 @@ LinkState_ResetMaskAnimated:
{ {
STZ.b $55 STZ.b $55
LDA.w !CurrentMask : BEQ .no_transform LDA.w !CurrentMask : BEQ .no_transform
CMP.b #$01 : BEQ .check_item_slot CMP.b #$01 : BEQ .check_item_slot
CMP.b #$02 : BEQ .no_transform CMP.b #$02 : BEQ .no_transform
CMP.b #$03 : BEQ .check_item_slot CMP.b #$03 : BEQ .check_item_slot
CMP.b #$04 : BEQ .check_item_slot CMP.b #$04 : BEQ .check_item_slot
CMP.b #$05 : BEQ .no_transform CMP.b #$05 : BEQ .no_transform
CMP.b #$06 : BEQ .gbc_form CMP.b #$06 : BEQ .gbc_form
CMP.b #$07 : BEQ .moosh_form CMP.b #$07 : BEQ .moosh_form
.check_item_slot .check_item_slot
LDA.w $0202 : SEC : SBC.b #$13 : BEQ .no_transform LDA.w $0202 : SEC : SBC.b #$13 : BEQ .no_transform
@@ -279,12 +274,11 @@ org $079CD9
pullpc pullpc
LinkItem_CheckForSwordSwing_Masks: LinkItem_CheckForSwordSwing_Masks:
{ {
LDA !CurrentMask : BEQ .return LDA !CurrentMask : BEQ .return
CMP.b #$02 : BEQ .return ; zora mask can use sword CMP.b #$02 : BEQ .return ; zora mask can use sword
CMP.b #$06 : BEQ .return ; gbc link can use sword CMP.b #$06 : BEQ .return ; gbc link can use sword
LDA #$01 LDA #$01
RTL RTL
.return .return
LDA $3B : AND.b #$10 ; Restore Link_CheckForSwordSwing LDA $3B : AND.b #$10 ; Restore Link_CheckForSwordSwing
RTL RTL
@@ -399,17 +393,6 @@ PrepareQuakeSpell:
; ========================================================= ; =========================================================
InitCamera:
{
LDA.b $22 : STA.b $3F
LDA.b $23 : STA.b $41
LDA.b LinkY : STA.b $3E
LDA.b LinkYH : STA.b $40
RTS
}
; =========================================================
HandleMovement: HandleMovement:
{ {
LDA $F0 : AND #$08 : BEQ .not_up LDA $F0 : AND #$08 : BEQ .not_up
@@ -550,22 +533,18 @@ DekuLink_SkipPitSlip:
pushpc pushpc
org $07C729 org $07C729 : JSL DekuLink_SkipPitSlip
JSL DekuLink_SkipPitSlip
org $07BCEE org $07BCEE : JSL DekuLink_SkipPitSlip
JSL DekuLink_SkipPitSlip
org $088399 org $088399 : dw Ancilla0E_MagicBubble
dw Ancilla0E_MagicBubble
org $08FFDA ; Bank 08 Free space org $08FFDA ; Bank 08 Free space
Ancilla0E_MagicBubble: Ancilla0E_MagicBubble:
JSL Ancilla0E_MagicBubbleLong JSL Ancilla0E_MagicBubbleLong
RTS RTS
org $07903F org $07903F : JSL DekuLink_CheckForDash
JSL DekuLink_CheckForDash
pullpc pullpc
@@ -849,9 +828,7 @@ Ancilla_Move_Z:
Ancilla_Killa: Ancilla_Killa:
PLA PLA
PLA PLA
STZ.w AnciType, X STZ.w AnciType, X
RTS RTS
Ancilla_BoundsCheck: Ancilla_BoundsCheck:
@@ -1312,8 +1289,7 @@ MagicBubbleSwapDynamicGfx:
pushpc pushpc
; Magic Bubble Ancilla damage class ; Magic Bubble Ancilla damage class
org $06EC8C org $06EC8C : db $01
db $01
; ========================================================= ; =========================================================
@@ -1328,14 +1304,9 @@ LinkOAM_DrawShield:
NOP #3 NOP #3
BEQ .no_shield BEQ .no_shield
LDA.l $7EF35A : AND.w #$00FF : BEQ .no_shield
LDA.l $7EF35A JSR LinkOAM_SetEquipmentVRAMOffsets
AND.w #$00FF BCC .shield_continue
BEQ .no_shield
JSR LinkOAM_SetEquipmentVRAMOffsets
BCC .shield_continue
.no_shield .no_shield
BRL LinkOAM_DrawShadow BRL LinkOAM_DrawShadow
@@ -1353,9 +1324,9 @@ pullpc
LinkOAM_CheckForDrawShield: LinkOAM_CheckForDrawShield:
{ {
LDA.w !CurrentMask : AND.w #$00FF : CMP.w #$0005 : BNE + LDA.w !CurrentMask : AND.w #$00FF : CMP.w #$0005 : BNE +
.no_shield .no_shield
LDA.w #$0000 LDA.w #$0000
RTL RTL
+ +
CMP.w #$0001 : BEQ .no_shield CMP.w #$0001 : BEQ .no_shield
CMP.w #$0003 : BEQ .no_shield CMP.w #$0003 : BEQ .no_shield
@@ -1366,8 +1337,7 @@ LinkOAM_CheckForDrawShield:
pushpc pushpc
org $07A94F org $07A94F : JSL CheckForTwoWayMirror
JSL CheckForTwoWayMirror
pullpc pullpc
@@ -1377,8 +1347,8 @@ CheckForTwoWayMirror:
LDA.b #$01 LDA.b #$01
RTL RTL
.vanilla_code .vanilla_code
#_07A94F: LDA.b $8A LDA.b $8A
#_07A951: AND.b #$40 AND.b #$40
RTL RTL
} }

View File

@@ -15,10 +15,7 @@ org $07D8A0
dw LinkState_CheckMinishTile dw LinkState_CheckMinishTile
; LinkState_Bunny.not_moving ; LinkState_Bunny.not_moving
org $078427 org $078427 : JSR $9BAA ; Link_HandleAPress
JSR $9BAA ; Link_HandleAPress
; =========================================================
pullpc pullpc
LinkState_CheckForMinishForm: LinkState_CheckForMinishForm: