Build Image Data for Now Loading message
Jump to navigation
Jump to search
# ROUTINE: Build Image Data for Now Loading message # Parameters: # r4 = (shouldDisplay) Affects whether the message displays (Displays if value is 1, doesn't if value is 0) # r5 = (startX) Starting X Location (Screen) # r6 = (startY) Starting Y Location (Screen) 80040bd8: 27bdffe0 addiu r29,r29,-0x0020 80040bdc: afb10014 sw r17,0x0014(r29) 80040be0: 00a08821 addu r17,r5,r0 # startX 80040be4: afb20018 sw r18,0x0018(r29) 80040be8: 00c09021 addu r18,r6,r0 # startY 80040bec: afb00010 sw r16,0x0010(r29) 80040bf0: 3c108005 lui r16,0x8005 80040bf4: 2610d720 addiu r16,r16,-0x28e0 # ptrStart = 0x8004d720 80040bf8: 3c018004 lui r1,0x8004 80040bfc: ac24760c sw r4,0x760c(r1) # *0x8004760c = shouldDisplay 80040c00: 02002021 addu r4,r16,r0 # ptrStart 80040c04: 34020009 ori r2,r0,0x0009 # 9 80040c08: 3c018005 lui r1,0x8005 80040c0c: a022d723 sb r2,-0x28dd(r1) # *0x8004d723 = 9 80040c10: 3402002c ori r2,r0,0x002c # 0x2c 80040c14: 3c018005 lui r1,0x8005 80040c18: a022d727 sb r2,-0x28d9(r1) # *0x8004d727 = 0x2c 80040c1c: 34020080 ori r2,r0,0x0080 # 0x80 80040c20: afbf001c sw r31,0x001c(r29) 80040c24: 3c018005 lui r1,0x8005 80040c28: ac20e5b8 sw r0,-0x1a48(r1) # *0x8004e5b8 = 0 80040c2c: 3c018005 lui r1,0x8005 80040c30: a022d724 sb r2,-0x28dc(r1) # *0x8004d724 = 0x80 // Color: Red value 80040c34: 3c018005 lui r1,0x8005 80040c38: a022d725 sb r2,-0x28db(r1) # *0x8004d725 = 0x80 // Color: Green value 80040c3c: 3c018005 lui r1,0x8005 80040c40: a022d726 sb r2,-0x28da(r1) # *0x8004d726 = 0x80 // Color: Blue value 80040c44: 0c008f1a jal 0x80023c68 # 0x23c68 (ptrStart, 0); // (Removes 0x02 flag from ptrStart.0x07 (0x8004d727)) 80040c48: 00002821 addu r5,r0,r0 80040c4c: 34090001 ori r9,r0,0x0001 # count = 1 80040c50: 260a0020 addiu r10,r16,0x0020 # ptrStart + 32 80040c54: 26080028 addiu r8,r16,0x0028 # ptrDestOuter = ptrStart + 40 80040c58: 3402001f ori r2,r0,0x001f # 0x1f 80040c5c: 3c018005 lui r1,0x8005 80040c60: a422d736 sh r2,-0x28ca(r1) # *0x8004d736 = 0x1f 80040c64: 34027887 ori r2,r0,0x7887 # 0x7887 80040c68: 3c018005 lui r1,0x8005 80040c6c: a422d72e sh r2,-0x28d2(r1) # *0x8004d72e = 0x7887 # do { // Copy common parameters (color, etc.) to other blocks... 80040c70: 01003821 addu r7,r8,r0 # ptrDest = ptrDestOuter 80040c74: 02003021 addu r6,r16,r0 # ptrSrc = ptrStart # do { 80040c78: 8cc20000 lw r2,0x0000(r6) 80040c7c: 8cc30004 lw r3,0x0004(r6) 80040c80: 8cc40008 lw r4,0x0008(r6) 80040c84: 8cc5000c lw r5,0x000c(r6) 80040c88: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80040c8c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80040c90: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8) 80040c94: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12) 80040c98: 24c60010 addiu r6,r6,0x0010 # ptrSrc += 16 80040c9c: 14cafff6 bne r6,r10,0x80040c78 80040ca0: 24e70010 addiu r7,r7,0x0010 # ptrDest += 16 # } while (ptrSrc != (ptrStart + 32)); 80040ca4: 8cc20000 lw r2,0x0000(r6) 80040ca8: 8cc30004 lw r3,0x0004(r6) 80040cac: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80040cb0: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80040cb4: 25290001 addiu r9,r9,0x0001 # count++ 80040cb8: 29220007 slti r2,r9,0x0007 80040cbc: 1440ffec bne r2,r0,0x80040c70 80040cc0: 25080028 addiu r8,r8,0x0028 # ptrDestOuter += 40 # } while (count < 7); 80040cc4: 3c028005 lui r2,0x8005 80040cc8: 2442d720 addiu r2,r2,-0x28e0 # 0x8004d720 // Base address for "No" block 80040ccc: 24470118 addiu r7,r2,0x0118 # ptrDest = 0x8004d720 + 0x118 80040cd0: 00403021 addu r6,r2,r0 # ptrSrc = 0x8004d720 80040cd4: 24c80020 addiu r8,r6,0x0020 # ptrEnd = ptrSrc + 32 80040cd8: 262400a0 addiu r4,r17,0x00a0 # startX + 160 80040cdc: 264200c8 addiu r2,r18,0x00c8 # startY + 200 80040ce0: 262300ac addiu r3,r17,0x00ac # startX + 172 80040ce4: 3c018005 lui r1,0x8005 80040ce8: a422d72a sh r2,-0x28d6(r1) # *0x8004d72a = startY + 200 // Screen Top-Left Corner Y Position 80040cec: 3c018005 lui r1,0x8005 80040cf0: a422d732 sh r2,-0x28ce(r1) # *0x8004d732 = startY + 200 // Screen Top-Right Corner Y Position 80040cf4: 264200d0 addiu r2,r18,0x00d0 # startY + 208 80040cf8: 3c018005 lui r1,0x8005 80040cfc: a424d728 sh r4,-0x28d8(r1) # *0x8004d728 = startX + 160 // Screen Top-Left Corner X Position 80040d00: 3c018005 lui r1,0x8005 80040d04: a424d738 sh r4,-0x28c8(r1) # *0x8004d738 = startX + 160 // Screen Bottom-Left Corner X Position 80040d08: 340400e4 ori r4,r0,0x00e4 # 228 80040d0c: 3c018005 lui r1,0x8005 80040d10: a422d73a sh r2,-0x28c6(r1) # *0x8004d73a = startY + 208 // Screen Bottom-Left Corner Y Position 80040d14: 3c018005 lui r1,0x8005 80040d18: a422d742 sh r2,-0x28be(r1) # *0x8004d742 = startY + 208 // Screen Bottom-Right Corner Y Position 80040d1c: 3402009b ori r2,r0,0x009b # 155 80040d20: 3c018005 lui r1,0x8005 80040d24: a423d730 sh r3,-0x28d0(r1) # *0x8004d730 = startX + 172 // Screen Top-Right Corner X Position 80040d28: 3c018005 lui r1,0x8005 80040d2c: a423d740 sh r3,-0x28c0(r1) # *0x8004d740 = startX + 172 // Screen Bottom-Right Corner X Position 80040d30: 340300f0 ori r3,r0,0x00f0 # 240 80040d34: 3c018005 lui r1,0x8005 80040d38: a022d72d sb r2,-0x28d3(r1) # *0x8004d72d = 155 // Source bitmap (FRAME.BIN) Top-Left Corner Y Position (155 + 32 = 187) 80040d3c: 3c018005 lui r1,0x8005 80040d40: a022d735 sb r2,-0x28cb(r1) # *0x8004d735 = 155 // Source bitmap (FRAME.BIN) Top-Right Corner Y Position (155 + 32 = 187) 80040d44: 340200a3 ori r2,r0,0x00a3 # 163 80040d48: 3c018005 lui r1,0x8005 80040d4c: a024d72c sb r4,-0x28d4(r1) # *0x8004d72c = 228 // Source bitmap (FRAME.BIN) Top-Left Corner X Position 80040d50: 3c018005 lui r1,0x8005 80040d54: a023d734 sb r3,-0x28cc(r1) # *0x8004d734 = 240 // Source bitmap (FRAME.BIN) Top-Right Corner X Position 80040d58: 3c018005 lui r1,0x8005 80040d5c: a024d73c sb r4,-0x28c4(r1) # *0x8004d73c = 228 // Source bitmap (FRAME.BIN) Bottom-Left Corner X Position 80040d60: 3c018005 lui r1,0x8005 80040d64: a022d73d sb r2,-0x28c3(r1) # *0x8004d73d = 163 // Source bitmap (FRAME.BIN) Bottom-Left Corner Y Position (163 + 32 = 195) 80040d68: 3c018005 lui r1,0x8005 80040d6c: a023d744 sb r3,-0x28bc(r1) # *0x8004d744 = 240 // Source bitmap (FRAME.BIN) Bottom-Right Corner X Position 80040d70: 3c018005 lui r1,0x8005 80040d74: a022d745 sb r2,-0x28bb(r1) # *0x8004d745 = 163 // Source bitmap (FRAME.BIN) Bottom-Right Corner Y Position (163 + 32 = 195) # do { // Copy data to another block.... 80040d78: 8cc20000 lw r2,0x0000(r6) 80040d7c: 8cc30004 lw r3,0x0004(r6) 80040d80: 8cc40008 lw r4,0x0008(r6) 80040d84: 8cc5000c lw r5,0x000c(r6) 80040d88: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80040d8c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80040d90: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8) 80040d94: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12) 80040d98: 24c60010 addiu r6,r6,0x0010 # ptrSrc += 16 80040d9c: 14c8fff6 bne r6,r8,0x80040d78 80040da0: 24e70010 addiu r7,r7,0x0010 # ptrDest += 16 # } while (ptrSrc != ptrEnd); 80040da4: 8cc20000 lw r2,0x0000(r6) 80040da8: 8cc30004 lw r3,0x0004(r6) 80040dac: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80040db0: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80040db4: 3c028005 lui r2,0x8005 80040db8: 2442d748 addiu r2,r2,-0x28b8 # 0x8004d748 // Base address for "w" block 80040dbc: 24470118 addiu r7,r2,0x0118 # ptrDest = 0x8004d748 + 0x118 80040dc0: 00403021 addu r6,r2,r0 # ptrSrc = 0x8004d748 80040dc4: 24c80020 addiu r8,r6,0x0020 # ptrEnd = ptrSrc + 32 80040dc8: 262400ab addiu r4,r17,0x00ab # startX + 171 80040dcc: 264200c8 addiu r2,r18,0x00c8 # startY + 200 80040dd0: 262300b2 addiu r3,r17,0x00b2 # startX + 178 80040dd4: 3c018005 lui r1,0x8005 80040dd8: a422d752 sh r2,-0x28ae(r1) # *0x8004d752 = startY + 200 // Screen Top-Left Corner Y Position 80040ddc: 3c018005 lui r1,0x8005 80040de0: a422d75a sh r2,-0x28a6(r1) # *0x8004d75a = startY + 200 // Screen Top-Right Corner Y Position 80040de4: 264200d0 addiu r2,r18,0x00d0 # startY + 208 80040de8: 3c018005 lui r1,0x8005 80040dec: a424d750 sh r4,-0x28b0(r1) # *0x8004d750 = startX + 171 // Screen Top-Left Corner X Position 80040df0: 3c018005 lui r1,0x8005 80040df4: a424d760 sh r4,-0x28a0(r1) # *0x8004d760 = startX + 171 // Screen Bottom-Left Corner X Position 80040df8: 340400e4 ori r4,r0,0x00e4 # 228 80040dfc: 3c018005 lui r1,0x8005 80040e00: a422d762 sh r2,-0x289e(r1) # *0x8004d762 = startY + 208 // Screen Bottom-Left Corner Y Position 80040e04: 3c018005 lui r1,0x8005 80040e08: a422d76a sh r2,-0x2896(r1) # *0x8004d76a = startY + 208 // Screen Bottom-Right Corner Y Position 80040e0c: 340200a3 ori r2,r0,0x00a3 # 163 80040e10: 3c018005 lui r1,0x8005 80040e14: a423d758 sh r3,-0x28a8(r1) # *0x8004d758 = startX + 178 // Screen Top-Right Corner X Position 80040e18: 3c018005 lui r1,0x8005 80040e1c: a423d768 sh r3,-0x2898(r1) # *0x8004d768 = startX + 178 // Screen Bottom-Right Corner X Position 80040e20: 340300eb ori r3,r0,0x00eb # 235 80040e24: 3c018005 lui r1,0x8005 80040e28: a022d755 sb r2,-0x28ab(r1) # *0x8004d755 = 163 // Source bitmap (FRAME.BIN) Top-Left Corner Y Position (163 + 32 = 195) 80040e2c: 3c018005 lui r1,0x8005 80040e30: a022d75d sb r2,-0x28a3(r1) # *0x8004d75d = 163 // Source bitmap (FRAME.BIN) Top-Right Corner Y Position (163 + 32 = 195) 80040e34: 340200ab ori r2,r0,0x00ab # 171 80040e38: 3c018005 lui r1,0x8005 80040e3c: a024d754 sb r4,-0x28ac(r1) # *0x8004d754 = 228 // Source bitmap (FRAME.BIN) Top-Left Corner X Position 80040e40: 3c018005 lui r1,0x8005 80040e44: a023d75c sb r3,-0x28a4(r1) # *0x8004d75c = 235 // Source bitmap (FRAME.BIN) Top-Right Corner X Position 80040e48: 3c018005 lui r1,0x8005 80040e4c: a024d764 sb r4,-0x289c(r1) # *0x8004d764 = 228 // Source bitmap (FRAME.BIN) Bottom-Left Corner X Position 80040e50: 3c018005 lui r1,0x8005 80040e54: a022d765 sb r2,-0x289b(r1) # *0x8004d765 = 171 // Source bitmap (FRAME.BIN) Bottom-Left Corner Y Position (171 + 32 = 203) 80040e58: 3c018005 lui r1,0x8005 80040e5c: a023d76c sb r3,-0x2894(r1) # *0x8004d76c = 235 // Source bitmap (FRAME.BIN) Bottom-Right Corner X Position 80040e60: 3c018005 lui r1,0x8005 80040e64: a022d76d sb r2,-0x2893(r1) # *0x8004d76d = 171 // Source bitmap (FRAME.BIN) Bottom-Right Corner Y Position (171 + 32 = 203) # do { // Copy data to another block... 80040e68: 8cc20000 lw r2,0x0000(r6) 80040e6c: 8cc30004 lw r3,0x0004(r6) 80040e70: 8cc40008 lw r4,0x0008(r6) 80040e74: 8cc5000c lw r5,0x000c(r6) 80040e78: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc); 80040e7c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4); 80040e80: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8); 80040e84: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12); 80040e88: 24c60010 addiu r6,r6,0x0010 # ptrSrc += 16 80040e8c: 14c8fff6 bne r6,r8,0x80040e68 80040e90: 24e70010 addiu r7,r7,0x0010 # ptrDest += 16 # } while (ptrSrc != ptrEnd); 80040e94: 8cc20000 lw r2,0x0000(r6) 80040e98: 8cc30004 lw r3,0x0004(r6) 80040e9c: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc); 80040ea0: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80040ea4: 3c028005 lui r2,0x8005 80040ea8: 2442d770 addiu r2,r2,-0x2890 # 0x8004d770 // Base address for "loa" block 80040eac: 24470118 addiu r7,r2,0x0118 # ptrDest = 0x8004d770 + 0x118 80040eb0: 00403021 addu r6,r2,r0 # ptrSrc = 0x8004d770 80040eb4: 24c80020 addiu r8,r6,0x0020 # ptrEnd = ptrSrc + 32 80040eb8: 262400b7 addiu r4,r17,0x00b7 # startX + 183 80040ebc: 264200c8 addiu r2,r18,0x00c8 # startY + 200 80040ec0: 262300c3 addiu r3,r17,0x00c3 # startX + 195 80040ec4: 3c018005 lui r1,0x8005 80040ec8: a422d77a sh r2,-0x2886(r1) # *0x8004d77a = startY + 200 // Screen Top-Left Corner Y Position 80040ecc: 3c018005 lui r1,0x8005 80040ed0: a422d782 sh r2,-0x287e(r1) # *0x8004d782 = startY + 200 // Screen Top-Right Corner Y Position 80040ed4: 264200d0 addiu r2,r18,0x00d0 # startY + 208 80040ed8: 3c018005 lui r1,0x8005 80040edc: a424d778 sh r4,-0x2888(r1) # *0x8004d778 = startX + 183 // Screen Top-Left Corner X Position 80040ee0: 3c018005 lui r1,0x8005 80040ee4: a424d788 sh r4,-0x2878(r1) # *0x8004d788 = startX + 183 // Screen Bottom-Left Corner X Position 80040ee8: 340400ad ori r4,r0,0x00ad # 173 80040eec: 3c018005 lui r1,0x8005 80040ef0: a422d78a sh r2,-0x2876(r1) # *0x8004d78a = startY + 208 // Screen Bottom-Left Corner Y Position 80040ef4: 3c018005 lui r1,0x8005 80040ef8: a422d792 sh r2,-0x286e(r1) # *0x8004d792 = startY + 208 // Screen Bottom-Right Corner Y Position 80040efc: 34020055 ori r2,r0,0x0055 # 85 80040f00: 3c018005 lui r1,0x8005 80040f04: a423d780 sh r3,-0x2880(r1) # *0x8004d780 = startX + 195 // Screen Top-Right Corner X Position 80040f08: 3c018005 lui r1,0x8005 80040f0c: a423d790 sh r3,-0x2870(r1) # *0x8004d790 = startX + 195 // Screen Bottom-Right Corner X Position 80040f10: 340300b9 ori r3,r0,0x00b9 # 185 80040f14: 3c018005 lui r1,0x8005 80040f18: a022d77d sb r2,-0x2883(r1) # *0x8004d77d = 85 // Source bitmap (FRAME.BIN) Top-Left Corner Y Position (85 + 32 = 117) 80040f1c: 3c018005 lui r1,0x8005 80040f20: a022d785 sb r2,-0x287b(r1) # *0x8004d785 = 85 // Source bitmap (FRAME.BIN) Top-Right Corner Y Position (85 + 32 = 117) 80040f24: 3402005d ori r2,r0,0x005d # 93 80040f28: 3c018005 lui r1,0x8005 80040f2c: a024d77c sb r4,-0x2884(r1) # *0x8004d77c = 173 // Source bitmap (FRAME.BIN) Top-Left Corner X Position 80040f30: 3c018005 lui r1,0x8005 80040f34: a023d784 sb r3,-0x287c(r1) # *0x8004d784 = 185 // Source bitmap (FRAME.BIN) Top-Right Corner X Position 80040f38: 3c018005 lui r1,0x8005 80040f3c: a024d78c sb r4,-0x2874(r1) # *0x8004d78c = 173 // Source bitmap (FRAME.BIN) Bottom-Left Corner X Position 80040f40: 3c018005 lui r1,0x8005 80040f44: a022d78d sb r2,-0x2873(r1) # *0x8004d78d = 93 // Source bitmap (FRAME.BIN) Bottom-Left Corner Y Position (93 + 32 = 125) 80040f48: 3c018005 lui r1,0x8005 80040f4c: a023d794 sb r3,-0x286c(r1) # *0x8004d794 = 185 // Source bitmap (FRAME.BIN) Bottom-Right Corner X Position 80040f50: 3c018005 lui r1,0x8005 80040f54: a022d795 sb r2,-0x286b(r1) # *0x8004d78d = 93 // Source bitmap (FRAME.BIN) Bottom-Right Corner Y Position (93 + 32 = 125) # do { // Copy data to another block... 80040f58: 8cc20000 lw r2,0x0000(r6) 80040f5c: 8cc30004 lw r3,0x0004(r6) 80040f60: 8cc40008 lw r4,0x0008(r6) 80040f64: 8cc5000c lw r5,0x000c(r6) 80040f68: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80040f6c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80040f70: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8) 80040f74: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12) 80040f78: 24c60010 addiu r6,r6,0x0010 # ptrSrc += 16 80040f7c: 14c8fff6 bne r6,r8,0x80040f58 80040f80: 24e70010 addiu r7,r7,0x0010 # ptrDest += 16 # } while (ptrSrc != ptrEnd); 80040f84: 8cc20000 lw r2,0x0000(r6) 80040f88: 8cc30004 lw r3,0x0004(r6) 80040f8c: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80040f90: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80040f94: 3c028005 lui r2,0x8005 80040f98: 2442d798 addiu r2,r2,-0x2868 # 0x8004d798 // Base pointer for "d" block 80040f9c: 24470118 addiu r7,r2,0x0118 # ptrDest = 0x8004d798 + 0x118 80040fa0: 00403021 addu r6,r2,r0 # ptrSrc = 0x8004d798 80040fa4: 24c80020 addiu r8,r6,0x0020 # ptrEnd = ptrSrc + 32 80040fa8: 262400c3 addiu r4,r17,0x00c3 # startX + 195 80040fac: 264200c8 addiu r2,r18,0x00c8 # startY + 200 80040fb0: 262300c8 addiu r3,r17,0x00c8 # startX + 200 80040fb4: 3c018005 lui r1,0x8005 80040fb8: a422d7a2 sh r2,-0x285e(r1) # *0x8004d7a2 = startY + 200 // Screen Top-Left Corner Y Position 80040fbc: 3c018005 lui r1,0x8005 80040fc0: a422d7aa sh r2,-0x2856(r1) # *0x8004d7aa = startY + 200 // Screen Top-Right Corner Y Position 80040fc4: 264200d0 addiu r2,r18,0x00d0 # startY + 208 80040fc8: 3c018005 lui r1,0x8005 80040fcc: a424d7a0 sh r4,-0x2860(r1) # *0x8004d7a0 = startX + 195 // Screen Top-Left Corner X Position 80040fd0: 3c018005 lui r1,0x8005 80040fd4: a424d7b0 sh r4,-0x2850(r1) # *0x8004d7a0 = startX + 195 // Screen Bottom-Left Corner X Position 80040fd8: 340400d1 ori r4,r0,0x00d1 # 209 80040fdc: 3c018005 lui r1,0x8005 80040fe0: a422d7b2 sh r2,-0x284e(r1) # *0x8004d7b2 = startY + 208 // Screen Bottom-Left Corner Y Position 80040fe4: 3c018005 lui r1,0x8005 80040fe8: a422d7ba sh r2,-0x2846(r1) # *0x8004d7ba = startY + 208 // Screen Bottom-Right Corner Y Position 80040fec: 34020060 ori r2,r0,0x0060 # 96 80040ff0: 3c018005 lui r1,0x8005 80040ff4: a423d7a8 sh r3,-0x2858(r1) # *0x8004d7a8 = startX + 200 // Screen Top-Right Corner X Position 80040ff8: 3c018005 lui r1,0x8005 80040ffc: a423d7b8 sh r3,-0x2848(r1) # *0x8004d7b8 = startX + 200 // Screen Bottom-Right Corner X Position 80041000: 340300d6 ori r3,r0,0x00d6 # 214 80041004: 3c018005 lui r1,0x8005 80041008: a022d7a5 sb r2,-0x285b(r1) # *0x8004d7a5 = 96 // Source bitmap (FRAME.BIN) Top-Left Corner Y Position (96 + 32 = 128) 8004100c: 3c018005 lui r1,0x8005 80041010: a022d7ad sb r2,-0x2853(r1) # *0x8004d7ad = 96 // Source bitmap (FRAME.BIN) Top-Right Corner Y Position (96 + 32 = 128) 80041014: 34020068 ori r2,r0,0x0068 # 104 80041018: 3c018005 lui r1,0x8005 8004101c: a024d7a4 sb r4,-0x285c(r1) # *0x8004d7a4 = 209 // Source bitmap (FRAME.BIN) Top-Left Corner X Position 80041020: 3c018005 lui r1,0x8005 80041024: a023d7ac sb r3,-0x2854(r1) # *0x8004d7ac = 214 // Source bitmap (FRAME.BIN) Top-Right Corner X Position 80041028: 3c018005 lui r1,0x8005 8004102c: a024d7b4 sb r4,-0x284c(r1) # *0x8004d7b4 = 209 // Source bitmap (FRAME.BIN) Bottom-Left Corner X Position 80041030: 3c018005 lui r1,0x8005 80041034: a022d7b5 sb r2,-0x284b(r1) # *0x8004d7b5 = 104 // Source bitmap (FRAME.BIN) Bottom-Left Corner Y Position (104 + 32 = 136) 80041038: 3c018005 lui r1,0x8005 8004103c: a023d7bc sb r3,-0x2844(r1) # *0x8004d7bc = 214 // Source bitmap (FRAME.BIN) Bottom-Right Corner X Position 80041040: 3c018005 lui r1,0x8005 80041044: a022d7bd sb r2,-0x2843(r1) # *0x8004d7bd = 104 // Source bitmap (FRAME.BIN) Bottom-Right Corner Y Position (104 + 32 = 136) # do { // Copy data to another block... 80041048: 8cc20000 lw r2,0x0000(r6) 8004104c: 8cc30004 lw r3,0x0004(r6) 80041050: 8cc40008 lw r4,0x0008(r6) 80041054: 8cc5000c lw r5,0x000c(r6) 80041058: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 8004105c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041060: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8) 80041064: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12) 80041068: 24c60010 addiu r6,r6,0x0010 # ptrSrc += 16 8004106c: 14c8fff6 bne r6,r8,0x80041048 80041070: 24e70010 addiu r7,r7,0x0010 # ptrDest += 16 # } while (ptrSrc != ptrEnd); 80041074: 8cc20000 lw r2,0x0000(r6) 80041078: 8cc30004 lw r3,0x0004(r6) 8004107c: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80041080: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041084: 3c028005 lui r2,0x8005 80041088: 2442d7c0 addiu r2,r2,-0x2840 # 0x8004d7c0 // Base address for "i" block 8004108c: 24470118 addiu r7,r2,0x0118 # ptrDest = 0x8004d7c0 + 0x118 80041090: 00403021 addu r6,r2,r0 # ptrSrc = 0x8004d7c0 80041094: 24c80020 addiu r8,r6,0x0020 # ptrEnd = ptrSrc + 32 80041098: 262400c7 addiu r4,r17,0x00c7 # startX + 199 8004109c: 264200c8 addiu r2,r18,0x00c8 # startY + 200 800410a0: 262300ca addiu r3,r17,0x00ca # startX + 202 800410a4: 3c018005 lui r1,0x8005 800410a8: a422d7ca sh r2,-0x2836(r1) # *0x8004d7ca = startY + 200 // Screen Top-Left Corner Y Position 800410ac: 3c018005 lui r1,0x8005 800410b0: a422d7d2 sh r2,-0x282e(r1) # *0x8004d7d2 = startY + 200 // Screen Top-Right Corner Y Position 800410b4: 264200d0 addiu r2,r18,0x00d0 # startY + 208 800410b8: 3c018005 lui r1,0x8005 800410bc: a424d7c8 sh r4,-0x2838(r1) # *0x8004d7c8 = startX + 199 // Screen Top-Left Corner X Position 800410c0: 3c018005 lui r1,0x8005 800410c4: a424d7d8 sh r4,-0x2828(r1) # *0x8004d7d8 = startX + 199 // Screen Bottom-Left Corner X Position 800410c8: 3404007c ori r4,r0,0x007c # 124 800410cc: 3c018005 lui r1,0x8005 800410d0: a422d7da sh r2,-0x2826(r1) # *0x8004d7da = startY + 208 // Screen Bottom-Left Corner Y Position 800410d4: 3c018005 lui r1,0x8005 800410d8: a422d7e2 sh r2,-0x281e(r1) # *0x8004d7e2 = startY + 208 // Screen Bottom-Right Corner Y Position 800410dc: 34020052 ori r2,r0,0x0052 # 82 800410e0: 3c018005 lui r1,0x8005 800410e4: a423d7d0 sh r3,-0x2830(r1) # *0x8004d7d0 = startX + 202 // Screen Top-Right Corner X Position 800410e8: 3c018005 lui r1,0x8005 800410ec: a423d7e0 sh r3,-0x2820(r1) # *0x8004d7e0 = startX + 202 // Screen Bottom-Right Corner X Position 800410f0: 3403007f ori r3,r0,0x007f # 127 800410f4: 3c018005 lui r1,0x8005 800410f8: a022d7cd sb r2,-0x2833(r1) # *0x8004d7cd = 82 // Source bitmap (FRAME.BIN) Top-Left Corner Y Position (82 + 32 = 114) 800410fc: 3c018005 lui r1,0x8005 80041100: a022d7d5 sb r2,-0x282b(r1) # *0x8004d7d5 = 82 // Source bitmap (FRAME.BIN) Top-Right Corner Y Position (82 + 32 = 114) 80041104: 3402005a ori r2,r0,0x005a # 90 80041108: 3c018005 lui r1,0x8005 8004110c: a024d7cc sb r4,-0x2834(r1) # *0x8004d7cc = 124 // Source bitmap (FRAME.BIN) Top-Left Corner X Position 80041110: 3c018005 lui r1,0x8005 80041114: a023d7d4 sb r3,-0x282c(r1) # *0x8004d7d4 = 127 // Source bitmap (FRAME.BIN) Top-Right Corner X Position 80041118: 3c018005 lui r1,0x8005 8004111c: a024d7dc sb r4,-0x2824(r1) # *0x8004d7dc = 124 // Source bitmap (FRAME.BIN) Bottom-Left Corner X Position 80041120: 3c018005 lui r1,0x8005 80041124: a022d7dd sb r2,-0x2823(r1) # *0x8004d7dd = 90 // Source bitmap (FRAME.BIN) Bottom-Left Corner Y Position (90 + 32 = 122) 80041128: 3c018005 lui r1,0x8005 8004112c: a023d7e4 sb r3,-0x281c(r1) # *0x8004d7e4 = 127 // Source bitmap (FRAME.BIN) Bottom-Right Corner X Position 80041130: 3c018005 lui r1,0x8005 80041134: a022d7e5 sb r2,-0x281b(r1) # *0x8004d7e5 = 90 // Source bitmap (FRAME.BIN) Bottom-Right Corner Y Position (90 + 32 = 122) # do { // Copy data to another block... 80041138: 8cc20000 lw r2,0x0000(r6) 8004113c: 8cc30004 lw r3,0x0004(r6) 80041140: 8cc40008 lw r4,0x0008(r6) 80041144: 8cc5000c lw r5,0x000c(r6) 80041148: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 8004114c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041150: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8) 80041154: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12) 80041158: 24c60010 addiu r6,r6,0x0010 # ptrSrc += 16 8004115c: 14c8fff6 bne r6,r8,0x80041138 80041160: 24e70010 addiu r7,r7,0x0010 # ptrDest += 16 # } while (ptrSrc != ptrEnd); 80041164: 8cc20000 lw r2,0x0000(r6) 80041168: 8cc30004 lw r3,0x0004(r6) 8004116c: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80041170: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041174: 3c028005 lui r2,0x8005 80041178: 2442d7e8 addiu r2,r2,-0x2818 # 0x8004d7e8 // Base address for "n" block 8004117c: 24470118 addiu r7,r2,0x0118 # ptrDest = 0x8004d7e8 + 0x118 80041180: 00403021 addu r6,r2,r0 # ptrSrc = 0x8004d7e8 80041184: 24c80020 addiu r8,r6,0x0020 # ptrEnd = ptrSrc + 32 80041188: 262400c9 addiu r4,r17,0x00c9 # startX + 201 8004118c: 264200c8 addiu r2,r18,0x00c8 # startY + 200 80041190: 262300ce addiu r3,r17,0x00ce # startX + 206 80041194: 3c018005 lui r1,0x8005 80041198: a422d7f2 sh r2,-0x280e(r1) # *0x8004d7f2 = startY + 200 // Screen Top-Left Corner Y Position 8004119c: 3c018005 lui r1,0x8005 800411a0: a422d7fa sh r2,-0x2806(r1) # *0x8004d7fa = startY + 200 // Screen Top-Right Corner Y Position 800411a4: 264200d0 addiu r2,r18,0x00d0 # startY + 208 800411a8: 3c018005 lui r1,0x8005 800411ac: a424d7f0 sh r4,-0x2810(r1) # *0x8004d7f0 = startX + 201 // Screen Top-Left Corner X Position 800411b0: 3c018005 lui r1,0x8005 800411b4: a424d800 sh r4,-0x2800(r1) # *0x8004d800 = startX + 201 // Screen Bottom-Left Corner X Position 800411b8: 340400ce ori r4,r0,0x00ce # 206 800411bc: 3c018005 lui r1,0x8005 800411c0: a422d802 sh r2,-0x27fe(r1) # *0x8004d802 = startY + 208 // Screen Bottom-Left Corner Y Position 800411c4: 3c018005 lui r1,0x8005 800411c8: a422d80a sh r2,-0x27f6(r1) # *0x8004d80a = startY + 208 // Screen Bottom-Right Corner Y Position 800411cc: 340200cc ori r2,r0,0x00cc # 204 800411d0: 3c018005 lui r1,0x8005 800411d4: a423d7f8 sh r3,-0x2808(r1) # *0x8004d7f8 = startX + 206 // Screen Top-Right Corner X Position 800411d8: 3c018005 lui r1,0x8005 800411dc: a423d808 sh r3,-0x27f8(r1) # *0x8004d808 = startX + 206 // Screen Bottom-Right Corner X Position 800411e0: 340300d3 ori r3,r0,0x00d3 # 211 800411e4: 3c018005 lui r1,0x8005 800411e8: a022d7f5 sb r2,-0x280b(r1) # *0x8004d7f5 = 204 // Source bitmap (FRAME.BIN) Top-Left Corner Y Position (204 + 32 = 236) 800411ec: 3c018005 lui r1,0x8005 800411f0: a022d7fd sb r2,-0x2803(r1) # *0x8004d7fd = 204 // Source bitmap (FRAME.BIN) Top-Right Corner Y Position (204 + 32 = 236) 800411f4: 340200d4 ori r2,r0,0x00d4 # 212 800411f8: 3c018005 lui r1,0x8005 800411fc: a024d7f4 sb r4,-0x280c(r1) # *0x8004d7f4 = 206 // Source bitmap (FRAME.BIN) Top-Left Corner X Position 80041200: 3c018005 lui r1,0x8005 80041204: a023d7fc sb r3,-0x2804(r1) # *0x8004d7fc = 211 // Source bitmap (FRAME.BIN) Top-Right Corner X Position 80041208: 3c018005 lui r1,0x8005 8004120c: a024d804 sb r4,-0x27fc(r1) # *0x8004d804 = 206 // Source bitmap (FRAME.BIN) Bottom-Left Corner X Position 80041210: 3c018005 lui r1,0x8005 80041214: a022d805 sb r2,-0x27fb(r1) # *0x8004d805 = 212 // Source bitmap (FRAME.BIN) Bottom-Left Corner Y Position (212 + 32 = 244) 80041218: 3c018005 lui r1,0x8005 8004121c: a023d80c sb r3,-0x27f4(r1) # *0x8004d80c = 211 // Source bitmap (FRAME.BIN) Bottom-Right Corner X Position 80041220: 3c018005 lui r1,0x8005 80041224: a022d80d sb r2,-0x27f3(r1) # *0x8004d80d = 212 // Source bitmap (FRAME.BIN) Bottom-Right Corner Y Position (212 + 32 = 244) # do { // Copy data to another block... 80041228: 8cc20000 lw r2,0x0000(r6) 8004122c: 8cc30004 lw r3,0x0004(r6) 80041230: 8cc40008 lw r4,0x0008(r6) 80041234: 8cc5000c lw r5,0x000c(r6) 80041238: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 8004123c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041240: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8) 80041244: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12) 80041248: 24c60010 addiu r6,r6,0x0010 # ptrSrc += 16 8004124c: 14c8fff6 bne r6,r8,0x80041228 80041250: 24e70010 addiu r7,r7,0x0010 # ptrDest += 16 # } while (ptrSrc != ptrEnd); 80041254: 8cc20000 lw r2,0x0000(r6) 80041258: 8cc30004 lw r3,0x0004(r6) 8004125c: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80041260: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041264: 3c028005 lui r2,0x8005 80041268: 2442d810 addiu r2,r2,-0x27f0 # 0x8004d810 // Base pointer for "g" block 8004126c: 24470118 addiu r7,r2,0x0118 # ptrDest = 0x8004d810 + 0x118 80041270: 00403021 addu r6,r2,r0 # ptrSrc = 0x8004d810 80041274: 24c80020 addiu r8,r6,0x0020 # ptrEnd = ptrSrc + 32 80041278: 262400cd addiu r4,r17,0x00cd # startX + 205 8004127c: 264200ca addiu r2,r18,0x00ca # startY + 202 80041280: 262300d2 addiu r3,r17,0x00d2 # startX + 210 80041284: 3c018005 lui r1,0x8005 80041288: a422d81a sh r2,-0x27e6(r1) # *0x8004d81a = startY + 202 // Screen Top-Left Corner Y Position 8004128c: 3c018005 lui r1,0x8005 80041290: a422d822 sh r2,-0x27de(r1) # *0x8004d822 = startY + 202 // Screen Top-Right Corner Y Position 80041294: 264200d2 addiu r2,r18,0x00d2 # startY + 210 80041298: 3c018005 lui r1,0x8005 8004129c: a424d818 sh r4,-0x27e8(r1) # *0x8004d818 = startX + 205 // Screen Top-Left Corner X Position 800412a0: 3c018005 lui r1,0x8005 800412a4: a424d828 sh r4,-0x27d8(r1) # *0x8004d828 = startX + 205 // Screen Bottom-Left Corner X Position 800412a8: 340400eb ori r4,r0,0x00eb # 235 800412ac: 3c018005 lui r1,0x8005 800412b0: a422d82a sh r2,-0x27d6(r1) # *0x8004d82a = startY + 210 // Screen Bottom-Left Corner Y Position 800412b4: 3c018005 lui r1,0x8005 800412b8: a422d832 sh r2,-0x27ce(r1) # *0x8004d832 = startY + 210 // Screen Bottom-Right Corner Y Position 800412bc: 340200a4 ori r2,r0,0x00a4 # 164 800412c0: 3c018005 lui r1,0x8005 800412c4: a423d820 sh r3,-0x27e0(r1) # *0x8004d820 = startX + 210 // Screen Top-Right Corner X Position 800412c8: 3c018005 lui r1,0x8005 800412cc: a423d830 sh r3,-0x27d0(r1) # *0x8004d830 = startX + 210 // Screen Bottom-Right Corner X Position 800412d0: 340300f0 ori r3,r0,0x00f0 # 240 800412d4: 3c018005 lui r1,0x8005 800412d8: a022d81d sb r2,-0x27e3(r1) # *0x8004d81d = 164 // Source bitmap (FRAME.BIN) Top-Left Corner Y Position (164 + 32 = 196) 800412dc: 3c018005 lui r1,0x8005 800412e0: a022d825 sb r2,-0x27db(r1) # *0x8004d825 = 164 // Source bitmap (FRAME.BIN) Top-Right Corner Y Position (164 + 32 = 196) 800412e4: 340200ac ori r2,r0,0x00ac # 172 800412e8: 3c018005 lui r1,0x8005 800412ec: a024d81c sb r4,-0x27e4(r1) # *0x8004d81c = 235 // Source bitmap (FRAME.BIN) Top-Left Corner X Position 800412f0: 3c018005 lui r1,0x8005 800412f4: a023d824 sb r3,-0x27dc(r1) # *0x8004d824 = 240 // Source bitmap (FRAME.BIN) Top-Right Corner X Position 800412f8: 3c018005 lui r1,0x8005 800412fc: a024d82c sb r4,-0x27d4(r1) # *0x8004d82c = 235 // Source bitmap (FRAME.BIN) Bottom-Left Corner X Position 80041300: 3c018005 lui r1,0x8005 80041304: a022d82d sb r2,-0x27d3(r1) # *0x8004d82d = 172 // Source bitmap (FRAME.BIN) Bottom-Left Corner Y Position (172 + 32 = 204) 80041308: 3c018005 lui r1,0x8005 8004130c: a023d834 sb r3,-0x27cc(r1) # *0x8004d834 = 240 // Source bitmap (FRAME.BIN) Bottom-Right Corner X Position 80041310: 3c018005 lui r1,0x8005 80041314: a022d835 sb r2,-0x27cb(r1) # *0x8004d835 = 172 // Source bitmap (FRAME.BIN) Bottom-Right Corner Y Position (172 + 32 = 204) # do { // Copy data to another block... 80041318: 8cc20000 lw r2,0x0000(r6) 8004131c: 8cc30004 lw r3,0x0004(r6) 80041320: 8cc40008 lw r4,0x0008(r6) 80041324: 8cc5000c lw r5,0x000c(r6) 80041328: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 8004132c: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041330: ace40008 sw r4,0x0008(r7) # *(ptrDest + 8) = *(ptrSrc + 8) 80041334: ace5000c sw r5,0x000c(r7) # *(ptrDest + 12) = *(ptrSrc + 12) 80041338: 24c60010 addiu r6,r6,0x0010 # *ptrSrc += 16 8004133c: 14c8fff6 bne r6,r8,0x80041318 80041340: 24e70010 addiu r7,r7,0x0010 # *ptrDest += 16 # } while (ptrSrc != ptrEnd); 80041344: 8cc20000 lw r2,0x0000(r6) 80041348: 8cc30004 lw r3,0x0004(r6) 8004134c: ace20000 sw r2,0x0000(r7) # *(ptrDest) = *(ptrSrc) 80041350: ace30004 sw r3,0x0004(r7) # *(ptrDest + 4) = *(ptrSrc + 4) 80041354: 3c048004 lui r4,0x8004 80041358: 248459e0 addiu r4,r4,0x59e0 8004135c: 34050070 ori r5,r0,0x0070 80041360: 0c008b5e jal 0x80022d78 # 0x22d78 (0x800459e0, 0x70, 0x1e2); // VRAM related? 80041364: 340601e2 ori r6,r0,0x01e2 80041368: 8fbf001c lw r31,0x001c(r29) 8004136c: 8fb20018 lw r18,0x0018(r29) 80041370: 8fb10014 lw r17,0x0014(r29) 80041374: 8fb00010 lw r16,0x0010(r29) 80041378: 27bd0020 addiu r29,r29,0x0020 8004137c: 03e00008 jr r31 80041380: 00000000 nop