Difference between revisions of "Copy SEQ data into RAM"
Jump to navigation
Jump to search
(Created page with "<font face='Courier New'> 000871f4: 27bdfff8 addiu r29,r29,0xfff8 000871f8: 00a05021 addu r10,r5,r0 000871fc: 00003021 addu r6,r0,r0 00087200: 240bffff addiu r11,r0,0xff...") |
|||
Line 2: | Line 2: | ||
000871f4: 27bdfff8 addiu r29,r29,0xfff8 | 000871f4: 27bdfff8 addiu r29,r29,0xfff8 | ||
− | 000871f8: 00a05021 addu r10,r5,r0 | + | 000871f8: 00a05021 addu r10,r5,r0 ram file address to copy from |
000871fc: 00003021 addu r6,r0,r0 | 000871fc: 00003021 addu r6,r0,r0 | ||
00087200: 240bffff addiu r11,r0,0xffff | 00087200: 240bffff addiu r11,r0,0xffff | ||
− | 00087204: 00804021 addu r8,r4,r0 | + | 00087204: 00804021 addu r8,r4,r0 address of file to copy to (SEQ) |
− | 00087208: 24a70004 addiu r7,r5,0x0004 | + | 00087208: 24a70004 addiu r7,r5,0x0004 SEQ + 4 (start of animation addresses) |
0008720c: 3c09800a lui r9,0x800a | 0008720c: 3c09800a lui r9,0x800a | ||
− | 00087210: 8d291c58 lw r9,0x1c58(r9) | + | 00087210: 8d291c58 lw r9,0x1c58(r9) animation data start address as parsed |
− | 00087214: 90a20001 lbu r2,0x0001(r5) | + | 00087214: 90a20001 lbu r2,0x0001(r5) load animation ID of start of attacking animations |
− | 00087218: 90a30000 lbu r3,0x0000(r5) | + | 00087218: 90a30000 lbu r3,0x0000(r5) " |
0008721c: 00021200 sll r2,r2,0x08 | 0008721c: 00021200 sll r2,r2,0x08 | ||
00087220: 00621821 addu r3,r3,r2 | 00087220: 00621821 addu r3,r3,r2 | ||
− | 00087224: ad030000 sw r3,0x0000(r8) | + | 00087224: ad030000 sw r3,0x0000(r8) Store at SEQ address |
00087228: 90a20003 lbu r2,0x0003(r5) | 00087228: 90a20003 lbu r2,0x0003(r5) | ||
0008722c: 90a30002 lbu r3,0x0002(r5) | 0008722c: 90a30002 lbu r3,0x0002(r5) | ||
00087230: 00021200 sll r2,r2,0x08 | 00087230: 00021200 sll r2,r2,0x08 | ||
00087234: 00621821 addu r3,r3,r2 | 00087234: 00621821 addu r3,r3,r2 | ||
− | 00087238: ad030004 sw r3,0x0004(r8) | + | 00087238: ad030004 sw r3,0x0004(r8) same deal but start of SP2 file animations |
0008723c: 90e20001 lbu r2,0x0001(r7) | 0008723c: 90e20001 lbu r2,0x0001(r7) | ||
00087240: 90e40000 lbu r4,0x0000(r7) | 00087240: 90e40000 lbu r4,0x0000(r7) | ||
Line 25: | Line 25: | ||
0008724c: 00822021 addu r4,r4,r2 | 0008724c: 00822021 addu r4,r4,r2 | ||
00087250: 00031c00 sll r3,r3,0x10 | 00087250: 00031c00 sll r3,r3,0x10 | ||
− | 00087254: 90e20003 lbu r2,0x0003(r7) | + | 00087254: 90e20003 lbu r2,0x0003(r7) index as determined by animation ID |
00087258: 00832021 addu r4,r4,r3 | 00087258: 00832021 addu r4,r4,r3 | ||
0008725c: 00021600 sll r2,r2,0x18 | 0008725c: 00021600 sll r2,r2,0x18 | ||
00087260: 00821021 addu r2,r4,r2 | 00087260: 00821021 addu r2,r4,r2 | ||
− | 00087264: 144b0002 bne r2,r11,0x00087270 | + | 00087264: 144b0002 bne r2,r11,0x00087270 branch if not invalid |
00087268: 24e70004 addiu r7,r7,0x0004 | 00087268: 24e70004 addiu r7,r7,0x0004 | ||
− | 0008726c: 00001021 addu r2,r0,r0 | + | 0008726c: 00001021 addu r2,r0,r0 set to 0 if invalid |
− | 00087270: 00491021 addu r2,r2,r9 | + | 00087270: 00491021 addu r2,r2,r9 add to animation instruction pointer |
− | 00087274: ad020008 sw r2,0x0008(r8) | + | 00087274: ad020008 sw r2,0x0008(r8) store in SEQ animation pointers |
00087278: 24c60001 addiu r6,r6,0x0001 | 00087278: 24c60001 addiu r6,r6,0x0001 | ||
0008727c: 2cc20100 sltiu r2,r6,0x0100 | 0008727c: 2cc20100 sltiu r2,r6,0x0100 | ||
− | 00087280: 1440ffee bne r2,r0,0x0008723c | + | 00087280: 1440ffee bne r2,r0,0x0008723c repeat 0x100 times |
00087284: 25080004 addiu r8,r8,0x0004 | 00087284: 25080004 addiu r8,r8,0x0004 | ||
00087288: 91420405 lbu r2,0x0405(r10) | 00087288: 91420405 lbu r2,0x0405(r10) | ||
− | 0008728c: 91430404 lbu r3,0x0404(r10) | + | 0008728c: 91430404 lbu r3,0x0404(r10) length of animation instructions |
00087290: 00021200 sll r2,r2,0x08 | 00087290: 00021200 sll r2,r2,0x08 | ||
00087294: 00622021 addu r4,r3,r2 | 00087294: 00622021 addu r4,r3,r2 | ||
− | 00087298: 1080000b beq r4,r0,0x000872c8 | + | 00087298: 1080000b beq r4,r0,0x000872c8 branch if 0 |
0008729c: 00003021 addu r6,r0,r0 | 0008729c: 00003021 addu r6,r0,r0 | ||
− | 000872a0: 24a50406 addiu r5,r5,0x0406 | + | 000872a0: 24a50406 addiu r5,r5,0x0406 points to start of animation instructions |
000872a4: 3c02800a lui r2,0x800a | 000872a4: 3c02800a lui r2,0x800a | ||
000872a8: 8c421c58 lw r2,0x1c58(r2) | 000872a8: 8c421c58 lw r2,0x1c58(r2) | ||
Line 52: | Line 52: | ||
000872b8: a0430000 sb r3,0x0000(r2) | 000872b8: a0430000 sb r3,0x0000(r2) | ||
000872bc: 00c4102b sltu r2,r6,r4 | 000872bc: 00c4102b sltu r2,r6,r4 | ||
− | 000872c0: 1440fff8 bne r2,r0,0x000872a4 | + | 000872c0: 1440fff8 bne r2,r0,0x000872a4 loop copying every byte until reached end of file. |
000872c4: 24a50001 addiu r5,r5,0x0001 | 000872c4: 24a50001 addiu r5,r5,0x0001 | ||
000872c8: 3c02800a lui r2,0x800a | 000872c8: 3c02800a lui r2,0x800a | ||
− | 000872cc: 8c421c58 lw r2,0x1c58(r2) | + | 000872cc: 8c421c58 lw r2,0x1c58(r2) load animation data start address |
000872d0: 00000000 nop | 000872d0: 00000000 nop | ||
− | 000872d4: 00c21021 addu r2,r6,r2 | + | 000872d4: 00c21021 addu r2,r6,r2 add final length of data in RAM |
000872d8: 3c01800a lui r1,0x800a | 000872d8: 3c01800a lui r1,0x800a | ||
− | 000872dc: ac221c58 sw r2,0x1c58(r1) | + | 000872dc: ac221c58 sw r2,0x1c58(r1) store end of animation data address as start of next (repeated for all but ruka/arute/kanzen; handled last anyway.) |
000872e0: 27bd0008 addiu r29,r29,0x0008 | 000872e0: 27bd0008 addiu r29,r29,0x0008 | ||
000872e4: 03e00008 jr r31 | 000872e4: 03e00008 jr r31 | ||
000872e8: 00000000 nop | 000872e8: 00000000 nop | ||
</font> | </font> |
Revision as of 06:21, 3 April 2023
000871f4: 27bdfff8 addiu r29,r29,0xfff8 000871f8: 00a05021 addu r10,r5,r0 ram file address to copy from 000871fc: 00003021 addu r6,r0,r0 00087200: 240bffff addiu r11,r0,0xffff 00087204: 00804021 addu r8,r4,r0 address of file to copy to (SEQ) 00087208: 24a70004 addiu r7,r5,0x0004 SEQ + 4 (start of animation addresses) 0008720c: 3c09800a lui r9,0x800a 00087210: 8d291c58 lw r9,0x1c58(r9) animation data start address as parsed 00087214: 90a20001 lbu r2,0x0001(r5) load animation ID of start of attacking animations 00087218: 90a30000 lbu r3,0x0000(r5) " 0008721c: 00021200 sll r2,r2,0x08 00087220: 00621821 addu r3,r3,r2 00087224: ad030000 sw r3,0x0000(r8) Store at SEQ address 00087228: 90a20003 lbu r2,0x0003(r5) 0008722c: 90a30002 lbu r3,0x0002(r5) 00087230: 00021200 sll r2,r2,0x08 00087234: 00621821 addu r3,r3,r2 00087238: ad030004 sw r3,0x0004(r8) same deal but start of SP2 file animations 0008723c: 90e20001 lbu r2,0x0001(r7) 00087240: 90e40000 lbu r4,0x0000(r7) 00087244: 90e30002 lbu r3,0x0002(r7) 00087248: 00021200 sll r2,r2,0x08 0008724c: 00822021 addu r4,r4,r2 00087250: 00031c00 sll r3,r3,0x10 00087254: 90e20003 lbu r2,0x0003(r7) index as determined by animation ID 00087258: 00832021 addu r4,r4,r3 0008725c: 00021600 sll r2,r2,0x18 00087260: 00821021 addu r2,r4,r2 00087264: 144b0002 bne r2,r11,0x00087270 branch if not invalid 00087268: 24e70004 addiu r7,r7,0x0004 0008726c: 00001021 addu r2,r0,r0 set to 0 if invalid 00087270: 00491021 addu r2,r2,r9 add to animation instruction pointer 00087274: ad020008 sw r2,0x0008(r8) store in SEQ animation pointers 00087278: 24c60001 addiu r6,r6,0x0001 0008727c: 2cc20100 sltiu r2,r6,0x0100 00087280: 1440ffee bne r2,r0,0x0008723c repeat 0x100 times 00087284: 25080004 addiu r8,r8,0x0004 00087288: 91420405 lbu r2,0x0405(r10) 0008728c: 91430404 lbu r3,0x0404(r10) length of animation instructions 00087290: 00021200 sll r2,r2,0x08 00087294: 00622021 addu r4,r3,r2 00087298: 1080000b beq r4,r0,0x000872c8 branch if 0 0008729c: 00003021 addu r6,r0,r0 000872a0: 24a50406 addiu r5,r5,0x0406 points to start of animation instructions 000872a4: 3c02800a lui r2,0x800a 000872a8: 8c421c58 lw r2,0x1c58(r2) 000872ac: 90a30000 lbu r3,0x0000(r5) 000872b0: 00461021 addu r2,r2,r6 000872b4: 24c60001 addiu r6,r6,0x0001 000872b8: a0430000 sb r3,0x0000(r2) 000872bc: 00c4102b sltu r2,r6,r4 000872c0: 1440fff8 bne r2,r0,0x000872a4 loop copying every byte until reached end of file. 000872c4: 24a50001 addiu r5,r5,0x0001 000872c8: 3c02800a lui r2,0x800a 000872cc: 8c421c58 lw r2,0x1c58(r2) load animation data start address 000872d0: 00000000 nop 000872d4: 00c21021 addu r2,r6,r2 add final length of data in RAM 000872d8: 3c01800a lui r1,0x800a 000872dc: ac221c58 sw r2,0x1c58(r1) store end of animation data address as start of next (repeated for all but ruka/arute/kanzen; handled last anyway.) 000872e0: 27bd0008 addiu r29,r29,0x0008 000872e4: 03e00008 jr r31 000872e8: 00000000 nop