Difference between revisions of "Effect code script loop"
Jump to navigation
Jump to search
(Created page with "<font face='Courier New'> 001a4cf0: 27bdffe0 addiu r29,r29,0xffe0 001a4cf4: 00042400 sll r4,r4,0x10 001a4cf8: 00042403 sra r4,r4,0x10 001a4cfc: 00041140 sll r2,r4,0x05 ...") |
|||
Line 5: | Line 5: | ||
001a4cf8: 00042403 sra r4,r4,0x10 | 001a4cf8: 00042403 sra r4,r4,0x10 | ||
001a4cfc: 00041140 sll r2,r4,0x05 | 001a4cfc: 00041140 sll r2,r4,0x05 | ||
− | 001a4d00: 00441023 subu r2,r2,r4 | + | 001a4d00: 00441023 subu r2,r2,r4 r2 = effect * 0x1f |
− | 001a4d04: 000210c0 sll r2,r2,0x03 | + | 001a4d04: 000210c0 sll r2,r2,0x03 r2 = effect * 0xf8 |
001a4d08: 3c03801c lui r3,0x801c | 001a4d08: 3c03801c lui r3,0x801c | ||
− | 001a4d0c: 2463f02c addiu r3,r3,0xf02c | + | 001a4d0c: 2463f02c addiu r3,r3,0xf02c table of pointers per effect (0xf8 long per effect) |
001a4d10: afb00010 sw r16,0x0010(r29) | 001a4d10: afb00010 sw r16,0x0010(r29) | ||
− | 001a4d14: 00438021 addu r16,r2,r3 | + | 001a4d14: 00438021 addu r16,r2,r3 r16 = 0c801cf02c + effect * 0xf8 |
001a4d18: afb10014 sw r17,0x0014(r29) | 001a4d18: afb10014 sw r17,0x0014(r29) | ||
001a4d1c: 3c11801b lui r17,0x801b | 001a4d1c: 3c11801b lui r17,0x801b | ||
Line 19: | Line 19: | ||
001a4d30: 00000000 nop | 001a4d30: 00000000 nop | ||
001a4d34: 00431021 addu r2,r2,r3 address + counter | 001a4d34: 00431021 addu r2,r2,r3 address + counter | ||
− | 001a4d38: 94420000 lhu r2,0x0000(r2) | + | 001a4d38: 94420000 lhu r2,0x0000(r2) loads halfword command |
001a4d3c: 00000000 nop | 001a4d3c: 00000000 nop | ||
− | 001a4d40: 304201ff andi r2,r2,0x01ff | + | 001a4d40: 304201ff andi r2,r2,0x01ff seperate lower byte |
− | 001a4d44: 00021080 sll r2,r2,0x02 | + | 001a4d44: 00021080 sll r2,r2,0x02 byte * 4 |
− | 001a4d48: 00511021 addu r2,r2,r17 | + | 001a4d48: 00511021 addu r2,r2,r17 |
001a4d4c: 8c420000 lw r2,0x0000(r2) load return address based on header byte | 001a4d4c: 8c420000 lw r2,0x0000(r2) load return address based on header byte | ||
001a4d50: 00000000 nop | 001a4d50: 00000000 nop | ||
− | 001a4d54: 0040f809 jalr r2,r31 | + | 001a4d54: 0040f809 jalr r2,r31 go to where the byte tells it to go? |
001a4d58: 02002021 addu r4,r16,r0 | 001a4d58: 02002021 addu r4,r16,r0 | ||
001a4d5c: 00021400 sll r2,r2,0x10 | 001a4d5c: 00021400 sll r2,r2,0x10 |
Revision as of 23:12, 27 November 2021
001a4cf0: 27bdffe0 addiu r29,r29,0xffe0 001a4cf4: 00042400 sll r4,r4,0x10 001a4cf8: 00042403 sra r4,r4,0x10 001a4cfc: 00041140 sll r2,r4,0x05 001a4d00: 00441023 subu r2,r2,r4 r2 = effect * 0x1f 001a4d04: 000210c0 sll r2,r2,0x03 r2 = effect * 0xf8 001a4d08: 3c03801c lui r3,0x801c 001a4d0c: 2463f02c addiu r3,r3,0xf02c table of pointers per effect (0xf8 long per effect) 001a4d10: afb00010 sw r16,0x0010(r29) 001a4d14: 00438021 addu r16,r2,r3 r16 = 0c801cf02c + effect * 0xf8 001a4d18: afb10014 sw r17,0x0014(r29) 001a4d1c: 3c11801b lui r17,0x801b 001a4d20: 263167c8 addiu r17,r17,0x67c8 001a4d24: afbf0018 sw r31,0x0018(r29) 001a4d28: 86030006 lh r3,0x0006(r16) load counter for finding desired data 001a4d2c: 8e020008 lw r2,0x0008(r16) load header address 001a4d30: 00000000 nop 001a4d34: 00431021 addu r2,r2,r3 address + counter 001a4d38: 94420000 lhu r2,0x0000(r2) loads halfword command 001a4d3c: 00000000 nop 001a4d40: 304201ff andi r2,r2,0x01ff seperate lower byte 001a4d44: 00021080 sll r2,r2,0x02 byte * 4 001a4d48: 00511021 addu r2,r2,r17 001a4d4c: 8c420000 lw r2,0x0000(r2) load return address based on header byte 001a4d50: 00000000 nop 001a4d54: 0040f809 jalr r2,r31 go to where the byte tells it to go? 001a4d58: 02002021 addu r4,r16,r0 001a4d5c: 00021400 sll r2,r2,0x10 001a4d60: 00021c03 sra r3,r2,0x10 001a4d64: 34020002 ori r2,r0,0x0002 001a4d68: 10620005 beq r3,r2,0x001a4d80 branch if return = 2 001a4d6c: 00000000 nop 001a4d70: 1460ffed bne r3,r0,0x001a4d28 branch if return isn't 0 001a4d74: 34020001 ori r2,r0,0x0001 001a4d78: 08069361 j 0x001a4d84 001a4d7c: 00000000 nop 001a4d80: 00001021 addu r2,r0,r0 001a4d84: 8fbf0018 lw r31,0x0018(r29) 001a4d88: 8fb10014 lw r17,0x0014(r29) 001a4d8c: 8fb00010 lw r16,0x0010(r29) 001a4d90: 27bd0020 addiu r29,r29,0x0020 001a4d94: 03e00008 jr r31 001a4d98: 00000000 nop