000f3718 - 000f4ac8
Jump to navigation
Jump to search
loads important map data in very similar manner to unit SHP/SEQ, too lazy rn 000f3718: 3c02800f lui r2,0x800f 000f371c: 8c425c58 lw r2,0x5c58(r2) #map file func. index? 000f3720: 27bdffd8 addiu r29,r29,0xffd8 000f3724: afb00010 sw r16,0x0010(r29) 000f3728: 00808021 addu r16,r4,r0 #current map 000f372c: afbf0024 sw r31,0x0024(r29) 000f3730: afb40020 sw r20,0x0020(r29) 000f3734: afb3001c sw r19,0x001c(r29) 000f3738: afb20018 sw r18,0x0018(r29) 000f373c: 14400052 bne r2,r0,0x000f3888 #immediately load Map data point if file func != 0 000f3740: afb10014 sw r17,0x0014(r29) 000f3744: 24a5ff8d addiu r5,r5,0xff8d #r5 = input - 73 000f3748: 2ca2002a sltiu r2,r5,0x002a #set true if 73 <= r5 < 9D 000f374c: 1040004e beq r2,r0,0x000f3888 #Immediately load map data point 000f3750: 00051080 sll r2,r5,0x02 #r2 = r5 word pointer 000f3754: 3c01800e lui r1,0x800e 000f3758: 00220821 addu r1,r1,r2 000f375c: 8c227178 lw r2,0x7178(r1) #load from a set of pointers 000f3760: 00000000 nop 000f3764: 00400008 jr r2 000f3768: 00000000 nop Return Table: 73: 800f376c (load GNS) 74: 800f3888 (skip) 75: 800f37b8 76-97: 800f3888 (skip) 98: 800f37ac 99-9b: 800f3888 (skip) 9c: 800f45d8 9d: 800f4aa0
Load map GNS file
000f376c: 0c0111b2 jal 0x000446c8 #000446c8 - 000446d4 returns r2 = whatever is at 0x8004eaf8 000f3770: 00000000 nop 000f3774: 144004cc bne r2,r0,0x000f4aa8 #branch if this isn't 0 000f3778: 00001021 addu r2,r0,r0 #r2 = 0 000f377c: 0c011105 jal 0x00044414 #00044414 - 000444d8 allocates 0x20000 bytes RAM to map 000f3780: 3c040002 lui r4,0x0002 # 000f3784: 3c018012 lui r1,0x8012 000f3788: ac221ffc sw r2,0x1ffc(r1) #save r2 as pointer to file loaded 000f378c: 14400003 bne r2,r0,0x000f379c #branch if legal pointer 000f3790: 34040002 ori r4,r0,0x0002 000f3794: 0c011280 jal 0x00044a00 000f3798: 340503c2 ori r5,r0,0x03c2 000f379c: 0c03cd8e jal 0x000f3638 #Load map GNS file 000f37a0: 3204ffff andi r4,r16,0xffff #Map ID 000f37a4: 0803ce13 j 0x000f384c 000f37a8: 34020074 ori r2,r0,0x0074
000f37ac: 34020001 ori r2,r0,0x0001 #if input = 0x26, r2 = 1 000f37b0: 3c01800f lui r1,0x800f 000f37b4: a0225c54 sb r2,0x5c54(r1) #saves important thing as 1
000f37b8: 0c0111b2 jal 0x000446c8 #r2 = whatever is at 0x8004eaf8 000f37bc: 00000000 nop 000f37c0: 144004b9 bne r2,r0,0x000f4aa8 #branch if not 0 000f37c4: 00001021 addu r2,r0,r0 #r2 = 0 000f37c8: 0c011105 jal 0x00044414 #00044414 - 000444d8 allocate RAM 000f37cc: 3c040002 lui r4,0x0002 #input = 0x00020000 000f37d0: 3c018012 lui r1,0x8012 000f37d4: ac221ffc sw r2,0x1ffc(r1) #saves RAM pointer 000f37d8: 14400003 bne r2,r0,0x000f37e8 #branch if r2 != 0 (hopefully always) 000f37dc: 34040002 ori r4,r0,0x0002 #r4 = 0x02 000f37e0: 0c011280 jal 0x00044a00 #regrant RAM 000f37e4: 340503c2 ori r5,r0,0x03c2 #r5 = 0x03c2 000f37e8: 3c02800f lui r2,0x800f 000f37ec: 8c425ba8 lw r2,0x5ba8(r2) #Map ID (overworld is 0x77777777?) 000f37f0: 3c01800f lui r1,0x800f 000f37f4: a0206cbc sb r0,0x6cbc(r1) #0 000f37f8: 3c01800f lui r1,0x800f 000f37fc: a0206cc0 sb r0,0x6cc0(r1) #0 000f3800: 3c01800f lui r1,0x800f 000f3804: a0206cc4 sb r0,0x6cc4(r1) #0 000f3808: 3c01800f lui r1,0x800f 000f380c: a0206cc8 sb r0,0x6cc8(r1) #0 000f3810: 3c01800f lui r1,0x800f 000f3814: a0206cb4 sb r0,0x6cb4(r1) #0 000f3818: 3c01800f lui r1,0x800f 000f381c: a0206cb0 sb r0,0x6cb0(r1) #0 000f3820: 3c01800f lui r1,0x800f 000f3824: a0206aac sb r0,0x6aac(r1) #0 000f3828: 12020013 beq r16,r2,0x000f3878 #branch if map = last map 000f382c: 3402000f ori r2,r0,0x000f #r2 = 0xf 000f3830: 0c03cd8e jal 0x000f3638 #Load map GNS file 000f3834: 3204ffff andi r4,r16,0xffff #r4 = current map 000f3838: 3c038012 lui r3,0x8012 000f383c: 24634604 addiu r3,r3,0x4604 #address of map to go in RAM 000f3840: 14430499 bne r2,r3,0x000f4aa8 #branch if output is not this pointer (skip entirely) 000f3844: 00001021 addu r2,r0,r0 #r2 = 0 000f3848: 34020074 ori r2,r0,0x0074 #r2 = 0x74 000f384c: 3c01800f lui r1,0x800f 000f3850: ac225c5c sw r2,0x5c5c(r1) #store map data point as 0x0074 (why?) 000f3854: 3402000f ori r2,r0,0x000f #r2 = f 000f3858: 3c01800f lui r1,0x800f 000f385c: ac305ba8 sw r16,0x5ba8(r1) #store map ID to 0x800f5ba8 000f3860: 3c01800f lui r1,0x800f 000f3864: ac225c58 sw r2,0x5c58(r1) #0x800f5c58 = 0xf 000f3868: 0c03b90e jal 0x000ee438 #000ee438 - 000ee958 probably sets up more map data? 000f386c: 00000000 nop 000f3870: 0803ce22 j 0x000f3888 000f3874: 00000000 nop
000f3878: 3c01800f lui r1,0x800f 000f387c: ac205c5c sw r0,0x5c5c(r1) #0 000f3880: 3c01800f lui r1,0x800f 000f3884: ac225c58 sw r2,0x5c58(r1) #file func index? = f
000f3888: 3c02800f lui r2,0x800f 000f388c: 8c425c5c lw r2,0x5c5c(r2) #load map data point 000f3890: 00000000 nop 000f3894: 14400347 bne r2,r0,0x000f45b4 #branch if not 0 000f3898: 2443ff8c addiu r3,r2,0xff8c #map data - 0x74 000f389c: 3c03800f lui r3,0x800f 000f38a0: 8c635c58 lw r3,0x5c58(r3) #load ? (map file func index?) 000f38a4: 34040001 ori r4,r0,0x0001 #r4 = 1 000f38a8: 10640251 beq r3,r4,0x000f41f0 #branch if ? is 1? 000f38ac: 3402000f ori r2,r0,0x000f #r2 = 0x0f 000f38b0: 1462047b bne r3,r2,0x000f4aa0 #branch if ? is not 0xf? 000f38b4: 340203c0 ori r2,r0,0x03c0 #r2 = 0x03c0
File func. index = 0xf
000f38b8: 3c018010 lui r1,0x8010 000f38bc: ac20bdf4 sw r0,-0x420c(r1) # 000f38c0: 3c01800f lui r1,0x800f 000f38c4: ac245c58 sw r4,0x5c58(r1) #reset index 000f38c8: 3c01800f lui r1,0x800f 000f38cc: 00220821 addu r1,r1,r2 #0x800f0000 + 0x03c0 000f38d0: a0207a65 sb r0,0x7a65(r1) #save 0 to? 000f38d4: 2442ffec addiu r2,r2,0xffec #r2 - 14 000f38d8: 0441fffb bgez r2,0x000f38c8 #loop if r2 => 0 000f38dc: 00000000 nop 000f38e0: 3c028012 lui r2,0x8012 000f38e4: 90424609 lbu r2,0x4609(r2) #load file type indicator (head byte) 000f38e8: 00000000 nop 000f38ec: 2c420080 sltiu r2,r2,0x0080 #true, until reaches stopping point (marked by a 0x80) 000f38f0: 1040046b beq r2,r0,0x000f4aa0 #branch if not true 000f38f4: 00000000 nop
Until not loading GNS section 1:
000f38f8: 3c138010 lui r19,0x8010 000f38fc: 2673a6c6 addiu r19,r19,0xa6c6 #0x800fa6c6 (start of important duplicate GNS lines) 000f3900: 3c128012 lui r18,0x8012 000f3904: 26524609 addiu r18,r18,0x4609 #r18 = file type indicator pointer 000f3908: 00008821 addu r17,r0,r0 #r17 = 0 000f390c: 92430000 lbu r3,0x0000(r18) #load file type indicator (head byte) 000f3910: 3402002e ori r2,r0,0x002e 000f3914: 14620082 bne r3,r2,0x000f3b20 #branch if not primary mesh file 000f3918: 00000000 nop
Primary mesh file:
000f391c: 3c018012 lui r1,0x8012 000f3920: 00310821 addu r1,r1,r17 #line header 000f3924: 84244604 lh r4,0x4604(r1) #load line header 000f3928: 0c04ed64 jal 0x0013b590 #Get Script Variable with ^ as input (normally 0x22, 0x30, 0x70) 000f392c: 00000000 nop 000f3930: 34040023 ori r4,r0,0x0023 # 000f3934: 0c04ed64 jal 0x0013b590 #Get Script Variable grab weather variable (0x23) 000f3938: 30500fff andi r16,r2,0x0fff #preserve output of above 000f393c: 34040024 ori r4,r0,0x0024 # 000f3940: 30420007 andi r2,r2,0x0007 #check only for weather 000f3944: 00021300 sll r2,r2,0x0c #weather<<0xc 000f3948: 0c04ed64 jal 0x0013b590 #Get Script Variable 0x24 (map state) 000f394c: 02028025 or r16,r16,r2 #preserve weather << 0xc 000f3950: 30420001 andi r2,r2,0x0001 #only get 1st flag 000f3954: 000213c0 sll r2,r2,0x0f #flag 1 << 0xf 000f3958: 02028025 or r16,r16,r2 #combine with r16 (overall, all should form 1 halfword, 0x0fff -> scrip var return w/ header, 0x7000 -> weather, 0x8000 -> map state flag) 000f395c: 00108400 sll r16,r16,0x10 #move to upp half of halfword 000f3960: 3c018012 lui r1,0x8012 000f3964: 00310821 addu r1,r1,r17 000f3968: 90244608 lbu r4,0x4608(r1) #r4 = Map State's weather 000f396c: 3c018012 lui r1,0x8012 000f3970: 00310821 addu r1,r1,r17 000f3974: 84254606 lh r5,0x4606(r1) #r5 = Map State's Room Arrangement ID 000f3978: 0c03c986 jal 0x000f2618 #000f2618 - 000f26b8 000f397c: 00103403 sra r6,r16,0x10 #r6 = overall map state 000f3980: 00021400 sll r2,r2,0x10 #dafuq lmao? 000f3984: 10400010 beq r2,r0,0x000f39c8 #branch if above returned 0 (map state requested by ENTD doesn't match up with map state by GNS) 000f3988: 00002021 addu r4,r0,r0 000f398c: 02202821 addu r5,r17,r0 #r5 = GND index 000f3990: 34060048 ori r6,r0,0x0048 #r6 = 0x48 000f3994: 3c018012 lui r1,0x8012 000f3998: 00250821 addu r1,r1,r5 000f399c: 90224609 lbu r2,0x4609(r1) #load file type indicator (head) 000f39a0: 00000000 nop 000f39a4: 00021880 sll r3,r2,0x02 000f39a8: 00621821 addu r3,r3,r2 000f39ac: 00031880 sll r3,r3,0x02 #file type indicator * 0x14 000f39b0: 00731821 addu r3,r3,r19 #important GNS data + file type offest? 000f39b4: 00641821 addu r3,r3,r4 000f39b8: 24840001 addiu r4,r4,0x0001 #counter ++ 000f39bc: 2882000e slti r2,r4,0x000e #repeat 0xe times 000f39c0: 1440fff4 bne r2,r0,0x000f3994 000f39c4: a0660000 sb r6,0x0000(r3) #store 0x48 here. 000f39c8: 00003021 addu r6,r0,r0 #r6 = 0 000f39cc: 3c028012 lui r2,0x8012 000f39d0: 2442460a addiu r2,r2,0x460a #points to padding (?) 000f39d4: 02222021 addu r4,r17,r2 #primary mesh line 000f39d8: 92430000 lbu r3,0x0000(r18) #file type indicator header 000f39dc: 2487000e addiu r7,r4,0x000e #points to next line's header 000f39e0: 00031080 sll r2,r3,0x02 #indicator header * 4 000f39e4: 00431021 addu r2,r2,r3 #indicator header * 5 000f39e8: 00021080 sll r2,r2,0x02 #indicator header * 0x14 (0x398? if primary mesh file type) 000f39ec: 00532821 addu r5,r2,r19 #0x800fa6c6 + 0x398 (seems to be a duplicate of the primary mesh line?) 000f39f0: 90820000 lbu r2,0x0000(r4) #load from padding to the next line's header 000f39f4: 24840001 addiu r4,r4,0x0001 # 000f39f8: 90a30000 lbu r3,0x0000(r5) #load from the duplicate padding to the same place 000f39fc: 24a50001 addiu r5,r5,0x0001 #0x800fa6c7 + 0x398 000f3a00: 00621826 xor r3,r3,r2 #should return 0 000f3a04: 0087102a slt r2,r4,r7 #r2 = true if r4 pointer is not yet at the r7 pointer 000f3a08: 1440fff9 bne r2,r0,0x000f39f0 #loop 0xe times 000f3a0c: 00c33025 or r6,r6,r3 # 000f3a10: 30c200ff andi r2,r6,0x00ff #error checker 000f3a14: 10400042 beq r2,r0,0x000f3b20 #branch if no discrepencies detected 000f3a18: 00000000 nop 000f3a1c: 92430000 lbu r3,0x0000(r18) 000f3a20: 00000000 nop 000f3a24: 00031080 sll r2,r3,0x02 000f3a28: 00431021 addu r2,r2,r3 000f3a2c: 00021080 sll r2,r2,0x02 000f3a30: 3c018012 lui r1,0x8012 000f3a34: 00310821 addu r1,r1,r17 000f3a38: 88234607 lwl r3,0x4607(r1) 000f3a3c: 3c018012 lui r1,0x8012 000f3a40: 00310821 addu r1,r1,r17 000f3a44: 98234604 lwr r3,0x4604(r1) 000f3a48: 3c018012 lui r1,0x8012 000f3a4c: 00310821 addu r1,r1,r17 000f3a50: 8824460b lwl r4,0x460b(r1) 000f3a54: 3c018012 lui r1,0x8012 000f3a58: 00310821 addu r1,r1,r17 000f3a5c: 98244608 lwr r4,0x4608(r1) 000f3a60: 3c018012 lui r1,0x8012 000f3a64: 00310821 addu r1,r1,r17 000f3a68: 8825460f lwl r5,0x460f(r1) 000f3a6c: 3c018012 lui r1,0x8012 000f3a70: 00310821 addu r1,r1,r17 000f3a74: 9825460c lwr r5,0x460c(r1) 000f3a78: 3c018012 lui r1,0x8012 000f3a7c: 00310821 addu r1,r1,r17 000f3a80: 88264613 lwl r6,0x4613(r1) 000f3a84: 3c018012 lui r1,0x8012 000f3a88: 00310821 addu r1,r1,r17 000f3a8c: 98264610 lwr r6,0x4610(r1) 000f3a90: 3c01800f lui r1,0x800f 000f3a94: 00220821 addu r1,r1,r2 000f3a98: a8237a63 swl r3,0x7a63(r1) 000f3a9c: 3c01800f lui r1,0x800f 000f3aa0: 00220821 addu r1,r1,r2 000f3aa4: b8237a60 swr r3,0x7a60(r1) 000f3aa8: 3c01800f lui r1,0x800f 000f3aac: 00220821 addu r1,r1,r2 000f3ab0: a8247a67 swl r4,0x7a67(r1) 000f3ab4: 3c01800f lui r1,0x800f 000f3ab8: 00220821 addu r1,r1,r2 000f3abc: b8247a64 swr r4,0x7a64(r1) 000f3ac0: 3c01800f lui r1,0x800f 000f3ac4: 00220821 addu r1,r1,r2 000f3ac8: a8257a6b swl r5,0x7a6b(r1) 000f3acc: 3c01800f lui r1,0x800f 000f3ad0: 00220821 addu r1,r1,r2 000f3ad4: b8257a68 swr r5,0x7a68(r1) 000f3ad8: 3c01800f lui r1,0x800f 000f3adc: 00220821 addu r1,r1,r2 000f3ae0: a8267a6f swl r6,0x7a6f(r1) 000f3ae4: 3c01800f lui r1,0x800f 000f3ae8: 00220821 addu r1,r1,r2 000f3aec: b8267a6c swr r6,0x7a6c(r1) 000f3af0: 3c018012 lui r1,0x8012 000f3af4: 00310821 addu r1,r1,r17 000f3af8: 88234617 lwl r3,0x4617(r1) 000f3afc: 3c018012 lui r1,0x8012 000f3b00: 00310821 addu r1,r1,r17 000f3b04: 98234614 lwr r3,0x4614(r1) 000f3b08: 3c01800f lui r1,0x800f 000f3b0c: 00220821 addu r1,r1,r2 000f3b10: a8237a73 swl r3,0x7a73(r1) 000f3b14: 3c01800f lui r1,0x800f 000f3b18: 00220821 addu r1,r1,r2 000f3b1c: b8237a70 swr r3,0x7a70(r1) 000f3b20: 26520014 addiu r18,r18,0x0014 #check next half state 000f3b24: 92420000 lbu r2,0x0000(r18) #load file type 000f3b28: 00000000 nop 000f3b2c: 2c420080 sltiu r2,r2,0x0080 #set true, until repeating this reaches section 3 GNS (0x80 probably tells it to stop repeating.) 000f3b30: 1440ff76 bne r2,r0,0x000f390c #branch 000f3b34: 26310014 addiu r17,r17,0x0014 #increase offset by 20 000f3b38: 3c028012 lui r2,0x8012 000f3b3c: 90424609 lbu r2,0x4609(r2) #load first 20 byte length line's file type indicator header 000f3b40: 00000000 nop 000f3b44: 2c420080 sltiu r2,r2,0x0080 #set if less than 0x80 000f3b48: 104003d5 beq r2,r0,0x000f4aa0 #if map doesn't exist... just stop 000f3b4c: 00000000 nop 000f3b50: 3c138010 lui r19,0x8010 000f3b54: 2673a6c6 addiu r19,r19,0xa6c6 #start of duplicate important GNS data 000f3b58: 3c128012 lui r18,0x8012 000f3b5c: 26524609 addiu r18,r18,0x4609 #map file type indicator 000f3b60: 00008821 addu r17,r0,r0 #0 000f3b64: 92430000 lbu r3,0x0000(r18) #load GNS header 000f3b68: 3402002f ori r2,r0,0x002f 000f3b6c: 14620082 bne r3,r2,0x000f3d78 #branch if file type indicator is not 0x2f (overwriting mesh state) 000f3b70: 00000000 nop 000f3b74: 3c018012 lui r1,0x8012 000f3b78: 00310821 addu r1,r1,r17 000f3b7c: 84244604 lh r4,0x4604(r1) 000f3b80: 0c04ed64 jal 0x0013b590 000f3b84: 00000000 nop 000f3b88: 34040023 ori r4,r0,0x0023 000f3b8c: 0c04ed64 jal 0x0013b590 000f3b90: 30500fff andi r16,r2,0x0fff 000f3b94: 34040024 ori r4,r0,0x0024 000f3b98: 30420007 andi r2,r2,0x0007 000f3b9c: 00021300 sll r2,r2,0x0c 000f3ba0: 0c04ed64 jal 0x0013b590 000f3ba4: 02028025 or r16,r16,r2 000f3ba8: 30420001 andi r2,r2,0x0001 000f3bac: 000213c0 sll r2,r2,0x0f 000f3bb0: 02028025 or r16,r16,r2 000f3bb4: 00108400 sll r16,r16,0x10 000f3bb8: 3c018012 lui r1,0x8012 000f3bbc: 00310821 addu r1,r1,r17 000f3bc0: 90244608 lbu r4,0x4608(r1) 000f3bc4: 3c018012 lui r1,0x8012 000f3bc8: 00310821 addu r1,r1,r17 000f3bcc: 84254606 lh r5,0x4606(r1) 000f3bd0: 0c03c986 jal 0x000f2618 000f3bd4: 00103403 sra r6,r16,0x10 000f3bd8: 00021400 sll r2,r2,0x10 000f3bdc: 10400010 beq r2,r0,0x000f3c20 000f3be0: 00002021 addu r4,r0,r0 000f3be4: 02202821 addu r5,r17,r0 000f3be8: 34060048 ori r6,r0,0x0048 000f3bec: 3c018012 lui r1,0x8012 000f3bf0: 00250821 addu r1,r1,r5 000f3bf4: 90224609 lbu r2,0x4609(r1) 000f3bf8: 00000000 nop 000f3bfc: 00021880 sll r3,r2,0x02 000f3c00: 00621821 addu r3,r3,r2 000f3c04: 00031880 sll r3,r3,0x02 000f3c08: 00731821 addu r3,r3,r19 000f3c0c: 00641821 addu r3,r3,r4 000f3c10: 24840001 addiu r4,r4,0x0001 000f3c14: 2882000e slti r2,r4,0x000e 000f3c18: 1440fff4 bne r2,r0,0x000f3bec 000f3c1c: a0660000 sb r6,0x0000(r3) 000f3c20: 00003021 addu r6,r0,r0 000f3c24: 3c028012 lui r2,0x8012 000f3c28: 2442460a addiu r2,r2,0x460a 000f3c2c: 02222021 addu r4,r17,r2 000f3c30: 92430000 lbu r3,0x0000(r18) 000f3c34: 2487000e addiu r7,r4,0x000e 000f3c38: 00031080 sll r2,r3,0x02 000f3c3c: 00431021 addu r2,r2,r3 000f3c40: 00021080 sll r2,r2,0x02 000f3c44: 00532821 addu r5,r2,r19 000f3c48: 90820000 lbu r2,0x0000(r4) 000f3c4c: 24840001 addiu r4,r4,0x0001 000f3c50: 90a30000 lbu r3,0x0000(r5) 000f3c54: 24a50001 addiu r5,r5,0x0001 000f3c58: 00621826 xor r3,r3,r2 000f3c5c: 0087102a slt r2,r4,r7 000f3c60: 1440fff9 bne r2,r0,0x000f3c48 000f3c64: 00c33025 or r6,r6,r3 000f3c68: 30c200ff andi r2,r6,0x00ff 000f3c6c: 10400042 beq r2,r0,0x000f3d78 000f3c70: 00000000 nop 000f3c74: 92430000 lbu r3,0x0000(r18) 000f3c78: 00000000 nop 000f3c7c: 00031080 sll r2,r3,0x02 000f3c80: 00431021 addu r2,r2,r3 000f3c84: 00021080 sll r2,r2,0x02 000f3c88: 3c018012 lui r1,0x8012 000f3c8c: 00310821 addu r1,r1,r17 000f3c90: 88234607 lwl r3,0x4607(r1) 000f3c94: 3c018012 lui r1,0x8012 000f3c98: 00310821 addu r1,r1,r17 000f3c9c: 98234604 lwr r3,0x4604(r1) 000f3ca0: 3c018012 lui r1,0x8012 000f3ca4: 00310821 addu r1,r1,r17 000f3ca8: 8824460b lwl r4,0x460b(r1) 000f3cac: 3c018012 lui r1,0x8012 000f3cb0: 00310821 addu r1,r1,r17 000f3cb4: 98244608 lwr r4,0x4608(r1) 000f3cb8: 3c018012 lui r1,0x8012 000f3cbc: 00310821 addu r1,r1,r17 000f3cc0: 8825460f lwl r5,0x460f(r1) 000f3cc4: 3c018012 lui r1,0x8012 000f3cc8: 00310821 addu r1,r1,r17 000f3ccc: 9825460c lwr r5,0x460c(r1) 000f3cd0: 3c018012 lui r1,0x8012 000f3cd4: 00310821 addu r1,r1,r17 000f3cd8: 88264613 lwl r6,0x4613(r1) 000f3cdc: 3c018012 lui r1,0x8012 000f3ce0: 00310821 addu r1,r1,r17 000f3ce4: 98264610 lwr r6,0x4610(r1) 000f3ce8: 3c01800f lui r1,0x800f 000f3cec: 00220821 addu r1,r1,r2 000f3cf0: a8237a63 swl r3,0x7a63(r1) 000f3cf4: 3c01800f lui r1,0x800f 000f3cf8: 00220821 addu r1,r1,r2 000f3cfc: b8237a60 swr r3,0x7a60(r1) 000f3d00: 3c01800f lui r1,0x800f 000f3d04: 00220821 addu r1,r1,r2 000f3d08: a8247a67 swl r4,0x7a67(r1) 000f3d0c: 3c01800f lui r1,0x800f 000f3d10: 00220821 addu r1,r1,r2 000f3d14: b8247a64 swr r4,0x7a64(r1) 000f3d18: 3c01800f lui r1,0x800f 000f3d1c: 00220821 addu r1,r1,r2 000f3d20: a8257a6b swl r5,0x7a6b(r1) 000f3d24: 3c01800f lui r1,0x800f 000f3d28: 00220821 addu r1,r1,r2 000f3d2c: b8257a68 swr r5,0x7a68(r1) 000f3d30: 3c01800f lui r1,0x800f 000f3d34: 00220821 addu r1,r1,r2 000f3d38: a8267a6f swl r6,0x7a6f(r1) 000f3d3c: 3c01800f lui r1,0x800f 000f3d40: 00220821 addu r1,r1,r2 000f3d44: b8267a6c swr r6,0x7a6c(r1) 000f3d48: 3c018012 lui r1,0x8012 000f3d4c: 00310821 addu r1,r1,r17 000f3d50: 88234617 lwl r3,0x4617(r1) 000f3d54: 3c018012 lui r1,0x8012 000f3d58: 00310821 addu r1,r1,r17 000f3d5c: 98234614 lwr r3,0x4614(r1) 000f3d60: 3c01800f lui r1,0x800f 000f3d64: 00220821 addu r1,r1,r2 000f3d68: a8237a73 swl r3,0x7a73(r1) 000f3d6c: 3c01800f lui r1,0x800f 000f3d70: 00220821 addu r1,r1,r2 000f3d74: b8237a70 swr r3,0x7a70(r1) 000f3d78: 26520014 addiu r18,r18,0x0014 #next GNS row 000f3d7c: 92420000 lbu r2,0x0000(r18) #load file type header 000f3d80: 00000000 nop 000f3d84: 2c420080 sltiu r2,r2,0x0080 #true if <0x80 (stop) 000f3d88: 1440ff76 bne r2,r0,0x000f3b64 #branch above if not stop 000f3d8c: 26310014 addiu r17,r17,0x0014 #next GNS row 000f3d90: 3c028012 lui r2,0x8012 000f3d94: 90424609 lbu r2,0x4609(r2) #load first row file-type indicator 000f3d98: 00000000 nop 000f3d9c: 2c420080 sltiu r2,r2,0x0080 000f3da0: 1040033f beq r2,r0,0x000f4aa0 #if no map files, skip entirely 000f3da4: 00004021 addu r8,r0,r0 #r8 = 0 000f3da8: 3c0b8010 lui r11,0x8010 000f3dac: 256ba6c6 addiu r11,r11,0xa6c6 #0x800fa6c6 000f3db0: 3c028012 lui r2,0x8012 000f3db4: 2442460a addiu r2,r2,0x460a #first row padding location 000f3db8: 2449ffff addiu r9,r2,0xffff #first row file-type indicator header location 000f3dbc: 00405021 addu r10,r2,r0 #r10 = padding 000f3dc0: 91230000 lbu r3,0x0000(r9) #load file type header 000f3dc4: 34020017 ori r2,r0,0x0017 000f3dc8: 1462005e bne r3,r2,0x000f3f44 #branch if not 0x17 (texture) 000f3dcc: 34020022 ori r2,r0,0x0022 #r2 = 0x22 000f3dd0: 3c018012 lui r1,0x8012 000f3dd4: 00280821 addu r1,r1,r8 000f3dd8: 84234604 lh r3,0x4604(r1) #load variable header 000f3ddc: 00000000 nop 000f3de0: 10620003 beq r3,r2,0x000f3df0 #branch if variable is 0x22 000f3de4: 34020030 ori r2,r0,0x0030 000f3de8: 14620056 bne r3,r2,0x000f3f44 #branch if variable is not 0x30 (find next texture file which's header variable is 0x22 or 0x30?) 000f3dec: 00000000 nop 000f3df0: 3c018012 lui r1,0x8012 000f3df4: 00280821 addu r1,r1,r8 000f3df8: 84224606 lh r2,0x4606(r1) #load room arrangement + time of day + weather 000f3dfc: 00000000 nop 000f3e00: 14400050 bne r2,r0,0x000f3f44 #branch if != 0 (alternate mesh files should not have default weather? find next texture file with alternate texture?) 000f3e04: 00003021 addu r6,r0,r0 000f3e08: 01402021 addu r4,r10,r0 #r4 = row padding 000f3e0c: 256501cc addiu r5,r11,0x01cc #another duplicate GNS row 000f3e10: 2547000e addiu r7,r10,0x000e #loop until next section header 000f3e14: 90820000 lbu r2,0x0000(r4) #load byte 000f3e18: 24840001 addiu r4,r4,0x0001 000f3e1c: 90a30000 lbu r3,0x0000(r5) #load duplicate's byte 000f3e20: 24a50001 addiu r5,r5,0x0001 000f3e24: 00621826 xor r3,r3,r2 #return != 0 if there's a discrepency 000f3e28: 0087102a slt r2,r4,r7 000f3e2c: 1440fff9 bne r2,r0,0x000f3e14 #branch until r4 = r7 000f3e30: 00c33025 or r6,r6,r3 000f3e34: 30c200ff andi r2,r6,0x00ff #r2 != 0 if discrepency detected 000f3e38: 10400042 beq r2,r0,0x000f3f44 #if alternate texture file does not match duplicate row, find next texture file that matches 000f3e3c: 00000000 nop 000f3e40: 91230000 lbu r3,0x0000(r9) #load file type header (should be 0x17...?) 000f3e44: 00000000 nop 000f3e48: 00031080 sll r2,r3,0x02 000f3e4c: 00431021 addu r2,r2,r3 000f3e50: 00021080 sll r2,r2,0x02 #file type header * 0x14 000f3e54: 3c018012 lui r1,0x8012 000f3e58: 00280821 addu r1,r1,r8 000f3e5c: 88234607 lwl r3,0x4607(r1) 000f3e60: 3c018012 lui r1,0x8012 000f3e64: 00280821 addu r1,r1,r8 000f3e68: 98234604 lwr r3,0x4604(r1) #loads Header variable, room arrangement, time of day, and weather in big endian 000f3e6c: 3c018012 lui r1,0x8012 000f3e70: 00280821 addu r1,r1,r8 000f3e74: 8824460b lwl r4,0x460b(r1) 000f3e78: 3c018012 lui r1,0x8012 000f3e7c: 00280821 addu r1,r1,r8 000f3e80: 98244608 lwr r4,0x4608(r1) #load file type indicator and first padding in bit order in big endian 000f3e84: 3c018012 lui r1,0x8012 000f3e88: 00280821 addu r1,r1,r8 000f3e8c: 8825460f lwl r5,0x460f(r1) 000f3e90: 3c018012 lui r1,0x8012 000f3e94: 00280821 addu r1,r1,r8 000f3e98: 9825460c lwr r5,0x460c(r1) #load LBA block number in big endian 000f3e9c: 3c018012 lui r1,0x8012 000f3ea0: 00280821 addu r1,r1,r8 000f3ea4: 88264613 lwl r6,0x4613(r1) 000f3ea8: 3c018012 lui r1,0x8012 000f3eac: 00280821 addu r1,r1,r8 000f3eb0: 98264610 lwr r6,0x4610(r1) #load file length in big endian 000f3eb4: 3c01800f lui r1,0x800f 000f3eb8: 00220821 addu r1,r1,r2 000f3ebc: a8237a63 swl r3,0x7a63(r1) 000f3ec0: 3c01800f lui r1,0x800f 000f3ec4: 00220821 addu r1,r1,r2 000f3ec8: b8237a60 swr r3,0x7a60(r1) #move to 0x800f7a60 + 0x1cc (duplicate GNS row) 000f3ecc: 3c01800f lui r1,0x800f 000f3ed0: 00220821 addu r1,r1,r2 000f3ed4: a8247a67 swl r4,0x7a67(r1) 000f3ed8: 3c01800f lui r1,0x800f 000f3edc: 00220821 addu r1,r1,r2 000f3ee0: b8247a64 swr r4,0x7a64(r1) #move to 0x800f7a64 + 0x1cc (duplicate GNS row) 000f3ee4: 3c01800f lui r1,0x800f 000f3ee8: 00220821 addu r1,r1,r2 000f3eec: a8257a6b swl r5,0x7a6b(r1) 000f3ef0: 3c01800f lui r1,0x800f 000f3ef4: 00220821 addu r1,r1,r2 000f3ef8: b8257a68 swr r5,0x7a68(r1) #move to 0x800f7a68 + 0x1cc (duplicate GNS row) 000f3efc: 3c01800f lui r1,0x800f 000f3f00: 00220821 addu r1,r1,r2 000f3f04: a8267a6f swl r6,0x7a6f(r1) 000f3f08: 3c01800f lui r1,0x800f 000f3f0c: 00220821 addu r1,r1,r2 000f3f10: b8267a6c swr r6,0x7a6c(r1) #move to 0x800f7a6c + 0x1cc (duplicate GNS row) 000f3f14: 3c018012 lui r1,0x8012 000f3f18: 00280821 addu r1,r1,r8 000f3f1c: 88234617 lwl r3,0x4617(r1) 000f3f20: 3c018012 lui r1,0x8012 000f3f24: 00280821 addu r1,r1,r8 000f3f28: 98234614 lwr r3,0x4614(r1) #load padding in big endian 000f3f2c: 3c01800f lui r1,0x800f 000f3f30: 00220821 addu r1,r1,r2 000f3f34: a8237a73 swl r3,0x7a73(r1) #move to 0x800f7a6c + 0x1cc (duplicate GNS row) 000f3f38: 3c01800f lui r1,0x800f 000f3f3c: 00220821 addu r1,r1,r2 000f3f40: b8237a70 swr r3,0x7a70(r1) 000f3f44: 25290014 addiu r9,r9,0x0014 #next GNS row 000f3f48: 25080014 addiu r8,r8,0x0014 #next GNS row (offset) 000f3f4c: 91220000 lbu r2,0x0000(r9) #load file type header 000f3f50: 00000000 nop 000f3f54: 2c420080 sltiu r2,r2,0x0080 # 000f3f58: 1440ff99 bne r2,r0,0x000f3dc0 #loop if instruction is not "stop looking" 000f3f5c: 254a0014 addiu r10,r10,0x0014 #next GNS row (padding) 000f3f60: 3c028012 lui r2,0x8012 000f3f64: 90424609 lbu r2,0x4609(r2) #load file type indicator of first GNS row 000f3f68: 00000000 nop 000f3f6c: 2c420080 sltiu r2,r2,0x0080 000f3f70: 104002cb beq r2,r0,0x000f4aa0 #branch if file exists (doesn't check for erroneous - finishes map reload) 000f3f74: 00000000 nop 000f3f78: 3c148010 lui r20,0x8010 000f3f7c: 2694a6c6 addiu r20,r20,0xa6c6 000f3f80: 3c028012 lui r2,0x8012 000f3f84: 2442460a addiu r2,r2,0x460a 000f3f88: 2452ffff addiu r18,r2,0xffff 000f3f8c: 00008821 addu r17,r0,r0 000f3f90: 00409821 addu r19,r2,r0 000f3f94: 92420000 lbu r2,0x0000(r18) 000f3f98: 00000000 nop 000f3f9c: 1040008b beq r2,r0,0x000f41cc 000f3fa0: 34020022 ori r2,r0,0x0022 000f3fa4: 3c018012 lui r1,0x8012 000f3fa8: 00310821 addu r1,r1,r17 000f3fac: 84244604 lh r4,0x4604(r1) 000f3fb0: 00000000 nop 000f3fb4: 14820007 bne r4,r2,0x000f3fd4 000f3fb8: 34020030 ori r2,r0,0x0030 000f3fbc: 3c018012 lui r1,0x8012 000f3fc0: 00310821 addu r1,r1,r17 000f3fc4: 84224606 lh r2,0x4606(r1) 000f3fc8: 00000000 nop 000f3fcc: 1040007f beq r2,r0,0x000f41cc 000f3fd0: 34020030 ori r2,r0,0x0030 000f3fd4: 14820007 bne r4,r2,0x000f3ff4 000f3fd8: 00000000 nop 000f3fdc: 3c018012 lui r1,0x8012 000f3fe0: 00310821 addu r1,r1,r17 000f3fe4: 84224606 lh r2,0x4606(r1) 000f3fe8: 00000000 nop 000f3fec: 10400077 beq r2,r0,0x000f41cc 000f3ff0: 00000000 nop 000f3ff4: 0c04ed64 jal 0x0013b590 000f3ff8: 00000000 nop 000f3ffc: 34040023 ori r4,r0,0x0023 000f4000: 0c04ed64 jal 0x0013b590 000f4004: 30500fff andi r16,r2,0x0fff 000f4008: 34040024 ori r4,r0,0x0024 000f400c: 30420007 andi r2,r2,0x0007 000f4010: 00021300 sll r2,r2,0x0c 000f4014: 0c04ed64 jal 0x0013b590 000f4018: 02028025 or r16,r16,r2 000f401c: 30420001 andi r2,r2,0x0001 000f4020: 000213c0 sll r2,r2,0x0f 000f4024: 02028025 or r16,r16,r2 000f4028: 00108400 sll r16,r16,0x10 000f402c: 3c018012 lui r1,0x8012 000f4030: 00310821 addu r1,r1,r17 000f4034: 90244608 lbu r4,0x4608(r1) 000f4038: 3c018012 lui r1,0x8012 000f403c: 00310821 addu r1,r1,r17 000f4040: 84254606 lh r5,0x4606(r1) 000f4044: 0c03c986 jal 0x000f2618 000f4048: 00103403 sra r6,r16,0x10 000f404c: 00021400 sll r2,r2,0x10 000f4050: 1040005e beq r2,r0,0x000f41cc 000f4054: 00003021 addu r6,r0,r0 000f4058: 02602821 addu r5,r19,r0 000f405c: 92430000 lbu r3,0x0000(r18) 000f4060: 2667000e addiu r7,r19,0x000e 000f4064: 00031080 sll r2,r3,0x02 000f4068: 00431021 addu r2,r2,r3 000f406c: 00021080 sll r2,r2,0x02 000f4070: 00542021 addu r4,r2,r20 000f4074: 90a20000 lbu r2,0x0000(r5) 000f4078: 24a50001 addiu r5,r5,0x0001 000f407c: 90830000 lbu r3,0x0000(r4) 000f4080: 24840001 addiu r4,r4,0x0001 000f4084: 00621826 xor r3,r3,r2 000f4088: 00a7102a slt r2,r5,r7 000f408c: 1440fff9 bne r2,r0,0x000f4074 000f4090: 00c33025 or r6,r6,r3 000f4094: 30c200ff andi r2,r6,0x00ff 000f4098: 10400044 beq r2,r0,0x000f41ac 000f409c: 00000000 nop 000f40a0: 92430000 lbu r3,0x0000(r18) 000f40a4: 00000000 nop 000f40a8: 00031080 sll r2,r3,0x02 000f40ac: 00431021 addu r2,r2,r3 000f40b0: 00021080 sll r2,r2,0x02 000f40b4: 3c018012 lui r1,0x8012 000f40b8: 00310821 addu r1,r1,r17 000f40bc: 88234607 lwl r3,0x4607(r1) 000f40c0: 3c018012 lui r1,0x8012 000f40c4: 00310821 addu r1,r1,r17 000f40c8: 98234604 lwr r3,0x4604(r1) 000f40cc: 3c018012 lui r1,0x8012 000f40d0: 00310821 addu r1,r1,r17 000f40d4: 8824460b lwl r4,0x460b(r1) 000f40d8: 3c018012 lui r1,0x8012 000f40dc: 00310821 addu r1,r1,r17 000f40e0: 98244608 lwr r4,0x4608(r1) 000f40e4: 3c018012 lui r1,0x8012 000f40e8: 00310821 addu r1,r1,r17 000f40ec: 8825460f lwl r5,0x460f(r1) 000f40f0: 3c018012 lui r1,0x8012 000f40f4: 00310821 addu r1,r1,r17 000f40f8: 9825460c lwr r5,0x460c(r1) 000f40fc: 3c018012 lui r1,0x8012 000f4100: 00310821 addu r1,r1,r17 000f4104: 88264613 lwl r6,0x4613(r1) 000f4108: 3c018012 lui r1,0x8012 000f410c: 00310821 addu r1,r1,r17 000f4110: 98264610 lwr r6,0x4610(r1) 000f4114: 3c01800f lui r1,0x800f 000f4118: 00220821 addu r1,r1,r2 000f411c: a8237a63 swl r3,0x7a63(r1) 000f4120: 3c01800f lui r1,0x800f 000f4124: 00220821 addu r1,r1,r2 000f4128: b8237a60 swr r3,0x7a60(r1) 000f412c: 3c01800f lui r1,0x800f 000f4130: 00220821 addu r1,r1,r2 000f4134: a8247a67 swl r4,0x7a67(r1) 000f4138: 3c01800f lui r1,0x800f 000f413c: 00220821 addu r1,r1,r2 000f4140: b8247a64 swr r4,0x7a64(r1) 000f4144: 3c01800f lui r1,0x800f 000f4148: 00220821 addu r1,r1,r2 000f414c: a8257a6b swl r5,0x7a6b(r1) 000f4150: 3c01800f lui r1,0x800f 000f4154: 00220821 addu r1,r1,r2 000f4158: b8257a68 swr r5,0x7a68(r1) 000f415c: 3c01800f lui r1,0x800f 000f4160: 00220821 addu r1,r1,r2 000f4164: a8267a6f swl r6,0x7a6f(r1) 000f4168: 3c01800f lui r1,0x800f 000f416c: 00220821 addu r1,r1,r2 000f4170: b8267a6c swr r6,0x7a6c(r1) 000f4174: 3c018012 lui r1,0x8012 000f4178: 00310821 addu r1,r1,r17 000f417c: 88234617 lwl r3,0x4617(r1) 000f4180: 3c018012 lui r1,0x8012 000f4184: 00310821 addu r1,r1,r17 000f4188: 98234614 lwr r3,0x4614(r1) 000f418c: 3c01800f lui r1,0x800f 000f4190: 00220821 addu r1,r1,r2 000f4194: a8237a73 swl r3,0x7a73(r1) 000f4198: 3c01800f lui r1,0x800f 000f419c: 00220821 addu r1,r1,r2 000f41a0: b8237a70 swr r3,0x7a70(r1) 000f41a4: 0803d074 j 0x000f41d0 000f41a8: 26520014 addiu r18,r18,0x0014 000f41ac: 92430000 lbu r3,0x0000(r18) 000f41b0: 00000000 nop 000f41b4: 00031080 sll r2,r3,0x02 000f41b8: 00431021 addu r2,r2,r3 000f41bc: 00021080 sll r2,r2,0x02 000f41c0: 3c01800f lui r1,0x800f 000f41c4: 00220821 addu r1,r1,r2 000f41c8: a0207a65 sb r0,0x7a65(r1) 000f41cc: 26520014 addiu r18,r18,0x0014 000f41d0: 26310014 addiu r17,r17,0x0014 000f41d4: 92420000 lbu r2,0x0000(r18) 000f41d8: 00000000 nop 000f41dc: 2c420080 sltiu r2,r2,0x0080 000f41e0: 1440ff6c bne r2,r0,0x000f3f94 000f41e4: 26730014 addiu r19,r19,0x0014 000f41e8: 0803d2a8 j 0x000f4aa0 000f41ec: 00000000 nop
# deep dark loading new mesh?
000f41f0: 0c0111b2 jal 0x000446c8 #000446c8 - 000446d4 returns r2 = whatever is at 0x8004eaf8 (file currently busy loading?) 000f41f4: 00000000 nop 000f41f8: 14400229 bne r2,r0,0x000f4aa0 #branch if isn't 0 000f41fc: 00000000 nop 000f4200: 3c038010 lui r3,0x8010 000f4204: 8c63bdf4 lw r3,-0x420c(r3) #map file type to load index 000f4208: 00000000 nop 000f420c: 00031080 sll r2,r3,0x02 000f4210: 00431021 addu r2,r2,r3 000f4214: 00021080 sll r2,r2,0x02 # index * 0x14 000f4218: 3c01800f lui r1,0x800f 000f421c: 00220821 addu r1,r1,r2 000f4220: 90247a65 lbu r4,0x7a65(r1) 000f4224: 00000000 nop 000f4228: 14800004 bne r4,r0,0x000f423c # branch if file exists that wants to be loaded 000f422c: 2482ffee addiu r2,r4,0xffee # 000f4230: 2c620031 sltiu r2,r3,0x0031 000f4234: 14400004 bne r2,r0,0x000f4248 # loop for all 0x31 file types. most of which don't exist but whatever. 000f4238: 2482ffee addiu r2,r4,0xffee 000f423c: 2c420006 sltiu r2,r2,0x0006 # 000f4240: 10400009 beq r2,r0,0x000f4268 # branch if not texture resource file 000f4244: 00000000 nop 000f4248: 3c028010 lui r2,0x8010 000f424c: 8c42bdf4 lw r2,-0x420c(r2) 000f4250: 00000000 nop 000f4254: 24420001 addiu r2,r2,0x0001 000f4258: 3c018010 lui r1,0x8010 000f425c: ac22bdf4 sw r2,-0x420c(r1) 000f4260: 0803d080 j 0x000f4200 000f4264: 00000000 nop 000f4268: 3c038010 lui r3,0x8010 000f426c: 8c63bdf4 lw r3,-0x420c(r3) 000f4270: 00000000 nop 000f4274: 2c620031 sltiu r2,r3,0x0031 # set if haven't looped 0x31 times 000f4278: 10400019 beq r2,r0,0x000f42e0 000f427c: 3402001b ori r2,r0,0x001b 000f4280: 14620005 bne r3,r2,0x000f4298 # branch if != 0x1b 000f4284: 00000000 nop 000f4288: 3c048012 lui r4,0x8012 000f428c: 8c841ffc lw r4,0x1ffc(r4) 000f4290: 0c0088bb jal 0x000222ec # bzero(0x80121ffc*,0x280) 000f4294: 34050280 ori r5,r0,0x0280 000f4298: 3c04800e lui r4,0x800e 000f429c: 24847160 addiu r4,r4,0x7160 000f42a0: 3c02800f lui r2,0x800f 000f42a4: 24427a66 addiu r2,r2,0x7a66 # map file-to-load data 000f42a8: 3c078010 lui r7,0x8010 000f42ac: 8ce7bdf4 lw r7,-0x420c(r7) # file index 000f42b0: 3c068012 lui r6,0x8012 000f42b4: 8cc61ffc lw r6,0x1ffc(r6) # where to load file into 000f42b8: 00072880 sll r5,r7,0x02 # 000f42bc: 00a72821 addu r5,r5,r7 000f42c0: 00052880 sll r5,r5,0x02 # index * 0x14 000f42c4: 0c03cdb1 jal 0x000f36c4 # store data to load map file 000f36c4 - 000f3714 000f42c8: 00a22821 addu r5,r5,r2 # pointer to map's file data (like LBA sector & file size) 000f42cc: 34020078 ori r2,r0,0x0078 000f42d0: 3c01800f lui r1,0x800f 000f42d4: ac225c5c sw r2,0x5c5c(r1) 000f42d8: 0803d2a8 j 0x000f4aa0 000f42dc: 00000000 nop
000f42e0: 3c10800f lui r16,0x800f 000f42e4: 26107bcd addiu r16,r16,0x7bcd 000f42e8: 92020000 lbu r2,0x0000(r16) 000f42ec: 00000000 nop 000f42f0: 10400005 beq r2,r0,0x000f4308 000f42f4: 34040002 ori r4,r0,0x0002 000f42f8: 0c011280 jal 0x00044a00 000f42fc: 340503cb ori r5,r0,0x03cb 000f4300: 0803d2a8 j 0x000f4aa0 000f4304: a2000000 sb r0,0x0000(r16) 000f4308: 3c02800f lui r2,0x800f 000f430c: 90427be1 lbu r2,0x7be1(r2) 000f4310: 00000000 nop 000f4314: 10400012 beq r2,r0,0x000f4360 000f4318: 26050015 addiu r5,r16,0x0015 000f431c: 3c04800e lui r4,0x800e 000f4320: 24847160 addiu r4,r4,0x7160 000f4324: 34070013 ori r7,r0,0x0013 000f4328: 3c028012 lui r2,0x8012 000f432c: 8c421ffc lw r2,0x1ffc(r2) 000f4330: 34068000 ori r6,r0,0x8000 000f4334: 3c01800f lui r1,0x800f 000f4338: a0207be1 sb r0,0x7be1(r1) 000f433c: 0c03cdb1 jal 0x000f36c4 000f4340: 00463021 addu r6,r2,r6 000f4344: 34020001 ori r2,r0,0x0001 000f4348: 3c01800f lui r1,0x800f 000f434c: a0226cbc sb r2,0x6cbc(r1) 000f4350: 3c01800f lui r1,0x800f 000f4354: a0226cb4 sb r2,0x6cb4(r1) 000f4358: 0803d2a8 j 0x000f4aa0 000f435c: 00000000 nop 000f4360: 3c02800f lui r2,0x800f 000f4364: 90427bf5 lbu r2,0x7bf5(r2) 000f4368: 00000000 nop 000f436c: 10400012 beq r2,r0,0x000f43b8 000f4370: 26050029 addiu r5,r16,0x0029 000f4374: 3c04800e lui r4,0x800e 000f4378: 24847160 addiu r4,r4,0x7160 000f437c: 34070014 ori r7,r0,0x0014 000f4380: 3c028012 lui r2,0x8012 000f4384: 8c421ffc lw r2,0x1ffc(r2) 000f4388: 3c060001 lui r6,0x0001 000f438c: 3c01800f lui r1,0x800f 000f4390: a0207bf5 sb r0,0x7bf5(r1) 000f4394: 0c03cdb1 jal 0x000f36c4 000f4398: 00463021 addu r6,r2,r6 000f439c: 34020001 ori r2,r0,0x0001 000f43a0: 3c01800f lui r1,0x800f 000f43a4: a0226cc0 sb r2,0x6cc0(r1) 000f43a8: 3c01800f lui r1,0x800f 000f43ac: a0226cb4 sb r2,0x6cb4(r1) 000f43b0: 0803d2a8 j 0x000f4aa0 000f43b4: 00000000 nop 000f43b8: 3c02800f lui r2,0x800f 000f43bc: 90427c09 lbu r2,0x7c09(r2) 000f43c0: 00000000 nop 000f43c4: 10400013 beq r2,r0,0x000f4414 000f43c8: 3c020001 lui r2,0x0001 000f43cc: 34428000 ori r2,r2,0x8000 000f43d0: 3c04800e lui r4,0x800e 000f43d4: 24847160 addiu r4,r4,0x7160 000f43d8: 2605003d addiu r5,r16,0x003d 000f43dc: 3c068012 lui r6,0x8012 000f43e0: 8cc61ffc lw r6,0x1ffc(r6) 000f43e4: 34070015 ori r7,r0,0x0015 000f43e8: 3c01800f lui r1,0x800f 000f43ec: a0207c09 sb r0,0x7c09(r1) 000f43f0: 0c03cdb1 jal 0x000f36c4 000f43f4: 00c23021 addu r6,r6,r2 000f43f8: 34020001 ori r2,r0,0x0001 000f43fc: 3c01800f lui r1,0x800f 000f4400: a0226cc4 sb r2,0x6cc4(r1) 000f4404: 3c01800f lui r1,0x800f 000f4408: a0226cb4 sb r2,0x6cb4(r1) 000f440c: 0803d2a8 j 0x000f4aa0 000f4410: 00000000 nop 000f4414: 3c02800f lui r2,0x800f 000f4418: 90427c1d lbu r2,0x7c1d(r2) 000f441c: 00000000 nop 000f4420: 10400012 beq r2,r0,0x000f446c 000f4424: 26050051 addiu r5,r16,0x0051 000f4428: 3c04800e lui r4,0x800e 000f442c: 24847160 addiu r4,r4,0x7160 000f4430: 34070016 ori r7,r0,0x0016 000f4434: 3c028012 lui r2,0x8012 000f4438: 8c421ffc lw r2,0x1ffc(r2) 000f443c: 3c060002 lui r6,0x0002 000f4440: 3c01800f lui r1,0x800f 000f4444: a0207c1d sb r0,0x7c1d(r1) 000f4448: 0c03cdb1 jal 0x000f36c4 000f444c: 00463021 addu r6,r2,r6 000f4450: 34020001 ori r2,r0,0x0001 000f4454: 3c01800f lui r1,0x800f 000f4458: a0226cc8 sb r2,0x6cc8(r1) 000f445c: 3c01800f lui r1,0x800f 000f4460: a0226cb4 sb r2,0x6cb4(r1) 000f4464: 0803d2a8 j 0x000f4aa0 000f4468: 00000000 nop 000f446c: 3c02800f lui r2,0x800f 000f4470: 90427c31 lbu r2,0x7c31(r2) 000f4474: 00000000 nop 000f4478: 10400019 beq r2,r0,0x000f44e0 000f447c: 26050065 addiu r5,r16,0x0065 000f4480: 3c04800e lui r4,0x800e 000f4484: 24847160 addiu r4,r4,0x7160 000f4488: 3c068012 lui r6,0x8012 000f448c: 8cc61ffc lw r6,0x1ffc(r6) 000f4490: 3c01800f lui r1,0x800f 000f4494: a0207c31 sb r0,0x7c31(r1) 000f4498: 0c03cdb1 jal 0x000f36c4 000f449c: 34070017 ori r7,r0,0x0017 000f44a0: 34020001 ori r2,r0,0x0001 000f44a4: 3c01800f lui r1,0x800f 000f44a8: a0226cbc sb r2,0x6cbc(r1) 000f44ac: 3c01800f lui r1,0x800f 000f44b0: a0226cc0 sb r2,0x6cc0(r1) 000f44b4: 3c01800f lui r1,0x800f 000f44b8: a0226cc4 sb r2,0x6cc4(r1) 000f44bc: 3c01800f lui r1,0x800f 000f44c0: a0226cc8 sb r2,0x6cc8(r1) 000f44c4: 3c01800f lui r1,0x800f 000f44c8: a0226cb4 sb r2,0x6cb4(r1) 000f44cc: 34020092 ori r2,r0,0x0092 000f44d0: 3c01800f lui r1,0x800f 000f44d4: ac225c5c sw r2,0x5c5c(r1) 000f44d8: 0803d2a8 j 0x000f4aa0 000f44dc: 00000000 nop 000f44e0: 3c028012 lui r2,0x8012 000f44e4: 90424609 lbu r2,0x4609(r2) 000f44e8: 00000000 nop 000f44ec: 2c420080 sltiu r2,r2,0x0080 000f44f0: 1040000c beq r2,r0,0x000f4524 000f44f4: 00008021 addu r16,r0,r0 000f44f8: 3c038012 lui r3,0x8012 000f44fc: 24634609 addiu r3,r3,0x4609 000f4500: 90620000 lbu r2,0x0000(r3) 000f4504: 00000000 nop 000f4508: 10400006 beq r2,r0,0x000f4524 000f450c: 24630014 addiu r3,r3,0x0014 000f4510: 90620000 lbu r2,0x0000(r3) 000f4514: 00000000 nop 000f4518: 2c420080 sltiu r2,r2,0x0080 000f451c: 1440fff8 bne r2,r0,0x000f4500 000f4520: 26100001 addiu r16,r16,0x0001 000f4524: 26100001 addiu r16,r16,0x0001 000f4528: 00101080 sll r2,r16,0x02 000f452c: 00501021 addu r2,r2,r16 000f4530: 00021080 sll r2,r2,0x02 000f4534: 3c038012 lui r3,0x8012 000f4538: 24634604 addiu r3,r3,0x4604 000f453c: 00431021 addu r2,r2,r3 000f4540: 3c018010 lui r1,0x8010 000f4544: ac22bdf4 sw r2,-0x420c(r1) 000f4548: 90420005 lbu r2,0x0005(r2) 000f454c: 00000000 nop 000f4550: 1040000c beq r2,r0,0x000f4584 000f4554: 34020077 ori r2,r0,0x0077 000f4558: 3c058010 lui r5,0x8010 000f455c: 8ca5bdf4 lw r5,-0x420c(r5) 000f4560: 0c03cd31 jal 0x000f34c4 000f4564: 34040002 ori r4,r0,0x0002 000f4568: 3c028010 lui r2,0x8010 000f456c: 8c42bdf4 lw r2,-0x420c(r2) 000f4570: 00000000 nop 000f4574: 90420005 lbu r2,0x0005(r2) 000f4578: 00000000 nop 000f457c: 1440fff6 bne r2,r0,0x000f4558 000f4580: 34020077 ori r2,r0,0x0077 000f4584: 3c01800f lui r1,0x800f 000f4588: ac205c58 sw r0,0x5c58(r1) 000f458c: 3c01800f lui r1,0x800f 000f4590: ac225c5c sw r2,0x5c5c(r1) 000f4594: 0c03babe jal 0x000eeaf8 000f4598: 3404008b ori r4,r0,0x008b 000f459c: 3c048012 lui r4,0x8012 000f45a0: 8c841ffc lw r4,0x1ffc(r4) 000f45a4: 0c011180 jal 0x00044600 000f45a8: 00000000 nop 000f45ac: 0803d2a8 j 0x000f4aa0 000f45b0: 00000000 nop 000f45b4: 2c620020 sltiu r2,r3,0x0020 #set if 0x74 <= map data < 0x94 000f45b8: 10400139 beq r2,r0,0x000f4aa0 #branch if map data => 0x94 000f45bc: 00031080 sll r2,r3,0x02 #r3 word pointer 000f45c0: 3c01800e lui r1,0x800e 000f45c4: 00220821 addu r1,r1,r2 000f45c8: 8c227220 lw r2,0x7220(r1) #load address; 0x74 leads to 0x800f45d8, 0x78 to 0x800f4674, 0x79 to 0x800f4898, 0x92 to 0x800f47f8, 0x93 to 0x800f4848. everything else goes to 0x800f41a0. 000f45cc: 00000000 nop 000f45d0: 00400008 jr r2 #0x1f clears snowy weather if any(?) 000f45d4: 00000000 nop 000f45d8: 0c0111b2 jal 0x000446c8 000f45dc: 00000000 nop 000f45e0: 1440012f bne r2,r0,0x000f4aa0 000f45e4: 00000000 nop 000f45e8: 00008021 addu r16,r0,r0 000f45ec: 3c078012 lui r7,0x8012 000f45f0: 8ce71ffc lw r7,0x1ffc(r7) 000f45f4: 3c068012 lui r6,0x8012 000f45f8: 24c64604 addiu r6,r6,0x4604 000f45fc: 3c01800f lui r1,0x800f 000f4600: ac205c5c sw r0,0x5c5c(r1) 000f4604: 88e20003 lwl r2,0x0003(r7) 000f4608: 98e20000 lwr r2,0x0000(r7) 000f460c: 88e30007 lwl r3,0x0007(r7) 000f4610: 98e30004 lwr r3,0x0004(r7) 000f4614: 88e4000b lwl r4,0x000b(r7) 000f4618: 98e40008 lwr r4,0x0008(r7) 000f461c: 88e5000f lwl r5,0x000f(r7) 000f4620: 98e5000c lwr r5,0x000c(r7) 000f4624: a8c20003 swl r2,0x0003(r6) 000f4628: b8c20000 swr r2,0x0000(r6) 000f462c: a8c30007 swl r3,0x0007(r6) 000f4630: b8c30004 swr r3,0x0004(r6) 000f4634: a8c4000b swl r4,0x000b(r6) 000f4638: b8c40008 swr r4,0x0008(r6) 000f463c: a8c5000f swl r5,0x000f(r6) 000f4640: b8c5000c swr r5,0x000c(r6) 000f4644: 88e20013 lwl r2,0x0013(r7) 000f4648: 98e20010 lwr r2,0x0010(r7) 000f464c: 00000000 nop 000f4650: a8c20013 swl r2,0x0013(r6) 000f4654: b8c20010 swr r2,0x0010(r6) 000f4658: 24c60014 addiu r6,r6,0x0014 000f465c: 26100001 addiu r16,r16,0x0001 000f4660: 2a020096 slti r2,r16,0x0096 000f4664: 1440ffe7 bne r2,r0,0x000f4604 000f4668: 24e70014 addiu r7,r7,0x0014 000f466c: 0803d2a8 j 0x000f4aa0 000f4670: 00000000 nop 000f4674: 0c0111b2 jal 0x000446c8 000f4678: 00000000 nop 000f467c: 14400108 bne r2,r0,0x000f4aa0 000f4680: 00000000 nop 000f4684: 3c02800f lui r2,0x800f 000f4688: 90425c54 lbu r2,0x5c54(r2) #? 000f468c: 00000000 nop 000f4690: 14400105 bne r2,r0,0x000f4aa8 #branch if is not 0 000f4694: 3402009b ori r2,r0,0x009b #r2 = 0x9b 000f4698: 3c058012 lui r5,0x8012 000f469c: 8ca51ffc lw r5,0x1ffc(r5) #Start of map GNS data 000f46a0: 3c038010 lui r3,0x8010 000f46a4: 8c63bdf4 lw r3,-0x420c(r3) #? 000f46a8: 3c01800f lui r1,0x800f 000f46ac: ac205c5c sw r0,0x5c5c(r1) #0 000f46b0: 00031080 sll r2,r3,0x02 #r3 * 4 000f46b4: 00431021 addu r2,r2,r3 #r3 * 5 000f46b8: 00021080 sll r2,r2,0x02 #r3 * 0x14 (0d20) 000f46bc: 3c01800f lui r1,0x800f 000f46c0: 00220821 addu r1,r1,r2 000f46c4: 90247a65 lbu r4,0x7a65(r1) #0x800f7a65 + 0x14 (load something initialised as input...?) 000f46c8: 0c03c9af jal 0x000f26bc #000f26bc - 000f34c0 000f46cc: 00000000 nop 000f46d0: 3c038010 lui r3,0x8010 000f46d4: 8c63bdf4 lw r3,-0x420c(r3) 000f46d8: 00000000 nop 000f46dc: 00031080 sll r2,r3,0x02 000f46e0: 00431021 addu r2,r2,r3 000f46e4: 00021080 sll r2,r2,0x02 000f46e8: 3c01800f lui r1,0x800f 000f46ec: 00220821 addu r1,r1,r2 000f46f0: 88237a63 lwl r3,0x7a63(r1) 000f46f4: 3c01800f lui r1,0x800f 000f46f8: 00220821 addu r1,r1,r2 000f46fc: 98237a60 lwr r3,0x7a60(r1) 000f4700: 3c01800f lui r1,0x800f 000f4704: 00220821 addu r1,r1,r2 000f4708: 88247a67 lwl r4,0x7a67(r1) 000f470c: 3c01800f lui r1,0x800f 000f4710: 00220821 addu r1,r1,r2 000f4714: 98247a64 lwr r4,0x7a64(r1) 000f4718: 3c01800f lui r1,0x800f 000f471c: 00220821 addu r1,r1,r2 000f4720: 88257a6b lwl r5,0x7a6b(r1) 000f4724: 3c01800f lui r1,0x800f 000f4728: 00220821 addu r1,r1,r2 000f472c: 98257a68 lwr r5,0x7a68(r1) 000f4730: 3c01800f lui r1,0x800f 000f4734: 00220821 addu r1,r1,r2 000f4738: 88267a6f lwl r6,0x7a6f(r1) 000f473c: 3c01800f lui r1,0x800f 000f4740: 00220821 addu r1,r1,r2 000f4744: 98267a6c lwr r6,0x7a6c(r1) 000f4748: 3c018010 lui r1,0x8010 000f474c: 00220821 addu r1,r1,r2 000f4750: a823a6c3 swl r3,-0x593d(r1) 000f4754: 3c018010 lui r1,0x8010 000f4758: 00220821 addu r1,r1,r2 000f475c: b823a6c0 swr r3,-0x5940(r1) 000f4760: 3c018010 lui r1,0x8010 000f4764: 00220821 addu r1,r1,r2 000f4768: a824a6c7 swl r4,-0x5939(r1) 000f476c: 3c018010 lui r1,0x8010 000f4770: 00220821 addu r1,r1,r2 000f4774: b824a6c4 swr r4,-0x593c(r1) 000f4778: 3c018010 lui r1,0x8010 000f477c: 00220821 addu r1,r1,r2 000f4780: a825a6cb swl r5,-0x5935(r1) 000f4784: 3c018010 lui r1,0x8010 000f4788: 00220821 addu r1,r1,r2 000f478c: b825a6c8 swr r5,-0x5938(r1) 000f4790: 3c018010 lui r1,0x8010 000f4794: 00220821 addu r1,r1,r2 000f4798: a826a6cf swl r6,-0x5931(r1) 000f479c: 3c018010 lui r1,0x8010 000f47a0: 00220821 addu r1,r1,r2 000f47a4: b826a6cc swr r6,-0x5934(r1) 000f47a8: 3c01800f lui r1,0x800f 000f47ac: 00220821 addu r1,r1,r2 000f47b0: 88237a73 lwl r3,0x7a73(r1) 000f47b4: 3c01800f lui r1,0x800f 000f47b8: 00220821 addu r1,r1,r2 000f47bc: 98237a70 lwr r3,0x7a70(r1) 000f47c0: 3c018010 lui r1,0x8010 000f47c4: 00220821 addu r1,r1,r2 000f47c8: a823a6d3 swl r3,-0x592d(r1) 000f47cc: 3c018010 lui r1,0x8010 000f47d0: 00220821 addu r1,r1,r2 000f47d4: b823a6d0 swr r3,-0x5930(r1) 000f47d8: 3c028010 lui r2,0x8010 000f47dc: 8c42bdf4 lw r2,-0x420c(r2) 000f47e0: 00000000 nop 000f47e4: 24420001 addiu r2,r2,0x0001 000f47e8: 3c018010 lui r1,0x8010 000f47ec: ac22bdf4 sw r2,-0x420c(r1) 000f47f0: 0803d2a8 j 0x000f4aa0 000f47f4: 00000000 nop 000f47f8: 0c0111b2 jal 0x000446c8 000f47fc: 00000000 nop 000f4800: 144000a7 bne r2,r0,0x000f4aa0 000f4804: 00000000 nop 000f4808: 3c02800f lui r2,0x800f 000f480c: 90426aac lbu r2,0x6aac(r2) 000f4810: 00000000 nop 000f4814: 10400006 beq r2,r0,0x000f4830 000f4818: 34020093 ori r2,r0,0x0093 000f481c: 3c05800f lui r5,0x800f 000f4820: 24a56a7c addiu r5,r5,0x6a7c 000f4824: 0c03c9af jal 0x000f26bc 000f4828: 34040032 ori r4,r0,0x0032 000f482c: 34020093 ori r2,r0,0x0093 000f4830: 3c01800f lui r1,0x800f 000f4834: a0206aac sb r0,0x6aac(r1) 000f4838: 3c01800f lui r1,0x800f 000f483c: ac225c5c sw r2,0x5c5c(r1) 000f4840: 0803d2a8 j 0x000f4aa0 000f4844: 00000000 nop 000f4848: 3c02800f lui r2,0x800f 000f484c: 90426cb4 lbu r2,0x6cb4(r2) 000f4850: 00000000 nop 000f4854: 10400005 beq r2,r0,0x000f486c 000f4858: 00000000 nop 000f485c: 3c058012 lui r5,0x8012 000f4860: 8ca51ffc lw r5,0x1ffc(r5) #GNS pointer 000f4864: 0c03c9af jal 0x000f26bc #parse clear weather to weather update 000f4868: 34040017 ori r4,r0,0x0017 #r4 = clear snowy weather (?) 000f486c: 3c02800f lui r2,0x800f 000f4870: 90426cb0 lbu r2,0x6cb0(r2) 000f4874: 00000000 nop 000f4878: 10400087 beq r2,r0,0x000f4a98 000f487c: 00000000 nop 000f4880: 3c05800f lui r5,0x800f 000f4884: 24a56ab0 addiu r5,r5,0x6ab0 000f4888: 0c03c9af jal 0x000f26bc 000f488c: 34040033 ori r4,r0,0x0033 000f4890: 0803d2a6 j 0x000f4a98 000f4894: 00000000 nop 000f4898: 3c03800f lui r3,0x800f 000f489c: 8c637980 lw r3,0x7980(r3) 000f48a0: 3c028012 lui r2,0x8012 000f48a4: 8c42a2d4 lw r2,-0x5d2c(r2) 000f48a8: 00000000 nop 000f48ac: 1062007c beq r3,r2,0x000f4aa0 000f48b0: 00000000 nop 000f48b4: 00008021 addu r16,r0,r0 000f48b8: 00008821 addu r17,r0,r0 000f48bc: 3c12800f lui r18,0x800f 000f48c0: 26527994 addiu r18,r18,0x7994 000f48c4: 3c01800f lui r1,0x800f 000f48c8: ac207984 sw r0,0x7984(r1) 000f48cc: 3c01800f lui r1,0x800f 000f48d0: ac207988 sw r0,0x7988(r1) 000f48d4: 3c01800f lui r1,0x800f 000f48d8: ac20798c sw r0,0x798c(r1) 000f48dc: 3c01800f lui r1,0x800f 000f48e0: ac207990 sw r0,0x7990(r1) 000f48e4: 8e440000 lw r4,0x0000(r18) 000f48e8: 00000000 nop 000f48ec: 10800003 beq r4,r0,0x000f48fc 000f48f0: 26520004 addiu r18,r18,0x0004 000f48f4: 0c03d55e jal 0x000f5578 000f48f8: 00000000 nop 000f48fc: 3c018010 lui r1,0x8010 000f4900: 00310821 addu r1,r1,r17 000f4904: 9424be90 lhu r4,-0x4170(r1) 000f4908: 3c018010 lui r1,0x8010 000f490c: 00310821 addu r1,r1,r17 000f4910: 9425be92 lhu r5,-0x416e(r1) 000f4914: 3c018010 lui r1,0x8010 000f4918: 00310821 addu r1,r1,r17 000f491c: 9426be94 lhu r6,-0x416c(r1) 000f4920: 3c018010 lui r1,0x8010 000f4924: 00310821 addu r1,r1,r17 000f4928: 9427be96 lhu r7,-0x416a(r1) 000f492c: 3c02800f lui r2,0x800f 000f4930: 8c427984 lw r2,0x7984(r2) 000f4934: 3c03800f lui r3,0x800f 000f4938: 8c637988 lw r3,0x7988(r3) 000f493c: 00822021 addu r4,r4,r2 000f4940: 00a32821 addu r5,r5,r3 000f4944: 3c02800f lui r2,0x800f 000f4948: 8c42798c lw r2,0x798c(r2) 000f494c: 3c03800f lui r3,0x800f 000f4950: 8c637990 lw r3,0x7990(r3) 000f4954: 26100001 addiu r16,r16,0x0001 000f4958: 3c01800f lui r1,0x800f 000f495c: ac247984 sw r4,0x7984(r1) 000f4960: 3c01800f lui r1,0x800f 000f4964: ac257988 sw r5,0x7988(r1) 000f4968: 00c23021 addu r6,r6,r2 000f496c: 00e33821 addu r7,r7,r3 000f4970: 2a020009 slti r2,r16,0x0009 000f4974: 3c01800f lui r1,0x800f 000f4978: ac26798c sw r6,0x798c(r1) 000f497c: 3c01800f lui r1,0x800f 000f4980: ac277990 sw r7,0x7990(r1) 000f4984: 1440ffd7 bne r2,r0,0x000f48e4 000f4988: 26310098 addiu r17,r17,0x0098 000f498c: 34020091 ori r2,r0,0x0091 000f4990: 3c01800f lui r1,0x800f 000f4994: ac225c5c sw r2,0x5c5c(r1) 000f4998: 0803d2a8 j 0x000f4aa0 000f499c: 00000000 nop 000f49a0: 3c03800f lui r3,0x800f 000f49a4: 8c637980 lw r3,0x7980(r3) 000f49a8: 3c028012 lui r2,0x8012 000f49ac: 8c42a2d4 lw r2,-0x5d2c(r2) 000f49b0: 00000000 nop 000f49b4: 1062003a beq r3,r2,0x000f4aa0 000f49b8: 00000000 nop 000f49bc: 00008021 addu r16,r0,r0 000f49c0: 00008821 addu r17,r0,r0 000f49c4: 3c12800f lui r18,0x800f 000f49c8: 26527994 addiu r18,r18,0x7994 000f49cc: 3c01800f lui r1,0x800f 000f49d0: ac207984 sw r0,0x7984(r1) 000f49d4: 3c01800f lui r1,0x800f 000f49d8: ac207988 sw r0,0x7988(r1) 000f49dc: 3c01800f lui r1,0x800f 000f49e0: ac20798c sw r0,0x798c(r1) 000f49e4: 3c01800f lui r1,0x800f 000f49e8: ac207990 sw r0,0x7990(r1) 000f49ec: 8e440000 lw r4,0x0000(r18) 000f49f0: 00000000 nop 000f49f4: 10800003 beq r4,r0,0x000f4a04 000f49f8: 26100001 addiu r16,r16,0x0001 000f49fc: 0c03d55e jal 0x000f5578 000f4a00: 00000000 nop 000f4a04: ae400000 sw r0,0x0000(r18) 000f4a08: 3c018010 lui r1,0x8010 000f4a0c: 00310821 addu r1,r1,r17 000f4a10: 9424be90 lhu r4,-0x4170(r1) 000f4a14: 3c018010 lui r1,0x8010 000f4a18: 00310821 addu r1,r1,r17 000f4a1c: 9425be92 lhu r5,-0x416e(r1) 000f4a20: 3c018010 lui r1,0x8010 000f4a24: 00310821 addu r1,r1,r17 000f4a28: 9426be94 lhu r6,-0x416c(r1) 000f4a2c: 3c018010 lui r1,0x8010 000f4a30: 00310821 addu r1,r1,r17 000f4a34: 9427be96 lhu r7,-0x416a(r1) 000f4a38: 26310098 addiu r17,r17,0x0098 000f4a3c: 3c02800f lui r2,0x800f 000f4a40: 8c427984 lw r2,0x7984(r2) 000f4a44: 3c03800f lui r3,0x800f 000f4a48: 8c637988 lw r3,0x7988(r3) 000f4a4c: 00822021 addu r4,r4,r2 000f4a50: 00a32821 addu r5,r5,r3 000f4a54: 3c02800f lui r2,0x800f 000f4a58: 8c42798c lw r2,0x798c(r2) 000f4a5c: 3c03800f lui r3,0x800f 000f4a60: 8c637990 lw r3,0x7990(r3) 000f4a64: 3c01800f lui r1,0x800f 000f4a68: ac247984 sw r4,0x7984(r1) 000f4a6c: 3c01800f lui r1,0x800f 000f4a70: ac257988 sw r5,0x7988(r1) 000f4a74: 00c23021 addu r6,r6,r2 000f4a78: 00e33821 addu r7,r7,r3 000f4a7c: 2a020009 slti r2,r16,0x0009 000f4a80: 3c01800f lui r1,0x800f 000f4a84: ac26798c sw r6,0x798c(r1) 000f4a88: 3c01800f lui r1,0x800f 000f4a8c: ac277990 sw r7,0x7990(r1) 000f4a90: 1440ffd6 bne r2,r0,0x000f49ec 000f4a94: 26520004 addiu r18,r18,0x0004 000f4a98: 3c01800f lui r1,0x800f 000f4a9c: ac205c5c sw r0,0x5c5c(r1) 000f4aa0: 3c02800f lui r2,0x800f 000f4aa4: 8c425c58 lw r2,0x5c58(r2) #return r2 = whatever is at 0x800f5c58 000f4aa8: 8fbf0024 lw r31,0x0024(r29) 000f4aac: 8fb40020 lw r20,0x0020(r29) 000f4ab0: 8fb3001c lw r19,0x001c(r29) 000f4ab4: 8fb20018 lw r18,0x0018(r29) 000f4ab8: 8fb10014 lw r17,0x0014(r29) 000f4abc: 8fb00010 lw r16,0x0010(r29) 000f4ac0: 27bd0028 addiu r29,r29,0x0028 000f4ac4: 03e00008 jr r31 000f4ac8: 00000000 nop