Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy IX/ROM map/CD3
< Final Fantasy IX | ROM map
Jump to navigation
Jump to search
The following article is a ROM map for Final Fantasy IX/ROM map.
Tetra Master board blocks
000aea24: 27bdffd0 addiu r29,r29,0xffd0 ;r29 -= 0x30 000aea28: afb60028 sw r22,0x0028(r29) ;store r22 in (r29+0x28) 000aea2c: 3c168010 lui r22,0x8010 000aea30: 36d63800 ori r22,r22,0x3800 ;r22 = 0x80103800 000aea34: afb10014 sw r17,0x0014(r29) ;store r17 in (r29+0x14) 000aea38: 00008821 addu r17,r0,r0 ;r17 = 0 000aea3c: afb40020 sw r20,0x0020(r29) ;store r20 in (r29+0x20) 000aea40: 24140002 addiu r20,r0,0x0002 ;r20 = 2 000aea44: afb3001c sw r19,0x001c(r29) ;store r19 in (r29+0x1c) 000aea48: 24130003 addiu r19,r0,0x0003 ;r19 = 3 000aea4c: afb50024 sw r21,0x0024(r29) ;store r21 in (r29+0x24) 000aea50: 24950010 addiu r21,r4,0x0010 ;r21 = r4 + 0x10 000aea54: afb00010 sw r16,0x0010(r29) ;store r16 in (r29+0x10) 000aea58: 02a08021 addu r16,r21,r0 ;r16 = r21 000aea5c: afb20018 sw r18,0x0018(r29) ;store r18 in (r29+0x18) 000aea60: 02209021 addu r18,r17,r0 ;r18 = r17 000aea64: afbf002c sw r31,0x002c(r29) ;store r31 in (r29+0x2c) 000aea68: 240200dc addiu r2,r0,0x00dc ;r2 = 0xdc 000aea6c: ae02000c sw r2,0x000c(r16) ;store r2 in (r16+0xc) 000aea70: 24020028 addiu r2,r0,0x0028 ;r2 = 0x28 000aea74: ae120010 sw r18,0x0010(r16) ;store r18 in (r16+0x10) 000aea78: ae000014 sw r0,0x0014(r16) ;store 0 in (r16+0x14) 000aea7c: ae000018 sw r0,0x0018(r16) ;store 0 in (r16+0x18) 000aea80: ae000008 sw r0,0x0008(r16) ;store 0 in (r16+0x8) 000aea84: ae020030 sw r2,0x0030(r16) ;store r2 in (r16+0x30) 000aea88: 0c018acf jal 0x00062b3c ;PRNG call 000aea8c: a2000000 sb r0,0x0000(r16) ;store 0 in (r16) 000aea90: 0c018acf jal 0x00062b3c ;PRNG call 000aea94: a2020001 sb r2,0x0001(r16) ;store PRN[0;0x7FFF] in (r16+0x1) 000aea98: 0c018acf jal 0x00062b3c ;PRNG call 000aea9c: a2020002 sb r2,0x0002(r16) ;store PRN[0;0x7FFF] in (r16+0x2) 000aeaa0: 30430003 andi r3,r2,0x0003 000aeaa4: 24020001 addiu r2,r0,0x0001 000aeaa8: 1062000f beq r3,r2,0x000aeae8 ;if((r2 & 3) == 1), branch to 0x000aeae8 000aeaac: 28620002 slti r2,r3,0x0002 000aeab0: 10400005 beq r2,r0,0x000aeac8 ;if((r2 & 3) ≥ 2), branch to 0x000aeac8 000aeab4: 00000000 nop 000aeab8: 10600009 beq r3,r0,0x000aeae0 ;if((r2 & 3) == 0), branch to 0x000aeae0 000aeabc: 00000000 nop 000aeac0: 0802babf j 0x000aeafc ;error trap, jump to 0x000aeafc 000aeac4: 00000000 nop 000aeac8: 10740009 beq r3,r20,0x000aeaf0 000aeacc: 00000000 nop 000aead0: 10730009 beq r3,r19,0x000aeaf8 000aead4: 00000000 nop 000aead8: 0802babf j 0x000aeafc 000aeadc: 00000000 nop 000aeae0: 0802babf j 0x000aeafc 000aeae4: a2000003 sb r0,0x0003(r16) 000aeae8: 0802babf j 0x000aeafc 000aeaec: a2030003 sb r3,0x0003(r16) 000aeaf0: 0802babf j 0x000aeafc 000aeaf4: a2130003 sb r19,0x0003(r16) 000aeaf8: a2140003 sb r20,0x0003(r16) 000aeafc: 0c018acf jal 0x00062b3c 000aeb00: 2652001e addiu r18,r18,0x001e 000aeb04: 0c018acf jal 0x00062b3c 000aeb08: a2020004 sb r2,0x0004(r16) 000aeb0c: a2020005 sb r2,0x0005(r16) 000aeb10: 0c018acf jal 0x00062b3c 000aeb14: a2110000 sb r17,0x0000(r16) 000aeb18: a2020001 sb r2,0x0001(r16) 000aeb1c: 02201021 addu r2,r17,r0 000aeb20: 304200ff andi r2,r2,0x00ff 000aeb24: 00021880 sll r3,r2,0x02 000aeb28: 00621821 addu r3,r3,r2 000aeb2c: 00761821 addu r3,r3,r22 000aeb30: 90620000 lbu r2,0x0000(r3) 000aeb34: 00000000 nop 000aeb38: a2020002 sb r2,0x0002(r16) 000aeb3c: 90620001 lbu r2,0x0001(r3) 000aeb40: 00000000 nop 000aeb44: a2020003 sb r2,0x0003(r16) 000aeb48: 90620002 lbu r2,0x0002(r3) 000aeb4c: 00000000 nop 000aeb50: a2020004 sb r2,0x0004(r16) 000aeb54: 90620003 lbu r2,0x0003(r3) 000aeb58: 26310001 addiu r17,r17,0x0001 000aeb5c: ae000034 sw r0,0x0034(r16) 000aeb60: a2020005 sb r2,0x0005(r16) 000aeb64: 2a22000a slti r2,r17,0x000a 000aeb68: 1440ffbf bne r2,r0,0x000aea68 000aeb6c: 2610003c addiu r16,r16,0x003c 000aeb70: 24110005 addiu r17,r0,0x0005 000aeb74: 26a4012c addiu r4,r21,0x012c 000aeb78: ac800034 sw r0,0x0034(r4) 000aeb7c: 26310001 addiu r17,r17,0x0001 000aeb80: 2a22000a slti r2,r17,0x000a 000aeb84: 1440fffc bne r2,r0,0x000aeb78 000aeb88: 2484003c addiu r4,r4,0x003c 000aeb8c: 8fbf002c lw r31,0x002c(r29) 000aeb90: 8fb60028 lw r22,0x0028(r29) 000aeb94: 8fb50024 lw r21,0x0024(r29) 000aeb98: 8fb40020 lw r20,0x0020(r29) 000aeb9c: 8fb3001c lw r19,0x001c(r29) 000aeba0: 8fb20018 lw r18,0x0018(r29) 000aeba4: 8fb10014 lw r17,0x0014(r29) 000aeba8: 8fb00010 lw r16,0x0010(r29) 000aebac: 03e00008 jr r31 000aebb0: 27bd0030 addiu r29,r29,0x0030
Tetra Master PRNG call when entering the World Map, and ?
000c4a5c: 27bdffd0 addiu r29,r29,0xffd0 000c4a60: afb10014 sw r17,0x0014(r29) ;store r17 in (r29+0x14) 000c4a64: 00008821 addu r17,r0,r0 ;r17 = 0 000c4a68: 3c02800d lui r2,0x800d 000c4a6c: afb50024 sw r21,0x0024(r29) 000c4a70: 245548f8 addiu r21,r2,0x48f8 000c4a74: 3c02800d lui r2,0x800d 000c4a78: afb40020 sw r20,0x0020(r29) 000c4a7c: 24544830 addiu r20,r2,0x4830 000c4a80: afb3001c sw r19,0x001c(r29) 000c4a84: 24130200 addiu r19,r0,0x0200 000c4a88: 3c02800d lui r2,0x800d 000c4a8c: afb20018 sw r18,0x0018(r29) 000c4a90: 24524870 addiu r18,r2,0x4870 000c4a94: afbf0028 sw r31,0x0028(r29) 000c4a98: afb00010 sw r16,0x0010(r29) 000c4a9c: 001111c0 sll r2,r17,0x07 ;r2 = r17 << 7 000c4aa0: 0c018acf jal 0x00062b3c ;PRNG call 000c4aa4: a6420000 sh r2,0x0000(r18) ;store r2 in (r18) 000c4aa8: 00401821 addu r3,r2,r0 ;r3 = prn[0;0x7FFF] 000c4aac: 04610002 bgez r3,0x000c4ab8 ;if(r3 ≥ 0), branch to 0x000c4ab8 000c4ab0: 001180c0 sll r16,r17,0x03 ;r16 = r17 << 3 000c4ab4: 24620fff addiu r2,r3,0x0fff ;r2 = r3 + 0xFFF 000c4ab8: 00021303 sra r2,r2,0x0c 000c4abc: 00021300 sll r2,r2,0x0c ;r2 &= 0xFFFFF000 000c4ac0: 00621023 subu r2,r3,r2 ;r2 = r3 - r2 000c4ac4: a6420002 sh r2,0x0002(r18) ;store r2 in (r18+0x2) 000c4ac8: 24020800 addiu r2,r0,0x0800 ;r2 = 0x800 000c4acc: a6400004 sh r0,0x0004(r18) ;store 0 in (r18+0x4) 000c4ad0: a6930000 sh r19,0x0000(r20) ;store r19 in (r20) 000c4ad4: a6a20000 sh r2,0x0000(r21) ;store r2 in (r21) 000c4ad8: 3c02800d lui r2,0x800d 000c4adc: 244248e8 addiu r2,r2,0x48e8 000c4ae0: 02221021 addu r2,r17,r2 ;r2 = 0x800d48e8 + r17 000c4ae4: 0c018acf jal 0x00062b3c ;PRNG call 000c4ae8: a0400000 sb r0,0x0000(r2) ;store 0 in (r2) 000c4aec: 00401821 addu r3,r2,r0 ;r3 = prn[0;0x7FFF] 000c4af0: 00602021 addu r4,r3,r0 ;r4 = r3 000c4af4: 3c02800d lui r2,0x800d 000c4af8: 24424910 addiu r2,r2,0x4910 ;r2 = 0x800dc4b08 000c4afc: 04610002 bgez r3,0x000c4b08 ;if(r3 ≥ 0), branch to 0x000c4b08 000c4b00: 02028021 addu r16,r16,r2 ;r16 += r2 000c4b04: 24640fff addiu r4,r3,0x0fff ;r4 = r3 + 0xFFF 000c4b08: 00041303 sra r2,r4,0x0c 000c4b0c: 00021300 sll r2,r2,0x0c ;r2 = r4 & 0xFFFFF000 000c4b10: 00621023 subu r2,r3,r2 ;r2 &= r3 - r2 000c4b14: 0c018acf jal 0x00062b3c ;PRNG call 000c4b18: a6020000 sh r2,0x0000(r16) ;store r2 in (r16) 000c4b1c: 00401821 addu r3,r2,r0 ;r3 = prn[0;0x7FFF] 000c4b20: 04610002 bgez r3,0x000c4b2c ;if(r3 ≥ 0), branch to 0x000c4b2c 000c4b24: 00000000 nop 000c4b28: 24620fff addiu r2,r3,0x0fff ;r2 = r3 + 0xFFF 000c4b2c: 26b50002 addiu r21,r21,0x0002 ;r21 += 2 000c4b30: 26940002 addiu r20,r20,0x0002 ;r20 += 2 000c4b34: 26730014 addiu r19,r19,0x0014 ;r19 += 20 000c4b38: 26520008 addiu r18,r18,0x0008 ;r18 += 8 000c4b3c: 26310001 addiu r17,r17,0x0001 ;r17++ 000c4b40: 00021303 sra r2,r2,0x0c 000c4b44: 00021300 sll r2,r2,0x0c ;r2 &= 0xFFFFF000 000c4b48: 00621023 subu r2,r3,r2 ;r2 = r3 - r2 000c4b4c: a6020002 sh r2,0x0002(r16) ;store r2 in (r16+0x2) 000c4b50: 2a22000a slti r2,r17,0x000a 000c4b54: 1440ffd1 bne r2,r0,0x000c4a9c ;if(r17 < 10), loop to 0x000c4a9c 000c4b58: a6000004 sh r0,0x0004(r16) ;store 0 in (r16+0x4) 000c4b5c: 00008821 addu r17,r0,r0 ;r17 = 0 000c4b60: 3c02800d lui r2,0x800d 000c4b64: 244449f0 addiu r4,r2,0x49f0 ;r4 = 0x800d49f0 000c4b68: 3c02800d lui r2,0x800d 000c4b6c: 24434960 addiu r3,r2,0x4960 ;r3 = 0x800d4960 000c4b70: ac600000 sw r0,0x0000(r3) ;store 0 to (0x800d4960) 000c4b74: ac600004 sw r0,0x0004(r3) ;store 0 to (0x800d4964) 000c4b78: ac600008 sw r0,0x0008(r3) ;store 0 to (0x800d4968) 000c4b7c: a4800000 sh r0,0x0000(r4) ;store 0 to (0x800d49f0) 000c4b80: a4800002 sh r0,0x0002(r4) ;store 0 to (0x800d49f2) 000c4b84: a4800004 sh r0,0x0004(r4) ;store 0 to (0x800d49f4) 000c4b88: 24840008 addiu r4,r4,0x0008 ;r4 += 8 000c4b8c: 26310001 addiu r17,r17,0x0001 ;r17++ 000c4b90: 2a220009 slti r2,r17,0x0009 000c4b94: 1440fff6 bne r2,r0,0x000c4b70 ;if(r17 < 10), loop to 0x000c4b70 000c4b98: 24630010 addiu r3,r3,0x0010 ;r3 += 0x10 000c4b9c: 3c030004 lui r3,0x0004 000c4ba0: 3463464c ori r3,r3,0x464c ;r3 = 0x4464c 000c4ba4: 3c05fffc lui r5,0xfffc 000c4ba8: 34a5d97f ori r5,r5,0xd97f 000c4bac: 3c040003 lui r4,0x0003 000c4bb0: 3484805b ori r4,r4,0x805b 000c4bb4: 3c07fffc lui r7,0xfffc 000c4bb8: 34e7f7b9 ori r7,r7,0xf7b9 000c4bbc: 3c060002 lui r6,0x0002 000c4bc0: 34c6fffa ori r6,r6,0xfffa 000c4bc4: 3c08fffe lui r8,0xfffe 000c4bc8: 3508bfae ori r8,r8,0xbfae 000c4bcc: 24110001 addiu r17,r0,0x0001 ;r17 = 1 000c4bd0: 3c02800d lui r2,0x800d 000c4bd4: 24424a40 addiu r2,r2,0x4a40 000c4bd8: 244b0050 addiu r11,r2,0x0050 000c4bdc: 00404821 addu r9,r2,r0 000c4be0: 25220028 addiu r2,r9,0x0028 000c4be4: 00405021 addu r10,r2,r0 000c4be8: 3c02800d lui r2,0x800d 000c4bec: ac434960 sw r3,0x4960(r2) 000c4bf0: 24424960 addiu r2,r2,0x4960 000c4bf4: 2403e198 addiu r3,r0,0xe198 000c4bf8: ac440010 sw r4,0x0010(r2) 000c4bfc: 24440010 addiu r4,r2,0x0010 000c4c00: ac430004 sw r3,0x0004(r2) 000c4c04: 240301f4 addiu r3,r0,0x01f4 000c4c08: ac450008 sw r5,0x0008(r2) 000c4c0c: ac830004 sw r3,0x0004(r4) 000c4c10: ac870008 sw r7,0x0008(r4) 000c4c14: 24440060 addiu r4,r2,0x0060 000c4c18: 2403d57e addiu r3,r0,0xd57e 000c4c1c: ac460060 sw r6,0x0060(r2) 000c4c20: ac830004 sw r3,0x0004(r4) 000c4c24: ac880008 sw r8,0x0008(r4) 000c4c28: 8c4c0010 lw r12,0x0010(r2) 000c4c2c: 8c4d0014 lw r13,0x0014(r2) 000c4c30: 8c4e0018 lw r14,0x0018(r2) 000c4c34: 8c4f001c lw r15,0x001c(r2) 000c4c38: ac4c0020 sw r12,0x0020(r2) 000c4c3c: ac4d0024 sw r13,0x0024(r2) 000c4c40: ac4e0028 sw r14,0x0028(r2) 000c4c44: ac4f002c sw r15,0x002c(r2) 000c4c48: 8c4c0010 lw r12,0x0010(r2) 000c4c4c: 8c4d0014 lw r13,0x0014(r2) 000c4c50: 8c4e0018 lw r14,0x0018(r2) 000c4c54: 8c4f001c lw r15,0x001c(r2) 000c4c58: ac4c0030 sw r12,0x0030(r2) 000c4c5c: ac4d0034 sw r13,0x0034(r2) 000c4c60: ac4e0038 sw r14,0x0038(r2) 000c4c64: ac4f003c sw r15,0x003c(r2) 000c4c68: 8c4c0010 lw r12,0x0010(r2) 000c4c6c: 8c4d0014 lw r13,0x0014(r2) 000c4c70: 8c4e0018 lw r14,0x0018(r2) 000c4c74: 8c4f001c lw r15,0x001c(r2) 000c4c78: ac4c0040 sw r12,0x0040(r2) 000c4c7c: ac4d0044 sw r13,0x0044(r2) 000c4c80: ac4e0048 sw r14,0x0048(r2) 000c4c84: ac4f004c sw r15,0x004c(r2) 000c4c88: 8c4c0010 lw r12,0x0010(r2) 000c4c8c: 8c4d0014 lw r13,0x0014(r2) 000c4c90: 8c4e0018 lw r14,0x0018(r2) 000c4c94: 8c4f001c lw r15,0x001c(r2) 000c4c98: ac4c0050 sw r12,0x0050(r2) 000c4c9c: ac4d0054 sw r13,0x0054(r2) 000c4ca0: ac4e0058 sw r14,0x0058(r2) 000c4ca4: ac4f005c sw r15,0x005c(r2) 000c4ca8: 8c4c0060 lw r12,0x0060(r2) 000c4cac: 8c4d0064 lw r13,0x0064(r2) 000c4cb0: 8c4e0068 lw r14,0x0068(r2) 000c4cb4: 8c4f006c lw r15,0x006c(r2) 000c4cb8: ac4c0070 sw r12,0x0070(r2) 000c4cbc: ac4d0074 sw r13,0x0074(r2) 000c4cc0: ac4e0078 sw r14,0x0078(r2) 000c4cc4: ac4f007c sw r15,0x007c(r2) 000c4cc8: 8c4c0060 lw r12,0x0060(r2) 000c4ccc: 8c4d0064 lw r13,0x0064(r2) 000c4cd0: 8c4e0068 lw r14,0x0068(r2) 000c4cd4: 8c4f006c lw r15,0x006c(r2) 000c4cd8: ac4c0080 sw r12,0x0080(r2) 000c4cdc: ac4d0084 sw r13,0x0084(r2) 000c4ce0: ac4e0088 sw r14,0x0088(r2) 000c4ce4: ac4f008c sw r15,0x008c(r2) 000c4ce8: 3c02800d lui r2,0x800d 000c4cec: 24424848 addiu r2,r2,0x4848 000c4cf0: ac400004 sw r0,0x0004(r2) 000c4cf4: ac490008 sw r9,0x0008(r2) 000c4cf8: ad220004 sw r2,0x0004(r9) 000c4cfc: ad2a0008 sw r10,0x0008(r9) 000c4d00: ad4b0008 sw r11,0x0008(r10) 000c4d04: 256b0028 addiu r11,r11,0x0028 000c4d08: ad490004 sw r9,0x0004(r10) 000c4d0c: 25290028 addiu r9,r9,0x0028 000c4d10: 26310001 addiu r17,r17,0x0001 ;r17++ 000c4d14: 2a22003b slti r2,r17,0x003b 000c4d18: 1440fff9 bne r2,r0,0x000c4d00 000c4d1c: 254a0028 addiu r10,r10,0x0028 000c4d20: 3c03800d lui r3,0x800d 000c4d24: 24634a40 addiu r3,r3,0x4a40 000c4d28: 00111080 sll r2,r17,0x02 ;r2 = r17 << 2 000c4d2c: 00511021 addu r2,r2,r17 ;r2 += r17 000c4d30: 000210c0 sll r2,r2,0x03 ;r2 = r2 << 3 000c4d34: 00432021 addu r4,r2,r3 000c4d38: 2463ffd8 addiu r3,r3,0xffd8 000c4d3c: 00431021 addu r2,r2,r3 000c4d40: ac820004 sw r2,0x0004(r4) 000c4d44: 3c02800d lui r2,0x800d 000c4d48: 244253e8 addiu r2,r2,0x53e8 000c4d4c: 3c03800d lui r3,0x800d 000c4d50: 246353a0 addiu r3,r3,0x53a0 000c4d54: ac820008 sw r2,0x0008(r4) 000c4d58: ac440004 sw r4,0x0004(r2) 000c4d5c: ac400008 sw r0,0x0008(r2) 000c4d60: 3c02800d lui r2,0x800d 000c4d64: 244248c0 addiu r2,r2,0x48c0 000c4d68: ac600004 sw r0,0x0004(r3) 000c4d6c: ac620008 sw r2,0x0008(r3) 000c4d70: ac430004 sw r3,0x0004(r2) 000c4d74: ac400008 sw r0,0x0008(r2) 000c4d78: 3c02800d lui r2,0x800d 000c4d7c: a440df82 sh r0,-0x207e(r2) 000c4d80: 3c02800d lui r2,0x800d 000c4d84: a440df8a sh r0,-0x2076(r2) 000c4d88: 3c02800d lui r2,0x800d 000c4d8c: a440df92 sh r0,-0x206e(r2) 000c4d90: 3c02800d lui r2,0x800d 000c4d94: 2442dfa0 addiu r2,r2,0xdfa0 000c4d98: a4400002 sh r0,0x0002(r2) 000c4d9c: a440000a sh r0,0x000a(r2) 000c4da0: a4400012 sh r0,0x0012(r2) 000c4da4: 8fbf0028 lw r31,0x0028(r29) 000c4da8: 8fb50024 lw r21,0x0024(r29) 000c4dac: 8fb40020 lw r20,0x0020(r29) 000c4db0: 8fb3001c lw r19,0x001c(r29) 000c4db4: 8fb20018 lw r18,0x0018(r29) 000c4db8: 8fb10014 lw r17,0x0014(r29) 000c4dbc: 8fb00010 lw r16,0x0010(r29) 000c4dc0: 3c02800d lui r2,0x800d 000c4dc4: ac404a38 sw r0,0x4a38(r2) 000c4dc8: 3c02800d lui r2,0x800d 000c4dcc: ac4053cc sw r0,0x53cc(r2) 000c4dd0: 03e00008 jr r31 000c4dd4: 27bd0030 addiu r29,r29,0x0030
Tetra Master PRNG
seed × 0x41C64E6D + 0x3039
07c02200: 3c03a001 lui r3,0xa001 07c02204: 8c639010 lw r3,-0x6ff0(r3) 07c02208: 3c0141c6 lui r1,0x41c6 07c0220c: 34214e6d ori r1,r1,0x4e6d 07c02210: 00610019 multu r3,r1 07c02214: 3c01a001 lui r1,0xa001 07c02218: 00001812 mflo r3 07c0221c: 24633039 addiu r3,r3,0x3039 07c02220: 00031402 srl r2,r3,0x10 07c02224: 30427fff andi r2,r2,0x7fff 07c02228: 03e00008 jr r31 07c0222c: ac239010 sw r3,-0x6ff0(r1)
0x07c02230
07c02230: 3c01a001 lui r1,0xa001 07c02234: 03e00008 jr r31 07c02238: ac249010 sw r4,-0x6ff0(r1)