Advertisement
SethBling

"Easy" Scrollless Cloud Technicals

Apr 6th, 2016
915
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. How to look for an "easy" scrollless cloud setup
  2.  
  3. During the chuck eat, when Yoshi is no farther right than this pixel:
  4. http://imgur.com/2Kr5bvx
  5. the game figures out what to do based on your controller inputs. Specifically, the X, A, L and R buttons. There are two questions the game asks about each button:
  6. 1) Is the button currently being held down?
  7. 2) Is this the first frame the button has been held down? (was it pressed the frame of the chuck eat?)
  8.  
  9. For an "easy" scrollless setup, we can vary the answer to (1) for each button, but ideally (2) should be "no" for all four buttons, so that we don't need a frame perfect input to have the processor do the right thing and not crash. This leaves us with 16 possible input combinations: RLXA, LXA, RXA, XA, RLA, LA, RA, A, RLX, LX, RX, X, RL, L, R and none.
  10.  
  11. Depending on which input combination you're pressing and holding, the game will look at one of these memory addresses to figure out what to do next:
  12. none 0074 player is climbing flag (always 00)
  13. R 0084 slope data pointer data bank (always 00)
  14. L 0094 player x position low byte, next frame
  15. RL 00A4 sprite #6 sprite num (0x01=red shell, 0x35=yoshi)
  16. X 00B4 sprite #10 y speed
  17. RX 00C4 misc sprite table slot #2 (0x00)
  18. LX 00D4 Player Y position, high byte, current (0x01)
  19. RLX 00E4 Sprite #0 x coordinate, low byte
  20. A 00F4 unused (0x00)
  21. RA 0104 GFX file (always 00)
  22. LA 0114 Unused stack
  23. RLA 0124 Unused stack
  24. XA 0134 Unused stack
  25. RXA 0144 Unused stack
  26. LXA 0154 Unused stack
  27. RLXA 0164 Unused stack
  28.  
  29. In order for the game not to crash, whichever memory address is indicated by your controller inputs should have one of these values:
  30. 0x10
  31. 0x2F
  32. 0x3F
  33. 0x4F
  34. 0x5F
  35. 0x60
  36. 0x67
  37. 0x6F
  38. 0x70
  39. 0x8F
  40. 0x9F
  41. 0xB5
  42. 0xBE
  43. 0xDF
  44.  
  45. I found these values by observing the how to processor handled each value in an emulator, and they should all work 100% of the time if contained in one of the indicated memory addresses.
  46.  
  47. These tables explain why holding A and other buttons may access uninitialized RAM from the unused stack space. The tables are also what DotsAreCool used to find his RLX setup, based on loading a sprite (a koopa) into sprite slot #0 at an x-coordinate of 0xB5.
  48.  
  49. If you want to find a new "easy" scrollless setup, just get one of those memory addresses to have one of those values consistently. I've played around with holding L and getting Mario to 0x2F, and it can work, but it's pretty hard to pull off because Mario's x-coordinate must be pixel perfect and there's a lot of movement going on. Maybe you can find something new!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement