Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,467 changes: 735 additions & 732 deletions ASM/build/asm_symbols.txt

Large diffs are not rendered by default.

Binary file modified ASM/build/bundle.o
Binary file not shown.
1,445 changes: 723 additions & 722 deletions ASM/build/c_symbols.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions ASM/src/build.asm
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ RANDO_CONTEXT:
.include "player_laddercutscenefix.asm"
.include "player_bunny_hover_matrix.asm"
.include "player_hookshotcheckspawn.asm"
.include "player_cswaitputawaysoftlockfix.asm"

.align 0x10
.importobj "../build/bundle.o"
Expand Down
15 changes: 15 additions & 0 deletions ASM/src/hacks/z_player.asm
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,18 @@
.org 0x808319d4 ; in Player_InitHookshotIA (0x8038a374)
jal Player_HookshotCheckActorSpawn
lw a1,60(sp) ; displaced (loads player)

;================================================================================
; Prevent softlock if supersliding into cutscene by adding check in WaitForPutAway
; for specific scene + csAction not none, to change into CS action function.
; Which cutscenes are affected are thus specified in the function.
;================================================================================
; Replaces: lw a2,24(sp)
; lw a1,28(sp)
; lw t8,1644(a2)
; move a0,a2
.org 0x808439c0 ; in Player_Action_WaitForPutAway
jal Player_CSWaitPutAwaySoftlockFix
lw a1,28(sp) ; displaced
bnez v0,0x80843a04 ; if CS, run afterPutAwayFunc to exit this action
lw t8,1644(a2) ; displaced; else, continue checks as usual
18 changes: 18 additions & 0 deletions ASM/src/player_cswaitputawaysoftlockfix.asm
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Player_CSWaitPutAwaySoftlockFix: ; a1 = play
addiu sp,sp,-24
sw ra,16(sp)
move v0,zero ; assume return false/no function flow change
lw a2,48(sp) ; displaced, player
move a0,a2 ; displaced
lh t0,0xa4(a1) ; scene id
li at,0x64 ; outside Ganon
bne at,t0,@@Return ; skip if not outside
; add further scenes here if necessary, along with other conditions if needed
lbu t0,0x434(a0) ; player csAction
bnezl t0,@@Return ; if csAction is NONE, just return
@@StartCutscene:
li v0,1 ; else, return true/start cutscene by running function
@@Return:
lw ra,16(sp)
jr ra
addiu sp,sp,24
2 changes: 1 addition & 1 deletion data/generated/patch_symbols.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading