Difference between revisions of "001b1c04 - 001b27d8"
Jump to navigation
Jump to search
(Created page with " 001b1c04: 3c04801c lui r4,0x801c 001b1c08: 8c84c098 lw r4,-0x3f68(r4) pointer to effect table of current effect (0x801b8b9c) 001b1c0c: 27bdff60 addiu r29,r29,0xff60 001b...") |
m |
||
Line 14: | Line 14: | ||
001b1c38: afb1007c sw r17,0x007c(r29) | 001b1c38: afb1007c sw r17,0x007c(r29) | ||
001b1c3c: afb00078 sw r16,0x0078(r29) | 001b1c3c: afb00078 sw r16,0x0078(r29) | ||
− | 001b1c40: 8c830008 lw r3,0x0008(r4) load | + | 001b1c40: 8c830008 lw r3,0x0008(r4) load execution phase |
001b1c44: 34020002 ori r2,r0,0x0002 | 001b1c44: 34020002 ori r2,r0,0x0002 | ||
− | 001b1c48: 106200a8 beq r3,r2,0x001b1eec branch if | + | 001b1c48: 106200a8 beq r3,r2,0x001b1eec branch if executing |
− | 001b1c4c: 2c620003 sltiu r2,r3,0x0003 | + | 001b1c4c: 2c620003 sltiu r2,r3,0x0003 |
− | 001b1c50: 10400005 beq r2,r0,0x001b1c68 branch if | + | 001b1c50: 10400005 beq r2,r0,0x001b1c68 branch if finalising |
001b1c54: 34020001 ori r2,r0,0x0001 | 001b1c54: 34020001 ori r2,r0,0x0001 | ||
− | 001b1c58: 10620008 beq r3,r2,0x001b1c7c branch if | + | 001b1c58: 10620008 beq r3,r2,0x001b1c7c branch if initialising |
− | 001b1c5c: 00a01021 addu r2,r5,r0 r2 = r5 | + | 001b1c5c: 00a01021 addu r2,r5,r0 r2 = r5 (this seems totally erroneous? unless this routine parses an argument... to itself?) |
001b1c60: 0806c9ea j 0x001b27a8 | 001b1c60: 0806c9ea j 0x001b27a8 | ||
001b1c64: 00000000 nop | 001b1c64: 00000000 nop | ||
Line 29: | Line 29: | ||
001b1c74: 0806c9ea j 0x001b27a8 | 001b1c74: 0806c9ea j 0x001b27a8 | ||
001b1c78: 00000000 nop | 001b1c78: 00000000 nop | ||
+ | |||
+ | Initialising spell lines: | ||
001b1c7c: 94820004 lhu r2,0x0004(r4) load current particle effect | 001b1c7c: 94820004 lhu r2,0x0004(r4) load current particle effect | ||
001b1c80: 94840006 lhu r4,0x0006(r4) load effect element, but not in awful format? | 001b1c80: 94840006 lhu r4,0x0006(r4) load effect element, but not in awful format? | ||
Line 42: | Line 44: | ||
001b1ca8: 00701823 subu r3,r3,r16 | 001b1ca8: 00701823 subu r3,r3,r16 | ||
001b1cac: 00031840 sll r3,r3,0x01 BB * 0xe | 001b1cac: 00031840 sll r3,r3,0x01 BB * 0xe | ||
− | 001b1cb0: a4a20006 sh r2,0x0006(r5) store shitty element format in effect data | + | 001b1cb0: a4a20006 sh r2,0x0006(r5) store shitty element format in effect data |
001b1cb4: 3c01801c lui r1,0x801c | 001b1cb4: 3c01801c lui r1,0x801c | ||
001b1cb8: 00230821 addu r1,r1,r3 801c0000 + BB * 0xe | 001b1cb8: 00230821 addu r1,r1,r3 801c0000 + BB * 0xe | ||
Line 66: | Line 68: | ||
001b1d08: 00230821 addu r1,r1,r3 | 001b1d08: 00230821 addu r1,r1,r3 | ||
001b1d0c: 84228888 lh r2,-0x7778(r1) next halfword (BB = 0, 0x0001, BB = 1, 0x0201, BB = 2, 0xFFFF) | 001b1d0c: 84228888 lh r2,-0x7778(r1) next halfword (BB = 0, 0x0001, BB = 1, 0x0201, BB = 2, 0xFFFF) | ||
− | 001b1d10: 3411001c ori r17,r0,0x001c | + | 001b1d10: 3411001c ori r17,r0,0x001c step over the drawmode instruction to next primative |
001b1d14: 3c01801c lui r1,0x801c | 001b1d14: 3c01801c lui r1,0x801c | ||
001b1d18: ac22bf24 sw r2,-0x40dc(r1) store in 0x801bbf24 | 001b1d18: ac22bf24 sw r2,-0x40dc(r1) store in 0x801bbf24 | ||
Line 88: | Line 90: | ||
001b1d60: 00230821 addu r1,r1,r3 | 001b1d60: 00230821 addu r1,r1,r3 | ||
001b1d64: 9022888d lbu r2,-0x7773(r1) load next byte (BB = 0, 0x00, BB = 1, 0x00, BB = 2, 0xFF) | 001b1d64: 9022888d lbu r2,-0x7773(r1) load next byte (BB = 0, 0x00, BB = 1, 0x00, BB = 2, 0xFF) | ||
− | 001b1d68: afa00010 sw r0,0x0010(r29) | + | 001b1d68: afa00010 sw r0,0x0010(r29) parse no rectangle to draw from |
001b1d6c: 3c01801c lui r1,0x801c | 001b1d6c: 3c01801c lui r1,0x801c | ||
001b1d70: ac22bf34 sw r2,-0x40cc(r1) store in 0x801bbf34 | 001b1d70: ac22bf34 sw r2,-0x40cc(r1) store in 0x801bbf34 | ||
− | 001b1d74: 0c009533 jal 0x000254cc | + | 001b1d74: 0c009533 jal 0x000254cc [[P41 SetDrawMode]] sets drawmode 0x620 |
001b1d78: 34050001 ori r5,r0,0x0001 r5 = 1 | 001b1d78: 34050001 ori r5,r0,0x0001 r5 = 1 | ||
001b1d7c: 26a40010 addiu r4,r21,0x0010 0x801badf0 | 001b1d7c: 26a40010 addiu r4,r21,0x0010 0x801badf0 | ||
− | 001b1d80: 34050001 ori r5,r0,0x0001 | + | 001b1d80: 34050001 ori r5,r0,0x0001 draw privaleges = allowed |
− | 001b1d84: 34060001 ori r6,r0,0x0001 | + | 001b1d84: 34060001 ori r6,r0,0x0001 dithering = on |
− | 001b1d88: 34070020 ori r7,r0,0x0020 | + | 001b1d88: 34070020 ori r7,r0,0x0020 tpage = draw in tpage 0x20 |
− | 001b1d8c: 0c009533 jal 0x000254cc | + | 001b1d8c: 0c009533 jal 0x000254cc [[P41 SetDrawMode]] sets drawmode 0x620 |
− | 001b1d90: afa00010 sw r0,0x0010(r29) | + | 001b1d90: afa00010 sw r0,0x0010(r29) null rectangle |
001b1d94: 00009821 addu r19,r0,r0 | 001b1d94: 00009821 addu r19,r0,r0 | ||
− | 001b1d98: 02b18021 addu r16,r21,r17 r16 = | + | 001b1d98: 02b18021 addu r16,r21,r17 r16 = primative address for loop |
− | 001b1d9c: 0c008f7e jal 0x00023df8 | + | 001b1d9c: 0c008f7e jal 0x00023df8 [[P28 SetLineG2]] create a line primative |
− | 001b1da0: 02002021 addu r4,r16,r0 value 1 = | + | 001b1da0: 02002021 addu r4,r16,r0 value 1 = prim address |
− | 001b1da4: 02002021 addu r4,r16,r0 value 1 = | + | 001b1da4: 02002021 addu r4,r16,r0 value 1 = prim address |
− | 001b1da8: 0c008f1a jal 0x00023c68 | + | 001b1da8: 0c008f1a jal 0x00023c68 [[P10 SetSemiTrans]] |
− | 001b1dac: 34050001 ori r5,r0,0x0001 | + | 001b1dac: 34050001 ori r5,r0,0x0001 semi transparent line |
001b1db0: 26730001 addiu r19,r19,0x0001 r19 = 1 | 001b1db0: 26730001 addiu r19,r19,0x0001 r19 = 1 | ||
− | 001b1db4: 2a620060 slti r2,r19,0x0060 | + | 001b1db4: 2a620060 slti r2,r19,0x0060 |
− | 001b1db8: 1440fff8 bne r2,r0,0x001b1d9c loop 96 times | + | 001b1db8: 1440fff8 bne r2,r0,0x001b1d9c loop 96 times (spell lines are 96 in quantity. wild) |
− | 001b1dbc: 26100014 addiu r16,r16,0x0014 | + | 001b1dbc: 26100014 addiu r16,r16,0x0014 increment primative to store to next |
001b1dc0: 26520001 addiu r18,r18,0x0001 | 001b1dc0: 26520001 addiu r18,r18,0x0001 | ||
001b1dc4: 2a420002 slti r2,r18,0x0002 | 001b1dc4: 2a420002 slti r2,r18,0x0002 | ||
Line 136: | Line 138: | ||
001b1e20: 2442ffff addiu r2,r2,0xffff | 001b1e20: 2442ffff addiu r2,r2,0xffff | ||
001b1e24: 3c02801c lui r2,0x801c | 001b1e24: 3c02801c lui r2,0x801c | ||
− | 001b1e28: 8c42c098 lw r2,-0x3f68(r2) | + | 001b1e28: 8c42c098 lw r2,-0x3f68(r2) load current effecct target data |
001b1e2c: 00000000 nop | 001b1e2c: 00000000 nop | ||
− | 001b1e30: 90440012 lbu r4,0x0012(r2) | + | 001b1e30: 90440012 lbu r4,0x0012(r2) load unit misc ID |
− | 001b1e34: 0c023104 jal 0x0008c410 | + | 001b1e34: 0c023104 jal 0x0008c410 [[Get Unit Screen Location Data Pointer]] |
001b1e38: 00000000 nop | 001b1e38: 00000000 nop | ||
001b1e3c: 3c03801c lui r3,0x801c | 001b1e3c: 3c03801c lui r3,0x801c | ||
Line 145: | Line 147: | ||
001b1e44: 00000000 nop | 001b1e44: 00000000 nop | ||
001b1e48: 90640012 lbu r4,0x0012(r3) | 001b1e48: 90640012 lbu r4,0x0012(r3) | ||
− | 001b1e4c: 0c02371d jal 0x0008dc74 | + | 001b1e4c: 0c02371d jal 0x0008dc74 finds unit's height value |
− | 001b1e50: 00408021 addu r16,r2,r0 | + | 001b1e50: 00408021 addu r16,r2,r0 r16 = unit screen location data |
001b1e54: 24520008 addiu r18,r2,0x0008 | 001b1e54: 24520008 addiu r18,r2,0x0008 | ||
− | 001b1e58: 00121023 subu r2,r0,r18 | + | 001b1e58: 00121023 subu r2,r0,r18 height + 8 negate |
001b1e5c: 3c01801c lui r1,0x801c | 001b1e5c: 3c01801c lui r1,0x801c | ||
− | 001b1e60: a42287c6 sh r2,-0x783a(r1) | + | 001b1e60: a42287c6 sh r2,-0x783a(r1) store unit's height 801b87c6 |
001b1e64: 3c01801c lui r1,0x801c | 001b1e64: 3c01801c lui r1,0x801c | ||
− | 001b1e68: a4228798 sh r2,-0x7868(r1) | + | 001b1e68: a4228798 sh r2,-0x7868(r1) store unit's height 801b8798 |
− | 001b1e6c: 96020000 lhu r2,0x0000(r16) | + | 001b1e6c: 96020000 lhu r2,0x0000(r16) load unit's X pos |
001b1e70: 00000000 nop | 001b1e70: 00000000 nop | ||
− | 001b1e74: a7a20018 sh r2,0x0018(r29) | + | 001b1e74: a7a20018 sh r2,0x0018(r29) store xpos in 0x18 SP |
− | 001b1e78: 96020004 lhu r2,0x0004(r16) | + | 001b1e78: 96020004 lhu r2,0x0004(r16) load unit's Ypos |
001b1e7c: 3c11800a lui r17,0x800a | 001b1e7c: 3c11800a lui r17,0x800a | ||
− | 001b1e80: 26318a24 addiu r17,r17,0x8a24 | + | 001b1e80: 26318a24 addiu r17,r17,0x8a24 80098a24 <- this seems to be out rotation and translation dedicated space for today |
− | 001b1e84: a7a2001c sh r2,0x001c(r29) | + | 001b1e84: a7a2001c sh r2,0x001c(r29) store ypos in 0x1c SP |
001b1e88: 96020002 lhu r2,0x0002(r16) | 001b1e88: 96020002 lhu r2,0x0002(r16) | ||
001b1e8c: 02202021 addu r4,r17,r0 | 001b1e8c: 02202021 addu r4,r17,r0 | ||
001b1e90: 00521023 subu r2,r2,r18 | 001b1e90: 00521023 subu r2,r2,r18 | ||
− | 001b1e94: 0c00742a jal 0x0001d0a8 | + | 001b1e94: 0c00742a jal 0x0001d0a8 [[Store Rotation matrix elements to GTE]] |
− | 001b1e98: a7a2001a sh r2,0x001a(r29) | + | 001b1e98: a7a2001a sh r2,0x001a(r29) store height negated in 0x1a SP |
− | 001b1e9c: 0c00744e jal 0x0001d138 | + | 001b1e9c: 0c00744e jal 0x0001d138 [[Store Translation Vectors to GTE]] |
001b1ea0: 02202021 addu r4,r17,r0 | 001b1ea0: 02202021 addu r4,r17,r0 | ||
001b1ea4: 27a40018 addiu r4,r29,0x0018 | 001b1ea4: 27a40018 addiu r4,r29,0x0018 | ||
001b1ea8: 27a50030 addiu r5,r29,0x0030 | 001b1ea8: 27a50030 addiu r5,r29,0x0030 | ||
− | 001b1eac: 0c00755e jal 0x0001d578 | + | 001b1eac: 0c00755e jal 0x0001d578 [[Get vector*matrix from GTE]] |
001b1eb0: 27a6003c addiu r6,r29,0x003c | 001b1eb0: 27a6003c addiu r6,r29,0x003c | ||
001b1eb4: 97a20030 lhu r2,0x0030(r29) | 001b1eb4: 97a20030 lhu r2,0x0030(r29) | ||
001b1eb8: 97a30034 lhu r3,0x0034(r29) | 001b1eb8: 97a30034 lhu r3,0x0034(r29) | ||
− | 001b1ebc: 3404001f ori r4,r0,0x001f | + | 001b1ebc: 3404001f ori r4,r0,0x001f play sound 0x1f (magic charging) |
001b1ec0: aea01130 sw r0,0x1130(r21) | 001b1ec0: aea01130 sw r0,0x1130(r21) | ||
− | 001b1ec4: aea01158 sw r0,0x1158(r21) | + | 001b1ec4: aea01158 sw r0,0x1158(r21) blank some more line values? |
001b1ec8: a6a20000 sh r2,0x0000(r21) | 001b1ec8: a6a20000 sh r2,0x0000(r21) | ||
− | 001b1ecc: 0c00496a jal 0x000125a8 | + | 001b1ecc: 0c00496a jal 0x000125a8 [[000125a8 - 00012608]] - play audio |
− | 001b1ed0: a6a30002 sh r3,0x0002(r21) | + | 001b1ed0: a6a30002 sh r3,0x0002(r21) stores the point directly above the unit? |
− | 001b1ed4: 34050001 ori r5,r0,0x0001 | + | 001b1ed4: 34050001 ori r5,r0,0x0001 return r5 = 1? |
001b1ed8: 3c03801c lui r3,0x801c | 001b1ed8: 3c03801c lui r3,0x801c | ||
001b1edc: 8c63c098 lw r3,-0x3f68(r3) | 001b1edc: 8c63c098 lw r3,-0x3f68(r3) | ||
001b1ee0: 34020002 ori r2,r0,0x0002 | 001b1ee0: 34020002 ori r2,r0,0x0002 | ||
001b1ee4: 0806c9e9 j 0x001b27a4 | 001b1ee4: 0806c9e9 j 0x001b27a4 | ||
− | 001b1ee8: ac620008 sw r2,0x0008(r3) | + | 001b1ee8: ac620008 sw r2,0x0008(r3) set execution phase to executing |
+ | |||
+ | if executing: | ||
001b1eec: 3c02801c lui r2,0x801c | 001b1eec: 3c02801c lui r2,0x801c | ||
− | 001b1ef0: 8c42bf38 lw r2,-0x40c8(r2) | + | 001b1ef0: 8c42bf38 lw r2,-0x40c8(r2) ? |
001b1ef4: 00000000 nop | 001b1ef4: 00000000 nop | ||
001b1ef8: 14400080 bne r2,r0,0x001b20fc | 001b1ef8: 14400080 bne r2,r0,0x001b20fc | ||
Line 193: | Line 197: | ||
001b1f04: 8442bf0c lh r2,-0x40f4(r2) | 001b1f04: 8442bf0c lh r2,-0x40f4(r2) | ||
001b1f08: 3c03801c lui r3,0x801c | 001b1f08: 3c03801c lui r3,0x801c | ||
− | 001b1f0c: 8c63bf30 lw r3,-0x40d0(r3) | + | 001b1f0c: 8c63bf30 lw r3,-0x40d0(r3) BBval 7 (determines time between summoning more lines?) |
001b1f10: 00000000 nop | 001b1f10: 00000000 nop | ||
001b1f14: 0043102a slt r2,r2,r3 | 001b1f14: 0043102a slt r2,r2,r3 | ||
001b1f18: 10400078 beq r2,r0,0x001b20fc | 001b1f18: 10400078 beq r2,r0,0x001b20fc | ||
001b1f1c: 00000000 nop | 001b1f1c: 00000000 nop | ||
− | 001b1f20: 0c0088c3 jal 0x0002230c | + | 001b1f20: 0c0088c3 jal 0x0002230c RNG call |
001b1f24: 00000000 nop | 001b1f24: 00000000 nop | ||
001b1f28: 3c03801c lui r3,0x801c | 001b1f28: 3c03801c lui r3,0x801c | ||
− | 001b1f2c: 8c63bf28 lw r3,-0x40d8(r3) | + | 001b1f2c: 8c63bf28 lw r3,-0x40d8(r3) BBval 6 |
001b1f30: 00000000 nop | 001b1f30: 00000000 nop | ||
− | 001b1f34: 0043001a div r2,r3 | + | 001b1f34: 0043001a div r2,r3 RNG / bb6 (determines how often something happens?) |
001b1f38: 00001810 mfhi r3 | 001b1f38: 00001810 mfhi r3 | ||
001b1f3c: 00000000 nop | 001b1f3c: 00000000 nop | ||
− | 001b1f40: 1460006e bne r3,r0,0x001b20fc | + | 001b1f40: 1460006e bne r3,r0,0x001b20fc branch if not 0 |
001b1f44: 00000000 nop | 001b1f44: 00000000 nop | ||
001b1f48: 00009021 addu r18,r0,r0 | 001b1f48: 00009021 addu r18,r0,r0 | ||
Line 213: | Line 217: | ||
001b1f54: 92220f3a lbu r2,0x0f3a(r17) | 001b1f54: 92220f3a lbu r2,0x0f3a(r17) | ||
001b1f58: 00000000 nop | 001b1f58: 00000000 nop | ||
− | 001b1f5c: 14400062 bne r2,r0,0x001b20e8 | + | 001b1f5c: 14400062 bne r2,r0,0x001b20e8 branch if not 0? |
001b1f60: 00000000 nop | 001b1f60: 00000000 nop | ||
− | 001b1f64: 0c06b6cf jal 0x001adb3c | + | 001b1f64: 0c06b6cf jal 0x001adb3c [[001adb3c - 001adc20]] |
001b1f68: 00000000 nop | 001b1f68: 00000000 nop | ||
001b1f6c: 305300ff andi r19,r2,0x00ff | 001b1f6c: 305300ff andi r19,r2,0x00ff | ||
001b1f70: 12600062 beq r19,r0,0x001b20fc | 001b1f70: 12600062 beq r19,r0,0x001b20fc | ||
− | 001b1f74: a2220f3a sb r2,0x0f3a(r17) | + | 001b1f74: a2220f3a sb r2,0x0f3a(r17) set to a non-0 value? (animate every... other frame?) |
001b1f78: 96a2112c lhu r2,0x112c(r21) | 001b1f78: 96a2112c lhu r2,0x112c(r21) | ||
001b1f7c: 00000000 nop | 001b1f7c: 00000000 nop | ||
001b1f80: 24420001 addiu r2,r2,0x0001 | 001b1f80: 24420001 addiu r2,r2,0x0001 | ||
− | 001b1f84: 0c0088c3 jal 0x0002230c | + | 001b1f84: 0c0088c3 jal 0x0002230c RNG call as theta |
− | 001b1f88: a6a2112c sh r2,0x112c(r21) | + | 001b1f88: a6a2112c sh r2,0x112c(r21) timer? |
001b1f8c: 8ea31130 lw r3,0x1130(r21) | 001b1f8c: 8ea31130 lw r3,0x1130(r21) | ||
001b1f90: 304201ff andi r2,r2,0x01ff | 001b1f90: 304201ff andi r2,r2,0x01ff | ||
001b1f94: 0043a021 addu r20,r2,r3 | 001b1f94: 0043a021 addu r20,r2,r3 | ||
− | 001b1f98: 02802021 addu r4,r20,r0 | + | 001b1f98: 02802021 addu r4,r20,r0 theta as argument |
− | 001b1f9c: 24630571 addiu r3,r3,0x0571 | + | 001b1f9c: 24630571 addiu r3,r3,0x0571 ? |
− | 001b1fa0: 0c006f0a jal | + | 001b1fa0: 0c006f0a jal 0x0001bc28 [[Cos call function]] - are we figuring out where to load in a line? |
001b1fa4: aea31130 sw r3,0x1130(r21) | 001b1fa4: aea31130 sw r3,0x1130(r21) | ||
− | 001b1fa8: 8ea31144 lw r3,0x1144(r21) | + | 001b1fa8: 8ea31144 lw r3,0x1144(r21) ? |
001b1fac: 00000000 nop | 001b1fac: 00000000 nop | ||
001b1fb0: 00430018 mult r2,r3 | 001b1fb0: 00430018 mult r2,r3 | ||
Line 247: | Line 251: | ||
001b1fdc: 00300821 addu r1,r1,r16 | 001b1fdc: 00300821 addu r1,r1,r16 | ||
001b1fe0: ac229314 sw r2,-0x6cec(r1) | 001b1fe0: ac229314 sw r2,-0x6cec(r1) | ||
− | 001b1fe4: 0c006ed7 jal | + | 001b1fe4: 0c006ed7 jal 0x0001bb5c [[Call Sin function]] |
001b1fe8: 02802021 addu r4,r20,r0 | 001b1fe8: 02802021 addu r4,r20,r0 | ||
001b1fec: 8ea31144 lw r3,0x1144(r21) | 001b1fec: 8ea31144 lw r3,0x1144(r21) | ||
Line 260: | Line 264: | ||
001b2010: 00300821 addu r1,r1,r16 | 001b2010: 00300821 addu r1,r1,r16 | ||
001b2014: ac229318 sw r2,-0x6ce8(r1) | 001b2014: ac229318 sw r2,-0x6ce8(r1) | ||
− | 001b2018: 0c0088c3 jal 0x0002230c | + | 001b2018: 0c0088c3 jal 0x0002230c rng call |
001b201c: 00000000 nop | 001b201c: 00000000 nop | ||
001b2020: 8ea31138 lw r3,0x1138(r21) | 001b2020: 8ea31138 lw r3,0x1138(r21) | ||
Line 270: | Line 274: | ||
001b2038: 00621823 subu r3,r3,r2 | 001b2038: 00621823 subu r3,r3,r2 | ||
001b203c: 2474f800 addiu r20,r3,0xf800 | 001b203c: 2474f800 addiu r20,r3,0xf800 | ||
− | 001b2040: 0c006f0a jal | + | 001b2040: 0c006f0a jal 0x0001bc28 how much of this is summoning lines? uh... [[Cos call function]] |
001b2044: 02802021 addu r4,r20,r0 | 001b2044: 02802021 addu r4,r20,r0 | ||
001b2048: 8ea31134 lw r3,0x1134(r21) | 001b2048: 8ea31134 lw r3,0x1134(r21) | ||
Line 279: | Line 283: | ||
001b205c: 00300821 addu r1,r1,r16 | 001b205c: 00300821 addu r1,r1,r16 | ||
001b2060: ac229320 sw r2,-0x6ce0(r1) | 001b2060: ac229320 sw r2,-0x6ce0(r1) | ||
− | 001b2064: 0c006ed7 jal | + | 001b2064: 0c006ed7 jal 0x0001bb5c |
001b2068: 02802021 addu r4,r20,r0 | 001b2068: 02802021 addu r4,r20,r0 | ||
001b206c: 8ea31134 lw r3,0x1134(r21) | 001b206c: 8ea31134 lw r3,0x1134(r21) | ||
Line 312: | Line 316: | ||
001b20e0: 0806c83f j 0x001b20fc | 001b20e0: 0806c83f j 0x001b20fc | ||
001b20e4: a6200f38 sh r0,0x0f38(r17) | 001b20e4: a6200f38 sh r0,0x0f38(r17) | ||
+ | |||
+ | |||
001b20e8: 26310020 addiu r17,r17,0x0020 | 001b20e8: 26310020 addiu r17,r17,0x0020 | ||
001b20ec: 26520001 addiu r18,r18,0x0001 | 001b20ec: 26520001 addiu r18,r18,0x0001 | ||
Line 740: | Line 746: | ||
001b2790: 0806c9ea j 0x001b27a8 | 001b2790: 0806c9ea j 0x001b27a8 | ||
001b2794: 00a01021 addu r2,r5,r0 | 001b2794: 00a01021 addu r2,r5,r0 | ||
+ | |||
+ | |||
001b2798: 0c004a64 jal 0x00012990 | 001b2798: 0c004a64 jal 0x00012990 | ||
001b279c: 3404001f ori r4,r0,0x001f | 001b279c: 3404001f ori r4,r0,0x001f | ||
001b27a0: 00002821 addu r5,r0,r0 | 001b27a0: 00002821 addu r5,r0,r0 | ||
+ | |||
+ | Return | ||
001b27a4: 00a01021 addu r2,r5,r0 | 001b27a4: 00a01021 addu r2,r5,r0 | ||
001b27a8: 8fbf009c lw r31,0x009c(r29) | 001b27a8: 8fbf009c lw r31,0x009c(r29) |
Latest revision as of 04:10, 18 June 2023
001b1c04: 3c04801c lui r4,0x801c 001b1c08: 8c84c098 lw r4,-0x3f68(r4) pointer to effect table of current effect (0x801b8b9c) 001b1c0c: 27bdff60 addiu r29,r29,0xff60 001b1c10: afb5008c sw r21,0x008c(r29) 001b1c14: 3c15801c lui r21,0x801c 001b1c18: 26b5ade0 addiu r21,r21,0xade0 001b1c1c: afbf009c sw r31,0x009c(r29) 001b1c20: afbe0098 sw r30,0x0098(r29) 001b1c24: afb70094 sw r23,0x0094(r29) 001b1c28: afb60090 sw r22,0x0090(r29) 001b1c2c: afb40088 sw r20,0x0088(r29) 001b1c30: afb30084 sw r19,0x0084(r29) 001b1c34: afb20080 sw r18,0x0080(r29) 001b1c38: afb1007c sw r17,0x007c(r29) 001b1c3c: afb00078 sw r16,0x0078(r29) 001b1c40: 8c830008 lw r3,0x0008(r4) load execution phase 001b1c44: 34020002 ori r2,r0,0x0002 001b1c48: 106200a8 beq r3,r2,0x001b1eec branch if executing 001b1c4c: 2c620003 sltiu r2,r3,0x0003 001b1c50: 10400005 beq r2,r0,0x001b1c68 branch if finalising 001b1c54: 34020001 ori r2,r0,0x0001 001b1c58: 10620008 beq r3,r2,0x001b1c7c branch if initialising 001b1c5c: 00a01021 addu r2,r5,r0 r2 = r5 (this seems totally erroneous? unless this routine parses an argument... to itself?) 001b1c60: 0806c9ea j 0x001b27a8 001b1c64: 00000000 nop 001b1c68: 34020003 ori r2,r0,0x0003 001b1c6c: 1062015e beq r3,r2,0x001b21e8 001b1c70: 00a01021 addu r2,r5,r0 001b1c74: 0806c9ea j 0x001b27a8 001b1c78: 00000000 nop
Initialising spell lines:
001b1c7c: 94820004 lhu r2,0x0004(r4) load current particle effect 001b1c80: 94840006 lhu r4,0x0006(r4) load effect element, but not in awful format? 001b1c84: 00021080 sll r2,r2,0x02 001b1c88: 3c01801c lui r1,0x801c 001b1c8c: 00220821 addu r1,r1,r2 001b1c90: 843084de lh r16,-0x7b22(r1) load current particle's 3rd particle flag (BB) 001b1c94: 0c06b7eb jal 0x001adfac Get Ninja Ball effect 001b1c98: 00009021 addu r18,r0,r0 r18 = 0 001b1c9c: 3c05801c lui r5,0x801c 001b1ca0: 8ca5c098 lw r5,-0x3f68(r5) load pointer to effect data 001b1ca4: 001018c0 sll r3,r16,0x03 001b1ca8: 00701823 subu r3,r3,r16 001b1cac: 00031840 sll r3,r3,0x01 BB * 0xe 001b1cb0: a4a20006 sh r2,0x0006(r5) store shitty element format in effect data 001b1cb4: 3c01801c lui r1,0x801c 001b1cb8: 00230821 addu r1,r1,r3 801c0000 + BB * 0xe 001b1cbc: 84228880 lh r2,-0x7780(r1) load 0x801b8880 + BB * 0xe (?) (BB = 0 loads 0x0000, BB = 1 loads 0x0200, BB = 2 loads 0x0100) 001b1cc0: 3c01801c lui r1,0x801c 001b1cc4: ac22bf14 sw r2,-0x40ec(r1) store in 0x801bbf14 001b1cc8: 3c01801c lui r1,0x801c 001b1ccc: 00230821 addu r1,r1,r3 001b1cd0: 84228882 lh r2,-0x777e(r1) load second halfword relative to BB * 0xe (BB = 0 loads 0x0002, BB = 1 loads 0x8000, BB = 2 loads 0x0100) 001b1cd4: 3c01801c lui r1,0x801c 001b1cd8: ac22bf18 sw r2,-0x40e8(r1) store in 0x801bbf18 001b1cdc: 3c01801c lui r1,0x801c 001b1ce0: 00230821 addu r1,r1,r3 001b1ce4: 84228884 lh r2,-0x777c(r1) load next halfword (BB = 1, 0x8000, BB = 1, 0x2000, BB = 2, 0x0000) 001b1ce8: 3c01801c lui r1,0x801c 001b1cec: ac22bf1c sw r2,-0x40e4(r1) store in 0x801bbf1c 001b1cf0: 3c01801c lui r1,0x801c 001b1cf4: 00230821 addu r1,r1,r3 001b1cf8: 84228886 lh r2,-0x777a(r1) next halfword (BB = 0, 0x2000, BB = 1, 0x0001, BB = 2, 0x0100) 001b1cfc: 3c01801c lui r1,0x801c 001b1d00: ac22bf20 sw r2,-0x40e0(r1) store in 0x801bbf20 001b1d04: 3c01801c lui r1,0x801c 001b1d08: 00230821 addu r1,r1,r3 001b1d0c: 84228888 lh r2,-0x7778(r1) next halfword (BB = 0, 0x0001, BB = 1, 0x0201, BB = 2, 0xFFFF) 001b1d10: 3411001c ori r17,r0,0x001c step over the drawmode instruction to next primative 001b1d14: 3c01801c lui r1,0x801c 001b1d18: ac22bf24 sw r2,-0x40dc(r1) store in 0x801bbf24 001b1d1c: 3c01801c lui r1,0x801c 001b1d20: 00230821 addu r1,r1,r3 001b1d24: 9022888a lbu r2,-0x7776(r1) next halfword (BB = 0, 0x0207, BB = 1, 0x000a, BB = 2, 0x0100) 001b1d28: 26a40004 addiu r4,r21,0x0004 r4 = 0x801bade4 001b1d2c: 3c01801c lui r1,0x801c 001b1d30: ac22bf28 sw r2,-0x40d8(r1) store in 0x801bbf28 001b1d34: 94a20006 lhu r2,0x0006(r5) load element from effect data table 001b1d38: 34060001 ori r6,r0,0x0001 value 2 = 1 001b1d3c: 3c01801c lui r1,0x801c 001b1d40: ac22bf2c sw r2,-0x40d4(r1) store element in 0x801bbf2c 001b1d44: 3c01801c lui r1,0x801c 001b1d48: 00230821 addu r1,r1,r3 001b1d4c: 9022888c lbu r2,-0x7774(r1) load next byte (BB = 0, 0x0a, BB = 1, 0x01, BB = 2, 0xff) 001b1d50: 34070020 ori r7,r0,0x0020 value 3 = 0x20 001b1d54: 3c01801c lui r1,0x801c 001b1d58: ac22bf30 sw r2,-0x40d0(r1) store in 0x801bbf30 001b1d5c: 3c01801c lui r1,0x801c 001b1d60: 00230821 addu r1,r1,r3 001b1d64: 9022888d lbu r2,-0x7773(r1) load next byte (BB = 0, 0x00, BB = 1, 0x00, BB = 2, 0xFF) 001b1d68: afa00010 sw r0,0x0010(r29) parse no rectangle to draw from 001b1d6c: 3c01801c lui r1,0x801c 001b1d70: ac22bf34 sw r2,-0x40cc(r1) store in 0x801bbf34 001b1d74: 0c009533 jal 0x000254cc P41 SetDrawMode sets drawmode 0x620 001b1d78: 34050001 ori r5,r0,0x0001 r5 = 1 001b1d7c: 26a40010 addiu r4,r21,0x0010 0x801badf0 001b1d80: 34050001 ori r5,r0,0x0001 draw privaleges = allowed 001b1d84: 34060001 ori r6,r0,0x0001 dithering = on 001b1d88: 34070020 ori r7,r0,0x0020 tpage = draw in tpage 0x20 001b1d8c: 0c009533 jal 0x000254cc P41 SetDrawMode sets drawmode 0x620 001b1d90: afa00010 sw r0,0x0010(r29) null rectangle 001b1d94: 00009821 addu r19,r0,r0 001b1d98: 02b18021 addu r16,r21,r17 r16 = primative address for loop 001b1d9c: 0c008f7e jal 0x00023df8 P28 SetLineG2 create a line primative 001b1da0: 02002021 addu r4,r16,r0 value 1 = prim address 001b1da4: 02002021 addu r4,r16,r0 value 1 = prim address 001b1da8: 0c008f1a jal 0x00023c68 P10 SetSemiTrans 001b1dac: 34050001 ori r5,r0,0x0001 semi transparent line 001b1db0: 26730001 addiu r19,r19,0x0001 r19 = 1 001b1db4: 2a620060 slti r2,r19,0x0060 001b1db8: 1440fff8 bne r2,r0,0x001b1d9c loop 96 times (spell lines are 96 in quantity. wild) 001b1dbc: 26100014 addiu r16,r16,0x0014 increment primative to store to next 001b1dc0: 26520001 addiu r18,r18,0x0001 001b1dc4: 2a420002 slti r2,r18,0x0002 001b1dc8: 1440fff2 bne r2,r0,0x001b1d94 loop through all of that twice over, again 001b1dcc: 26310780 addiu r17,r17,0x0780 001b1dd0: 3412000f ori r18,r0,0x000f r18 = 0xf 001b1dd4: 26a201e0 addiu r2,r21,0x01e0 r2 = 0x801bafc0 001b1dd8: a0400f3a sb r0,0x0f3a(r2) 801bbefa = 0 001b1ddc: 2652ffff addiu r18,r18,0xffff subtract 1 001b1de0: 0641fffd bgez r18,0x001b1dd8 loop 15 times 001b1de4: 2442ffe0 addiu r2,r2,0xffe0 - 0x20, for a total of 1e0. 001b1de8: 34120001 ori r18,r0,0x0001 r18 = 1 001b1dec: 26a20001 addiu r2,r21,0x0001 add 1 001b1df0: a6a0112c sh r0,0x112c(r21) 001b1df4: a2a0112e sb r0,0x112e(r21) 001b1df8: a2a0112f sb r0,0x112f(r21) 001b1dfc: a040111c sb r0,0x111c(r2) clear lots of stuff. 001b1e00: 2652ffff addiu r18,r18,0xffff 001b1e04: 0641fffd bgez r18,0x001b1dfc repeat once 001b1e08: 2442ffff addiu r2,r2,0xffff subtract 1 001b1e0c: 3412000d ori r18,r0,0x000d 001b1e10: 26a2000d addiu r2,r21,0x000d 001b1e14: a040111e sb r0,0x111e(r2) 001b1e18: 2652ffff addiu r18,r18,0xffff 001b1e1c: 0641fffd bgez r18,0x001b1e14 001b1e20: 2442ffff addiu r2,r2,0xffff 001b1e24: 3c02801c lui r2,0x801c 001b1e28: 8c42c098 lw r2,-0x3f68(r2) load current effecct target data 001b1e2c: 00000000 nop 001b1e30: 90440012 lbu r4,0x0012(r2) load unit misc ID 001b1e34: 0c023104 jal 0x0008c410 Get Unit Screen Location Data Pointer 001b1e38: 00000000 nop 001b1e3c: 3c03801c lui r3,0x801c 001b1e40: 8c63c098 lw r3,-0x3f68(r3) 001b1e44: 00000000 nop 001b1e48: 90640012 lbu r4,0x0012(r3) 001b1e4c: 0c02371d jal 0x0008dc74 finds unit's height value 001b1e50: 00408021 addu r16,r2,r0 r16 = unit screen location data 001b1e54: 24520008 addiu r18,r2,0x0008 001b1e58: 00121023 subu r2,r0,r18 height + 8 negate 001b1e5c: 3c01801c lui r1,0x801c 001b1e60: a42287c6 sh r2,-0x783a(r1) store unit's height 801b87c6 001b1e64: 3c01801c lui r1,0x801c 001b1e68: a4228798 sh r2,-0x7868(r1) store unit's height 801b8798 001b1e6c: 96020000 lhu r2,0x0000(r16) load unit's X pos 001b1e70: 00000000 nop 001b1e74: a7a20018 sh r2,0x0018(r29) store xpos in 0x18 SP 001b1e78: 96020004 lhu r2,0x0004(r16) load unit's Ypos 001b1e7c: 3c11800a lui r17,0x800a 001b1e80: 26318a24 addiu r17,r17,0x8a24 80098a24 <- this seems to be out rotation and translation dedicated space for today 001b1e84: a7a2001c sh r2,0x001c(r29) store ypos in 0x1c SP 001b1e88: 96020002 lhu r2,0x0002(r16) 001b1e8c: 02202021 addu r4,r17,r0 001b1e90: 00521023 subu r2,r2,r18 001b1e94: 0c00742a jal 0x0001d0a8 Store Rotation matrix elements to GTE 001b1e98: a7a2001a sh r2,0x001a(r29) store height negated in 0x1a SP 001b1e9c: 0c00744e jal 0x0001d138 Store Translation Vectors to GTE 001b1ea0: 02202021 addu r4,r17,r0 001b1ea4: 27a40018 addiu r4,r29,0x0018 001b1ea8: 27a50030 addiu r5,r29,0x0030 001b1eac: 0c00755e jal 0x0001d578 Get vector*matrix from GTE 001b1eb0: 27a6003c addiu r6,r29,0x003c 001b1eb4: 97a20030 lhu r2,0x0030(r29) 001b1eb8: 97a30034 lhu r3,0x0034(r29) 001b1ebc: 3404001f ori r4,r0,0x001f play sound 0x1f (magic charging) 001b1ec0: aea01130 sw r0,0x1130(r21) 001b1ec4: aea01158 sw r0,0x1158(r21) blank some more line values? 001b1ec8: a6a20000 sh r2,0x0000(r21) 001b1ecc: 0c00496a jal 0x000125a8 000125a8 - 00012608 - play audio 001b1ed0: a6a30002 sh r3,0x0002(r21) stores the point directly above the unit? 001b1ed4: 34050001 ori r5,r0,0x0001 return r5 = 1? 001b1ed8: 3c03801c lui r3,0x801c 001b1edc: 8c63c098 lw r3,-0x3f68(r3) 001b1ee0: 34020002 ori r2,r0,0x0002 001b1ee4: 0806c9e9 j 0x001b27a4 001b1ee8: ac620008 sw r2,0x0008(r3) set execution phase to executing
if executing:
001b1eec: 3c02801c lui r2,0x801c 001b1ef0: 8c42bf38 lw r2,-0x40c8(r2) ? 001b1ef4: 00000000 nop 001b1ef8: 14400080 bne r2,r0,0x001b20fc 001b1efc: 00000000 nop 001b1f00: 3c02801c lui r2,0x801c 001b1f04: 8442bf0c lh r2,-0x40f4(r2) 001b1f08: 3c03801c lui r3,0x801c 001b1f0c: 8c63bf30 lw r3,-0x40d0(r3) BBval 7 (determines time between summoning more lines?) 001b1f10: 00000000 nop 001b1f14: 0043102a slt r2,r2,r3 001b1f18: 10400078 beq r2,r0,0x001b20fc 001b1f1c: 00000000 nop 001b1f20: 0c0088c3 jal 0x0002230c RNG call 001b1f24: 00000000 nop 001b1f28: 3c03801c lui r3,0x801c 001b1f2c: 8c63bf28 lw r3,-0x40d8(r3) BBval 6 001b1f30: 00000000 nop 001b1f34: 0043001a div r2,r3 RNG / bb6 (determines how often something happens?) 001b1f38: 00001810 mfhi r3 001b1f3c: 00000000 nop 001b1f40: 1460006e bne r3,r0,0x001b20fc branch if not 0 001b1f44: 00000000 nop 001b1f48: 00009021 addu r18,r0,r0 001b1f4c: 02a08821 addu r17,r21,r0 001b1f50: 0000b021 addu r22,r0,r0 001b1f54: 92220f3a lbu r2,0x0f3a(r17) 001b1f58: 00000000 nop 001b1f5c: 14400062 bne r2,r0,0x001b20e8 branch if not 0? 001b1f60: 00000000 nop 001b1f64: 0c06b6cf jal 0x001adb3c 001adb3c - 001adc20 001b1f68: 00000000 nop 001b1f6c: 305300ff andi r19,r2,0x00ff 001b1f70: 12600062 beq r19,r0,0x001b20fc 001b1f74: a2220f3a sb r2,0x0f3a(r17) set to a non-0 value? (animate every... other frame?) 001b1f78: 96a2112c lhu r2,0x112c(r21) 001b1f7c: 00000000 nop 001b1f80: 24420001 addiu r2,r2,0x0001 001b1f84: 0c0088c3 jal 0x0002230c RNG call as theta 001b1f88: a6a2112c sh r2,0x112c(r21) timer? 001b1f8c: 8ea31130 lw r3,0x1130(r21) 001b1f90: 304201ff andi r2,r2,0x01ff 001b1f94: 0043a021 addu r20,r2,r3 001b1f98: 02802021 addu r4,r20,r0 theta as argument 001b1f9c: 24630571 addiu r3,r3,0x0571 ? 001b1fa0: 0c006f0a jal 0x0001bc28 Cos call function - are we figuring out where to load in a line? 001b1fa4: aea31130 sw r3,0x1130(r21) 001b1fa8: 8ea31144 lw r3,0x1144(r21) ? 001b1fac: 00000000 nop 001b1fb0: 00430018 mult r2,r3 001b1fb4: 00138040 sll r16,r19,0x01 001b1fb8: 02138021 addu r16,r16,r19 001b1fbc: 00101100 sll r2,r16,0x04 001b1fc0: 02028021 addu r16,r16,r2 001b1fc4: 86a30000 lh r3,0x0000(r21) 001b1fc8: 00108080 sll r16,r16,0x02 001b1fcc: 00031b00 sll r3,r3,0x0c 001b1fd0: 00001012 mflo r2 001b1fd4: 00431021 addu r2,r2,r3 001b1fd8: 3c01801c lui r1,0x801c 001b1fdc: 00300821 addu r1,r1,r16 001b1fe0: ac229314 sw r2,-0x6cec(r1) 001b1fe4: 0c006ed7 jal 0x0001bb5c Call Sin function 001b1fe8: 02802021 addu r4,r20,r0 001b1fec: 8ea31144 lw r3,0x1144(r21) 001b1ff0: 00000000 nop 001b1ff4: 00430018 mult r2,r3 001b1ff8: 86a30002 lh r3,0x0002(r21) 001b1ffc: 00000000 nop 001b2000: 00031b00 sll r3,r3,0x0c 001b2004: 00001012 mflo r2 001b2008: 00431021 addu r2,r2,r3 001b200c: 3c01801c lui r1,0x801c 001b2010: 00300821 addu r1,r1,r16 001b2014: ac229318 sw r2,-0x6ce8(r1) 001b2018: 0c0088c3 jal 0x0002230c rng call 001b201c: 00000000 nop 001b2020: 8ea31138 lw r3,0x1138(r21) 001b2024: 00000000 nop 001b2028: 0043001a div r2,r3 001b202c: 00001810 mfhi r3 001b2030: 8ea2113c lw r2,0x113c(r21) 001b2034: 02831821 addu r3,r20,r3 001b2038: 00621823 subu r3,r3,r2 001b203c: 2474f800 addiu r20,r3,0xf800 001b2040: 0c006f0a jal 0x0001bc28 how much of this is summoning lines? uh... Cos call function 001b2044: 02802021 addu r4,r20,r0 001b2048: 8ea31134 lw r3,0x1134(r21) 001b204c: 00000000 nop 001b2050: 00430018 mult r2,r3 001b2054: 00001012 mflo r2 001b2058: 3c01801c lui r1,0x801c 001b205c: 00300821 addu r1,r1,r16 001b2060: ac229320 sw r2,-0x6ce0(r1) 001b2064: 0c006ed7 jal 0x0001bb5c 001b2068: 02802021 addu r4,r20,r0 001b206c: 8ea31134 lw r3,0x1134(r21) 001b2070: 00000000 nop 001b2074: 00430018 mult r2,r3 001b2078: 0000a021 addu r20,r0,r0 001b207c: 02c02021 addu r4,r22,r0 001b2080: 34020001 ori r2,r0,0x0001 001b2084: 3c01801c lui r1,0x801c 001b2088: 00300821 addu r1,r1,r16 001b208c: a422930c sh r2,-0x6cf4(r1) 001b2090: 00001012 mflo r2 001b2094: 3c01801c lui r1,0x801c 001b2098: 00300821 addu r1,r1,r16 001b209c: ac229324 sw r2,-0x6cdc(r1) 001b20a0: 02a41821 addu r3,r21,r4 001b20a4: 3c01801c lui r1,0x801c 001b20a8: 00300821 addu r1,r1,r16 001b20ac: 8c229314 lw r2,-0x6cec(r1) 001b20b0: 00000000 nop 001b20b4: 00021303 sra r2,r2,0x0c 001b20b8: a4620f1c sh r2,0x0f1c(r3) 001b20bc: 3c01801c lui r1,0x801c 001b20c0: 00300821 addu r1,r1,r16 001b20c4: 8c229318 lw r2,-0x6ce8(r1) 001b20c8: 26940001 addiu r20,r20,0x0001 001b20cc: 00021303 sra r2,r2,0x0c 001b20d0: a4620f1e sh r2,0x0f1e(r3) 001b20d4: 2a820007 slti r2,r20,0x0007 001b20d8: 1440fff1 bne r2,r0,0x001b20a0 001b20dc: 24840004 addiu r4,r4,0x0004 001b20e0: 0806c83f j 0x001b20fc 001b20e4: a6200f38 sh r0,0x0f38(r17)
001b20e8: 26310020 addiu r17,r17,0x0020 001b20ec: 26520001 addiu r18,r18,0x0001 001b20f0: 2a420010 slti r2,r18,0x0010 001b20f4: 1440ff97 bne r2,r0,0x001b1f54 001b20f8: 26d60020 addiu r22,r22,0x0020 001b20fc: 92a2112f lbu r2,0x112f(r21) 001b2100: 00000000 nop 001b2104: 2c42000e sltiu r2,r2,0x000e 001b2108: 10400037 beq r2,r0,0x001b21e8 001b210c: 00000000 nop 001b2110: 3c04801c lui r4,0x801c 001b2114: 248487b6 addiu r4,r4,0x87b6 001b2118: 90820000 lbu r2,0x0000(r4) 001b211c: 00000000 nop 001b2120: 18400031 blez r2,0x001b21e8 001b2124: 00009021 addu r18,r0,r0 001b2128: 2491ffd6 addiu r17,r4,0xffd6 001b212c: 00009821 addu r19,r0,r0 001b2130: 02b31021 addu r2,r21,r19 001b2134: 9042111e lbu r2,0x111e(r2) 001b2138: 00000000 nop 001b213c: 10400005 beq r2,r0,0x001b2154 001b2140: 00000000 nop 001b2144: 26730001 addiu r19,r19,0x0001 001b2148: 2a62000e slti r2,r19,0x000e 001b214c: 1440fff9 bne r2,r0,0x001b2134 001b2150: 02b31021 addu r2,r21,r19 001b2154: 0c06b6cf jal 0x001adb3c 001b2158: 00000000 nop 001b215c: 02b31821 addu r3,r21,r19 001b2160: a062111e sb r2,0x111e(r3) 001b2164: 9062111e lbu r2,0x111e(r3) 001b2168: 00000000 nop 001b216c: 1040001e beq r2,r0,0x001b21e8 001b2170: 02202021 addu r4,r17,r0 001b2174: 00028040 sll r16,r2,0x01 001b2178: 02028021 addu r16,r16,r2 001b217c: 00101100 sll r2,r16,0x04 001b2180: 02028021 addu r16,r16,r2 001b2184: 00108080 sll r16,r16,0x02 001b2188: 3c02801c lui r2,0x801c 001b218c: 24429278 addiu r2,r2,0x9278 001b2190: 02028021 addu r16,r16,r2 001b2194: 0c069fd7 jal 0x001a7f5c 001b2198: 26050098 addiu r5,r16,0x0098 001b219c: 3404000c ori r4,r0,0x000c 001b21a0: 34057acf ori r5,r0,0x7acf 001b21a4: 02003021 addu r6,r16,r0 001b21a8: 0c06c322 jal 0x001b0c88 001b21ac: a4c20094 sh r2,0x0094(r6) 001b21b0: 92a2112f lbu r2,0x112f(r21) 001b21b4: 00000000 nop 001b21b8: 24420001 addiu r2,r2,0x0001 001b21bc: a2a2112f sb r2,0x112f(r21) 001b21c0: 92a3112f lbu r3,0x112f(r21) 001b21c4: 3402000e ori r2,r0,0x000e 001b21c8: 10620007 beq r3,r2,0x001b21e8 001b21cc: 26520001 addiu r18,r18,0x0001 001b21d0: 3c02801c lui r2,0x801c 001b21d4: 904287b6 lbu r2,-0x784a(r2) 001b21d8: 00000000 nop 001b21dc: 0242102a slt r2,r18,r2 001b21e0: 1440ffd3 bne r2,r0,0x001b2130 001b21e4: 00009821 addu r19,r0,r0 001b21e8: 0c06a689 jal 0x001a9a24 001b21ec: 00009021 addu r18,r0,r0 001b21f0: 0c06a66b jal 0x001a99ac 001b21f4: 34040230 ori r4,r0,0x0230 001b21f8: 02b28021 addu r16,r21,r18 001b21fc: 9213111c lbu r19,0x111c(r16) 001b2200: 00000000 nop 001b2204: 1260000c beq r19,r0,0x001b2238 001b2208: 26520001 addiu r18,r18,0x0001 001b220c: 0c06a9f7 jal 0x001aa7dc 001b2210: 02602021 addu r4,r19,r0 001b2214: 14400009 bne r2,r0,0x001b223c 001b2218: 2a420002 slti r2,r18,0x0002 001b221c: 0c06b709 jal 0x001adc24 001b2220: 02602021 addu r4,r19,r0 001b2224: a200111c sb r0,0x111c(r16) 001b2228: 92a2112e lbu r2,0x112e(r21) 001b222c: 00000000 nop 001b2230: 2442ffff addiu r2,r2,0xffff 001b2234: a2a2112e sb r2,0x112e(r21) 001b2238: 2a420002 slti r2,r18,0x0002 001b223c: 1440ffef bne r2,r0,0x001b21fc 001b2240: 02b28021 addu r16,r21,r18 001b2244: 00009021 addu r18,r0,r0 001b2248: 02b28021 addu r16,r21,r18 001b224c: 9213111e lbu r19,0x111e(r16) 001b2250: 00000000 nop 001b2254: 1260000c beq r19,r0,0x001b2288 001b2258: 26520001 addiu r18,r18,0x0001 001b225c: 0c06a9f7 jal 0x001aa7dc 001b2260: 02602021 addu r4,r19,r0 001b2264: 14400009 bne r2,r0,0x001b228c 001b2268: 2a42000e slti r2,r18,0x000e 001b226c: 0c06b709 jal 0x001adc24 001b2270: 02602021 addu r4,r19,r0 001b2274: a200111e sb r0,0x111e(r16) 001b2278: 92a2112f lbu r2,0x112f(r21) 001b227c: 00000000 nop 001b2280: 2442ffff addiu r2,r2,0xffff 001b2284: a2a2112f sb r2,0x112f(r21) 001b2288: 2a42000e slti r2,r18,0x000e 001b228c: 1440ffef bne r2,r0,0x001b224c 001b2290: 02b28021 addu r16,r21,r18 001b2294: afb50060 sw r21,0x0060(r29) 001b2298: 8ea3114c lw r3,0x114c(r21) 001b229c: afa00068 sw r0,0x0068(r29) 001b22a0: 00031040 sll r2,r3,0x01 001b22a4: 00431021 addu r2,r2,r3 001b22a8: 3c01801c lui r1,0x801c 001b22ac: 00220821 addu r1,r1,r2 001b22b0: 902984c0 lbu r9,-0x7b40(r1) 001b22b4: 00009021 addu r18,r0,r0 001b22b8: afa90040 sw r9,0x0040(r29) 001b22bc: 3c01801c lui r1,0x801c 001b22c0: 00220821 addu r1,r1,r2 001b22c4: 902984c1 lbu r9,-0x7b3f(r1) 001b22c8: 3c08801c lui r8,0x801c 001b22cc: 250888c0 addiu r8,r8,0x88c0 001b22d0: afa90048 sw r9,0x0048(r29) 001b22d4: 3c01801c lui r1,0x801c 001b22d8: 00220821 addu r1,r1,r2 001b22dc: 902284c2 lbu r2,-0x7b3e(r1) 001b22e0: 00000000 nop 001b22e4: afa20050 sw r2,0x0050(r29) 001b22e8: 8fa90060 lw r9,0x0060(r29) 001b22ec: 00000000 nop 001b22f0: 91330f3a lbu r19,0x0f3a(r9) 001b22f4: 00000000 nop 001b22f8: 12600107 beq r19,r0,0x001b2718 001b22fc: 00131040 sll r2,r19,0x01 001b2300: 00531021 addu r2,r2,r19 001b2304: 00021900 sll r3,r2,0x04 001b2308: 00431021 addu r2,r2,r3 001b230c: 00021080 sll r2,r2,0x02 001b2310: 3c04801c lui r4,0x801c 001b2314: 24849278 addiu r4,r4,0x9278 001b2318: 3c01801c lui r1,0x801c 001b231c: 00220821 addu r1,r1,r2 001b2320: 8c259314 lw r5,-0x6cec(r1) 001b2324: 3c01801c lui r1,0x801c 001b2328: 00220821 addu r1,r1,r2 001b232c: 8c239320 lw r3,-0x6ce0(r1) 001b2330: 00442021 addu r4,r2,r4 001b2334: 00a33821 addu r7,r5,r3 001b2338: ac87009c sw r7,0x009c(r4) 001b233c: 3c01801c lui r1,0x801c 001b2340: 00220821 addu r1,r1,r2 001b2344: 8c239318 lw r3,-0x6ce8(r1) 001b2348: 3c01801c lui r1,0x801c 001b234c: 00220821 addu r1,r1,r2 001b2350: 8c229324 lw r2,-0x6cdc(r1) 001b2354: 3c059249 lui r5,0x9249 001b2358: 00628021 addu r16,r3,r2 001b235c: ac9000a0 sw r16,0x00a0(r4) 001b2360: 95220f38 lhu r2,0x0f38(r9) 001b2364: 34a52493 ori r5,r5,0x2493 001b2368: 24420001 addiu r2,r2,0x0001 001b236c: 00021c00 sll r3,r2,0x10 001b2370: 0003bc03 sra r23,r3,0x10 001b2374: 02e50018 mult r23,r5 001b2378: 00031fc3 sra r3,r3,0x1f 001b237c: a5220f38 sh r2,0x0f38(r9) 001b2380: 8ea61140 lw r6,0x1140(r21) 001b2384: 00001010 mfhi r2 001b2388: 00571021 addu r2,r2,r23 001b238c: 00021083 sra r2,r2,0x02 001b2390: 0043b023 subu r22,r2,r3 001b2394: 001610c0 sll r2,r22,0x03 001b2398: 00561023 subu r2,r2,r22 001b239c: 02e2b023 subu r22,r23,r2 001b23a0: 00d7102a slt r2,r6,r23 001b23a4: 14400015 bne r2,r0,0x001b23fc 001b23a8: 00161880 sll r3,r22,0x02 001b23ac: 00072303 sra r4,r7,0x0c 001b23b0: 02e03821 addu r7,r23,r0 001b23b4: 86a50000 lh r5,0x0000(r21) 001b23b8: 34110006 ori r17,r0,0x0006 001b23bc: 0c06a20d jal 0x001a8834 001b23c0: afa80074 sw r8,0x0074(r29) 001b23c4: 00102303 sra r4,r16,0x0c 001b23c8: 8fa90068 lw r9,0x0068(r29) 001b23cc: 00168080 sll r16,r22,0x02 001b23d0: 02098021 addu r16,r16,r9 001b23d4: 02b08021 addu r16,r21,r16 001b23d8: a6020f1c sh r2,0x0f1c(r16) 001b23dc: 86a50002 lh r5,0x0002(r21) 001b23e0: 8ea61140 lw r6,0x1140(r21) 001b23e4: 0c06a20d jal 0x001a8834 001b23e8: 02e03821 addu r7,r23,r0 001b23ec: a6020f1e sh r2,0x0f1e(r16) 001b23f0: 8fa80074 lw r8,0x0074(r29) 001b23f4: 0806c90d j 0x001b2434 001b23f8: 0000a021 addu r20,r0,r0 001b23fc: 8fa90068 lw r9,0x0068(r29) 001b2400: 96a20000 lhu r2,0x0000(r21) 001b2404: 00691821 addu r3,r3,r9 001b2408: 02a31821 addu r3,r21,r3 001b240c: a4620f1c sh r2,0x0f1c(r3) 001b2410: 96a20002 lhu r2,0x0002(r21) 001b2414: 00000000 nop 001b2418: a4620f1e sh r2,0x0f1e(r3) 001b241c: 8ea31140 lw r3,0x1140(r21) 001b2420: 26e2fffa addiu r2,r23,0xfffa 001b2424: 00628823 subu r17,r3,r2 001b2428: 06210002 bgez r17,0x001b2434 001b242c: 0000a021 addu r20,r0,r0 001b2430: 00008821 addu r17,r0,r0 001b2434: 8fa70068 lw r7,0x0068(r29) 001b2438: 00161080 sll r2,r22,0x02 001b243c: 0047f021 addu r30,r2,r7 001b2440: 3c02801c lui r2,0x801c 001b2444: 8c42c090 lw r2,-0x3f70(r2) 001b2448: 00000000 nop 001b244c: 00022100 sll r4,r2,0x04 001b2450: 00822023 subu r4,r4,r2 001b2454: 000421c0 sll r4,r4,0x07 001b2458: 2484001c addiu r4,r4,0x001c 001b245c: 02a42021 addu r4,r21,r4 001b2460: 00121040 sll r2,r18,0x01 001b2464: 00521021 addu r2,r2,r18 001b2468: 00021040 sll r2,r2,0x01 001b246c: 00541021 addu r2,r2,r20 001b2470: 00021880 sll r3,r2,0x02 001b2474: 00621821 addu r3,r3,r2 001b2478: 00031880 sll r3,r3,0x02 001b247c: 02be1021 addu r2,r21,r30 001b2480: 94450f1c lhu r5,0x0f1c(r2) 001b2484: 00838021 addu r16,r4,r3 001b2488: a6050008 sh r5,0x0008(r16) 001b248c: 94420f1e lhu r2,0x0f1e(r2) 001b2490: 00000000 nop 001b2494: a602000a sh r2,0x000a(r16) 001b2498: 8ea31154 lw r3,0x1154(r21) 001b249c: 8fa90040 lw r9,0x0040(r29) 001b24a0: 000310c0 sll r2,r3,0x03 001b24a4: 00431023 subu r2,r2,r3 001b24a8: 00511021 addu r2,r2,r17 001b24ac: 00481021 addu r2,r2,r8 001b24b0: 90420000 lbu r2,0x0000(r2) 001b24b4: 00000000 nop 001b24b8: 01220018 mult r9,r2 001b24bc: 00001012 mflo r2 001b24c0: 00021202 srl r2,r2,0x08 001b24c4: a2020004 sb r2,0x0004(r16) 001b24c8: 8ea31154 lw r3,0x1154(r21) 001b24cc: 8fa90048 lw r9,0x0048(r29) 001b24d0: 000310c0 sll r2,r3,0x03 001b24d4: 00431023 subu r2,r2,r3 001b24d8: 00511021 addu r2,r2,r17 001b24dc: 00481021 addu r2,r2,r8 001b24e0: 90420000 lbu r2,0x0000(r2) 001b24e4: 00000000 nop 001b24e8: 01220018 mult r9,r2 001b24ec: 00001012 mflo r2 001b24f0: 00021202 srl r2,r2,0x08 001b24f4: a2020005 sb r2,0x0005(r16) 001b24f8: 8ea31154 lw r3,0x1154(r21) 001b24fc: 8fa90050 lw r9,0x0050(r29) 001b2500: 000310c0 sll r2,r3,0x03 001b2504: 00431023 subu r2,r2,r3 001b2508: 00511021 addu r2,r2,r17 001b250c: 00481021 addu r2,r2,r8 001b2510: 90420000 lbu r2,0x0000(r2) 001b2514: 00000000 nop 001b2518: 01220018 mult r9,r2 001b251c: 26d6ffff addiu r22,r22,0xffff 001b2520: 27defffc addiu r30,r30,0xfffc 001b2524: 00001012 mflo r2 001b2528: 00021202 srl r2,r2,0x08 001b252c: 06c10003 bgez r22,0x001b253c 001b2530: a2020006 sb r2,0x0006(r16) 001b2534: 24fe0018 addiu r30,r7,0x0018 001b2538: 34160006 ori r22,r0,0x0006 001b253c: 12200002 beq r17,r0,0x001b2548 001b2540: 26f7ffff addiu r23,r23,0xffff 001b2544: 2631ffff addiu r17,r17,0xffff 001b2548: 06e10002 bgez r23,0x001b2554 001b254c: 02be1821 addu r3,r21,r30 001b2550: 00008821 addu r17,r0,r0 001b2554: 94620f1c lhu r2,0x0f1c(r3) 001b2558: 00000000 nop 001b255c: a6020010 sh r2,0x0010(r16) 001b2560: 94620f1e lhu r2,0x0f1e(r3) 001b2564: 00000000 nop 001b2568: a6020012 sh r2,0x0012(r16) 001b256c: 8ea31154 lw r3,0x1154(r21) 001b2570: 8fa90040 lw r9,0x0040(r29) 001b2574: 000310c0 sll r2,r3,0x03 001b2578: 00431023 subu r2,r2,r3 001b257c: 00511021 addu r2,r2,r17 001b2580: 00481021 addu r2,r2,r8 001b2584: 90420000 lbu r2,0x0000(r2) 001b2588: 00000000 nop 001b258c: 01220018 mult r9,r2 001b2590: 00001012 mflo r2 001b2594: 00021202 srl r2,r2,0x08 001b2598: a202000c sb r2,0x000c(r16) 001b259c: 8ea31154 lw r3,0x1154(r21) 001b25a0: 8fa90048 lw r9,0x0048(r29) 001b25a4: 000310c0 sll r2,r3,0x03 001b25a8: 00431023 subu r2,r2,r3 001b25ac: 00511021 addu r2,r2,r17 001b25b0: 00481021 addu r2,r2,r8 001b25b4: 90420000 lbu r2,0x0000(r2) 001b25b8: 00000000 nop 001b25bc: 01220018 mult r9,r2 001b25c0: 00001012 mflo r2 001b25c4: 00021202 srl r2,r2,0x08 001b25c8: a202000d sb r2,0x000d(r16) 001b25cc: 8ea31154 lw r3,0x1154(r21) 001b25d0: 8fa90050 lw r9,0x0050(r29) 001b25d4: 000310c0 sll r2,r3,0x03 001b25d8: 00431023 subu r2,r2,r3 001b25dc: 00511021 addu r2,r2,r17 001b25e0: 00481021 addu r2,r2,r8 001b25e4: 90420000 lbu r2,0x0000(r2) 001b25e8: 00000000 nop 001b25ec: 01220018 mult r9,r2 001b25f0: 8e040008 lw r4,0x0008(r16) 001b25f4: 8e030010 lw r3,0x0010(r16) 001b25f8: 00001012 mflo r2 001b25fc: 00021202 srl r2,r2,0x08 001b2600: 1083002f beq r4,r3,0x001b26c0 001b2604: a202000e sb r2,0x000e(r16) 001b2608: 86030012 lh r3,0x0012(r16) 001b260c: 8604000a lh r4,0x000a(r16) 001b2610: 86020010 lh r2,0x0010(r16) 001b2614: 86050008 lh r5,0x0008(r16) 001b2618: afa70070 sw r7,0x0070(r29) 001b261c: afa80074 sw r8,0x0074(r29) 001b2620: 00642023 subu r4,r3,r4 001b2624: 0c00763a jal 0x0001d8e8 001b2628: 00452823 subu r5,r2,r5 001b262c: 24430900 addiu r3,r2,0x0900 001b2630: 8fa70070 lw r7,0x0070(r29) 001b2634: 8fa80074 lw r8,0x0074(r29) 001b2638: 04610002 bgez r3,0x001b2644 001b263c: 3c0500ff lui r5,0x00ff 001b2640: 24430aff addiu r3,r2,0x0aff 001b2644: 00031a43 sra r3,r3,0x09 001b2648: 00031880 sll r3,r3,0x02 001b264c: 3c09801c lui r9,0x801c 001b2650: 2529889c addiu r9,r9,0x889c 001b2654: 00692021 addu r4,r3,r9 001b2658: 3c09801c lui r9,0x801c 001b265c: 2529889e addiu r9,r9,0x889e 001b2660: 00691821 addu r3,r3,r9 001b2664: 34a5ffff ori r5,r5,0xffff 001b2668: 96020010 lhu r2,0x0010(r16) 001b266c: 94840000 lhu r4,0x0000(r4) 001b2670: 3c06ff00 lui r6,0xff00 001b2674: 00441021 addu r2,r2,r4 001b2678: a6020010 sh r2,0x0010(r16) 001b267c: 96020012 lhu r2,0x0012(r16) 001b2680: 94630000 lhu r3,0x0000(r3) 001b2684: 3c04801c lui r4,0x801c 001b2688: 8c84c0cc lw r4,-0x3f34(r4) 001b268c: 00431021 addu r2,r2,r3 001b2690: a6020012 sh r2,0x0012(r16) 001b2694: 8e020000 lw r2,0x0000(r16) 001b2698: 8c830004 lw r3,0x0004(r4) 001b269c: 00461024 and r2,r2,r6 001b26a0: 00651824 and r3,r3,r5 001b26a4: 00431025 or r2,r2,r3 001b26a8: ae020000 sw r2,0x0000(r16) 001b26ac: 8c820004 lw r2,0x0004(r4) 001b26b0: 02052824 and r5,r16,r5 001b26b4: 00461024 and r2,r2,r6 001b26b8: 00451025 or r2,r2,r5 001b26bc: ac820004 sw r2,0x0004(r4) 001b26c0: 26940001 addiu r20,r20,0x0001 001b26c4: 2a820006 slti r2,r20,0x0006 001b26c8: 1440ff5d bne r2,r0,0x001b2440 001b26cc: 00000000 nop 001b26d0: 8fa90060 lw r9,0x0060(r29) 001b26d4: 8ea21140 lw r2,0x1140(r21) 001b26d8: 85230f38 lh r3,0x0f38(r9) 001b26dc: 24420007 addiu r2,r2,0x0007 001b26e0: 0062182a slt r3,r3,r2 001b26e4: 1460000c bne r3,r0,0x001b2718 001b26e8: 326400ff andi r4,r19,0x00ff 001b26ec: 0c06b709 jal 0x001adc24 001b26f0: afa80074 sw r8,0x0074(r29) 001b26f4: 8fa90060 lw r9,0x0060(r29) 001b26f8: 00000000 nop 001b26fc: a1200f3a sb r0,0x0f3a(r9) 001b2700: 96a2112c lhu r2,0x112c(r21) 001b2704: 00000000 nop 001b2708: 2442ffff addiu r2,r2,0xffff 001b270c: a6a2112c sh r2,0x112c(r21) 001b2710: 8fa80074 lw r8,0x0074(r29) 001b2714: 8fa90060 lw r9,0x0060(r29) 001b2718: 26520001 addiu r18,r18,0x0001 001b271c: 25290020 addiu r9,r9,0x0020 001b2720: afa90060 sw r9,0x0060(r29) 001b2724: 8fa90068 lw r9,0x0068(r29) 001b2728: 2a420010 slti r2,r18,0x0010 001b272c: 25290020 addiu r9,r9,0x0020 001b2730: 1440feed bne r2,r0,0x001b22e8 001b2734: afa90068 sw r9,0x0068(r29) 001b2738: 3c04801c lui r4,0x801c 001b273c: 8c84c0cc lw r4,-0x3f34(r4) 001b2740: 3c02801c lui r2,0x801c 001b2744: 8c42c090 lw r2,-0x3f70(r2) 001b2748: 24840004 addiu r4,r4,0x0004 001b274c: 00022840 sll r5,r2,0x01 001b2750: 00a22821 addu r5,r5,r2 001b2754: 00052880 sll r5,r5,0x02 001b2758: 24a50004 addiu r5,r5,0x0004 001b275c: 0c008eed jal 0x00023bb4 001b2760: 02a52821 addu r5,r21,r5 001b2764: 3c02801c lui r2,0x801c 001b2768: 8c42c098 lw r2,-0x3f68(r2) 001b276c: 00000000 nop 001b2770: 8c430008 lw r3,0x0008(r2) 001b2774: 34020002 ori r2,r0,0x0002 001b2778: 10620005 beq r3,r2,0x001b2790 001b277c: 34050001 ori r5,r0,0x0001 001b2780: 8ea2112c lw r2,0x112c(r21) 001b2784: 00000000 nop 001b2788: 10400003 beq r2,r0,0x001b2798 001b278c: 00000000 nop 001b2790: 0806c9ea j 0x001b27a8 001b2794: 00a01021 addu r2,r5,r0
001b2798: 0c004a64 jal 0x00012990 001b279c: 3404001f ori r4,r0,0x001f 001b27a0: 00002821 addu r5,r0,r0
Return
001b27a4: 00a01021 addu r2,r5,r0 001b27a8: 8fbf009c lw r31,0x009c(r29) 001b27ac: 8fbe0098 lw r30,0x0098(r29) 001b27b0: 8fb70094 lw r23,0x0094(r29) 001b27b4: 8fb60090 lw r22,0x0090(r29) 001b27b8: 8fb5008c lw r21,0x008c(r29) 001b27bc: 8fb40088 lw r20,0x0088(r29) 001b27c0: 8fb30084 lw r19,0x0084(r29) 001b27c4: 8fb20080 lw r18,0x0080(r29) 001b27c8: 8fb1007c lw r17,0x007c(r29) 001b27cc: 8fb00078 lw r16,0x0078(r29) 001b27d0: 27bd00a0 addiu r29,r29,0x00a0 001b27d4: 03e00008 jr r31 001b27d8: 00000000 nop