Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- How to look for an "easy" scrollless cloud setup
- During the chuck eat, when Yoshi is no farther right than this pixel:
- http://imgur.com/2Kr5bvx
- 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:
- 1) Is the button currently being held down?
- 2) Is this the first frame the button has been held down? (was it pressed the frame of the chuck eat?)
- 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.
- 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:
- none 0074 player is climbing flag (always 00)
- R 0084 slope data pointer data bank (always 00)
- L 0094 player x position low byte, next frame
- RL 00A4 sprite #6 sprite num (0x01=red shell, 0x35=yoshi)
- X 00B4 sprite #10 y speed
- RX 00C4 misc sprite table slot #2 (0x00)
- LX 00D4 Player Y position, high byte, current (0x01)
- RLX 00E4 Sprite #0 x coordinate, low byte
- A 00F4 unused (0x00)
- RA 0104 GFX file (always 00)
- LA 0114 Unused stack
- RLA 0124 Unused stack
- XA 0134 Unused stack
- RXA 0144 Unused stack
- LXA 0154 Unused stack
- RLXA 0164 Unused stack
- In order for the game not to crash, whichever memory address is indicated by your controller inputs should have one of these values:
- 0x10
- 0x2F
- 0x3F
- 0x4F
- 0x5F
- 0x60
- 0x67
- 0x6F
- 0x70
- 0x8F
- 0x9F
- 0xB5
- 0xBE
- 0xDF
- 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.
- 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.
- 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