Display Menu Text (WORLD.BIN)
Revision as of 02:05, 18 May 2018 by Glain (talk | contribs) (Created page with " # ROUTINE: DISPLAY MENU TEXT (WORLD.BIN) # Displays menu text. # Similar routine to Display Menu Text in BATTLE.BIN. # Parameters: # r4...")
# ROUTINE: DISPLAY MENU TEXT (WORLD.BIN) # Displays menu text. # Similar routine to Display Menu Text in BATTLE.BIN. # Parameters: # r4 = (combinedTextIndex) for text lookup # 16-bit value: # (Upper 5 bits): Text Section # (Lower 11 bits): Inner text index within Section # r5 = (p2) Pointer; Used as Parameter 2 in Routine 0x800ff284 # Sometimes varies by menu, sometimes is the same # r6 = (p3) Menu data pointer? # 0x00 = X coordinate (from center)? # 0x02 = Y coordinate (from center)? # r7 = (specificTextPtr) Specific display text pointer # Uses this instead of [Combined Text Index] if populated, but does lookup based on [Combined Text Index] when this value is either 0 or 1 800fe818: 27bdffb8 addiu r29,r29,-0x0048 800fe81c: afb10024 sw r17,0x0024(r29) 800fe820: 00808821 addu r17,r4,r0 # combinedTextIndex 800fe824: afbe0040 sw r30,0x0040(r29) 800fe828: 00a0f021 addu r30,r5,r0 # p2 800fe82c: 00002021 addu r4,r0,r0 # 0 800fe830: afbf0044 sw r31,0x0044(r29) 800fe834: afb7003c sw r23,0x003c(r29) 800fe838: afb60038 sw r22,0x0038(r29) 800fe83c: afb50034 sw r21,0x0034(r29) 800fe840: afb40030 sw r20,0x0030(r29) 800fe844: afb3002c sw r19,0x002c(r29) 800fe848: afb20028 sw r18,0x0028(r29) 800fe84c: afb00020 sw r16,0x0020(r29) 800fe850: afa60010 sw r6,0x0010(r29) # p3 800fe854: 0c0166bc jal 0x80059af0 # partyRamza = Get Party Data Pointer (0); // Ramza. Returns 0x80057f74 800fe858: afa70018 sw r7,0x0018(r29) # specificTextPtr 800fe85c: 00402021 addu r4,r2,r0 # partyRamza 800fe860: 340300fe ori r3,r0,0x00fe # 0xfe 800fe864: 34100013 ori r16,r0,0x0013 # count = 19 800fe868: 3c02801a lui r2,0x801a 800fe86c: 2442246b addiu r2,r2,0x246b # ptr = 0x801a246b # do { 800fe870: a0430000 sb r3,0x0000(r2) # *ptr = 0xfe 800fe874: 2610ffff addiu r16,r16,-0x0001 # count = count - 1 800fe878: 0601fffd bgez r16,0x800fe870 800fe87c: 2442ffff addiu r2,r2,-0x0001 # ptr = ptr - 1 # } while (count >= 0); 800fe880: 00008021 addu r16,r0,r0 # count = 0 # do { 800fe884: 00901021 addu r2,r4,r16 # partyRamza + count 800fe888: 904200be lbu r2,0x00be(r2) # *(partyRamza + count + 0xbe) // Unit name 800fe88c: 3c01801a lui r1,0x801a 800fe890: 00300821 addu r1,r1,r16 800fe894: a0222458 sb r2,0x2458(r1) # *(0x801a2458 + count) = *(partyRamza + count + 0xbe) // Copies Ramza's unit name to *0x801a2458 800fe898: 26100001 addiu r16,r16,0x0001 # count = count + 1 800fe89c: 2a020010 slti r2,r16,0x0010 800fe8a0: 1440fff8 bne r2,r0,0x800fe884 800fe8a4: 00000000 nop # } while (count < 16); 800fe8a8: 8fa80018 lw r8,0x0018(r29) # specificTextPtr 800fe8ac: 00000000 nop 800fe8b0: 11000003 beq r8,r0,0x800fe8c0 # if ((specificTextPtr == 0) 800fe8b4: 34020001 ori r2,r0,0x0001 800fe8b8: 15020005 bne r8,r2,0x800fe8d0 # or (specificTextPtr == 1)) 800fe8bc: 00000000 nop # { 800fe8c0: 0c039bb7 jal 0x800e6edc # textEntry = Find Text Entry (WORLD.BIN) (combinedTextIndex); 800fe8c4: 02202021 addu r4,r17,r0 800fe8c8: 0803fa35 j 0x800fe8d4 800fe8cc: 00409021 addu r18,r2,r0 # value_s2 = textEntry # } else { 800fe8d0: 8fb20018 lw r18,0x0018(r29) # value_s2 = specificTextPtr # } 800fe8d4: 3c111f80 lui r17,0x1f80 800fe8d8: 36310200 ori r17,r17,0x0200 # 0x1f800200 800fe8dc: 34170018 ori r23,r0,0x0018 # value_s7 = 0x18 = 24 800fe8e0: 8fa80010 lw r8,0x0010(r29) # p3 800fe8e4: 2402ffff addiu r2,r0,-0x0001 # -1 800fe8e8: 3c011f80 lui r1,0x1f80 800fe8ec: ac22021c sw r2,0x021c(r1) # *(0x1f80021c) = -1 800fe8f0: 3c028015 lui r2,0x8015 800fe8f4: 244231d8 addiu r2,r2,0x31d8 # 0x801531d8 800fe8f8: 3c011f80 lui r1,0x1f80 800fe8fc: ac220224 sw r2,0x0224(r1) # *0x1f800224 = 0x801531d8 800fe900: 3402ffff ori r2,r0,0xffff # -1 800fe904: 3c011f80 lui r1,0x1f80 800fe908: ac220228 sw r2,0x0228(r1) # *0x1f800228 = -1 800fe90c: 3c02801a lui r2,0x801a 800fe910: 2442a22c addiu r2,r2,-0x5dd4 # 0x8019a22c 800fe914: 3c011f80 lui r1,0x1f80 800fe918: ac200218 sw r0,0x0218(r1) # *0x1f800218 = 0 800fe91c: 3c011f80 lui r1,0x1f80 800fe920: ac200204 sw r0,0x0204(r1) # *0x1f800204 = 0 800fe924: 3c011f80 lui r1,0x1f80 800fe928: ac200208 sw r0,0x0208(r1) # *0x1f800208 = 0 800fe92c: 3c011f80 lui r1,0x1f80 800fe930: ac20020c sw r0,0x020c(r1) # *0x1f80020c = 0 800fe934: 95030000 lhu r3,0x0000(r8) # *p3 800fe938: 0040b021 addu r22,r2,r0 # 0x8019a22c 800fe93c: a6c30000 sh r3,0x0000(r22) # *0x8019a22c = *p3 800fe940: 95020002 lhu r2,0x0002(r8) # *(p3 + 2) 800fe944: 0000a821 addu r21,r0,r0 # value_s5 = 0 800fe948: 3c018015 lui r1,0x8015 800fe94c: ac203274 sw r0,0x3274(r1) # *0x80153274 = 0 800fe950: 3c01801a lui r1,0x801a 800fe954: a422a22e sh r2,-0x5dd2(r1) # *0x8019a22e = *(p3 + 2) 800fe958: 8d030008 lw r3,0x0008(r8) # *(p3 + 8) 800fe95c: 34020010 ori r2,r0,0x0010 # 16 800fe960: 3c018015 lui r1,0x8015 800fe964: ac223278 sw r2,0x3278(r1) # *0x80153278 = 16 800fe968: 3c01801a lui r1,0x801a 800fe96c: ac23a234 sw r3,-0x5dcc(r1) # *0x8019a234 = *(p3 + 8) # do { 800fe970: 92440000 lbu r4,0x0000(r18) # *value_s2 // Current text character? 800fe974: 00000000 nop 800fe978: 288200d0 slti r2,r4,0x00d0 800fe97c: 1440012e bne r2,r0,0x800fee38 800fe980: ae240000 sw r4,0x0000(r17) # *0x1f800200 = *value_s2 # if (value_s2 < 0xd0) { 800fe984: 308300f0 andi r3,r4,0x00f0 # *value_s2 & 0xf0 800fe988: 340200d0 ori r2,r0,0x00d0 800fe98c: 14620013 bne r3,r2,0x800fe9dc 800fe990: 340200e2 ori r2,r0,0x00e2 # if ((*value_s2 & 0xf0) == 0xd0) { 800fe994: 02202021 addu r4,r17,r0 # 0x1f800200 800fe998: 92430000 lbu r3,0x0000(r18) # *value_s2 800fe99c: 02402821 addu r5,r18,r0 # value_s2 800fe9a0: 3063000f andi r3,r3,0x000f # *value_s2 & 0x0f 800fe9a4: 00031040 sll r2,r3,0x01 # (*value_s2 & 0x0f) * 2 800fe9a8: 00431021 addu r2,r2,r3 # (*value_s2 & 0x0f) * 3 800fe9ac: 00021080 sll r2,r2,0x02 # (*value_s2 & 0x0f) * 12 800fe9b0: 00431021 addu r2,r2,r3 # (*value_s2 & 0x0f) * 13 800fe9b4: 00021100 sll r2,r2,0x04 # (*value_s2 & 0x0f) * 208 800fe9b8: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800fe9bc: ae220000 sw r2,0x0000(r17) # *0x1f800200 = (*value_s2 & 0x0f) * 208 800fe9c0: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 800fe9c4: 92420000 lbu r2,0x0000(r18) # *result_0xfef34 800fe9c8: 8e230000 lw r3,0x0000(r17) # *0x1f800200 800fe9cc: 00000000 nop 800fe9d0: 00431021 addu r2,r2,r3 # *result_0xfef34 + *0x1f800200 800fe9d4: 0803fb8e j 0x800fee38 800fe9d8: ae220000 sw r2,0x0000(r17) # *0x1f800200 = *result_0xfef34 + *0x1f800200 # } else { 800fe9dc: 14820006 bne r4,r2,0x800fe9f8 # if (*value_s2 == 0xe2) { 800fe9e0: 340200ec ori r2,r0,0x00ec 800fe9e4: 02202021 addu r4,r17,r0 # 0x1f800200 800fe9e8: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800fe9ec: 02402821 addu r5,r18,r0 # value_s2 800fe9f0: 0803fb41 j 0x800fed04 800fe9f4: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 # } else if (*value_s2 == 0xec) { 800fe9f8: 1482000a bne r4,r2,0x800fea24 800fe9fc: 340200f5 ori r2,r0,0x00f5 800fea00: 02202021 addu r4,r17,r0 # 0x1f800200 800fea04: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800fea08: 02402821 addu r5,r18,r0 # value_s2 800fea0c: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 800fea10: 92450000 lbu r5,0x0000(r18) # *value_s2 800fea14: 0c03bc97 jal 0x800ef25c # ? 0xef25c (0x5a, *value_s2); 800fea18: 3404005a ori r4,r0,0x005a 800fea1c: 0803fb41 j 0x800fed04 800fea20: 00000000 nop # } else if (*value_s2 == 0xf5) { 800fea24: 14820008 bne r4,r2,0x800fea48 800fea28: 340200f6 ori r2,r0,0x00f6 800fea2c: 02202021 addu r4,r17,r0 # 0x1f800200 800fea30: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800fea34: 02402821 addu r5,r18,r0 # value_s2 800fea38: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 800fea3c: 92570000 lbu r23,0x0000(r18) # value_s7 = *value_s2 800fea40: 0803fb41 j 0x800fed04 800fea44: 00000000 nop # } else if (*value_s2 == 0xf6) { 800fea48: 14820019 bne r4,r2,0x800feab0 800fea4c: 340200e3 ori r2,r0,0x00e3 800fea50: 02202021 addu r4,r17,r0 # 0x1f800200 800fea54: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800fea58: 02402821 addu r5,r18,r0 # value_s2 800fea5c: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 800fea60: 0c03bc6a jal 0x800ef1a8 # scriptVar = Find Script Variable (WORLD.BIN) (0x66); 800fea64: 34040066 ori r4,r0,0x0066 # 0x66 // (Variable 0x66) 800fea68: 00408021 addu r16,r2,r0 # scriptVar 800fea6c: 1200000b beq r16,r0,0x800fea9c # if (scriptVar != 0) { 800fea70: 00102080 sll r4,r16,0x02 # scriptVar * 4 800fea74: 92450000 lbu r5,0x0000(r18) # *value_s2 800fea78: 00902021 addu r4,r4,r16 # scriptVar * 5 800fea7c: 00042040 sll r4,r4,0x01 # scriptVar * 10 800fea80: 0c03bc97 jal 0x800ef25c # Set Script Variable (value_s7 + (scriptVar * 10), *value_s2); 800fea84: 02e42021 addu r4,r23,r4 # value_s7 + (scriptVar * 10) 800fea88: 34040066 ori r4,r0,0x0066 800fea8c: 0c03bc97 jal 0x800ef25c # Set Script Variable (0x66, 0); 800fea90: 00002821 addu r5,r0,r0 800fea94: 0803fb41 j 0x800fed04 800fea98: 00000000 nop # } else { 800fea9c: 92450000 lbu r5,0x0000(r18) # *value_s2 800feaa0: 0c03bc97 jal 0x800ef25c # Set Script Variable (value_s7, *value_s2); 800feaa4: 02e02021 addu r4,r23,r0 # value_s7 800feaa8: 0803fb41 j 0x800fed04 800feaac: 00000000 nop # } # } else if (*value_s2 == 0xe3) { 800feab0: 1482000a bne r4,r2,0x800feadc 800feab4: 340200fb ori r2,r0,0x00fb 800feab8: 02202021 addu r4,r17,r0 # 0x1f800200 800feabc: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800feac0: 02402821 addu r5,r18,r0 # value_s2 800feac4: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 800feac8: 92420000 lbu r2,0x0000(r18) # *value_s2 800feacc: 3c018015 lui r1,0x8015 800fead0: ac223270 sw r2,0x3270(r1) # *0x80153270 = *value_s2 800fead4: 0803fb41 j 0x800fed04 800fead8: 00000000 nop # } else if (*value_s2 == 0xfb) { 800feadc: 14820007 bne r4,r2,0x800feafc 800feae0: 340200fa ori r2,r0,0x00fa 800feae4: 8fa80018 lw r8,0x0018(r29) # specificTextPtr 800feae8: 34020001 ori r2,r0,0x0001 # 1 800feaec: 150200fe bne r8,r2,0x800feee8 # if (specificTextPtr != 1) break; 800feaf0: 340200ff ori r2,r0,0x00ff 800feaf4: 0803fb41 j 0x800fed04 800feaf8: 00000000 nop # } else if (*value_s2 == 0xfa) { 800feafc: 14820006 bne r4,r2,0x800feb18 800feb00: 340200f8 ori r2,r0,0x00f8 800feb04: 96c20000 lhu r2,0x0000(r22) # *0x8019a22c 800feb08: 00000000 nop 800feb0c: 24420004 addiu r2,r2,0x0004 # *0x8019a22c + 4 800feb10: 0803fb41 j 0x800fed04 800feb14: a6c20000 sh r2,0x0000(r22) # *0x8019a22c = *0x8019a22c + 4 # } else if (*value_s2 == 0xf8) { 800feb18: 1482000f bne r4,r2,0x800feb58 800feb1c: 340200e8 ori r2,r0,0x00e8 800feb20: 8fa80010 lw r8,0x0010(r29) # p3 800feb24: 3c028015 lui r2,0x8015 800feb28: 8c423304 lw r2,0x3304(r2) # *0x80153304 800feb2c: 95030000 lhu r3,0x0000(r8) # *p3 800feb30: 02a2102a slt r2,r21,r2 800feb34: 14400006 bne r2,r0,0x800feb50 800feb38: a6c30000 sh r3,0x0000(r22) # *0x8019a22c = *p3 # if (value_s5 >= *0x80153304) { 800feb3c: 96c20002 lhu r2,0x0002(r22) # *0x8019a22e 800feb40: 3c018015 lui r1,0x8015 800feb44: ac203274 sw r0,0x3274(r1) # *0x80153274 = 0 800feb48: 24420010 addiu r2,r2,0x0010 # *0x8019a22e + 16 800feb4c: a6c20002 sh r2,0x0002(r22) # *0x8019a22e = *0x8019a22e + 16 # } 800feb50: 0803fb41 j 0x800fed04 800feb54: 26b50001 addiu r21,r21,0x0001 # value_s5 = value_s5 + 1 # } else if (*value_s2 == 0xe8) { 800feb58: 14820008 bne r4,r2,0x800feb7c 800feb5c: 340200e4 ori r2,r0,0x00e4 800feb60: 02202021 addu r4,r17,r0 # 0x1f800200 800feb64: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800feb68: 02402821 addu r5,r18,r0 # value_s2 800feb6c: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 800feb70: 92420000 lbu r2,0x0000(r18) # *value_s2 800feb74: 0803fb41 j 0x800fed04 800feb78: ae220028 sw r2,0x0028(r17) # *0x1f800228 = *value_s2 # } else 800feb7c: 8e230000 lw r3,0x0000(r17) 800feb80: 00000000 nop 800feb84: 10620005 beq r3,r2,0x800feb9c # if ((*0x1f800200 == 0xe4) 800feb88: 340200e6 ori r2,r0,0x00e6 800feb8c: 1462005d bne r3,r2,0x800fed04 800feb90: 02202021 addu r4,r17,r0 # # or (*0x1f800200 == 0xe6)) # { 800feb94: 0803faed j 0x800febb4 # if ((*0x1f800200 == 0xe4) 800feb98: 00000000 nop # { 800feb9c: 8e220024 lw r2,0x0024(r17) # *0x1f800224 800feba0: 8e230024 lw r3,0x0024(r17) # *0x1f800224 800feba4: 8c420000 lw r2,0x0000(r2) # value = *(*0x1f800224) 800feba8: 24630004 addiu r3,r3,0x0004 # *0x1f800224 + 4 800febac: 0803faf6 j 0x800febd8 800febb0: ae230024 sw r3,0x0024(r17) # *0x1f800224 = *0x1f800224 + 4 } else { 800febb4: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800febb8: 02402821 addu r5,r18,r0 # value_s2 800febbc: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 800febc0: 92420000 lbu r2,0x0000(r18) # *value_s2 800febc4: 00000000 nop 800febc8: 00021080 sll r2,r2,0x02 # *value_s2 * 4 800febcc: 3c018015 lui r1,0x8015 800febd0: 00220821 addu r1,r1,r2 800febd4: 8c2231d8 lw r2,0x31d8(r1) # value = *(0x801531d8 + (*value_s2 * 4)) # } 800febd8: 00000000 nop 800febdc: ae220010 sw r2,0x0010(r17) # *0x1f800210 = value 800febe0: 8e220028 lw r2,0x0028(r17) # *0x1f800228 800febe4: 3403ffff ori r3,r0,0xffff # 0xffff 800febe8: 14430006 bne r2,r3,0x800fec04 800febec: 2450ffff addiu r16,r2,-0x0001 # value_s0 = *0x1f800228 - 1 # if (*0x1f800228 == 0xffff) { 800febf0: 8e240010 lw r4,0x0010(r17) # *0x1f800210 800febf4: 0c039bc5 jal 0x800e6f14 # ? 0xe6f14 (*0x1f800210); 800febf8: 0000a021 addu r20,r0,r0 # value_s4 = 0 800febfc: 0803fb03 j 0x800fec0c 800fec00: 2450ffff addiu r16,r2,-0x0001 # value_s0 = *0x1f800228 - 1 # } else { 800fec04: ae230028 sw r3,0x0028(r17) # *0x1f800228 = 0xffff 800fec08: 0000a021 addu r20,r0,r0 # value_s4 = 0 # } 800fec0c: 0600003d bltz r16,0x800fed04 # if (value_s0 >= 0) { 800fec10: 00101080 sll r2,r16,0x02 # (*0x1f800228 - 1) * 4 800fec14: 3c088015 lui r8,0x8015 800fec18: 2508338c addiu r8,r8,0x338c # 0x8015338c 800fec1c: 00489821 addu r19,r2,r8 # value_s3 = (value_s4 * 4) + 0x8015338c # do { 800fec20: 8e220010 lw r2,0x0010(r17) # *0x1f800210 800fec24: 8e630000 lw r3,0x0000(r19) # *value_s3 800fec28: 00000000 nop 800fec2c: 0043102b sltu r2,r2,r3 800fec30: 10400005 beq r2,r0,0x800fec48 # if ((*0x1f800210 >= *value_s3) 800fec34: 00000000 nop 800fec38: 12000003 beq r16,r0,0x800fec48 # or (value_s0 == 0) 800fec3c: 00000000 nop 800fec40: 1280002a beq r20,r0,0x800fecec # or (value_s4 != 0)) 800fec44: 00000000 nop # { 800fec48: 8e230010 lw r3,0x0010(r17) # *0x1f800210 800fec4c: 8e620000 lw r2,0x0000(r19) # *value_s3 800fec50: 00000000 nop 800fec54: 0062001b divu r3,r2 # *0x1f800210 / *value_s3 800fec58: 14400002 bne r2,r0,0x800fec64 # if (*value_s3 == 0) { 800fec5c: 00000000 nop 800fec60: 0007000d break 0x01c00 # (breakpoint) # } 800fec64: 00001812 mflo r3 # *0x1f800210 / *value_s3 800fec68: 00000000 nop 800fec6c: ae230000 sw r3,0x0000(r17) # *0x1f800200 = *0x1f800210 / *value_s3 800fec70: 8e620000 lw r2,0x0000(r19) # *value_s3 800fec74: 00000000 nop 800fec78: 00620018 mult r3,r2 # (*0x1f800210 / *value_s3) * (*value_s3) 800fec7c: 3c048015 lui r4,0x8015 800fec80: 8c843308 lw r4,0x3308(r4) # *0x80153308 800fec84: 34140001 ori r20,r0,0x0001 # value_s4 = 1 800fec88: 02a4202a slt r4,r21,r4 800fec8c: 8e230010 lw r3,0x0010(r17) # *0x1f800210 800fec90: 00001012 mflo r2 # (*0x1f800210 / *value_s3) * (*value_s3) // ??? (Should be *0x1f800210) 800fec94: 00621823 subu r3,r3,r2 # *0x1f800210 - ((*0x1f800210 / *value_s3) * (*value_s3)) // ??? (Should be 0) 800fec98: 10800092 beq r4,r0,0x800feee4 800fec9c: ae230010 sw r3,0x0010(r17) # *0x1f800210 = *0x1f800210 - ((*0x1f800210 / *value_s3) * (*value_s3)) // (Should be 0) # if (value_s5 >= *0x80153308) { # // Break out of both loops # breakOut = true; # break; # } 800feca0: 3c028015 lui r2,0x8015 800feca4: 8c423304 lw r2,0x3304(r2) # *0x80153304 800feca8: 00000000 nop 800fecac: 02a2102a slt r2,r21,r2 800fecb0: 1440000e bne r2,r0,0x800fecec 800fecb4: 03c02821 addu r5,r30,r0 # p2 # if (value_s5 >= *0x80153304) { 800fecb8: 3c06801a lui r6,0x801a 800fecbc: 24c6a22c addiu r6,r6,-0x5dd4 # 0x8019a22c 800fecc0: 8e220000 lw r2,0x0000(r17) # *0x1f800200 800fecc4: 3c078015 lui r7,0x8015 800fecc8: 8ce73270 lw r7,0x3270(r7) # *0x80153270 800feccc: 3c03801d lui r3,0x801d 800fecd0: 8c63d66c lw r3,-0x2994(r3) # *0x801cd66c 800fecd4: 000220c0 sll r4,r2,0x03 # *0x1f800200 * 8 800fecd8: 00822021 addu r4,r4,r2 # *0x1f800200 * 9 800fecdc: 00042080 sll r4,r4,0x02 # *0x1f800200 * 36 800fece0: 00822023 subu r4,r4,r2 # *0x1f800200 * 35 800fece4: 0c03fca1 jal 0x800ff284 # ? 0xff284 (((*0x1f800200 * 35) + *0x801cd66c), p2, 0x8019a22c, *0x80153270); 800fece8: 00832021 addu r4,r4,r3 # (*0x1f800200 * 35) + *0x801cd66c # } # } 800fecec: 2673fffc addiu r19,r19,-0x0004 # value_s3 = value_s3 - 4 800fecf0: 96c20000 lhu r2,0x0000(r22) # *0x8019a22c 800fecf4: 2610ffff addiu r16,r16,-0x0001 # value_s0 = value_s0 - 1 800fecf8: 24420006 addiu r2,r2,0x0006 # *0x8019a22c + 6 800fecfc: 0601ffc8 bgez r16,0x800fec20 800fed00: a6c20000 sh r2,0x0000(r22) # *0x8019a22c = *0x8019a22c + 6 # } while (value_s0 >= 0); # if (breakOut) # break; # } # } 800fed04: 8e220024 lw r2,0x0024(r17) # *0x1f800224 800fed08: 8e240000 lw r4,0x0000(r17) # *0x1f800200 800fed0c: 8c450000 lw r5,0x0000(r2) # *(*0x1f800224) 800fed10: 0c03907f jal 0x800e41fc # result_0xe41fc = ? 0xe41fc (*0x1f800200, *(*0x1f800224)); 800fed14: 00000000 nop 800fed18: 2403ffff addiu r3,r0,-0x0001 # -1 800fed1c: 10430014 beq r2,r3,0x800fed70 800fed20: ae220010 sw r2,0x0010(r17) # *0x1f800210 = result_0xe41fc # if (*0x1f800224 != -1) { 800fed24: 8e230000 lw r3,0x0000(r17) # *0x1f800200 800fed28: 26420001 addiu r2,r18,0x0001 # value_s2 + 1 800fed2c: ae22001c sw r2,0x001c(r17) # *0x1f80021c = value_s2 + 1 800fed30: 340200e0 ori r2,r0,0x00e0 800fed34: 14620005 bne r3,r2,0x800fed4c # if (*0x1f800200 == 0xe0) { 800fed38: 00000000 nop 800fed3c: 3c12801a lui r18,0x801a 800fed40: 26522458 addiu r18,r18,0x2458 # value_s2 = 0x801a2458 800fed44: 0803fb57 j 0x800fed5c 800fed48: 00000000 nop # } else { 800fed4c: 8e240010 lw r4,0x0010(r17) # *0x1f800210 800fed50: 0c039bb7 jal 0x800e6edc # textEntry = Find Text Entry (WORLD.BIN) (*0x1f800210); 800fed54: 00000000 nop 800fed58: 00409021 addu r18,r2,r0 # value_s2 = textEntry # } 800fed5c: 8e220024 lw r2,0x0024(r17) # *0x1f800224 800fed60: 00000000 nop 800fed64: 24420004 addiu r2,r2,0x0004 # *0x1f800224 + 4 800fed68: 0803fa5c j 0x800fe970 800fed6c: ae220024 sw r2,0x0024(r17) # *0x1f800224 = *0x1f800224 + 4 # continue; # } 800fed70: 8e240000 lw r4,0x0000(r17) # *0x1f800200 800fed74: 340200f0 ori r2,r0,0x00f0 # 0xf0 800fed78: 308300f0 andi r3,r4,0x00f0 # *0x1f800200 & 0xf0 800fed7c: 1462001e bne r3,r2,0x800fedf8 800fed80: 3082000f andi r2,r4,0x000f # *0x1f800200 & 0x0f # if (((*0x1f800200 & 0xf0) == 0xf0) 800fed84: 28420004 slti r2,r2,0x0004 # and ((*0x1f800200 & 0x0f) < 4)) 800fed88: 1040001b beq r2,r0,0x800fedf8 # { 800fed8c: 26420003 addiu r2,r18,0x0003 # value_s2 800fed90: ae22001c sw r2,0x001c(r17) # *0x1f80021c = value_s2 800fed94: 92420000 lbu r2,0x0000(r18) # *value_s2 800fed98: 00000000 nop 800fed9c: 30420003 andi r2,r2,0x0003 # *value_s2 & 0x03 800feda0: 000210c0 sll r2,r2,0x03 # (*value_s2 & 0x03) * 8 800feda4: ae220014 sw r2,0x0014(r17) # *0x1f800214 = (*value_s2 & 0x03) * 8 800feda8: 92420001 lbu r2,0x0001(r18) # *(value_s2 + 1) 800fedac: 8e230014 lw r3,0x0014(r17) # *0x1f800214 800fedb0: 00021142 srl r2,r2,0x05 # *(value_s2 + 1) * 32 800fedb4: ae220018 sw r2,0x0018(r17) # *0x1f800218 = *(value_s2 + 1) * 32 800fedb8: 00431021 addu r2,r2,r3 # (*(value_s2 + 1) * 32) + *0x1f800214 800fedbc: 24420004 addiu r2,r2,0x0004 # (*(value_s2 + 1) * 32) + *0x1f800214 + 4 800fedc0: ae220018 sw r2,0x0018(r17) # *0x1f800218 = (*(value_s2 + 1) * 32) + *0x1f800214 + 4 800fedc4: 92420001 lbu r2,0x0001(r18) # *(value_s2 + 1) 800fedc8: 00000000 nop 800fedcc: 3042000f andi r2,r2,0x000f # *(value_s2 + 1) & 0x0f 800fedd0: 000219c0 sll r3,r2,0x07 # (*(value_s2 + 1) & 0x0f) * 128 800fedd4: 00621823 subu r3,r3,r2 # (*(value_s2 + 1) & 0x0f) * 127 800fedd8: 00031840 sll r3,r3,0x01 # (*(value_s2 + 1) & 0x0f) * 254 800feddc: ae230014 sw r3,0x0014(r17) # *0x1f800214 = (*(value_s2 + 1) & 0x0f) * 254 800fede0: 92420002 lbu r2,0x0002(r18) # *(value_s2 + 2) 800fede4: 00000000 nop 800fede8: 00431021 addu r2,r2,r3 # *(value_s2 + 2) + ((*(value_s2 + 1) & 0x0f) * 254) 800fedec: 02429023 subu r18,r18,r2 # value_s2 = value_s2 - (*(value_s2 + 2) + ((*(value_s2 + 1) & 0x0f) * 254)) 800fedf0: 0803fa5c j 0x800fe970 800fedf4: ae220014 sw r2,0x0014(r17) # *0x1f800214 = *(value_s2 + 2) + ((*(value_s2 + 1) & 0x0f) * 254) # continue; # } 800fedf8: 8e220000 lw r2,0x0000(r17) # *0x1f800200 800fedfc: 340300fe ori r3,r0,0x00fe # 0xfe 800fee00: 304200fe andi r2,r2,0x00fe # *0x1f800200 & 0xfe 800fee04: 14430008 bne r2,r3,0x800fee28 800fee08: 02202021 addu r4,r17,r0 # 0x1f800200 # if (*0x1f800200 & 0xfe == 0xfe) { 800fee0c: 8e22001c lw r2,0x001c(r17) # *0x1f80021c 800fee10: 2403ffff addiu r3,r0,-0x0001 # -1 800fee14: 10430033 beq r2,r3,0x800feee4 # if (*0x1f80021c == -1) 800fee18: 00000000 nop # break; 800fee1c: 00409021 addu r18,r2,r0 # value_s2 = *0x1f80021c 800fee20: 0803fa5c j 0x800fe970 800fee24: ae23001c sw r3,0x001c(r17) # *0x1f80021c = -1 # continue; # } 800fee28: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800fee2c: 02402821 addu r5,r18,r0 # value_s2 800fee30: 0803fa5c j 0x800fe970 800fee34: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 # } # } 800fee38: 02202021 addu r4,r17,r0 # 0x1f800200 800fee3c: 0c03fbcd jal 0x800fef34 # result_0xfef34 = ? 0xfef34 (0x1f800200, value_s2); 800fee40: 02402821 addu r5,r18,r0 # value_s2 800fee44: 3c038015 lui r3,0x8015 800fee48: 8c633308 lw r3,0x3308(r3) # *0x80153308 800fee4c: 00000000 nop 800fee50: 02a3182a slt r3,r21,r3 800fee54: 10600023 beq r3,r0,0x800feee4 800fee58: 00409021 addu r18,r2,r0 # value_s2 = result_0xfef34 # if (value_s5 >= *0x80153308) break; 800fee5c: 3c028015 lui r2,0x8015 800fee60: 8c423304 lw r2,0x3304(r2) # *0x80153304 800fee64: 00000000 nop 800fee68: 02a2102a slt r2,r21,r2 800fee6c: 1440000e bne r2,r0,0x800feea8 800fee70: 03c02821 addu r5,r30,r0 # p2 # if (value_s5 >= *0x80153304) { 800fee74: 3c06801a lui r6,0x801a 800fee78: 24c6a22c addiu r6,r6,-0x5dd4 # 0x8019a22c 800fee7c: 8e220000 lw r2,0x0000(r17) # *0x1f800200 800fee80: 3c078015 lui r7,0x8015 800fee84: 8ce73270 lw r7,0x3270(r7) # *0x80153270 800fee88: 3c03801d lui r3,0x801d 800fee8c: 8c63d66c lw r3,-0x2994(r3) # *0x801cd66c 800fee90: 000220c0 sll r4,r2,0x03 # *0x1f800200 * 8 800fee94: 00822021 addu r4,r4,r2 # *0x1f800200 * 9 800fee98: 00042080 sll r4,r4,0x02 # *0x1f800200 * 36 800fee9c: 00822023 subu r4,r4,r2 # *0x1f800200 * 35 800feea0: 0c03fca1 jal 0x800ff284 # ? 0xff284 ((*0x1f800200 * 35) + *0x801cd66c, p2, 0x8019a22c, *0x80153270); 800feea4: 00832021 addu r4,r4,r3 # (*0x1f800200 * 35) + *0x801cd66c # } 800feea8: 8e220000 lw r2,0x0000(r17) # *0x1f800200 800feeac: 96c30000 lhu r3,0x0000(r22) # *0x8019a22c 800feeb0: 3c018015 lui r1,0x8015 800feeb4: 00220821 addu r1,r1,r2 800feeb8: 902233e0 lbu r2,0x33e0(r1) # *(0x801533e0 + *0x1f800200) 800feebc: 00000000 nop 800feec0: 00431021 addu r2,r2,r3 # *(0x801533e0 + *0x1f800200) + *0x8019a22c 800feec4: a6c20000 sh r2,0x0000(r22) # *0x8019a22c = *(0x801533e0 + *0x1f800200) + *0x8019a22c 800feec8: 00021400 sll r2,r2,0x10 800feecc: 8ec30008 lw r3,0x0008(r22) # *0x8019a234 800feed0: 00021403 sra r2,r2,0x10 # *0x8019a22c // (New value) 800feed4: 2463fff8 addiu r3,r3,-0x0008 # *0x8019a234 - 8 800feed8: 0043102a slt r2,r2,r3 800feedc: 1440fea4 bne r2,r0,0x800fe970 800feee0: 00000000 nop # } while (*0x8019a22c < (*0x8019a234 - 8)); 800feee4: 340200ff ori r2,r0,0x00ff 800feee8: 3c018015 lui r1,0x8015 # *0x80153270 = 0 800feeec: ac203270 sw r0,0x3270(r1) 800feef0: 3c018015 lui r1,0x8015 800feef4: ac203304 sw r0,0x3304(r1) # *0x80153304 = 0 800feef8: 3c018015 lui r1,0x8015 800feefc: ac223308 sw r2,0x3308(r1) # *0x80153308 = 0xff 800fef00: 8fbf0044 lw r31,0x0044(r29) 800fef04: 8fbe0040 lw r30,0x0040(r29) 800fef08: 8fb7003c lw r23,0x003c(r29) 800fef0c: 8fb60038 lw r22,0x0038(r29) 800fef10: 8fb50034 lw r21,0x0034(r29) 800fef14: 8fb40030 lw r20,0x0030(r29) 800fef18: 8fb3002c lw r19,0x002c(r29) 800fef1c: 8fb20028 lw r18,0x0028(r29) 800fef20: 8fb10024 lw r17,0x0024(r29) 800fef24: 8fb00020 lw r16,0x0020(r29) 800fef28: 27bd0048 addiu r29,r29,0x0048 800fef2c: 03e00008 jr r31 800fef30: 00000000 nop