If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Final Fantasy IX/ROM map/CD4
< Final Fantasy IX | ROM map(Redirected from Final Fantasy IX (CD4)/ROM map)
Jump to navigation
Jump to search
The following article is a ROM map for Final Fantasy IX/ROM map.
Encounter check
00038d3c: 3c028008 lui r2,0x8008 00038d40: 8c44aecc lw r4,-0x5134(r2) 00038d44: 27bdffe0 addiu r29,r29,0xffe0 00038d48: afbf001c sw r31,0x001c(r29) 00038d4c: afb20018 sw r18,0x0018(r29) 00038d50: afb10014 sw r17,0x0014(r29) 00038d54: afb00010 sw r16,0x0010(r29) 00038d58: 908216ec lbu r2,0x16ec(r4) 00038d5c: 00000000 nop 00038d60: 10400096 beq r2,r0,0x00038fbc 00038d64: 00008021 addu r16,r0,r0 00038d68: 3c038008 lui r3,0x8008 00038d6c: 8c62ae4c lw r2,-0x51b4(r3) 00038d70: 00000000 nop 00038d74: 284203c1 slti r2,r2,0x03c1 00038d78: 14400091 bne r2,r0,0x00038fc0 00038d7c: 0010102b sltu r2,r0,r16 00038d80: 3c128008 lui r18,0x8008 00038d84: ac60ae4c sw r0,-0x51b4(r3) ;store 0 in distance walked 00038d88: 908316ef lbu r3,0x16ef(r4) ;r3 = encounter rate 00038d8c: 8e42ae50 lw r2,-0x51b0(r18) 00038d90: 3c118008 lui r17,0x8008 00038d94: 00431021 addu r2,r2,r3 ;r2 = cumulative encounter rate 00038d98: ae42ae50 sw r2,-0x51b0(r18) ;store cumulative encounter rate in 0x8007ae50 00038d9c: 3c028008 lui r2,0x8008 00038da0: 8e23b720 lw r3,-0x48e0(r17) 00038da4: 2442b92d addiu r2,r2,0xb92d 00038da8: 0062182b sltu r3,r3,r2 00038dac: 14600003 bne r3,r0,0x00038dbc 00038db0: 00000000 nop 00038db4: 0c012fc8 jal 0x0004bf20 00038db8: 00000000 nop 00038dbc: 8e22b720 lw r2,-0x48e0(r17) 00038dc0: 8e43ae50 lw r3,-0x51b0(r18) 00038dc4: 90440000 lbu r4,0x0000(r2) 00038dc8: 24420001 addiu r2,r2,0x0001 00038dcc: 000318c3 sra r3,r3,0x03 00038dd0: 0083202a slt r4,r4,r3 00038dd4: 10800079 beq r4,r0,0x00038fbc 00038dd8: ae22b720 sw r2,-0x48e0(r17) 00038ddc: 3c028008 lui r2,0x8008 00038de0: 8c43b708 lw r3,-0x48f8(r2) 00038de4: 24020001 addiu r2,r0,0x0001 00038de8: 10620005 beq r3,r2,0x00038e00 00038dec: ae40ae50 sw r0,-0x51b0(r18) 00038df0: 0c02eeea jal 0x000bbba8 00038df4: 3c108008 lui r16,0x8008 00038df8: 0800e383 j 0x00038e0c 00038dfc: 00408821 addu r17,r2,r0
Display Memoria on the World Map, generate random bolts
- 0xc6acc-0xc6efc - Displays Memoria on the World Map, generates random bolts with the Tetra Master PRNG (!)
000c6acc: 24130001 addiu r19,r0,0x0001 000c6ad0: 3c05800d lui r5,0x800d 000c6ad4: 24a5df80 addiu r5,r5,0xdf80 000c6ad8: 3c03800d lui r3,0x800d 000c6adc: 2463dfa0 addiu r3,r3,0xdfa0 000c6ae0: 94a20002 lhu r2,0x0002(r5) 000c6ae4: 94640002 lhu r4,0x0002(r3) 000c6ae8: 2442ff00 addiu r2,r2,0xff00 000c6aec: a4a20002 sh r2,0x0002(r5) 000c6af0: 9462000a lhu r2,0x000a(r3) 000c6af4: 24840100 addiu r4,r4,0x0100 000c6af8: a4640002 sh r4,0x0002(r3) 000c6afc: 94640012 lhu r4,0x0012(r3) 000c6b00: 2442ffc0 addiu r2,r2,0xffc0 000c6b04: 2484fe80 addiu r4,r4,0xfe80 000c6b08: a462000a sh r2,0x000a(r3) 000c6b0c: 08031b0b j 0x000c6c2c 000c6b10: a4640012 sh r4,0x0012(r3) 000c6b14: 00008021 addu r16,r0,r0 000c6b18: 3c02800d lui r2,0x800d 000c6b1c: 24454870 addiu r5,r2,0x4870 000c6b20: 3c03800d lui r3,0x800d 000c6b24: 2463df88 addiu r3,r3,0xdf88 000c6b28: 94620004 lhu r2,0x0004(r3) 000c6b2c: 94640002 lhu r4,0x0002(r3) 000c6b30: 2442fff8 addiu r2,r2,0xfff8 000c6b34: 2484fff0 addiu r4,r4,0xfff0 000c6b38: a4620004 sh r2,0x0004(r3) 000c6b3c: a4640002 sh r4,0x0002(r3) 000c6b40: 3c03800d lui r3,0x800d 000c6b44: 2463df90 addiu r3,r3,0xdf90 000c6b48: 94620004 lhu r2,0x0004(r3) 000c6b4c: 94640002 lhu r4,0x0002(r3) 000c6b50: 2442fff0 addiu r2,r2,0xfff0 000c6b54: 2484fff8 addiu r4,r4,0xfff8 000c6b58: a4620004 sh r2,0x0004(r3) 000c6b5c: a4640002 sh r4,0x0002(r3) 000c6b60: 94a20002 lhu r2,0x0002(r5) 000c6b64: 02001821 addu r3,r16,r0 000c6b68: 06010002 bgez r16,0x000c6b74 000c6b6c: 2444fff6 addiu r4,r2,0xfff6 000c6b70: 26030003 addiu r3,r16,0x0003 000c6b74: 00031083 sra r2,r3,0x02 000c6b78: 00821023 subu r2,r4,r2 000c6b7c: a4a20002 sh r2,0x0002(r5) 000c6b80: 26100001 addiu r16,r16,0x0001 000c6b84: 2a02000a slti r2,r16,0x000a 000c6b88: 1440fff5 bne r2,r0,0x000c6b60 000c6b8c: 24a50008 addiu r5,r5,0x0008 000c6b90: 00008021 addu r16,r0,r0 000c6b94: 3c124ec4 lui r18,0x4ec4 000c6b98: 3652ec4f ori r18,r18,0xec4f 000c6b9c: 3c02800d lui r2,0x800d 000c6ba0: 24514910 addiu r17,r2,0x4910 000c6ba4: 0c018acf jal 0x00062b3c ;PRNG call 000c6ba8: 26100001 addiu r16,r16,0x0001 000c6bac: 00520018 mult r2,r18 000c6bb0: 96250000 lhu r5,0x0000(r17) 000c6bb4: 00021fc3 sra r3,r2,0x1f 000c6bb8: 24a5fffa addiu r5,r5,0xfffa 000c6bbc: 00004010 mfhi r8 000c6bc0: 00082083 sra r4,r8,0x02 000c6bc4: 00832023 subu r4,r4,r3 000c6bc8: 00041840 sll r3,r4,0x01 000c6bcc: 00641821 addu r3,r3,r4 000c6bd0: 00031880 sll r3,r3,0x02 000c6bd4: 00641821 addu r3,r3,r4 000c6bd8: 00431023 subu r2,r2,r3 000c6bdc: 00a22821 addu r5,r5,r2 000c6be0: 0c018acf jal 0x00062b3c ;PRNG call 000c6be4: a6250000 sh r5,0x0000(r17) 000c6be8: 00520018 mult r2,r18 000c6bec: 96250002 lhu r5,0x0002(r17) 000c6bf0: 00021fc3 sra r3,r2,0x1f 000c6bf4: 24a5fffa addiu r5,r5,0xfffa 000c6bf8: 00004010 mfhi r8 000c6bfc: 00082083 sra r4,r8,0x02 000c6c00: 00832023 subu r4,r4,r3 000c6c04: 00041840 sll r3,r4,0x01 000c6c08: 00641821 addu r3,r3,r4 000c6c0c: 00031880 sll r3,r3,0x02 000c6c10: 00641821 addu r3,r3,r4 000c6c14: 00431023 subu r2,r2,r3 000c6c18: 00a22821 addu r5,r5,r2 000c6c1c: a6250002 sh r5,0x0002(r17) 000c6c20: 2a02000a slti r2,r16,0x000a 000c6c24: 1440ffdf bne r2,r0,0x000c6ba4 000c6c28: 26310008 addiu r17,r17,0x0008 000c6c2c: 326200ff andi r2,r19,0x00ff 000c6c30: 104000a7 beq r2,r0,0x000c6ed0 000c6c34: 3c02800d lui r2,0x800d 000c6c38: 328500ff andi r5,r20,0x00ff 000c6c3c: 8c44f428 lw r4,-0x0bd8(r2) 000c6c40: 0c02e0e2 jal 0x000b8388 000c6c44: 24a50028 addiu r5,r5,0x0028 000c6c48: 0040a821 addu r21,r2,r0 000c6c4c: 86a30024 lh r3,0x0024(r21) 000c6c50: 2402ffff addiu r2,r0,0xffff 000c6c54: 1062009e beq r3,r2,0x000c6ed0 000c6c58: 3c118008 lui r17,0x8008 000c6c5c: 3c028008 lui r2,0x8008 000c6c60: 2456b92d addiu r22,r2,0xb92d 000c6c64: 26b00024 addiu r16,r21,0x0024 000c6c68: 0c018acf jal 0x00062b3c ;PRNG call 000c6c6c: 00000000 nop 000c6c70: 00402021 addu r4,r2,r0 000c6c74: 04810003 bgez r4,0x000c6c84 000c6c78: 00021303 sra r2,r2,0x0c 000c6c7c: 24820fff addiu r2,r4,0x0fff 000c6c80: 00021303 sra r2,r2,0x0c 000c6c84: 00021300 sll r2,r2,0x0c 000c6c88: 86030004 lh r3,0x0004(r16) 000c6c8c: 00821023 subu r2,r4,r2 000c6c90: 0043102a slt r2,r2,r3 000c6c94: 10400089 beq r2,r0,0x000c6ebc 000c6c98: 00000000 nop 000c6c9c: 8e05ffe8 lw r5,-0x0018(r16) 000c6ca0: 8ea30000 lw r3,0x0000(r21) 000c6ca4: 8e04ffec lw r4,-0x0014(r16) 000c6ca8: 000517c2 srl r2,r5,0x1f 000c6cac: 00a21021 addu r2,r5,r2 000c6cb0: 00021043 sra r2,r2,0x01 000c6cb4: 0062a023 subu r20,r3,r2 000c6cb8: 000417c2 srl r2,r4,0x1f 000c6cbc: 00822021 addu r4,r4,r2 000c6cc0: 00042043 sra r4,r4,0x01 000c6cc4: 8e02ffe0 lw r2,-0x0020(r16) 000c6cc8: 8e03fff0 lw r3,-0x0010(r16) 000c6ccc: 00449823 subu r19,r2,r4 000c6cd0: 000317c2 srl r2,r3,0x1f 000c6cd4: 00621821 addu r3,r3,r2 000c6cd8: 8e02ffe4 lw r2,-0x001c(r16) 000c6cdc: 00031843 sra r3,r3,0x01 000c6ce0: 10a00023 beq r5,r0,0x000c6d70 000c6ce4: 00439023 subu r18,r2,r3 000c6ce8: 8e22b720 lw r2,-0x48e0(r17) 000c6cec: 00000000 nop 000c6cf0: 0056102b sltu r2,r2,r22 000c6cf4: 1440000a bne r2,r0,0x000c6d20 000c6cf8: 00000000 nop 000c6cfc: 0c012fc8 jal 0x0004bf20 000c6d00: 00000000 nop 000c6d04: 8e22b720 lw r2,-0x48e0(r17) 000c6d08: 00000000 nop 000c6d0c: 0056102b sltu r2,r2,r22 000c6d10: 14400003 bne r2,r0,0x000c6d20 000c6d14: 00000000 nop 000c6d18: 0c012fc8 jal 0x0004bf20 000c6d1c: 00000000 nop 000c6d20: 8e24b720 lw r4,-0x48e0(r17) 000c6d24: 00000000 nop 000c6d28: 90850000 lbu r5,0x0000(r4) 000c6d2c: 8e03ffe8 lw r3,-0x0018(r16) 000c6d30: 00051200 sll r2,r5,0x08 000c6d34: 00451025 or r2,r2,r5 000c6d38: 0043001a div r2,r3 000c6d3c: 14600002 bne r3,r0,0x000c6d48 000c6d40: 00000000 nop 000c6d44: 0007000d break 0x00001c00 000c6d48: 2401ffff addiu r1,r0,0xffff 000c6d4c: 14610004 bne r3,r1,0x000c6d60 000c6d50: 3c018000 lui r1,0x8000 000c6d54: 14410002 bne r2,r1,0x000c6d60 000c6d58: 00000000 nop 000c6d5c: 0006000d break 0x00001800 000c6d60: 00001810 mfhi r3 000c6d64: 24840001 addiu r4,r4,0x0001 000c6d68: ae24b720 sw r4,-0x48e0(r17) 000c6d6c: 0283a021 addu r20,r20,r3 000c6d70: 8e02ffec lw r2,-0x0014(r16) 000c6d74: 00000000 nop 000c6d78: 10400023 beq r2,r0,0x000c6e08 000c6d7c: 00000000 nop 000c6d80: 8e22b720 lw r2,-0x48e0(r17) 000c6d84: 00000000 nop 000c6d88: 0056102b sltu r2,r2,r22 000c6d8c: 1440000a bne r2,r0,0x000c6db8 000c6d90: 00000000 nop 000c6d94: 0c012fc8 jal 0x0004bf20 000c6d98: 00000000 nop 000c6d9c: 8e22b720 lw r2,-0x48e0(r17) 000c6da0: 00000000 nop 000c6da4: 0056102b sltu r2,r2,r22 000c6da8: 14400003 bne r2,r0,0x000c6db8 000c6dac: 00000000 nop 000c6db0: 0c012fc8 jal 0x0004bf20 000c6db4: 00000000 nop 000c6db8: 8e24b720 lw r4,-0x48e0(r17) 000c6dbc: 00000000 nop 000c6dc0: 90850000 lbu r5,0x0000(r4) 000c6dc4: 8e03ffec lw r3,-0x0014(r16) 000c6dc8: 00051200 sll r2,r5,0x08 000c6dcc: 00451025 or r2,r2,r5 000c6dd0: 0043001a div r2,r3 000c6dd4: 14600002 bne r3,r0,0x000c6de0 000c6dd8: 00000000 nop 000c6ddc: 0007000d break 0x00001c00 000c6de0: 2401ffff addiu r1,r0,0xffff 000c6de4: 14610004 bne r3,r1,0x000c6df8 000c6de8: 3c018000 lui r1,0x8000 000c6dec: 14410002 bne r2,r1,0x000c6df8 000c6df0: 00000000 nop 000c6df4: 0006000d break 0x00001800 000c6df8: 00001810 mfhi r3 000c6dfc: 24840001 addiu r4,r4,0x0001 000c6e00: ae24b720 sw r4,-0x48e0(r17) 000c6e04: 02639821 addu r19,r19,r3 000c6e08: 8e02fff0 lw r2,-0x0010(r16) 000c6e0c: 00000000 nop 000c6e10: 10400024 beq r2,r0,0x000c6ea4 000c6e14: 02802021 addu r4,r20,r0 000c6e18: 8e22b720 lw r2,-0x48e0(r17) 000c6e1c: 00000000 nop 000c6e20: 0056102b sltu r2,r2,r22 000c6e24: 1440000a bne r2,r0,0x000c6e50 000c6e28: 00000000 nop 000c6e2c: 0c012fc8 jal 0x0004bf20 000c6e30: 00000000 nop 000c6e34: 8e22b720 lw r2,-0x48e0(r17) 000c6e38: 00000000 nop 000c6e3c: 0056102b sltu r2,r2,r22 000c6e40: 14400003 bne r2,r0,0x000c6e50 000c6e44: 00000000 nop 000c6e48: 0c012fc8 jal 0x0004bf20 000c6e4c: 00000000 nop 000c6e50: 8e24b720 lw r4,-0x48e0(r17) 000c6e54: 00000000 nop 000c6e58: 90850000 lbu r5,0x0000(r4) 000c6e5c: 8e03fff0 lw r3,-0x0010(r16) 000c6e60: 00051200 sll r2,r5,0x08 000c6e64: 00451025 or r2,r2,r5 000c6e68: 0043001a div r2,r3 000c6e6c: 14600002 bne r3,r0,0x000c6e78 000c6e70: 00000000 nop 000c6e74: 0007000d break 0x00001c00 000c6e78: 2401ffff addiu r1,r0,0xffff 000c6e7c: 14610004 bne r3,r1,0x000c6e90 000c6e80: 3c018000 lui r1,0x8000 000c6e84: 14410002 bne r2,r1,0x000c6e90 000c6e88: 00000000 nop 000c6e8c: 0006000d break 0x00001800 000c6e90: 00001810 mfhi r3 000c6e94: 24840001 addiu r4,r4,0x0001 000c6e98: ae24b720 sw r4,-0x48e0(r17) 000c6e9c: 02439021 addu r18,r18,r3 000c6ea0: 02802021 addu r4,r20,r0 000c6ea4: 02602821 addu r5,r19,r0 000c6ea8: 86070000 lh r7,0x0000(r16) 000c6eac: 86020002 lh r2,0x0002(r16) 000c6eb0: 02403021 addu r6,r18,r0 000c6eb4: 0c031bc0 jal 0x000c6f00 000c6eb8: afa20010 sw r2,0x0010(r29) 000c6ebc: 26100040 addiu r16,r16,0x0040 000c6ec0: 86030000 lh r3,0x0000(r16) 000c6ec4: 2402ffff addiu r2,r0,0xffff 000c6ec8: 1462ff67 bne r3,r2,0x000c6c68 000c6ecc: 26b50040 addiu r21,r21,0x0040 000c6ed0: 8fbf0034 lw r31,0x0034(r29) 000c6ed4: 8fb60030 lw r22,0x0030(r29) 000c6ed8: 8fb5002c lw r21,0x002c(r29) 000c6edc: 8fb40028 lw r20,0x0028(r29) 000c6ee0: 8fb30024 lw r19,0x0024(r29) 000c6ee4: 8fb20020 lw r18,0x0020(r29) 000c6ee8: 8fb1001c lw r17,0x001c(r29) 000c6eec: 8fb00018 lw r16,0x0018(r29) 000c6ef0: 03e00008 jr r31 000c6ef4: 27bd0038 addiu r29,r29,0x0038 000c6ef8: 03e00008 jr r31 000c6efc: 00000000 nop
Enemy ATB advance
000eab30: 304200ff andi r2,r2,0x00ff 000eab34: 1040004f beq r2,r0,0x000eac74 000eab38: 00000000 nop 000eab3c: 1200004d beq r16,r0,0x000eac74 000eab40: 24110001 addiu r17,r0,0x0001 000eab44: 920200b3 lbu r2,0x00b3(r16) 000eab48: 00000000 nop 000eab4c: 14400045 bne r2,r0,0x000eac64 000eab50: 00000000 nop 000eab54: 920200cf lbu r2,0x00cf(r16) 000eab58: 00000000 nop 000eab5c: 14400041 bne r2,r0,0x000eac64 000eab60: 00000000 nop 000eab64: 96020028 lhu r2,0x0028(r16) 000eab68: 00000000 nop 000eab6c: 1040003d beq r2,r0,0x000eac64 000eab70: 00000000 nop 000eab74: 8e040068 lw r4,0x0068(r16) 000eab78: 00000000 nop 000eab7c: 00041402 srl r2,r4,0x10 000eab80: 30420001 andi r2,r2,0x0001 000eab84: 10400037 beq r2,r0,0x000eac64 000eab88: 3c028010 lui r2,0x8010 000eab8c: 8c424f88 lw r2,0x4f88(r2) ;r2 = 0x80104f88 000eab90: 00000000 nop 000eab94: 904312b6 lbu r3,0x12b6(r2) ;r3 = (r2+0x12b6) 000eab98: 30820001 andi r2,r4,0x0001 000eab9c: 10430031 beq r2,r3,0x000eac64 ;if(b2==r3), branch to 0x000eac64 000eaba0: 26050028 addiu r5,r16,0x0028 000eaba4: 90a30006 lbu r3,0x0006(r5) ;ATB_advance = (r5+0x6) 000eaba8: 94a20004 lhu r2,0x0004(r5) 000eabac: 8e040024 lw r4,0x0024(r16) 000eabb0: 00031e00 sll r3,r3,0x18 000eabb4: 00031e03 sra r3,r3,0x18 ;Keep last byte of ATB_advance 000eabb8: 00431021 addu r2,r2,r3 ;current_ATB += ATB_advance 000eabbc: a4a20004 sh r2,0x0004(r5) ;Store current_ATB in (r5+0x4) 000eabc0: 00021400 sll r2,r2,0x10 000eabc4: 84830004 lh r3,0x0004(r4) 000eabc8: 00021403 sra r2,r2,0x10 000eabcc: 0043102a slt r2,r2,r3 000eabd0: 94830004 lhu r3,0x0004(r4) 000eabd4: 14400023 bne r2,r0,0x000eac64 000eabd8: 02002021 addu r4,r16,r0 000eabdc: a4a30004 sh r3,0x0004(r5) 000eabe0: 3c050202 lui r5,0x0202 000eabe4: 0c030269 jal 0x000c09a4 000eabe8: 34a50002 ori r5,r5,0x0002 000eabec: 304200ff andi r2,r2,0x00ff 000eabf0: 1440001c bne r2,r0,0x000eac64 000eabf4: 00000000 nop 000eabf8: 8e020068 lw r2,0x0068(r16) 000eabfc: 00000000 nop 000eac00: 30420001 andi r2,r2,0x0001 000eac04: 1040000f beq r2,r0,0x000eac44 000eac08: 02002021 addu r4,r16,r0 000eac0c: 0c030269 jal 0x000c09a4 000eac10: 24050c00 addiu r5,r0,0x0c00 000eac14: 304200ff andi r2,r2,0x00ff 000eac18: 10400006 beq r2,r0,0x000eac34 000eac1c: 00000000 nop 000eac20: a21100b3 sb r17,0x00b3(r16) 000eac24: 0c02ced7 jal 0x000b3b5c 000eac28: 02002021 addu r4,r16,r0 000eac2c: 0803ab19 j 0x000eac64 000eac30: 00000000 nop
Tetra Master PRNG (BIOS)
seed × 0x41C64E6D + 0x3039
07c02200: 3c03a001 lui r3,0xa001 07c02204: 8c639010 lw r3,-0x6ff0(r3) ;r3 = seed 07c02208: 3c0141c6 lui r1,0x41c6 07c0220c: 34214e6d ori r1,r1,0x4e6d ;r1 = 0x41C64E6D 07c02210: 00610019 multu r3,r1 07c02214: 3c01a001 lui r1,0xa001 07c02218: 00001812 mflo r3 07c0221c: 24633039 addiu r3,r3,0x3039 ;r3 = r3 × 0x41C64E6D + 0x3039 07c02220: 00031402 srl r2,r3,0x10 ;r2 = r3 >> 0x10 07c02224: 30427fff andi r2,r2,0x7fff ;r2 &= 0x7FFF 07c02228: 03e00008 jr r31 ;jump to r31 07c0222c: ac239010 sw r3,-0x6ff0(r1) ;store new seed in 0xA0009010
Internal Data for Final Fantasy IX
| |
---|---|