Drennthew

LADX Blob Manip Full Report

May 27th, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. THE BLOB MANIP:
  2. In action: https://cdn.discordapp.com/attachments/104346010041458688/581991381330034688/2019-05-26_01-32-38.mp4
  3.  
  4. This only works if a bomb trigger is used to start the fight and there is no music.
  5.  
  6. There are four sword slash sounds. Slash the sword until one of sounds 2 or 3 occur,
  7. then hold the sword. The quick kill will work, assuming positioning is correct.
  8.  
  9. Sound 0: https://cdn.discordapp.com/attachments/104346010041458688/582625747521503235/sword_00.wav
  10. Sound 1: https://cdn.discordapp.com/attachments/104346010041458688/582625766601392163/sword_01.wav
  11. Sound 2: https://cdn.discordapp.com/attachments/104346010041458688/582625773811400715/sword_02.wav
  12. Sound 3: https://cdn.discordapp.com/attachments/104346010041458688/582625778739707935/sword_03.wav
  13.  
  14.  
  15. HOW IT WORKS:
  16. RNG depends on the frame counter [ffe7], the LY register [ff40], and the previous RNG
  17. value. LY (the current scanline being rendered) is fairly consistent when there's no
  18. music, so we need not worry about it. (Although it's possible that slight variance in
  19. LY could cause occasional failures.)
  20.  
  21. The blob always checks RNG when [frameCounter]%4 == 3 (maybe mod 8?). Bits 0 and 1 of
  22. the frame counter will affect the blob's decision. But since those bits are
  23. consistent, we only need to "prepare" the RNG value accordingly.
  24.  
  25. The sound the sword makes depends directly on what the current stored RNG value is.
  26. There are four distinct sounds, which tell you what the current value modulo 4 is. The
  27. lowest bit will be discarded since there's a "shift right" operation, but we can still
  28. influence bit 1, the second lowest bit. This is why sword sounds 0/1 and 2/3 act the
  29. same.
  30.  
  31.  
  32. BROADER APPLICABILITY:
  33. What this manip does is it affects the lowest bit of the RNG, meaning it can be used
  34. to force 50/50 decisions one way or another. But the circumstances are very specific.
  35.  
  36. LY becomes extremely variable when music is playing, making it unlikely that similar
  37. manips could be done in other situations.
  38.  
  39. The blob's frame rule, where he always checks RNG while the frame counter has
  40. a particular value, is also important. This might not be uncommon, though. Many
  41. animations in link's awakening depend on the frame counter, rather than an internal
  42. timer. Try freezing the frame counter [ffe7] to see how messed up everything gets.
  43.  
  44.  
  45. ROM addresses:
  46.  
  47. 00:2812: "Get RNG value" function
  48. 15:525e: Blob decides whether to disappear
  49.  
  50.  
  51. RAM addresses:
  52.  
  53. 1:d368: Write here to play music
  54. 1:d369: Write 00 here to stop music
  55.  
  56. ffe7: Frame counter
  57. fff3: Write here to play a sound effect
Advertisement
Add Comment
Please, Sign In to add comment