Advertisement
SeedBorn

Credits Warp Hangups

Nov 29th, 2019
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. Credit warp example: Goron Village credits cs (JP1.0)
  2. Exit 8A00 (exit is 801EF462)
  3. Scene setup 0 (cs setter is 801F3736, set to FFF0)
  4.  
  5. CS pointer for this cs 80724708
  6. CS contains 4 commands:
  7. First command 5A, camera data
  8. Second command 96, which eventually gives Link control if the cs doesn't end properly
  9. Third command 15F, this is the one that handles moving to the next credits cs when it hits its end frame. Which cs to go to is determined by its variable.
  10. Fourth command A, this is text boxes, displays the credits text.
  11.  
  12. When credits warping, the 15F command doesn't process correctly.
  13.  
  14. Every frame (in both states) we're hitting the check
  15. 800ED294 BEQ V0, AT, 0x800ED6B0
  16. which gets V0 from
  17. 800ED284 JAL 0x8019E8B0
  18.  
  19. With no hang we eventually return a V0 of 0, otherwise it's constantly FF. The difference comes from
  20. 8019E90C LB V0, 0x00C8 (V1) //V1 is 8027DAC0
  21.  
  22. So the difference here was that the byte at 8027DB88 was different on the frame where it worked.
  23.  
  24. With the working state, this byte gets written to in 80194F84 (and becomes 0 on the frame that the fadeout is supposed to start). In the non-working state this doesn't happen. But it is getting written to 5 times per frame by 8019508C. This write never even happens in the working state. (This instruction is writing many times per frame in either state, to a bunch of different places. But it's never writing to that specific byte in the working state.)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement