zora mask and bottle net disassembly

This commit is contained in:
scawful
2023-03-11 15:06:22 -06:00
parent 800d008013
commit 9c5f076852
5 changed files with 356 additions and 118 deletions

View File

@@ -2,7 +2,6 @@
; Bottle Net Code
; =============================================================================
org $07B073
Link_CheckNewY_ButtonPress:
@@ -19,19 +18,124 @@ PlayerItem_ReleaseBee:
; LinkItem_Bottle
org $07A15B
JMP $FFA0 ; Local Bank Conditional
; =============================================================================
; $07FFA0
org $07FFA0
{
BIT $3A : BVS .return ;if Y or B are already pressed
LDA $030D
LDA $6C : BNE .return ; if we are standing in a dooray or not
BNE $07FFBD
LDA $0300
BNE $07FFBD
LDA $7F5020
TAX
LDA $7EF35B, X
CMP #$02
BEQ $07FFBD
JSR $B073
JMP $A15E
JSR Link_CheckNewY_ButtonPress : BCC .return; Check if we just pressed Y Button ;
JSL LinkItem_NewBottle
.return
; 07FFBD
JMP $AFF8 ; LinkItem_BugCatchingNet
JMP $FAF0 ;
NOP
JSR $B073
STZ $030F
RTS
}
; =============================================================================
; LinkItem_BugCatchingNet
org $07AFF8
{
BIT $3A
BVS $07B029
LDA $6C
BNE $07AFB4
JSR $B073
BCC $07AFB4
LDA $2F
LSR
TAY
LDX $AFF4,Y
LDA $AFCC,X
STA $0300
LDA #$03
STA $3D
STZ $030D
LDA #$10
STA $037A
JSL $8EFEF0
STZ $2E
LDA #$32
JSR $8028
JSR $AE65
LDA $67
AND #$F0
STA $67
DEC $3D
BPL $07B072
LDX $030D
INX
STX $030D
LDA #$03
STA $3D
LDA $2F
LSR
TAY
LDA $AFF4,Y
CLC
ADC $030D
TAY
LDA $AFCC,Y
STA $0300
CPX #$0A
BNE $07B072
STZ $030D
STZ $0300
LDA $3A
AND #$80
STA $3A
STZ $037A
JSL $8EFEF8
STA $50
LDA #$80
STA $44
STA $45
RTS
}
; 07B073
org $07B073
{
BIT $3A
BVS $07B085
LDA $46
BNE $07B085
LDA $F4
AND #$40
BEQ $07B085
TSB $3A
SEC
RTS
; 07B085
org $07B085
CLC
RTS
}
; $8EFEF0
LDA #$01
TSB $50
STA $0112
RTL
; =============================================================================
org $338000

View File

@@ -72,34 +72,59 @@ LinkItem_UsingZoraMask:
; Disassembled/Debugged Code of Conn's Zora Flippers
; May God Give Me Strength
; =============================================================================
; 22E0E0
{
LDA $1B
BNE $22E0F7
LDA $7F500E
CMP #$01
BNE $22E0F7
LDA #$01
STA $55
STZ $5D
LDA #$08
STA $5E
RTL
;-------
LDA #$01
STA $4D
RTL
}
; =============================================================================
; 22E100
LDA $2F
STA $0323
{
LDA $2F ; The direction the player is currently facing
STA $0323 ; Mirror of $2F
JMP $E5F0
NOP
NOP
NOP
NOP
LDA $0345
CMP #$01
LDA $0345 ; Set to 1 when we are in deep water, 0 otherwise
CMP #$01 ; Are we in deep water?
BEQ $22E120
LDA $7F500E
CMP #$01
BEQ $22E11C
RTL
}
; =============================================================================
; 22E120
LDA $F0
{
LDA $F0 ; Joypad 1 Register
CMP #$40
BEQ $22E12D
BEQ .alpha ; $22E12D
LDA #$00
STA $7F500F
RTL
;-------
.alpha
LDA $7F500F
CMP #$01
BNE $22E136
@@ -116,26 +141,28 @@ LinkItem_UsingZoraMask:
CMP #$00
BNE $22E163
JMP $E320
}
; =============================================================================
; 22E17D
{
LDA $7F500E
CMP #$00
BNE $22E1A3
LDA $5D
LDA $5D ; Player Handler or "State"
CMP #$04
BEQ $22E18C
RTL
;-------
LDA #$01
STA $7F500E
STZ $5D
STZ $5D ; Player Handler or "State"
LDA #$01
STA $55
STA $55 ; Cape flag
STA $037B
LDA #$08
STA $5E
STA $5E ; Speed setting for link
NOP
NOP
NOP
@@ -144,45 +171,97 @@ LinkItem_UsingZoraMask:
LDA #$00
JSL $22EF80
LDA #$04
STA $5D
STZ $55
STZ $5E
STA $5D ; Player Handler or "State"
STZ $55 ; Reset cape flag (invisible invincible)
STZ $5E ; Reset Speed
LDA #$01
STA $0345
STA $0345 ; Set to 1 when we are in deep water. 0 otherwise
STZ $037B
RTL
}
; =============================================================================
; 22E1E0
; Observed behavior: Triggers when entering and exiting water indoors only
; Returns to 3C30B below
; Noted changes added
LDA $1B
{
LDA $1B ; Flag set to 1 when indoors, 0 otherwise
BNE $22E1F7
LDA $7F500E
CMP #$01
BNE $22E1F7
LDA #$01
STA $55
STZ $5D
STA $55 ; Set cape flag (invisible invincible)
STZ $5D ; Player Handler or "State"
LDA #$08
STA $5E
STA $5E ; Set player speed
RTL
;-------
LDA #$06
STA $5D
LDA #$06 ; recoil mode 2
STA $5D ; Player Handler or "State"
RTL
}
; =============================================================================
; *$3C2C3-$3C30B LOCAL
{
LDA $1B : BNE .alpha ; Set to 1 if indoors, 0 otherwise
LDX #$02
BRA .beta
.alpha
LDX $1D
LDA $047A : BEQ .beta
LDX #$00 ; Modified from vanilla `LDY.b #$00`
.beta
STX $00
LDA $C2BA, X : TAX
LDA $66 : BNE .gamma
TXA : EOR #$FF : INC : TAX
.gamma
STX $27
STZ $28
LDX $00
LDA $C2BD,X
STA $29 ; vertical resistance
STA $02C7 ; countdown timer
STZ $24 ; z coordinate for link
STZ $25 ; ??? No idea
LDA $C2C0,X
JSL $8EFCE0 ; Dungeon Code (Flippers?)
CMP #$02 : BEQ .delta
JSL $22E0E0
STZ $0360
.delta
JSL $22E1E0
RTS
}
; =============================================================================
; 22E260
LDA $7EF33C
{
LDA $7EF33C ; fairy flippers save ram
AND #$00FF
CMP #$0001
BEQ $22E271
BEQ .has_fairy_flippers ; $22E271
LDA $7EF357
RTL
; -------
; 22E271
.has_fairy_flippers
SEP #$30
LDA #$3C
STA $1613
@@ -192,6 +271,7 @@ LinkItem_UsingZoraMask:
REP #$30
LDA $7EF357
RTL
}
; =============================================================================
; 22E2A0
@@ -248,43 +328,50 @@ FairyFlippers_RestoreControlHandler:
; =============================================================================
; 22E300
{
LDA #$00
STA $5D
STA $5D ; Player Handler or "State"
STA $7F500E
STA $7F500F
STA $5E
STA $0345
JSL $00E3FA
RTL
}
; =============================================================================
; 22E340
LDA $1B
{
LDA $1B ; 1 if indoors, 0 otherwise
BEQ $22E34E
LDA $0114
LDA $0114 ; Value of the type of tile Link is standing on
BEQ $22E34E
CMP #$08
BEQ $22E34E
RTS
;-------
LDA #$24
LDA #$24 ; Splash sound effect
STA $012E
RTS
}
; =============================================================================
; 22E460
LDA $02E4
FairyFlippers_Untitled:
{
LDA $02E4 ; If flag nonzero, Link cannot move
AND #$00FF
BNE $22E46E
BNE .alpha ; $22E46E
LDA #$0009
LDX $8C
RTL
;-------
LDA $0202
.alpha
LDA $0202 ; currently selected item
AND #$00FF
CMP #$000F
CMP #$000F ; what item is F?
BNE $22E481
LDA $02F0
AND #$00FF
@@ -292,13 +379,17 @@ FairyFlippers_RestoreControlHandler:
LDA #$0009
LDX $8C
RTL
}
; =============================================================================
; 22E500
{
CMP #$5A
BEQ $22E507
JMP $D00B
}
; =============================================================================
; 22E530
@@ -337,6 +428,7 @@ FairyFlippers_Main:
; =============================================================================
; 22E5F0
{
LDA $7EF33C
BNE $22E5F7
RTL
@@ -346,11 +438,15 @@ FairyFlippers_Main:
RTL
;-------
JMP $E108
}
; =============================================================================
; 22E600
; Possibly relevant, unconfirmed
; Referenced at: 0D:E507
{
LDA $7EF34A
AND #$00FF
CMP #$0001
@@ -374,7 +470,7 @@ FairyFlippers_Main:
REP #$30
LDA $7EF35C,X
RTL
}
; =============================================================================
; 22E670
@@ -409,6 +505,7 @@ FairyFlippers_HandleMagic:
; =============================================================================
; 22E700
{
STA $F6
STY $FA
REP #$30
@@ -425,20 +522,24 @@ FairyFlippers_HandleMagic:
STA $7EE000
SEP #$30
RTL
}
; =============================================================================
; 22E760
{
LDA #$0E10
STA $7EE000
LDY #$0000
LDX $00
RTL
}
; =============================================================================
; 22E780
; Jesucristo...
{
REP #$30
LDY #$0000
LDA $7EF339
@@ -518,10 +619,12 @@ FairyFlippers_HandleMagic:
INC $0207
LDA $F0
RTL
}
; =============================================================================
; 22E830
{
ADC #$0020
STA $1CD0
LDA $10
@@ -537,26 +640,32 @@ FairyFlippers_HandleMagic:
CMP #$0000
BNE $22E854
RTL
}
; =============================================================================
; 22EF50
{
LDA $7EF3CC
CMP #$0D
BEQ $22EF59
RTL
}
; =============================================================================
; 22EF80
{
STA $7F500E ; reset underwater variable
STZ $0372 ; link bounce flag
RTL
}
; =============================================================================
; 22EFA0
LDA $5D
{
LDA $5D ; Player Handler or "State"
CMP #$05
BNE $22EFAA
STZ $0351
@@ -566,5 +675,6 @@ FairyFlippers_HandleMagic:
CMP #$01
BNE $22EFB4
LDA #$04
STA $5D
STA $5D ; Player Handler or "State"
RTS
}

View File

@@ -185,6 +185,13 @@ Menu_ItemScreen:
LSR : BCS .move_left
LSR : BCS .move_down
LSR : BCS .move_up
; Check if A button is pressed
; LDA $F6 : AND.b #$80 : BEQ .a_not_pressed
; JSR Menu_SubItemScreen
; .a_not_pressed
BRA .no_inputs
.move_right
@@ -280,70 +287,70 @@ Menu_StatsScreen:
{
JSR Menu_CheckHScroll
; Increase selector time and check music RAM
INC $0207 : LDA.w $02D5 : BEQ .no_inputs
; ; Increase selector time and check music RAM
; INC $0207 : LDA.w $02D5 : BEQ .no_inputs
; Scroll through joypad 1 inputs
ASL : TAY : LDA.b $F4
LSR : BCS .move_right
LSR : BCS .move_left
BRA .no_inputs
; ; Scroll through joypad 1 inputs
; ASL : TAY : LDA.b $F4
; LSR : BCS .move_right
; LSR : BCS .move_left
; BRA .no_inputs
.move_right
JSR Menu_DeleteSongCursor
JSR Menu_FindNextSong
BRA .draw_cursor
; .move_right
; JSR Menu_DeleteSongCursor
; JSR Menu_FindNextSong
; BRA .draw_cursor
.move_left
JSR Menu_DeleteSongCursor
JSR Menu_FindPrevSong
BRA .draw_cursor
; .move_left
; JSR Menu_DeleteSongCursor
; JSR Menu_FindPrevSong
; BRA .draw_cursor
.draw_cursor
LDA.b #$20 : STA.w $012F ; cursor move sound effect
; .draw_cursor
; LDA.b #$20 : STA.w $012F ; cursor move sound effect
.no_inputs
SEP #$30
LDA.w $02D5
ASL : TAY
REP #$10
LDX.w Menu_OcarinaSongPositions, Y
; .no_inputs
; SEP #$30
; LDA.w $02D5
; ASL : TAY
; REP #$10
; LDX.w Menu_OcarinaSongPositions, Y
LDA.b #$20 : BIT.w $0207
; LDA.b #$20 : BIT.w $0207
REP #$20
; REP #$20
BEQ .no_delete
; BEQ .no_delete
LDA.w #$20F5
STA.w $1108, X
STA.w $1148, X
STA.w $114E, X
STA.w $110E, X
STA.w $11C8, X
STA.w $1188, X
STA.w $118E, X
STA.w $11CE, X
BRA .done
; LDA.w #$20F5
; STA.w $1108, X
; STA.w $1148, X
; STA.w $114E, X
; STA.w $110E, X
; STA.w $11C8, X
; STA.w $1188, X
; STA.w $118E, X
; STA.w $11CE, X
; BRA .done
.no_delete
; .no_delete
LDA.w #$3060 : STA.w $1108, X ; corner
LDA.w #$3070 : STA.w $1148, X
; LDA.w #$3060 : STA.w $1108, X ; corner
; LDA.w #$3070 : STA.w $1148, X
LDA.w #$7060 : STA.w $110E, X ; corner
LDA.w #$7070 : STA.w $114E, X
; LDA.w #$7060 : STA.w $110E, X ; corner
; LDA.w #$7070 : STA.w $114E, X
LDA.w #$3070 : STA.w $1188, X
LDA.w #$B060 : STA.w $11C8, X ; corner
; LDA.w #$3070 : STA.w $1188, X
; LDA.w #$B060 : STA.w $11C8, X ; corner
LDA.w #$7070 : STA.w $118E, X
LDA.w #$F060 : STA.w $11CE, X ; corner
; LDA.w #$7070 : STA.w $118E, X
; LDA.w #$F060 : STA.w $11CE, X ; corner
.done
SEP #$20
LDA.b #$22 : STA.w $0116
LDA.b #$01 : STA.b $17
; .done
; SEP #$20
; LDA.b #$22 : STA.w $0116
; LDA.b #$01 : STA.b $17
RTS
}
@@ -448,7 +455,7 @@ Menu_Exit:
menu_frame: incbin "tilemaps/menu_frame.tilemap"
quest_icons: incbin "tilemaps/quest_icons.tilemap"
incsrc "lw_map_names.asm"
incsrc "menu_map_names.asm"
incsrc "menu_hud.asm"
; =============================================================================

View File

@@ -35,6 +35,7 @@ Menu_DrawBackground:
; Credit to Kan
DrawMenuItem:
{
STA.b $08
STY.b $00
@@ -60,11 +61,14 @@ DrawMenuItem:
LDA.w $0006,Y : STA.w $114A,X
RTS
}
; =============================================================================
; Quest Icons Tilemap Draw Routine
DrawQuestIcons:
{
LDX.w #$10
.loop
@@ -87,10 +91,13 @@ DrawQuestIcons:
LDA.w #$20F5 : STA.w $13B4 : STA.w $13F4 : STA.w $1474 : STA.w $14B4
RTS
}
; =============================================================================
DrawTriforceIcon:
{
LDA.l $7EF37A
LDX.w #$3534
LDY.w #$3544
@@ -125,10 +132,13 @@ DrawTriforceIcon:
+
RTS
}
;===============================================================================
DrawPendantIcons:
{
LDA.l $7EF374
LSR : BCC +
LDX.w #$2502 : STX.w $14A4 : INX : STX.w $14A6
@@ -143,6 +153,8 @@ DrawPendantIcons:
LDX.w #$2D16 : STX.w $14F0 : INX : STX.w $14F2
+ RTS
}
;===============================================================================
@@ -156,6 +168,7 @@ DrawPendantIcons:
; E100 would be T = 16
DrawHeartPieces:
{
LDA.l $7EF36B
AND.w #$00FF
CMP.w #3 : BEQ .top_right
@@ -170,6 +183,8 @@ DrawHeartPieces:
.top_left
LDX.w #$24AD : STX.w $149E
RTS
}
;===============================================================================

View File

@@ -249,3 +249,5 @@ Menu_DeleteSongCursor:
STZ $0207
RTS
}
; -----------------------------------------------------------------------------