Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NTSC 1.2
- first full SRM:
- create file 1 with filename 800FC550 80300F20
- lightnode SRM using file 1 filename (angle ACA0 to use the filename at 8011ACA4)
- write 80300F20 to 800FC558 (file 2 backup offset and file 3 backup offset)
- this makes it so that when you make a file 3, it will be pasted into file 1 ram at 8011BBA4, which is event flags
- second full SRM:
- create file 3 with filename 8011BBA0 8000A460
- lighhtnode SRM using event flags (angle BBA0 to use the filename at 8011BBA4)
- write 8011BBA0 to 8000A464
- third full SRM:
- create file 3 with filename 80213F08 8000A260
- lighhtnode SRM using event flags (angle BBA0 to use the filename at 8011BBA4)
- write 80213F08 to 8000A264
- combined effect of SRM 2 and 3 will be that 8011BBA0 will be written to 80213F08 every frame,
- so that one of the fairies that loads in initial kokiri scene load will trigger a lightnode SRM whenever its room unloads
- first deathloop lightnode:
- create file 3 with filename 8001DF00 800F0314
- write 8001DF00 to 800F0318
- (make some function pointer that takes globalctx point to a nop in bank 8001)
- second deathloop lightnode:
- create file 3 with filename 801DB684 800F0264
- setup angle EBFC or EC00 and grab a rock
- write 800F0264 to 801DB68C (held actor)
- and in turn, walking with this held actor will write EBFC/EC00 to the lower half of 800F0318, making the event editor always open when a demo isn't running.
- (note: the wii can probably use this route if we add a few more deathloops to enable d-pad at this point. but the exact details are not known.)
- now, the event editor is open and we can freely control the event flags using inf_table[22,23,24,25].
- and every time we walk out of and back into a kokiri house, a lightnode ramwrite will happen.
- this can be bootstrapped quickly into making the event editor itself control ram.
- first event editor lightnode:
- enter bits in inf_table[22-25] for 801DB684 800E8788
- grab rock and setup angle 87C2
- write 800E8788 to 801DB68C (held actor)
- this in turn writes 87C2 to the lower half of 800E87B8 (event_chk_inf[19] write address)
- first event editor lightnode:
- enter bits in inf_table[22-25] for 800E87B8 800E87B8
- write 800E87B8 to 800E87C0 (event_chk_inf[20] write address)
- now, event_chk_inf[20] points to the upper half of the event_chk_inf[19] write address.
- use event_chk_inf[20] to modify event_chk_inf[19] to point to 800E87C2 (lower half of event_chk_inf[20] write address)
- use event_chk_inf[19] to modify event_chk_inf[20] to point to 800E87C8 (upper half of event_chk_inf[21] write address)
- use event_chk_inf[20] to modify the upper half of event_chk_inf[21] to 800E
- use event_chk_inf[19] to modify event_chk_inf[20] to point to 800E87CA (upper half of event_chk_inf[21] write address)
- use event_chk_inf[20] to modify event_chk_inf[21] to 800E87C0
- now FINALLY we are done setting up the ram editor!
- event_chk_inf[19] points to the LOWER half of where event_chk_inf[20] should write to
- event_chk_inf[20] is used to write the actual value
- event_chk_inf[21] points to the UPPER half of where event_chk_inf[20] should write to
- note: a glitchy string will display instead of "event_chk_inf[19]", this is normal. also, don't ever scroll up past it, the game will crash if you do.
- first thing to use the ram editor for will be to make the game stop writing to 80213F08 every frame (just in case this causes some random crashes later.)
- set event_chk_inf[21]=8000, event_chk_inf[19]=A264; and then event_chk_inf[20]=803F. this will make it so the game writes to 803F3F08 every frame instead, which is harmless.
- there may also be other instabilities accidentally introduced by all the ramwrites we've done. if any crashes happen, we can add in some more cleanup at this stage.
- now, do whatever you want with ram editor!!!!!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement