Birthday Menu Related? (0x6920c)
Jump to navigation
Jump to search
# ROUTINE: ? 0x6920c (Birthday menu related?) # Mostly for menu graphics? # Parameters: # a0 = (p1) ? # a1 = (p2) ? 8006920c: 3c038009 lui r3,0x8009 80069210: 8c63fc00 lw r3,-0x0400(r3) # *0x8008fc00 80069214: 27bdffb0 addiu r29,r29,-0x0050 80069218: afb10044 sw r17,0x0044(r29) 8006921c: 00808821 addu r17,r4,r0 # p1 80069220: afb20048 sw r18,0x0048(r29) 80069224: 00a09021 addu r18,r5,r0 # p2 80069228: afbf004c sw r31,0x004c(r29) 8006922c: 28620020 slti r2,r3,0x0020 # if (*0x8008fc00 >= 32) 80069230: 1040011e beq r2,r0,0x800696ac # return; 80069234: afb00040 sw r16,0x0040(r29) 80069238: 00031140 sll r2,r3,0x05 # *0x8008fc00 * 32 8006923c: 3c038009 lui r3,0x8009 80069240: 2463fc6c addiu r3,r3,-0x0394 # 0x8008fc6c 80069244: 3c048005 lui r4,0x8005 80069248: 8c84e5bc lw r4,-0x1a44(r4) # *0x8004e5bc 8006924c: 00431021 addu r2,r2,r3 # (*0x8008fc00 * 32) + 0x8008fc6c 80069250: 00042280 sll r4,r4,0x0a # *0x8004e5bc * 1024 80069254: 00822021 addu r4,r4,r2 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c 80069258: 0c008f60 jal 0x80023d80 # ? 0x23d80 ((*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c); // Confirm menu doesn't display if removed 8006925c: 2484000c addiu r4,r4,0x000c 80069260: 8e220018 lw r2,0x0018(r17) # *(p1 + 0x18) 80069264: 00000000 nop 80069268: 10400008 beq r2,r0,0x8006928c 8006926c: 2442ffff addiu r2,r2,-0x0001 # *(p1 + 0x18) - 1 # if (*(p1 + 0x18) != 0) { // Runs when confirm menu is up, but not otherwise. Else block also runs too! Maybe different frames. 80069270: 8e230024 lw r3,0x0024(r17) # *(p1 + 0x24) 80069274: 00021100 sll r2,r2,0x04 # (*(p1 + 0x18) - 1) * 16 80069278: 00621821 addu r3,r3,r2 # *(p1 + 0x24) + ((*(p1 + 0x18) - 1) * 16) 8006927c: afa30018 sw r3,0x0018(r29) # stack.0x18 = *(p1 + 0x24) + ((*(p1 + 0x18) - 1) * 16) 80069280: 8e220028 lw r2,0x0028(r17) # *(p1 + 0x28) 80069284: 0801a4a7 j 0x8006929c 80069288: afa2001c sw r2,0x001c(r29) # stack.0x1c = *(p1 + 0x28) # } else { // Runs with or without confirm menu up. 8006928c: 8e220024 lw r2,0x0024(r17) # *(p1 + 0x24) // 0x0? = Normal palette, 0x1? = Greyed out palette 80069290: 8e230028 lw r3,0x0028(r17) # *(p1 + 0x28) // Palette related? 80069294: afa20018 sw r2,0x0018(r29) # stack.0x18 = *(p1 + 0x24) 80069298: afa3001c sw r3,0x001c(r29) # stack.0x1c = *(p1 + 0x28) # } 8006929c: 8fa40018 lw r4,0x0018(r29) 800692a0: 8fa5001c lw r5,0x001c(r29) 800692a4: 0c008e95 jal 0x80023a54 # result_0x23a54 = ? 0x23a54 (stack.0x18, stack.0x1c); // Menus are black boxes if removed 800692a8: 00000000 nop 800692ac: 3c048009 lui r4,0x8009 800692b0: 8c84fc00 lw r4,-0x0400(r4) # *0x8008fc00 800692b4: 3c038005 lui r3,0x8005 800692b8: 8c63e5bc lw r3,-0x1a44(r3) # *0x8004e5bc 800692bc: 00042140 sll r4,r4,0x05 # *0x8008fc00 * 32 800692c0: 00031a80 sll r3,r3,0x0a # *0x8004e5bc * 1024 800692c4: 00832021 addu r4,r4,r3 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 800692c8: 3c018009 lui r1,0x8009 800692cc: 2421fc86 addiu r1,r1,-0x037a # 0x8008fc86 800692d0: 00240821 addu r1,r1,r4 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc86 800692d4: a4220000 sh r2,0x0000(r1) # *((*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc86) = result_0x23a54 800692d8: 92220034 lbu r2,0x0034(r17) # *(p1 + 0x34) 800692dc: 00000000 nop 800692e0: 3c018009 lui r1,0x8009 800692e4: 2421fc7c addiu r1,r1,-0x0384 # 0x8008fc7c 800692e8: 00240821 addu r1,r1,r4 # 0x8008fc7c + *(p1 + 0x34) 800692ec: a0220000 sb r2,0x0000(r1) # *(0x8008fc7c + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32)) = *(p1 + 0x34) 800692f0: 3c028005 lui r2,0x8005 800692f4: 8c42e5bc lw r2,-0x1a44(r2) # *0x8004e5bc 800692f8: 3c038009 lui r3,0x8009 800692fc: 8c63fc00 lw r3,-0x0400(r3) # *0x8008fc00 80069300: 92240035 lbu r4,0x0035(r17) # *(p1 + 0x35) 80069304: 00021280 sll r2,r2,0x0a # *0x8004e5bc * 1024 80069308: 00031940 sll r3,r3,0x05 # *0x8008fc00 * 32 8006930c: 00431021 addu r2,r2,r3 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 80069310: 3c018009 lui r1,0x8009 80069314: 2421fc7d addiu r1,r1,-0x0383 # 0x8008fc7d 80069318: 00220821 addu r1,r1,r2 # 0x8008fc7d + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 8006931c: a0240000 sb r4,0x0000(r1) # *(0x8008fc7d + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32)) = *(p1 + 0x35) 80069320: 3c028005 lui r2,0x8005 80069324: 8c42e5bc lw r2,-0x1a44(r2) # *0x8004e5bc 80069328: 3c038009 lui r3,0x8009 8006932c: 8c63fc00 lw r3,-0x0400(r3) # *0x8008fc00 80069330: 92240036 lbu r4,0x0036(r17) # *(p1 + 0x36) 80069334: 00021280 sll r2,r2,0x0a # *0x8004e5bc * 1024 80069338: 00031940 sll r3,r3,0x05 # *0x8008fc00 * 32 8006933c: 00431021 addu r2,r2,r3 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 80069340: 3c018009 lui r1,0x8009 80069344: 2421fc7e addiu r1,r1,-0x0382 # 0x8008fc7e 80069348: 00220821 addu r1,r1,r2 # 0x8008fc7e + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 8006934c: a0240000 sb r4,0x0000(r1) # *(0x8008fc7e + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32)) = *(p1 + 0x36) 80069350: 8e260004 lw r6,0x0004(r17) # *(p1 + 0x04) 80069354: 8e250000 lw r5,0x0000(r17) # *p1 80069358: 8e270008 lw r7,0x0008(r17) # *(p1 + 0x08) 8006935c: 30a40004 andi r4,r5,0x0004 # *p1 & 0x04 80069360: 0004202b sltu r4,r0,r4 # (0 < (*p1 & 0x04)) ? 1 : 0 // 0 if (*p1 & 0x04) == 0, 1 otherwise 80069364: 30a500c0 andi r5,r5,0x00c0 # *p1 & 0xc0 80069368: 0c008e63 jal 0x8002398c # result_0x2398c = ? Calculation (0x2398c) (((0 < (*p1 & 0x04)) ? 1 : 0), ((*p1 & 0xc0) / 64), *(p1 + 0x04), *(p1 + 0x08)); // Menu graphics messed up if removed 8006936c: 00052982 srl r5,r5,0x06 # (*p1 & 0xc0) / 64 80069370: 34050001 ori r5,r0,0x0001 # 1 80069374: 00003021 addu r6,r0,r0 # 0 80069378: 3047ffff andi r7,r2,0xffff # result_0x2398c & 0xffff 8006937c: 3c028005 lui r2,0x8005 80069380: 8c42e5bc lw r2,-0x1a44(r2) # *0x8004e5bc 80069384: 3c048009 lui r4,0x8009 80069388: 8c84fc00 lw r4,-0x0400(r4) # *0x8008fc00 8006938c: 3c108009 lui r16,0x8009 80069390: 2610fc6c addiu r16,r16,-0x0394 # 0x8008fc6c 80069394: afa00010 sw r0,0x0010(r29) # 0 80069398: 00021280 sll r2,r2,0x0a # *0x8004e5bc * 1024 8006939c: 00042140 sll r4,r4,0x05 # *0x8008fc00 * 32 800693a0: 00902021 addu r4,r4,r16 # (*0x8008fc00 * 32) + 0x8008fc6c 800693a4: 0c009533 jal 0x800254cc # ? 0x254cc (((*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c), 1, 0, (result_0x2398c & 0xffff), 0); // Loads wrong menu graphics if removed 800693a8: 00442021 addu r4,r2,r4 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c 800693ac: 8e220000 lw r2,0x0000(r17) # *p1 800693b0: 00000000 nop 800693b4: 30420020 andi r2,r2,0x0020 # *p1 & 0x20 800693b8: 10400002 beq r2,r0,0x800693c4 800693bc: 00002821 addu r5,r0,r0 # paramValue = 0 # if (*p1 & 0x20) { 800693c0: 34050001 ori r5,r0,0x0001 # paramValue = 1 # } 800693c4: 3c048005 lui r4,0x8005 800693c8: 8c84e5bc lw r4,-0x1a44(r4) # *0x8004e5bc 800693cc: 3c028009 lui r2,0x8009 800693d0: 8c42fc00 lw r2,-0x0400(r2) # *0x8008fc00 800693d4: 00042280 sll r4,r4,0x0a # *0x8004e5bc * 1024 800693d8: 00021140 sll r2,r2,0x05 # *0x8008fc00 * 32 800693dc: 00501021 addu r2,r2,r16 # (*0x8008fc00 * 32) + 0x8008fc6c 800693e0: 00822021 addu r4,r4,r2 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c 800693e4: 0c008f1a jal 0x80023c68 # ? 0x23c68 (((*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc78), paramValue); // No discernable effect if removed 800693e8: 2484000c addiu r4,r4,0x000c # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc78 800693ec: 8e220000 lw r2,0x0000(r17) # *p1 800693f0: 00000000 nop 800693f4: 30420100 andi r2,r2,0x0100 # *p1 & 0x100 800693f8: 10400055 beq r2,r0,0x80069550 800693fc: 27a60020 addiu r6,r29,0x0020 # stack.0x20 # if (*p1 & 0x100) { 80069400: 2625002c addiu r5,r17,0x002c # p1 + 0x2c 80069404: 8e240014 lw r4,0x0014(r17) # value = *(p1 + 0x14) 80069408: 00000000 nop 8006940c: 000417c2 srl r2,r4,0x1f # roundingOffset = value >> 31; // Sign bit; either 0 or 1 80069410: 00822021 addu r4,r4,r2 # dividend = value + roundingOffset 80069414: 0c01a630 jal 0x800698c0 # ? 0x698c0 ((dividend / 2), (p1 + 0x2c)); // Confirm menu slightly delayed if removed 80069418: 00042043 sra r4,r4,0x01 # dividend / 2 8006941c: 3c048009 lui r4,0x8009 80069420: 8c84fc00 lw r4,-0x0400(r4) # *0x8008fc00 80069424: 3c038005 lui r3,0x8005 80069428: 8c63e5bc lw r3,-0x1a44(r3) # *0x8004e5bc 8006942c: 8e25001c lw r5,0x001c(r17) # *(p1 + 0x1c) 80069430: 97a20020 lhu r2,0x0020(r29) # stack.0x20 80069434: 00042140 sll r4,r4,0x05 # *0x8008fc00 * 32 80069438: 00031a80 sll r3,r3,0x0a # *0x8004e5bc * 1024 8006943c: 00832021 addu r4,r4,r3 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 80069440: 00451021 addu r2,r2,r5 # stack.0x20 + *(p1 + 0x1c) 80069444: 3c018009 lui r1,0x8009 80069448: 2421fc80 addiu r1,r1,-0x0380 # 0x8008fc80 8006944c: 00240821 addu r1,r1,r4 # 0x8008fc80 + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 80069450: a4220000 sh r2,0x0000(r1) # *(0x8008fc80 + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32)) = stack.0x20 + *(p1 + 0x1c) 80069454: 8e230020 lw r3,0x0020(r17) # *(p1 + 0x20) 80069458: 97a20022 lhu r2,0x0022(r29) # stack.0x22 8006945c: 00000000 nop 80069460: 00431021 addu r2,r2,r3 # stack.0x22 + *(p1 + 0x20) 80069464: 3c018009 lui r1,0x8009 80069468: 2421fc82 addiu r1,r1,-0x037e # 0x8008fc82 8006946c: 00240821 addu r1,r1,r4 # 0x8008fc82 + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 80069470: a4220000 sh r2,0x0000(r1) # *(0x8008fc82 + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32)) = stack.0x22 + *(p1 + 0x20) 80069474: 9222002c lbu r2,0x002c(r17) # *(p1 + 0x2c) 80069478: 93a30020 lbu r3,0x0020(r29) # stack.0x20 8006947c: 00000000 nop 80069480: 00431021 addu r2,r2,r3 # *(p1 + 0x2c) + stack.0x20 80069484: 3c018009 lui r1,0x8009 80069488: 2421fc84 addiu r1,r1,-0x037c # 0x8008fc84 8006948c: 00240821 addu r1,r1,r4 # 0x8008fc84 + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) 80069490: a0220000 sb r2,0x0000(r1) # *(0x8008fc84 + (*0x8004e5bc * 1024) + (*0x8008fc00 * 32)) = *(p1 + 0x2c) + stack.0x20 80069494: 3c048009 lui r4,0x8009 80069498: 8c84fc00 lw r4,-0x0400(r4) # *0x8008fc00 8006949c: 3c038005 lui r3,0x8005 800694a0: 8c63e5bc lw r3,-0x1a44(r3) # *0x8004e5bc 800694a4: 9222002e lbu r2,0x002e(r17) # *(p1 + 0x2e) 800694a8: 93a50022 lbu r5,0x0022(r29) # stack.0x22 800694ac: 00042140 sll r4,r4,0x05 # *0x8008fc00 * 32 800694b0: 00031a80 sll r3,r3,0x0a # *0x8004e5bc * 1024 800694b4: 00832021 addu r4,r4,r3 # (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 800694b8: 00451021 addu r2,r2,r5 # *(p1 + 0x2e) + stack.0x22 800694bc: 3c018009 lui r1,0x8009 800694c0: 2421fc85 addiu r1,r1,-0x037b # 0x8008fc85 800694c4: 00240821 addu r1,r1,r4 # 0x8008fc85 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 800694c8: a0220000 sb r2,0x0000(r1) # *(0x8008fc85 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = *(p1 + 0x2e) + stack.0x22 800694cc: 3c038009 lui r3,0x8009 800694d0: 8c63fc00 lw r3,-0x0400(r3) # *0x8008fc00 800694d4: 3c028005 lui r2,0x8005 800694d8: 8c42e5bc lw r2,-0x1a44(r2) # *0x8004e5bc 800694dc: 97a40024 lhu r4,0x0024(r29) # stack.0x24 800694e0: 00031940 sll r3,r3,0x05 # *0x8008fc00 * 32 800694e4: 00021280 sll r2,r2,0x0a # *0x8004e5bc * 1024 800694e8: 00621821 addu r3,r3,r2 # (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 800694ec: 3c018009 lui r1,0x8009 800694f0: 2421fc88 addiu r1,r1,-0x0378 # 0x8008fc88 800694f4: 00230821 addu r1,r1,r3 # 0x8008fc88 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 800694f8: a4240000 sh r4,0x0000(r1) # *(0x8008fc88 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = stack.0x24 800694fc: 97a20026 lhu r2,0x0026(r29) # stack.0x26 80069500: 00000000 nop 80069504: 3c018009 lui r1,0x8009 80069508: 2421fc8a addiu r1,r1,-0x0376 # 0x8008fc8a 8006950c: 00230821 addu r1,r1,r3 # 0x8008fc8a + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 80069510: a4220000 sh r2,0x0000(r1) # *(0x8008fc8a + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = stack.0x26 80069514: 8e230014 lw r3,0x0014(r17) # *(p1 + 0x14) 80069518: 00000000 nop 8006951c: 000317c2 srl r2,r3,0x1f # roundingAddend = (sign bit) of *(p1 + 0x14) 80069520: 00621021 addu r2,r3,r2 # divisor = *(p1 + 0x14) + roundingAddend 80069524: 00021043 sra r2,r2,0x01 # value = divisor / 2 80069528: 28420004 slti r2,r2,0x0004 8006952c: 14400006 bne r2,r0,0x80069548 80069530: 24620001 addiu r2,r3,0x0001 # *(p1 + 0x14) + 1 # if (value >= 4) { 80069534: 8e220000 lw r2,0x0000(r17) # *p1 80069538: ae200014 sw r0,0x0014(r17) # *(p1 + 0x14) = 0 8006953c: 38420100 xori r2,r2,0x0100 # *p1 XOR 0x100 80069540: 0801a58a j 0x80069628 80069544: ae220000 sw r2,0x0000(r17) # *p1 = (*p1 XOR 0x100) // Flip the 0x100 bit # } else { 80069548: 0801a58a j 0x80069628 8006954c: ae220014 sw r2,0x0014(r17) # *(p1 + 0x14) = *(p1 + 0x14) + 1 # } # } else { 80069550: 3c028009 lui r2,0x8009 80069554: 8c42fc00 lw r2,-0x0400(r2) # *0x8008fc00 80069558: 3c038005 lui r3,0x8005 8006955c: 8c63e5bc lw r3,-0x1a44(r3) # *0x8004e5bc 80069560: 8e24001c lw r4,0x001c(r17) # *(p1 + 0x1c) 80069564: 00021140 sll r2,r2,0x05 # *0x8008fc00 * 32 80069568: 00031a80 sll r3,r3,0x0a # *0x8004e5bc * 1024 8006956c: 00431021 addu r2,r2,r3 # (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 80069570: 3c018009 lui r1,0x8009 80069574: 2421fc80 addiu r1,r1,-0x0380 # 0x8008fc80 80069578: 00220821 addu r1,r1,r2 # 0x8008fc80 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 8006957c: a4240000 sh r4,0x0000(r1) # *(0x8008fc80 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = *(p1 + 0x1c) 80069580: 8e230020 lw r3,0x0020(r17) # *(p1 + 0x20) 80069584: 00000000 nop 80069588: 3c018009 lui r1,0x8009 8006958c: 2421fc82 addiu r1,r1,-0x037e # 0x8008fc82 80069590: 00220821 addu r1,r1,r2 # 0x8008fc82 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 80069594: a4230000 sh r3,0x0000(r1) # *(0x8008fc82 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = *(p1 + 0x20) 80069598: 9623002c lhu r3,0x002c(r17) # *(p1 + 0x2c) 8006959c: 00000000 nop 800695a0: 3c018009 lui r1,0x8009 800695a4: 2421fc84 addiu r1,r1,-0x037c # 0x8008fc84 800695a8: 00220821 addu r1,r1,r2 # 0x8008fc84 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 800695ac: a0230000 sb r3,0x0000(r1) # *(0x8008fc84 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = *(p1 + 0x2c) 800695b0: 3c028009 lui r2,0x8009 800695b4: 8c42fc00 lw r2,-0x0400(r2) # *0x8008fc00 800695b8: 3c038005 lui r3,0x8005 800695bc: 8c63e5bc lw r3,-0x1a44(r3) # *0x8004e5bc 800695c0: 9624002e lhu r4,0x002e(r17) # *(p1 + 0x2e) 800695c4: 00021140 sll r2,r2,0x05 # *0x8008fc00 * 32 800695c8: 00031a80 sll r3,r3,0x0a # *0x8004e5bc * 1024 800695cc: 00431021 addu r2,r2,r3 # (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 800695d0: 3c018009 lui r1,0x8009 800695d4: 2421fc85 addiu r1,r1,-0x037b # 0x8008fc85 800695d8: 00220821 addu r1,r1,r2 # 0x8008fc85 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 800695dc: a0240000 sb r4,0x0000(r1) # *(0x8008fc85 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = *(p1 + 0x2e) 800695e0: 3c038009 lui r3,0x8009 800695e4: 8c63fc00 lw r3,-0x0400(r3) # *0x8008fc00 800695e8: 3c028005 lui r2,0x8005 800695ec: 8c42e5bc lw r2,-0x1a44(r2) # *0x8004e5bc 800695f0: 96240030 lhu r4,0x0030(r17) # *(p1 + 0x30) 800695f4: 00031940 sll r3,r3,0x05 # *0x8008fc00 * 32 800695f8: 00021280 sll r2,r2,0x0a # *0x8004e5bc * 1024 800695fc: 00621821 addu r3,r3,r2 # (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 80069600: 3c018009 lui r1,0x8009 80069604: 2421fc88 addiu r1,r1,-0x0378 # 0x8008fc88 80069608: 00230821 addu r1,r1,r3 # 0x8008fc88 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 8006960c: a4240000 sh r4,0x0000(r1) # *(0x8008fc88 + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = *(p1 + 0x30) 80069610: 96220032 lhu r2,0x0032(r17) # *(p1 + 0x32) 80069614: 00000000 nop 80069618: 3c018009 lui r1,0x8009 8006961c: 2421fc8a addiu r1,r1,-0x0376 # 0x8008fc8a 80069620: 00230821 addu r1,r1,r3 # 0x8008fc8a + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024) 80069624: a4220000 sh r2,0x0000(r1) # *(0x8008fc8a + (*0x8008fc00 * 32) + (*0x8004e5bc * 1024)) = *(p1 + 0x32) # } 80069628: 3c108009 lui r16,0x8009 8006962c: 2610fc6c addiu r16,r16,-0x0394 # 0x8008fc6c 80069630: 8e24000c lw r4,0x000c(r17) # *(p1 + 0x0c) 80069634: 3c058005 lui r5,0x8005 80069638: 8ca5e5bc lw r5,-0x1a44(r5) # *0x8004e5bc 8006963c: 3c028009 lui r2,0x8009 80069640: 8c42fc00 lw r2,-0x0400(r2) # *0x8008fc00 80069644: 00042080 sll r4,r4,0x02 # *(p1 + 0x0c) * 4 80069648: 02442021 addu r4,r18,r4 # p2 + (*(p1 + 0x0c) * 4) 8006964c: 00052a80 sll r5,r5,0x0a # *0x8004e5bc * 1024 80069650: 00021140 sll r2,r2,0x05 # *0x8008fc00 * 32 80069654: 00501021 addu r2,r2,r16 # (*0x8008fc00 * 32) + 0x8008fc6c 80069658: 00a22821 addu r5,r5,r2 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c 8006965c: 0c008eed jal 0x80023bb4 # ? 0x23bb4 (p2 + (*(p1 + 0x0c) * 4), (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc78); // No menu graphics if removed 80069660: 24a5000c addiu r5,r5,0x000c # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc78 80069664: 8e24000c lw r4,0x000c(r17) # *(p1 + 0x0c) 80069668: 3c028005 lui r2,0x8005 8006966c: 8c42e5bc lw r2,-0x1a44(r2) # *0x8004e5bc 80069670: 3c058009 lui r5,0x8009 80069674: 8ca5fc00 lw r5,-0x0400(r5) # *0x8008fc00 80069678: 00042080 sll r4,r4,0x02 # *(p1 + 0x0c) * 4 8006967c: 02442021 addu r4,r18,r4 # p2 + (*(p1 + 0x0c) * 4) 80069680: 00021280 sll r2,r2,0x0a # *0x8004e5bc * 1024 80069684: 00052940 sll r5,r5,0x05 # *0x8008fc00 * 32 80069688: 00b02821 addu r5,r5,r16 # (*0x8008fc00 * 32) + 0x8008fc6c 8006968c: 0c008eed jal 0x80023bb4 # ? 0x23bb4 (p2 + (*(p1 + 0x0c) * 4), (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c); // Menu graphics messed up if removed 80069690: 00452821 addu r5,r2,r5 # (*0x8004e5bc * 1024) + (*0x8008fc00 * 32) + 0x8008fc6c 80069694: 3c028009 lui r2,0x8009 80069698: 8c42fc00 lw r2,-0x0400(r2) # *0x8008fc00 8006969c: 00000000 nop 800696a0: 24420001 addiu r2,r2,0x0001 # *0x8008fc00 + 1 800696a4: 3c018009 lui r1,0x8009 800696a8: ac22fc00 sw r2,-0x0400(r1) # *0x8008fc00 = *0x8008fc00 + 1 800696ac: 8fbf004c lw r31,0x004c(r29) 800696b0: 8fb20048 lw r18,0x0048(r29) 800696b4: 8fb10044 lw r17,0x0044(r29) 800696b8: 8fb00040 lw r16,0x0040(r29) 800696bc: 27bd0050 addiu r29,r29,0x0050 800696c0: 03e00008 jr r31 800696c4: 00000000 nop