Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- =======================================
- Overview
- =======================================
- Interaction $ac reads value 3 from [wChildPersonality] to decide on his second
- personality. This is invalid so some arbitrary value gets written to [wChildPersonality].
- Based on that, it spawns a shit ton of interactions.
- Note: in Seasons (maybe Ages), gasha plants on right side of house can prevent the last
- 2 interactions from loading?
- SOFTLOCKS:
- Many seem to be caused by returning several levels up. If it could return exactly one
- level up instead, we could bypass the remainder of the interactions.
- RESULT:
- All investigations of crashes have reached dead ends. If we could set [wChildStatus] to
- 0 in ages, we could get some pretty useful effects. Overflow would do it, but that would
- need more ways to increase it. The only way I can think of is if we can somehow call
- "setGlobalFlag" or "clearGlobalFlag" with indices that are far too high, to corrupt the
- child's data.
- =======================================
- Ages US: [wChildStatus] = $01, [wChildPersonality] = $af
- =======================================
- ==========
- Left half
- ==========
- Read from: $0e03
- Spawn:
- 3: $ccb7 (crash, eventually)
- 4: $044f
- 5: $8187
- 6: $5810 (crash)
- 7: $902a (crash)
- 8: $e092
- 9: $2100
- a: $c471
- b: $cb7d
- c: $c0c4
- d: $cb3f
- e: $c52a
- f: $e08d
- Object $ccb7: jumps to rom at 0b:421e, then $0068 (sometimes), then returns.
- The second jump depends on the value of 'c' at the time of the call to
- "updateInteractions". This is sometimes dependent on the keys held last
- frame, and sometimes dependent on Link's update code. Holding up prevents
- a crash for the first second or so.
- Seems impossible to prevent the following interactions from executing for
- very long. Eventually "c" gets set to a value based on link's movement...
- Object $5810: jumps to $cd26; area-related variables. No way to influence them.
- ===========
- Right half
- ===========
- Read from: $092b
- Spawns:
- 3: $0620
- 4: $0520
- 5: $02f0
- 6: $08fa
- 7: $0fca (crash)
- 8: $10e0
- 9: $3ee0 (crash; can be made into a softlock)
- a: $7e3d
- b: $2847 (crash)
- c: $08e0
- d: $20ee
- e: $97ea (softlock)
- f: $1640
- Object $0fca: jumps to $e8c9; past room flags. Seems hopeless since there will be tons of
- STOP opcodes here.
- Object $3ee0: state 0: jumps somewhere but doesn't crash.
- state 1: jumps to $8acd. Inaccessible vram. Jumps to 9:5b2c for a few rounds
- until vram becomes accessible. Once accessible, contents matter.
- This can be turned into a partial softlock instead of a crash by
- loading map contents here.
- =======================================
- Ages JP: [wChildStatus] = $01, [wChildPersonality] = $af
- =======================================
- Spawns are identical to Ages US.
- Code issues are also the same.
- =======================================
- Ages EU: [wChildStatus] = $01, [wChildPersonality] = $af
- =======================================
- ===========
- Left half
- ===========
- Read from: $0e03
- Spawn:
- 3: $2aea
- 4: $b7c4
- 5: $3ea4
- 6: $fa00 (softlock)
- 7: $202a
- 8: $36e3 (crash)
- 9: $e08a
- a: $b728
- b: $4ffa
- c: $8787 (crash)
- d: $1009
- e: $2ae0
- f: $922a (crash)
- $fa00: Jumps to $ffff -> $0411 -> rst $38. Nothing to be done.
- ===========
- Right half
- ===========
- Read from: $092b
- Spawn:
- 3: $9222 (crash)
- 4: $3110 (sometimes resets?)
- 5: $3e01
- 6: $3331
- 7: $c509
- 8: $0620
- 9: $0520
- a: $02f0
- b: $08fa
- c: $0fca (crash)
- d: $10e0
- e: $3ee0 (crash)
- f: $7e3d
- $9222: jumps to cd10. Nothing to be done.
- $3110: one time only, jumps to 0xbcd. Does something sketchy here.
- =======================================
- Seasons US: [wChildStatus] = $01, [wChildPersonality] = $af
- =======================================
- ==========
- Left half
- ==========
- Read from: $0e03
- Spawn:
- 3: $21c0
- 4: $0fcb
- 5: $14c5
- 6: $2ae0
- 7: $666f (softlock)
- 8: $e12c
- 9: $ecf0 (crash)
- a: $300c
- b: $e06f
- c: $fea0 (crash)
- d: $e097
- e: $c9e5
- f: $cdb7
- $666f: jumps directly to an rst $38. Nothing to be done.
- $ec: jumps to $fc0e, then to oam, eventually. May be manageable.
- $fe: jumps to $f597. At the mercy of loaded objects; hits an rst $38, then... chaotic.
- ==========
- Right half
- ==========
- Read from: $092b
- (Note: first 2 slots occupied by pipin's plants?)
- Spawn:
- 5: $3d28
- 6: $47f0
- 7: $e09c
- 8: $ee3e (crash)
- 9: $ea22 (softlock)
- a: $40af
- b: $9ec4
- c: $c411
- d: $062a
- e: $20fa
- f: $36ff
- Impossible to prevent crash on object $ee; jumps to $f027, in the middle of some
- uncontrollable link object variables. Hits corrupted stop at $f030.
- =======================================
- Seasons JP: [wChildStatus] = $01, [wChildPersonality] = $af
- =======================================
- Spawns are identical to Seasons US. Code problems are also the same.
- =======================================
- Seasons EU: [wChildStatus] = $01, [wChildPersonality] = $af
- =======================================
- ==========
- Left half
- ==========
- Read from: $0e03
- Spawn:
- 3: $8187
- 4: $4810
- 5: $902a (crash)
- 6: $e092
- 7: $2100
- 8: $c45d
- 9: $cb7d (crash)
- a: $c0c4
- b: $cb3f
- c: $c52a
- d: $e08d
- e: $6fcd (crash)
- f: $2cc1
- $902a: state 0: loads an invalid script at $0625 (which doesn't run), then jumps to $3e0d;
- corrupts room layout, somehow causes game to hang.
- If it somehow does reach state 1, it hard-crashes.
- ==========
- Right half
- ==========
- Read from: $092b
- Spawn:
- 5: $f0b7 (crash?)
- 6: $fa81 (crash?)
- 7: $ca69
- 8: $e09d
- 9: $e0e0
- a: $3d28
- b: $47f0
- c: $e09c
- d: $ee3e (crash?)
- e: $ea22 (crash?)
- f: $40af
- $f0b7: jumps to 0a3e. Stack gets messed up.
Add Comment
Please, Sign In to add comment