======================================= 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.