Build Image Data for Now Loading message

From Final Fantasy Hacktics Wiki
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                       #   P10 SetSemiTrans (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)                    #   *0x8004d795 = 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                       #   E02 LoadClut2 (0x800459e0, 0x70, 0x1e2);      // 
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