The current URL is datacrystal.tcrf.net.
Yu-Gi-Oh! Forbidden Memories/ROM map: Difference between revisions
m (→0x21558) |
|||
Line 725: | Line 725: | ||
00021584: 0800855c j 0x00021570 ;while(r5 < r2), loop to 0x21570 | 00021584: 0800855c j 0x00021570 ;while(r5 < r2), loop to 0x21570 | ||
00021588: 24630004 addiu r3,r3,0x0004 ;r3 += 4 | 00021588: 24630004 addiu r3,r3,0x0004 ;r3 += 4 | ||
0002158c: 84620002 lh r2,0x0002(r3) ;r2 = (r3+0x2) | |||
00021590: 03e00008 jr r31 | |||
00021594: 00000000 nop | |||
==0x2158c== | ==0x2158c== |
Revision as of 09:30, 28 January 2018
The following article is a ROM map for Yu-Gi-Oh! Forbidden Memories.
These addresses (unless otherwise noted) are from the extracted NTSC-U [SLUS-01411] bin.
0x12b50 (game initialization)
00012b50: 27bdffe8 addiu r29,r29,0xffe8 00012b54: afbf0014 sw r31,0x0014(r29) 00012b58: 0c004a9e jal 0x00012a78 00012b5c: afb00010 sw r16,0x0010(r29) 00012b60: 0c01ce2c jal 0x000738b0 00012b64: 00000000 nop 00012b68: 0c01d0e4 jal 0x00074390 00012b6c: 00000000 nop 00012b70: 0c021530 jal 0x000854c0 00012b74: 00000000 nop 00012b78: 0c01ce30 jal 0x000738c0 00012b7c: 00000000 nop 00012b80: 0c01d121 jal 0x00074484 00012b84: 00000000 nop 00012b88: 0c01ce14 jal 0x00073850 00012b8c: 24040002 addiu r4,r0,0x0002 00012b90: 0c01fd8d jal 0x0007f634 00012b94: 00002021 addu r4,r0,r0 00012b98: 0c005743 jal 0x00015d0c 00012b9c: 00000000 nop 00012ba0: 3c04800a lui r4,0x800a 00012ba4: 2484b4a8 addiu r4,r4,0xb4a8 00012ba8: 24030001 addiu r3,r0,0x0001 00012bac: af8001c4 sw r0,0x01c4(r28) 00012bb0: af8001c0 sw r0,0x01c0(r28) 00012bb4: a38001b8 sb r0,0x01b8(r28) 00012bb8: af800194 sw r0,0x0194(r28) 00012bbc: 8f850194 lw r5,0x0194(r28) 00012bc0: 24025000 addiu r2,r0,0x5000 00012bc4: a38001bb sb r0,0x01bb(r28) 00012bc8: a38001b9 sb r0,0x01b9(r28) 00012bcc: af8301d0 sw r3,0x01d0(r28) 00012bd0: a7820190 sh r2,0x0190(r28) 00012bd4: a38001c9 sb r0,0x01c9(r28) 00012bd8: 3c01800a lui r1,0x800a 00012bdc: a023b230 sb r3,-0x4dd0(r1) 00012be0: af8401ac sw r4,0x01ac(r28) 00012be4: af8501bc sw r5,0x01bc(r28) 00012be8: 0c004c55 jal 0x00013154 00012bec: 00000000 nop 00012bf0: 0c0100fc jal 0x000403f0 00012bf4: 00000000 nop 00012bf8: 0c00546c jal 0x000151b0 00012bfc: 00000000 nop 00012c00: 0c004d2d jal 0x000134b4 00012c04: 00000000 nop 00012c08: 0c00d696 jal 0x00035a58 00012c0c: 00000000 nop 00012c10: 0c00d699 jal 0x00035a64 00012c14: 00000000 nop 00012c18: 0c00ed72 jal 0x0003b5c8 00012c1c: 00000000 nop 00012c20: 3c02800f lui r2,0x800f 00012c24: 90449ec0 lbu r4,-0x6140(r2) 00012c28: 0c0119da jal 0x00046768 00012c2c: 00000000 nop 00012c30: 3c048001 lui r4,0x8001 00012c34: 0c01d108 jal 0x00074420 00012c38: 24842cd4 addiu r4,r4,0x2cd4 00012c3c: 0c00ffa0 jal 0x0003fe80 00012c40: 00000000 nop 00012c44: 3c045555 lui r4,0x5555 00012c48: 0c023970 jal 0x0008e5c0 ;PRNG seed update, set initial PRNG seed to 0x55555555 00012c4c: 34845555 ori r4,r4,0x5555 ;r4 = 0x55555555 00012c50: 0c01fd8d jal 0x0007f634 00012c54: 24040001 addiu r4,r0,0x0001 00012c58: 0c00b363 jal 0x0002cd8c 00012c5c: 00000000 nop 00012c60: 0c00b363 jal 0x0002cd8c 00012c64: 00000000 nop 00012c68: 0c010e58 jal 0x00043960 00012c6c: 00002021 addu r4,r0,r0 00012c70: 3c04800f lui r4,0x800f 00012c74: 0c023ed4 jal 0x0008fb50 00012c78: 24849dc0 addiu r4,r4,0x9dc0 00012c7c: 0c00b363 jal 0x0002cd8c 00012c80: 00408021 addu r16,r2,r0 00012c84: 12000005 beq r16,r0,0x00012c9c 00012c88: 00000000 nop 00012c8c: 0c016e17 jal 0x0005b85c 00012c90: 00000000 nop 00012c94: 0c004df9 jal 0x000137e4 00012c98: 00000000 nop 00012c9c: 0c010ef3 jal 0x00043bcc 00012ca0: 00000000 nop 00012ca4: 0c00b516 jal 0x0002d458 00012ca8: 00402021 addu r4,r2,r0 00012cac: 24020008 addiu r2,r0,0x0008 00012cb0: 3c01800a lui r1,0x800a 00012cb4: a022b269 sb r2,-0x4d97(r1) 00012cb8: 0c00b75d jal 0x0002dd74 00012cbc: 00000000 nop 00012cc0: 8fbf0014 lw r31,0x0014(r29) 00012cc4: 8fb00010 lw r16,0x0010(r29) 00012cc8: 00001021 addu r2,r0,r0 00012ccc: 03e00008 jr r31 00012cd0: 27bd0018 addiu r29,r29,0x0018
0x12d4c (routine)
00012d4c: 27bdffe8 addiu r29,r29,0xffe8 00012d50: afbf0010 sw r31,0x0010(r29) 00012d54: 0c004c1b jal 0x0001306c 00012d58: 00000000 nop 00012d5c: 0c004b6d jal 0x00012db4 00012d60: 00000000 nop 00012d64: 0c004b97 jal 0x00012e5c 00012d68: 00000000 nop 00012d6c: 0c00f336 jal 0x0003ccd8 00012d70: 00000000 nop 00012d74: 8fbf0010 lw r31,0x0010(r29) 00012d78: 00000000 nop 00012d7c: 03e00008 jr r31 00012d80: 27bd0018 addiu r29,r29,0x0018
0x12d84 (calls 0x12d4c r4 times)
00012d84: 27bdffe8 addiu r29,r29,0xffe8 00012d88: afb00010 sw r16,0x0010(r29) 00012d8c: 00808021 addu r16,r4,r0 ;r16 = r4 00012d90: afbf0014 sw r31,0x0014(r29) 00012d94: 0c004b53 jal 0x00012d4c ;Jump to 0x00012d4c and link 00012d98: 2610ffff addiu r16,r16,0xffff ;r16-- 00012d9c: 1600fffd bne r16,r0,0x00012d94 ;if(r16 ≠ 0), loop to 0x00012d94 00012da0: 00000000 nop 00012da4: 8fbf0014 lw r31,0x0014(r29) 00012da8: 8fb00010 lw r16,0x0010(r29) 00012dac: 03e00008 jr r31 00012db0: 27bd0018 addiu r29,r29,0x0018
0x12db4
00012db4: 97820190 lhu r2,0x0190(r28) ;r2 = (r28+0x190) 00012db8: 27bdffe8 addiu r29,r29,0xffe8 00012dbc: 30428000 andi r2,r2,0x8000 ;r2 &= 0x8000 00012dc0: 14400003 bne r2,r0,0x00012dd0 ;if(r2 ≠ 0), branch to 0x00012dd0 00012dc4: afbf0010 sw r31,0x0010(r29) 00012dc8: 0c01fdb3 jal 0x0007f6cc ;Jump to 0x0007f6cc and link 00012dcc: 00002021 addu r4,r0,r0 ;r4 = 0 00012dd0: 938301b8 lbu r3,0x01b8(r28) ;r3 = (r28+0x1b8) 00012dd4: 8f8201c0 lw r2,0x01c0(r28) ;r2 = (r28+0x1c0) 00012dd8: 00000000 nop 00012ddc: 0043102a slt r2,r2,r3 00012de0: 1440fffb bne r2,r0,0x00012dd0 ;if(r2 < r3), loop to 0x00012dd0 00012de4: 00000000 nop 00012de8: 8f8201c0 lw r2,0x01c0(r28) ;r2 = (r28+0x1c0) 00012dec: 00000000 nop 00012df0: a38201b9 sb r2,0x01b9(r28) ;Store r2 to (r28+0x1b9) 00012df4: 304200ff andi r2,r2,0x00ff ;r2 &= 0xFF 00012df8: 10400002 beq r2,r0,0x00012e04 ;if(r2 == 0), branch to 0x00012e04 00012dfc: 24020001 addiu r2,r0,0x0001 ;r2 = 1 00012e00: a38201b9 sb r2,0x01b9(r28) ;Store 1 to (r28+0x1b9) 00012e04: 938201b9 lbu r2,0x01b9(r28) ;r2 = (r28+0x1b9) 00012e08: 3c03800a lui r3,0x800a 00012e0c: 9063afa4 lbu r3,-0x505c(r3) ;r3 = (0x8009AFA4) 00012e10: 24420001 addiu r2,r2,0x0001 ;r2++ 00012e14: af8201d0 sw r2,0x01d0(r28) ;Store r2 to (r28+0x1d0) 00012e18: 14600002 bne r3,r0,0x00012e24 ;if(r3 ≠ 0), branch to 0x00012e24 00012e1c: 24050002 addiu r5,r0,0x0002 ;r5 = 2 00012e20: 938501d0 lbu r5,0x01d0(r28) ;r5 = (r28+0x1d0) 00012e24: 2402ffff addiu r2,r0,0xffff ;r2 = -1 00012e28: 3c01800a lui r1,0x800a 00012e2c: a025afa3 sb r5,-0x505d(r1) ;Store r5 to (0x8009AFA3) 00012e30: 3c01800a lui r1,0x800a 00012e34: a020afa4 sb r0,-0x505c(r1) ;Store 0 to (0x8009AFA4) 00012e38: af8201c0 sw r2,0x01c0(r28) ;Store r2 to (r28+0x1c0) 00012e3c: 0c01d05c jal 0x00074170 ;Jump to 0x00074170 and link 00012e40: 00002021 addu r4,r0,r0 ;r4 = 0 00012e44: 8f8201c4 lw r2,0x01c4(r28) ;r2 = (r28+0x1c4) 00012e48: 8fbf0010 lw r31,0x0010(r29) 00012e4c: 24420001 addiu r2,r2,0x0001 ;r2++ 00012e50: af8201c4 sw r2,0x01c4(r28) 00012e54: 03e00008 jr r31 00012e58: 27bd0018 addiu r29,r29,0x0018
0x1306c
0001306c: 27bdffe0 addiu r29,r29,0xffe0 00013070: afbf0018 sw r31,0x0018(r29) 00013074: afb10014 sw r17,0x0014(r29) 00013078: 0c005539 jal 0x000154e4 ;Jump to 0x000154e4 and link 0001307c: afb00010 sw r16,0x0010(r29) ;Store r16 to (r29+0x10) 00013080: 0c0104d0 jal 0x0x000154e4 ;Jump to 0x0x000154e4 and link 00013084: 00008821 addu r17,r0,r0 ;r17 = 0 00013088: 3c02800f lui r2,0x800f 0001308c: 24509db0 addiu r16,r2,0x9db0 00013090: 8e020000 lw r2,0x0000(r16) ;r2 = (0x800E6250) 00013094: 00000000 nop 00013098: 10400003 beq r2,r0,0x000130a8 ;if(r2 == 0), branch to 0x000130a8 0001309c: 00000000 nop 000130a0: 0040f809 jalr r2,r31 ;Jump to r31 and link 000130a4: 00000000 nop 000130a8: 26310001 addiu r17,r17,0x0001 ;r17++ 000130ac: 2a220004 slti r2,r17,0x0004 000130b0: 1440fff7 bne r2,r0,0x00013090 ;if(r17 < 4), loop to 0x00013090 000130b4: 26100004 addiu r16,r16,0x0004 ;r16 += 4 000130b8: 8f8201b0 lw r2,0x01b0(r28) ;r2 = (r28+0x1b0) 000130bc: 00000000 nop 000130c0: 10400003 beq r2,r0,0x000130d0 ;if(r2 == 0), branch to 0x000130d0 000130c4: 00000000 nop 000130c8: 0040f809 jalr r2,r31 ;Jump to r31 and link 000130cc: 00000000 nop 000130d0: 8f8201a8 lw r2,0x01a8(r28) ;r2 = (r28+0x1a8) 000130d4: 8f83019c lw r3,0x019c(r28) ;r3 = (r28+0x19c) 000130d8: 00000000 nop 000130dc: 0043102a slt r2,r2,r3 000130e0: 1440000d bne r2,r0,0x00013118 ;if(r2 < r3), branch to 0x00013118 000130e4: 00000000 nop 000130e8: 8f8201b4 lw r2,0x01b4(r28) ;r2 = (r28+0x1b4) 000130ec: 8f8301cc lw r3,0x01cc(r28) ;r3 = (r28+0x1cc) 000130f0: 00000000 nop 000130f4: 0043102a slt r2,r2,r3 000130f8: 14400007 bne r2,r0,0x00013118 ;if(r2 < r3), branch to 0x00013118 000130fc: 00000000 nop 00013100: 8f820000 lw r2,0x0000(r28) ;r2 = r28 00013104: 00000000 nop 00013108: 2442ffff addiu r2,r2,0xffff ;r2-- 0001310c: af820000 sw r2,0x0000(r28) ;Store r2 in (r28) 00013110: 04410007 bgez r2,0x00013130 ;if(r2 ≥ 0), branch to 0x00013130 00013114: 00000000 nop 00013118: 8f82019c lw r2,0x019c(r28) ;r2 = (r28+0x19c) 0001311c: 8f8401cc lw r4,0x01cc(r28) ;r4 = (r28+0x1cc) 00013120: 2403003c addiu r3,r0,0x003c ;r3 = 0x3C 00013124: af830000 sw r3,0x0000(r28) ;Store r3 to (r28) 00013128: af8201a8 sw r2,0x01a8(r28) ;Store r2 to (r28+0x1a8) 0001312c: af8401b4 sw r4,0x01b4(r28) ;Store r4 to (r28+0x1b4) 00013130: 0c005297 jal 0x00014a5c ;Jump to 0x00014a5c and link 00013134: 00002021 addu r4,r0,r0 ;r4 = 0 00013138: 0c004db5 jal 0x000136d4 ;Jump to 0x000136d4 and link 0001313c: 00000000 nop 00013140: 8fbf0018 lw r31,0x0018(r29) 00013144: 8fb10014 lw r17,0x0014(r29) 00013148: 8fb00010 lw r16,0x0010(r29) 0001314c: 03e00008 jr r31 00013150: 27bd0020 addiu r29,r29,0x0020
0x13154
00013154: 27bdffd0 addiu r29,r29,0xffd0 00013158: afb40028 sw r20,0x0028(r29) 0001315c: 0080a021 addu r20,r4,r0 00013160: 00002021 addu r4,r0,r0 00013164: afbf002c sw r31,0x002c(r29) 00013168: afb30024 sw r19,0x0024(r29) 0001316c: afb20020 sw r18,0x0020(r29) 00013170: afb1001c sw r17,0x001c(r29) 00013174: 0c01fcd4 jal 0x0007f350 00013178: afb00018 sw r16,0x0018(r29) 0001317c: 24040140 addiu r4,r0,0x0140 00013180: 240500f0 addiu r5,r0,0x00f0 00013184: 24060004 addiu r6,r0,0x0004 00013188: 24070001 addiu r7,r0,0x0001 0001318c: 0c021374 jal 0x00084dd0 00013190: afa00010 sw r0,0x0010(r29) 00013194: 00002021 addu r4,r0,r0 00013198: 00802821 addu r5,r4,r0 0001319c: 24060140 addiu r6,r0,0x0140 000131a0: 0c0215a8 jal 0x000856a0 000131a4: 00803821 addu r7,r4,r0 000131a8: 24130006 addiu r19,r0,0x0006 000131ac: 02808021 addu r16,r20,r0 000131b0: 24030001 addiu r3,r0,0x0001 000131b4: 3c028010 lui r2,0x8010 000131b8: 2442e048 addiu r2,r2,0xe048 000131bc: a38301a5 sb r3,0x01a5(r28) 000131c0: a38301c8 sb r3,0x01c8(r28) 000131c4: a38001a0 sb r0,0x01a0(r28) 000131c8: 3c01800a lui r1,0x800a 000131cc: a023b14c sb r3,-0x4eb4(r1) 000131d0: 3c01800a lui r1,0x800a 000131d4: a023b144 sb r3,-0x4ebc(r1) 000131d8: 3c01800a lui r1,0x800a 000131dc: a023b14b sb r3,-0x4eb5(r1) 000131e0: 3c01800a lui r1,0x800a 000131e4: a023b143 sb r3,-0x4ebd(r1) 000131e8: 3c01800a lui r1,0x800a 000131ec: a023b14a sb r3,-0x4eb6(r1) 000131f0: 3c01800a lui r1,0x800a 000131f4: a023b142 sb r3,-0x4ebe(r1) 000131f8: a0430018 sb r3,0x0018(r2) 000131fc: a0430016 sb r3,0x0016(r2) 00013200: a0430019 sb r3,0x0019(r2) 00013204: a043001a sb r3,0x001a(r2) 00013208: a043001b sb r3,0x001b(r2) 0001320c: 24020002 addiu r2,r0,0x0002 00013210: 02601821 addu r3,r19,r0 00013214: a3820198 sb r2,0x0198(r28) 00013218: 2402000c addiu r2,r0,0x000c 0001321c: a3830199 sb r3,0x0199(r28) 00013220: a382019a sb r2,0x019a(r28) 00013224: a383019b sb r3,0x019b(r28) 00013228: 24110003 addiu r17,r0,0x0003 0001322c: 2412514c addiu r18,r0,0x514c 00013230: 24020002 addiu r2,r0,0x0002 00013234: ae025110 sw r2,0x5110(r16) 00013238: 26020010 addiu r2,r16,0x0010 0001323c: ae025128 sw r2,0x5128(r16) 00013240: 2402000c addiu r2,r0,0x000c 00013244: ae025138 sw r2,0x5138(r16) 00013248: 26020110 addiu r2,r16,0x0110 0001324c: ae02513c sw r2,0x513c(r16) 00013250: 26024110 addiu r2,r16,0x4110 00013254: ae105114 sw r16,0x5114(r16) 00013258: ae135124 sw r19,0x5124(r16) 0001325c: ae13514c sw r19,0x514c(r16) 00013260: ae025150 sw r2,0x5150(r16) 00013264: 00002021 addu r4,r0,r0 00013268: 3225ffff andi r5,r17,0xffff 0001326c: 0c02176c jal 0x00085db0 00013270: 02123021 addu r6,r16,r18 00013274: 2631ffff addiu r17,r17,0xffff 00013278: 0621fffa bgez r17,0x00013264 0001327c: 2652ffec addiu r18,r18,0xffec 00013280: 26105160 addiu r16,r16,0x5160 00013284: 3402a2c0 ori r2,r0,0xa2c0 00013288: 02821021 addu r2,r20,r2 0001328c: 0202102a slt r2,r16,r2 00013290: 1440ffe6 bne r2,r0,0x0001322c 00013294: 24110003 addiu r17,r0,0x0003 00013298: 3c03800f lui r3,0x800f 0001329c: 3c028010 lui r2,0x8010 000132a0: 244be0a8 addiu r11,r2,0xe0a8 000132a4: 246a9d28 addiu r10,r3,0x9d28 000132a8: 89680003 lwl r8,0x0003(r11) 000132ac: 99680000 lwr r8,0x0000(r11) 000132b0: 89690007 lwl r9,0x0007(r11) 000132b4: 99690004 lwr r9,0x0004(r11) 000132b8: a9480003 swl r8,0x0003(r10) 000132bc: b9480000 swr r8,0x0000(r10) 000132c0: a9490007 swl r9,0x0007(r10) 000132c4: b9490004 swr r9,0x0004(r10) 000132c8: 8968000b lwl r8,0x000b(r11) 000132cc: 99680008 lwr r8,0x0008(r11) 000132d0: 8969000f lwl r9,0x000f(r11) 000132d4: 9969000c lwr r9,0x000c(r11) 000132d8: a948000b swl r8,0x000b(r10) 000132dc: b9480008 swr r8,0x0008(r10) 000132e0: a949000f swl r9,0x000f(r10) 000132e4: b949000c swr r9,0x000c(r10) 000132e8: 89680013 lwl r8,0x0013(r11) 000132ec: 99680010 lwr r8,0x0010(r11) 000132f0: 00000000 nop 000132f4: a9480013 swl r8,0x0013(r10) 000132f8: b9480010 swr r8,0x0010(r10) 000132fc: 0c021b72 jal 0x00086dc8 00013300: 00000000 nop 00013304: 0c0215d0 jal 0x00085740 00013308: 00000000 nop 0001330c: 00002021 addu r4,r0,r0 00013310: 0c02156c jal 0x000855b0 00013314: 00802821 addu r5,r4,r0 00013318: 0c021e34 jal 0x000878d0 0001331c: 2404012c addiu r4,r0,0x012c 00013320: 0c00f2fa jal 0x0003cbe8 00013324: 00000000 nop 00013328: 0c022dec jal 0x0008b7b0 0001332c: 24040001 addiu r4,r0,0x0001 00013330: 0c004db9 jal 0x000136e4 00013334: 00000000 nop 00013338: 0c023970 jal 0x0008e5c0 ;PRNG seed update 0001333c: 24040056 addiu r4,r0,0x0056 ;r4 = 0x56 00013340: 8fbf002c lw r31,0x002c(r29) 00013344: 8fb40028 lw r20,0x0028(r29) 00013348: 8fb30024 lw r19,0x0024(r29) 0001334c: 8fb20020 lw r18,0x0020(r29) 00013350: 8fb1001c lw r17,0x001c(r29) 00013354: 8fb00018 lw r16,0x0018(r29) 00013358: 03e00008 jr r31 0001335c: 27bd0030 addiu r29,r29,0x0030
0x1352c
0001352c: 27bdffd8 addiu r29,r29,0xffd8 00013530: 3c02800f lui r2,0x800f 00013534: afb20018 sw r18,0x0018(r29) 00013538: 24522848 addiu r18,r2,0x2848 0001353c: 84422848 lh r2,0x2848(r2) 00013540: afbf0020 sw r31,0x0020(r29) 00013544: afb3001c sw r19,0x001c(r29) 00013548: afb10014 sw r17,0x0014(r29) 0001354c: afb00010 sw r16,0x0010(r29) 00013550: 86440004 lh r4,0x0004(r18) 00013554: 0c0219dc jal 0x00086770 00013558: 00028823 subu r17,r0,r2 0001355c: 02220018 mult r17,r2 00013560: 00001012 mflo r2 00013564: 04410002 bgez r2,0x00013570 00013568: 00000000 nop 0001356c: 24420fff addiu r2,r2,0x0fff 00013570: 86440004 lh r4,0x0004(r18) 00013574: 0c0219a8 jal 0x000866a0 00013578: 00028303 sra r16,r2,0x0c 0001357c: 02220018 mult r17,r2 00013580: 00001012 mflo r2 00013584: 04410002 bgez r2,0x00013590 00013588: 00000000 nop 0001358c: 24420fff addiu r2,r2,0x0fff 00013590: 86440002 lh r4,0x0002(r18) 00013594: 0c0219a8 jal 0x000866a0 00013598: 00029b03 sra r19,r2,0x0c 0001359c: 02020018 mult r16,r2 000135a0: 00003812 mflo r7 000135a4: 04e10002 bgez r7,0x000135b0 000135a8: 00000000 nop 000135ac: 24e70fff addiu r7,r7,0x0fff 000135b0: 86440002 lh r4,0x0002(r18) 000135b4: 0c0219dc jal 0x00086770 000135b8: 00078b03 sra r17,r7,0x0c 000135bc: 02020018 mult r16,r2 000135c0: 00002812 mflo r5 000135c4: 04a10002 bgez r5,0x000135d0 000135c8: 02402021 addu r4,r18,r0 000135cc: 24a50fff addiu r5,r5,0x0fff 000135d0: 00052b03 sra r5,r5,0x0c 000135d4: 02603021 addu r6,r19,r0 000135d8: 0c004d38 jal 0x000134e0 000135dc: 02203821 addu r7,r17,r0 000135e0: 8fbf0020 lw r31,0x0020(r29) 000135e4: 8fb3001c lw r19,0x001c(r29) 000135e8: 8fb20018 lw r18,0x0018(r29) 000135ec: 8fb10014 lw r17,0x0014(r29) 000135f0: 8fb00010 lw r16,0x0010(r29) 000135f4: 03e00008 jr r31 000135f8: 27bd0028 addiu r29,r29,0x0028
0x135fc
000135fc: 27bdffd8 addiu r29,r29,0xffd8 00013600: 3c02800f lui r2,0x800f 00013604: afb20018 sw r18,0x0018(r29) 00013608: 24522848 addiu r18,r2,0x2848 0001360c: 84422848 lh r2,0x2848(r2) 00013610: afbf0020 sw r31,0x0020(r29) 00013614: afb3001c sw r19,0x001c(r29) 00013618: afb10014 sw r17,0x0014(r29) 0001361c: afb00010 sw r16,0x0010(r29) 00013620: 86440002 lh r4,0x0002(r18) 00013624: 0c0219dc jal 0x00086770 00013628: 00028823 subu r17,r0,r2 0001362c: 02220018 mult r17,r2 00013630: 00001012 mflo r2 00013634: 04410002 bgez r2,0x00013640 00013638: 00000000 nop 0001363c: 24420fff addiu r2,r2,0x0fff 00013640: 86440002 lh r4,0x0002(r18) 00013644: 0c0219a8 jal 0x000866a0 00013648: 00028303 sra r16,r2,0x0c 0001364c: 02220018 mult r17,r2 00013650: 00001012 mflo r2 00013654: 04410002 bgez r2,0x00013660 00013658: 00000000 nop 0001365c: 24420fff addiu r2,r2,0x0fff 00013660: 86440004 lh r4,0x0004(r18) 00013664: 00029b03 sra r19,r2,0x0c 00013668: 0c0219a8 jal 0x000866a0 0001366c: 24840400 addiu r4,r4,0x0400 00013670: 02020018 mult r16,r2 00013674: 00003012 mflo r6 00013678: 04c10002 bgez r6,0x00013684 0001367c: 00000000 nop 00013680: 24c60fff addiu r6,r6,0x0fff 00013684: 86440004 lh r4,0x0004(r18) 00013688: 00068b03 sra r17,r6,0x0c 0001368c: 0c0219dc jal 0x00086770 00013690: 24840400 addiu r4,r4,0x0400 00013694: 02020018 mult r16,r2 00013698: 00002812 mflo r5 0001369c: 04a10002 bgez r5,0x000136a8 000136a0: 02402021 addu r4,r18,r0 000136a4: 24a50fff addiu r5,r5,0x0fff 000136a8: 00052b03 sra r5,r5,0x0c 000136ac: 02203021 addu r6,r17,r0 000136b0: 0c004d38 jal 0x000134e0 000136b4: 02603821 addu r7,r19,r0 000136b8: 8fbf0020 lw r31,0x0020(r29) 000136bc: 8fb3001c lw r19,0x001c(r29) 000136c0: 8fb20018 lw r18,0x0018(r29) 000136c4: 8fb10014 lw r17,0x0014(r29) 000136c8: 8fb00010 lw r16,0x0010(r29) 000136cc: 03e00008 jr r31 000136d0: 27bd0028 addiu r29,r29,0x0028 000136d4: 27bdfff0 addiu r29,r29,0xfff0 000136d8: 27bd0010 addiu r29,r29,0x0010 000136dc: 03e00008 jr r31 000136e0: 00000000 nop
0x136e4
000136e4: 27bdffd8 addiu r29,r29,0xffd8 000136e8: 3c04801e lui r4,0x801e 000136ec: 2484c000 addiu r4,r4,0xc000 000136f0: afbf0020 sw r31,0x0020(r29) 000136f4: afb3001c sw r19,0x001c(r29) 000136f8: afb20018 sw r18,0x0018(r29) 000136fc: afb10014 sw r17,0x0014(r29) 00013700: 0c004e26 jal 0x00013898 00013704: afb00010 sw r16,0x0010(r29) 00013708: 3c050080 lui r5,0x0080 0001370c: 34a58080 ori r5,r5,0x8080 00013710: 3c070018 lui r7,0x0018 00013714: 34e70018 ori r7,r7,0x0018 00013718: 3c0600fc lui r6,0x00fc 0001371c: 34c60230 ori r6,r6,0x0230 00013720: 00009821 addu r19,r0,r0 00013724: 3c02800f lui r2,0x800f 00013728: 24519ea8 addiu r17,r2,0x9ea8 0001372c: 3c028009 lui r2,0x8009 00013730: 2452078c addiu r18,r2,0x078c 00013734: 3c028001 lui r2,0x8001 00013738: 244237e4 addiu r2,r2,0x37e4 0001373c: 3c04800f lui r4,0x800f 00013740: 24839df0 addiu r3,r4,0x9df0 00013744: 3c01800a lui r1,0x800a 00013748: ac22b10c sw r2,-0x4ef4(r1) 0001374c: 24020120 addiu r2,r0,0x0120 00013750: a4620004 sh r2,0x0004(r3) 00013754: 240200d0 addiu r2,r0,0x00d0 00013758: a4620006 sh r2,0x0006(r3) 0001375c: 2402000b addiu r2,r0,0x000b 00013760: a462000c sh r2,0x000c(r3) 00013764: 3c020800 lui r2,0x0800 00013768: ac829df0 sw r2,-0x6210(r4) 0001376c: 3402a000 ori r2,r0,0xa000 00013770: a38001d8 sb r0,0x01d8(r28) 00013774: ac650014 sw r5,0x0014(r3) 00013778: a462000e sh r2,0x000e(r3) 0001377c: ac670008 sw r7,0x0008(r3) 00013780: ac660010 sw r6,0x0010(r3) 00013784: 8e500000 lw r16,0x0000(r18) 00013788: 00000000 nop 0001378c: 1200000e beq r16,r0,0x000137c8 00013790: 02202021 addu r4,r17,r0 00013794: 0c004e3d jal 0x000138f4 00013798: 02002821 addu r5,r16,r0 0001379c: 3c048001 lui r4,0x8001 000137a0: 24840038 addiu r4,r4,0x0038 000137a4: 02002821 addu r5,r16,r0 000137a8: 8e260000 lw r6,0x0000(r17) 000137ac: 26310004 addiu r17,r17,0x0004 000137b0: 26520004 addiu r18,r18,0x0004 000137b4: 0c023a1c jal 0x0008e870 000137b8: 26730001 addiu r19,r19,0x0001 000137bc: 2a620007 slti r2,r19,0x0007 000137c0: 1440fff0 bne r2,r0,0x00013784 000137c4: 00000000 nop 000137c8: 8fbf0020 lw r31,0x0020(r29) 000137cc: 8fb3001c lw r19,0x001c(r29) 000137d0: 8fb20018 lw r18,0x0018(r29) 000137d4: 8fb10014 lw r17,0x0014(r29) 000137d8: 8fb00010 lw r16,0x0010(r29) 000137dc: 03e00008 jr r31 000137e0: 27bd0028 addiu r29,r29,0x0028
Fusion checking routine
Used to check the result of a fusion. r4 and r5 are the first and second card IDs of the fusees. The game stores the table of fusions in order of first card, then second card. The first part of the table are offsets to tell the code where to start looking (0 signifies no fusions so immediate return). Now, the natural way to store this would be (2 bytes for second material) (2 bytes for result). However, the more significant byte will always be 00, 01, or 02. This wastes 6 out of 8 bits, so what the game does is take these 2 bits for both cards, as well as for both cards for the next fusions, and puts them together into one byte. Decoding this is where all the bit shifts and & 0x0300 come from.
The issue is that this means the code traverses the fusions in twos, so if there are an odd number of fusions then the code checks an "extra fusion". The table isn't padded and the code doesn't check for this, so sometimes the result is an extra glitch fusion (of which there are 15 in total).
00019a60: 3c028018 lui r2,0x8018 00019a64: 2443c2d8 addiu r3,r2,0xc2d8 00019a68: 00a4102a slt r2,r5,r4 00019a6c: 10400003 beq r2,r0,0x00019a7c ;if r5 < r4, swap them so the lower card is first 00019a70: 00a01021 addu r2,r5,r0 00019a74: 00802821 addu r5,r4,r0 00019a78: 00402021 addu r4,r2,r0 00019a7c: 00041040 sll r2,r4,0x01 00019a80: 00431021 addu r2,r2,r3 00019a84: 94420000 lhu r2,0x0000(r2) ;r2 = offset to find the fusions of the first card 00019a88: 00000000 nop 00019a8c: 14400007 bne r2,r0,0x00019aac ;0 signifies no fusions, so if r2 is 0 then exit 00019a90: 00432021 addu r4,r2,r3 00019a94: 03e00008 jr r31 00019a98: 00001021 addu r2,r0,r0 00019a9c: 90830002 lbu r3,0x0002(r4) 00019aa0: 30420300 andi r2,r2,0x0300 00019aa4: 03e00008 jr r31 00019aa8: 00431025 or r2,r2,r3 00019aac: 90880000 lbu r8,0x0000(r4) ;r8 = number of fusions with first card (if under 256) 00019ab0: 00000000 nop 00019ab4: 15000004 bne r8,r0,0x00019ac8 ;if r8 is 0, then the next byte x gives us the number of fusions as 511 - x 00019ab8: 240201ff addiu r2,r0,0x01ff 00019abc: 90830001 lbu r3,0x0001(r4) 00019ac0: 24840001 addiu r4,r4,0x0001 00019ac4: 00434023 subu r8,r2,r3 00019ac8: 24840001 addiu r4,r4,0x0001 00019acc: 24870003 addiu r7,r4,0x0003 00019ad0: 90860000 lbu r6,0x0000(r4) ;byte that we need to unpack with shifts and & 0x0300 00019ad4: 90e3fffe lbu r3,-0x0002(r7) 00019ad8: 00061200 sll r2,r6,0x08 00019adc: 30420300 andi r2,r2,0x0300 00019ae0: 00431025 or r2,r2,r3 00019ae4: 1045ffed beq r2,r5,0x00019a9c 00019ae8: 00061180 sll r2,r6,0x06 00019aec: 00061100 sll r2,r6,0x04 00019af0: 90e30000 lbu r3,0x0000(r7) 00019af4: 30420300 andi r2,r2,0x0300 00019af8: 00431025 or r2,r2,r3 00019afc: 10450006 beq r2,r5,0x00019b18 00019b00: 24e70005 addiu r7,r7,0x0005 00019b04: 2508fffe addiu r8,r8,0xfffe ;r8 -= 2 00019b08: 1d00fff1 bgtz r8,0x00019ad0 00019b0c: 24840005 addiu r4,r4,0x0005 00019b10: 03e00008 jr r31 00019b14: 00001021 addu r2,r0,r0 00019b18: 00061080 sll r2,r6,0x02 00019b1c: 90830004 lbu r3,0x0004(r4) 00019b20: 30420300 andi r2,r2,0x0300 00019b24: 03e00008 jr r31 00019b28: 00431025 or r2,r2,r3
YOU WIN PRNG
- Only run before the animation starts, so no matter when you stop the animation, the card drop will always be the same.
000211d4: 9382025d lbu r2,0x025d(r28) 000211d8: 00000000 nop 000211dc: 000218c0 sll r3,r2,0x03 ;r3 = r2 << 3 000211e0: 00621823 subu r3,r3,r2 ;r3 -= r2 000211e4: 00031880 sll r3,r3,0x02 ;r3 << 2 000211e8: 3c028009 lui r2,0x8009 000211ec: 24420960 addiu r2,r2,0x0960 ;r2 = 0x80090960 000211f0: 02621021 addu r2,r19,r2 ;r2 += r19 000211f4: 00628821 addu r17,r3,r2 ;r17 = r3 + r2 000211f8: ae800000 sw r0,0x0000(r20) 000211fc: 92220002 lbu r2,0x0002(r17) ;r2 = (r17+0x2) 00021200: 00000000 nop 00021204: 1040003c beq r2,r0,0x000212f8 ;if no letter to load, branch at the end of the function 00021208: 00000000 nop 0002120c: 0c01000b jal 0x0004002c 00021210: 00000000 nop 00021214: 00402021 addu r4,r2,r0 ;r4 = r2 + r0 00021218: 0c01002b jal 0x000400ac 0002121c: 24050002 addiu r5,r0,0x0002 ;r5 = r0 + 0x2 00021220: 00408021 addu r16,r2,r0 ;r16 = r2 + r0 00021224: 02002021 addu r4,r16,r0 00021228: 92250000 lbu r5,0x0000(r17) 0002122c: 92260001 lbu r6,0x0001(r17) 00021230: 9382025d lbu r2,0x025d(r28) 00021234: 00003821 addu r7,r0,r0 00021238: afa20010 sw r2,0x0010(r29) 0002123c: 92230002 lbu r3,0x0002(r17) 00021240: 24020011 addiu r2,r0,0x0011 00021244: afa20018 sw r2,0x0018(r29) 00021248: 24020009 addiu r2,r0,0x0009 0002124c: afa2001c sw r2,0x001c(r29) 00021250: 3c02801b lui r2,0x801b 00021254: 2442f000 addiu r2,r2,0xf000 00021258: afa20020 sw r2,0x0020(r29) 0002125c: 0c010a2a jal 0x000428a8 ;Loads YOU WIN letters 00021260: afa30014 sw r3,0x0014(r29) 00021264: 92020069 lbu r2,0x0069(r16) 00021268: 00000000 nop 0002126c: 2c42001a sltiu r2,r2,0x001a 00021270: 14400005 bne r2,r0,0x00021288 00021274: 00000000 nop 00021278: 96020040 lhu r2,0x0040(r16) 0002127c: 00000000 nop 00021280: 24420010 addiu r2,r2,0x0010 00021284: a6020040 sh r2,0x0040(r16) 00021288: 96020008 lhu r2,0x0008(r16) 0002128c: 02002021 addu r4,r16,r0 00021290: 34420028 ori r2,r2,0x0028 00021294: a6020008 sh r2,0x0008(r16) 00021298: 8e020004 lw r2,0x0004(r16) 0002129c: 3c035000 lui r3,0x5000 000212a0: 00431025 or r2,r2,r3 000212a4: ae020004 sw r2,0x0004(r16) 000212a8: 92230003 lbu r3,0x0003(r17) 000212ac: 24020018 addiu r2,r0,0x0018 ;r2 = r0 + 0x18 000212b0: a602004a sh r2,0x004a(r16) 000212b4: 0c010a46 jal 0x00042918 000212b8: a6030048 sh r3,0x0048(r16) 000212bc: 8e020030 lw r2,0x0030(r16) 000212c0: 0c023964 jal 0x0008e590 ;PRNG advance 000212c4: ae02002c sw r2,0x002c(r16) 000212c8: 24041000 addiu r4,r0,0x1000 ;r4 = r0 + 0x1000 000212cc: 3042003f andi r2,r2,0x003f ;r2 &= 0x3F 000212d0: 24420140 addiu r2,r2,0x0140 ;r2 += 0x140 000212d4: 0c00d63f jal 0x000358fc ;Return a PRN in r2 000212d8: a6020028 sh r2,0x0028(r16) 000212dc: a602002a sh r2,0x002a(r16) 000212e0: 24020001 addiu r2,r0,0x0001 ;r2 = r0 + 1 000212e4: a202006c sb r2,0x006c(r16) 000212e8: 3c028002 lui r2,0x8002 000212ec: 24420d4c addiu r2,r2,0x0d4c ;r2 += 0xD4C 000212f0: ae020024 sw r2,0x0024(r16) 000212f4: ae900000 sw r16,0x0000(r20) 000212f8: 2694000c addiu r20,r20,0x000c 000212fc: 26520001 addiu r18,r18,0x0001 00021300: 2a420007 slti r2,r18,0x0007 00021304: 1440ffa7 bne r2,r0,0x000211a4 ;Loop 7 times 00021308: 26730004 addiu r19,r19,0x0004 0002130c: 08008517 j 0x0002145c 00021310: 00000000 nop
00021430: 14400004 bne r2,r0,0x00021444 00021434: 3c02800f lui r2,0x800f 00021438: 34a20080 ori r2,r5,0x0080 0002143c: a382026c sb r2,0x026c(r28) 00021440: 3c02800f lui r2,0x800f 00021444: 90429ece lbu r2,-0x6132(r2) 00021448: 00000000 nop 0002144c: 30420080 andi r2,r2,0x0080 00021450: 14400002 bne r2,r0,0x0002145c 00021454: 2402000d addiu r2,r0,0x000d 00021458: a7820332 sh r2,0x0332(r28) 0002145c: 8fbf0040 lw r31,0x0040(r29) 00021460: 8fb5003c lw r21,0x003c(r29) 00021464: 8fb40038 lw r20,0x0038(r29) 00021468: 8fb30034 lw r19,0x0034(r29) 0002146c: 8fb20030 lw r18,0x0030(r29) 00021470: 8fb1002c lw r17,0x002c(r29) 00021474: 8fb00028 lw r16,0x0028(r29) 00021478: 03e00008 jr r31 0002147c: 27bd0048 addiu r29,r29,0x0048
0x21558
00021558: 00041880 sll r3,r4,0x02 ;... 0002155c: 00641821 addu r3,r3,r4 ;... 00021560: 00031880 sll r3,r3,0x02 ;r3 = r4 × 20 00021564: 3c028018 lui r2,0x8018 00021568: 244298a8 addiu r2,r2,0x98a8 ;r2 = 0x801798a8 0002156c: 00621821 addu r3,r3,r2 ;r3 += r2 00021570: 84620000 lh r2,0x0000(r3) ;r2 = (r3) 00021574: 00000000 nop 00021578: 00a2102a slt r2,r5,r2 0002157c: 14400003 bne r2,r0,0x0002158c ;if(r5 ≥ r2), branch to 0x2158c 00021580: 00000000 nop 00021584: 0800855c j 0x00021570 ;while(r5 < r2), loop to 0x21570 00021588: 24630004 addiu r3,r3,0x0004 ;r3 += 4 0002158c: 84620002 lh r2,0x0002(r3) ;r2 = (r3+0x2) 00021590: 03e00008 jr r31 00021594: 00000000 nop
0x2158c
0002158c: 84620002 lh r2,0x0002(r3) ;r2 = (r3+0x2) 00021590: 03e00008 jr r31 00021594: 00000000 nop
0x21598
00021598: 27bdffd0 addiu r29,r29,0xffd0 0002159c: 3c02800f lui r2,0x800f 000215a0: afb3001c sw r19,0x001c(r29) 000215a4: 24539ff0 addiu r19,r2,0x9ff0 000215a8: 24020044 addiu r2,r0,0x0044 000215ac: 8f8402e0 lw r4,0x02e0(r28) 000215b0: 3c03801d lui r3,0x801d 000215b4: afbf0028 sw r31,0x0028(r29) 000215b8: afb50024 sw r21,0x0024(r29) 000215bc: afb40020 sw r20,0x0020(r29) 000215c0: afb20018 sw r18,0x0018(r29) 000215c4: afb10014 sw r17,0x0014(r29) 000215c8: afb00010 sw r16,0x0010(r29) 000215cc: a0820034 sb r2,0x0034(r4) 000215d0: 24020040 addiu r2,r0,0x0040 ;r2 = 0x40 000215d4: a0820035 sb r2,0x0035(r4) 000215d8: 24020045 addiu r2,r0,0x0045 ;r2 = 0x45 000215dc: a0820036 sb r2,0x0036(r4) 000215e0: 9382025d lbu r2,0x025d(r28) 000215e4: 24745608 addiu r20,r3,0x5608 ;r20 = 0x801d5608 000215e8: 00021140 sll r2,r2,0x05 ;r2 << 5 000215ec: 00531021 addu r2,r2,r19 ;r2 += r19 000215f0: 80430000 lb r3,0x0000(r2) ;r3 = (r2) 000215f4: 24020028 addiu r2,r0,0x0028 ;r2 = 40 000215f8: 14620002 bne r3,r2,0x00021604 ;if(r3 ≠ r2), branch to 0x21604 000215fc: 24020042 addiu r2,r0,0x0042 ;r2 = 0x42 00021600: a0820035 sb r2,0x0035(r4) 00021604: 9382025d lbu r2,0x025d(r28) ;r2 = (r28+0x25d) 00021608: 00000000 nop 0002160c: 00021140 sll r2,r2,0x05 ;r2 << 5 00021610: 00531021 addu r2,r2,r19 ;r2 += r19 00021614: 80430000 lb r3,0x0000(r2) ;r3 = (r2) 00021618: 2402ffd8 addiu r2,r0,0xffd8 ;r2 = -40 0002161c: 14620003 bne r3,r2,0x0002162c ;if(r3 ≠ r2), branch to 0x2162C 00021620: 0000a821 addu r21,r0,r0 ;r21 = 0 00021624: 24020041 addiu r2,r0,0x0041 ;r2 = 0x41 00021628: a0820035 sb r2,0x0035(r4) 0002162c: 26920078 addiu r18,r20,0x0078 ;r18 = r20 + 0x78 00021630: 26710001 addiu r17,r19,0x0001 ;r17 = r19 + 1 00021634: 00808021 addu r16,r4,r0 ;r16 = r4 00021638: 24020032 addiu r2,r0,0x0032 ;r2 = 50 0002163c: ae020030 sw r2,0x0030(r16) 00021640: ae02002c sw r2,0x002c(r16) 00021644: 82630000 lb r3,0x0000(r19) ;r3 = (r19) 00021648: 8e02002c lw r2,0x002c(r16) ;r2 = (r16+0x2c) 0002164c: 00000000 nop 00021650: 00431021 addu r2,r2,r3 ;r2 += r3 00021654: ae02002c sw r2,0x002c(r16) 00021658: 82250017 lb r5,0x0017(r17) ;r5 = (r17+0x17) 0002165c: 24040006 addiu r4,r0,0x0006 ;r4 = 6 00021660: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 00021664: ae850000 sw r5,0x0000(r20) 00021668: 8e03002c lw r3,0x002c(r16) ;r3 = (r16+0x2c) 0002166c: 00000000 nop 00021670: 00621821 addu r3,r3,r2 ;r3 += r2 00021674: ae03002c sw r3,0x002c(r16) 00021678: 86250013 lh r5,0x0013(r17) 0002167c: 24040007 addiu r4,r0,0x0007 ;r4 = 7 00021680: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 00021684: ae45ff90 sw r5,-0x0070(r18) 00021688: 8e03002c lw r3,0x002c(r16) 0002168c: 00000000 nop 00021690: 00621821 addu r3,r3,r2 00021694: ae03002c sw r3,0x002c(r16) 00021698: 8622000d lh r2,0x000d(r17) 0002169c: 00000000 nop 000216a0: ae42ff98 sw r2,-0x0068(r18) 000216a4: 9222000a lbu r2,0x000a(r17) 000216a8: 00000000 nop 000216ac: ae42ffa0 sw r2,-0x0060(r18) 000216b0: 92250001 lbu r5,0x0001(r17) 000216b4: 24040001 addiu r4,r0,0x0001 ;r4 = 1 000216b8: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 000216bc: ae45ffa8 sw r5,-0x0058(r18) 000216c0: 8e03002c lw r3,0x002c(r16) 000216c4: 00000000 nop 000216c8: 00621821 addu r3,r3,r2 000216cc: ae03002c sw r3,0x002c(r16) 000216d0: 8622000f lh r2,0x000f(r17) 000216d4: 00000000 nop 000216d8: ae42ffb0 sw r2,-0x0050(r18) 000216dc: 9222000b lbu r2,0x000b(r17) 000216e0: 00000000 nop 000216e4: ae42ffb8 sw r2,-0x0048(r18) 000216e8: 92250002 lbu r5,0x0002(r17) 000216ec: 24040002 addiu r4,r0,0x0002 ;r4 = 2 000216f0: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 000216f4: ae45ffc0 sw r5,-0x0040(r18) 000216f8: 8e03002c lw r3,0x002c(r16) 000216fc: 00000000 nop 00021700: 00621821 addu r3,r3,r2 00021704: ae03002c sw r3,0x002c(r16) 00021708: 92220006 lbu r2,0x0006(r17) 0002170c: 00000000 nop 00021710: ae42ffc8 sw r2,-0x0038(r18) 00021714: 92250003 lbu r5,0x0003(r17) 00021718: 24040003 addiu r4,r0,0x0003 ;r4 = 3 0002171c: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 00021720: ae45ffd0 sw r5,-0x0030(r18) 00021724: 8e03002c lw r3,0x002c(r16) 00021728: 00000000 nop 0002172c: 00621821 addu r3,r3,r2 00021730: ae03002c sw r3,0x002c(r16) 00021734: 92250007 lbu r5,0x0007(r17) 00021738: 24040008 addiu r4,r0,0x0008 ;r4 = 8 0002173c: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 00021740: ae45ffd8 sw r5,-0x0028(r18) 00021744: 8e03002c lw r3,0x002c(r16) 00021748: 00000000 nop 0002174c: 00621821 addu r3,r3,r2 00021750: ae03002c sw r3,0x002c(r16) 00021754: 92250008 lbu r5,0x0008(r17) 00021758: 24040009 addiu r4,r0,0x0009 ;r4 = 9 0002175c: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 00021760: ae45ffe0 sw r5,-0x0020(r18) 00021764: 8e03002c lw r3,0x002c(r16) 00021768: 26b50001 addiu r21,r21,0x0001 0002176c: 00621821 addu r3,r3,r2 00021770: ae03002c sw r3,0x002c(r16) 00021774: 92220009 lbu r2,0x0009(r17) 00021778: 26730020 addiu r19,r19,0x0020 0002177c: ae42ffe8 sw r2,-0x0018(r18) 00021780: 92250004 lbu r5,0x0004(r17) 00021784: 24040004 addiu r4,r0,0x0004 ;r4 = 4 00021788: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 0002178c: ae45fff0 sw r5,-0x0010(r18) 00021790: 8e03002c lw r3,0x002c(r16) 00021794: 26940004 addiu r20,r20,0x0004 00021798: 00621821 addu r3,r3,r2 0002179c: ae03002c sw r3,0x002c(r16) 000217a0: 92250005 lbu r5,0x0005(r17) 000217a4: 24040005 addiu r4,r0,0x0005 ;r4 = 5 000217a8: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 000217ac: ae45fff8 sw r5,-0x0008(r18) 000217b0: 8e03002c lw r3,0x002c(r16) ;r3 = (r16+0x2c) 000217b4: 00002021 addu r4,r0,r0 ;r4 = 0 000217b8: 00621821 addu r3,r3,r2 ;r3 += r2 000217bc: ae03002c sw r3,0x002c(r16) 000217c0: 92250000 lbu r5,0x0000(r17) ;r5 = (r17) 000217c4: 26310020 addiu r17,r17,0x0020 ;r17 += 0x20 000217c8: 0c008556 jal 0x00021558 ;jump to 0x21558 and link 000217cc: ae450000 sw r5,0x0000(r18) 000217d0: 8e03002c lw r3,0x002c(r16) ;r3 = (r16+0x2c) 000217d4: 26520004 addiu r18,r18,0x0004 ;r18 += 4 000217d8: 00621821 addu r3,r3,r2 ;r3 += r2 000217dc: ae03002c sw r3,0x002c(r16) 000217e0: 2aa20002 slti r2,r21,0x0002 000217e4: 1440ff97 bne r2,r0,0x00021644 ;if(r21<2), loop to 0x21644 000217e8: 26100004 addiu r16,r16,0x0004 ;r16 += 4 000217ec: 8fbf0028 lw r31,0x0028(r29) 000217f0: 8fb50024 lw r21,0x0024(r29) 000217f4: 8fb40020 lw r20,0x0020(r29) 000217f8: 8fb3001c lw r19,0x001c(r29) 000217fc: 8fb20018 lw r18,0x0018(r29) 00021800: 8fb10014 lw r17,0x0014(r29) 00021804: 8fb00010 lw r16,0x0010(r29) 00021808: 03e00008 jr r31 0002180c: 27bd0030 addiu r29,r29,0x0030
Duel End routine
000218f0: 27bdffc0 addiu r29,r29,0xffc0 000218f4: 3c02800f lui r2,0x800f 000218f8: 24422848 addiu r2,r2,0x2848 000218fc: afbf0038 sw r31,0x0038(r29) 00021900: afb30034 sw r19,0x0034(r29) 00021904: afb20030 sw r18,0x0030(r29) 00021908: afb1002c sw r17,0x002c(r29) 0002190c: afb00028 sw r16,0x0028(r29) 00021910: 94430002 lhu r3,0x0002(r2) 00021914: 00000000 nop 00021918: 24630002 addiu r3,r3,0x0002 0002191c: 0c004d4b jal 0x0001352c ; 00021920: a4430002 sh r3,0x0002(r2) 00021924: 97830332 lhu r3,0x0332(r28) 00021928: 00000000 nop 0002192c: 30628000 andi r2,r3,0x8000 00021930: 1440013f bne r2,r0,0x00021e30 00021934: 30624000 andi r2,r3,0x4000 00021938: 34628000 ori r2,r3,0x8000 0002193c: a7820332 sh r2,0x0332(r28) 00021940: 0c005721 jal 0x00015c84 ; 00021944: 00000000 nop 00021948: 24040080 addiu r4,r0,0x0080 0002194c: 0c0056f6 jal 0x00015bd8 ; 00021950: 24050002 addiu r5,r0,0x0002 00021954: 3c028018 lui r2,0x8018 00021958: 244299d8 addiu r2,r2,0x99d8 0002195c: af8202e0 sw r2,0x02e0(r28) 00021960: 3c02801d lui r2,0x801d 00021964: 9383025d lbu r3,0x025d(r28) 00021968: 24040004 addiu r4,r0,0x0004 0002196c: a0445708 sb r4,0x5708(r2) 00021970: 24425708 addiu r2,r2,0x5708 00021974: 3c01800a lui r1,0x800a 00021978: a420b148 sh r0,-0x4eb8(r1) 0002197c: 3c01800a lui r1,0x800a 00021980: a420b146 sh r0,-0x4eba(r1) 00021984: 3c01800a lui r1,0x800a 00021988: a020b34e sb r0,-0x4cb2(r1) 0002198c: 3c01800a lui r1,0x800a 00021990: a020b355 sb r0,-0x4cab(r1) 00021994: a0440001 sb r4,0x0001(r2) 00021998: 00621821 addu r3,r3,r2 0002199c: a0600000 sb r0,0x0000(r3) 000219a0: 9382025d lbu r2,0x025d(r28) 000219a4: 00000000 nop 000219a8: 1040000c beq r2,r0,0x000219dc 000219ac: 240472e1 addiu r4,r0,0x72e1 000219b0: 240472f1 addiu r4,r0,0x72f1 000219b4: 3c02800a lui r2,0x800a 000219b8: 9042b361 lbu r2,-0x4c9f(r2) 000219bc: 24030001 addiu r3,r0,0x0001 000219c0: 3c01800a lui r1,0x800a 000219c4: a023b355 sb r3,-0x4cab(r1) 000219c8: 00021600 sll r2,r2,0x18 000219cc: 00021603 sra r2,r2,0x18 000219d0: 24428328 addiu r2,r2,0x8328 000219d4: 3c01800a lui r1,0x800a 000219d8: a422b32e sh r2,-0x4cd2(r1) 000219dc: 0c00ffc2 jal 0x0003ff08 ; 000219e0: 00000000 nop 000219e4: 3c02800a lui r2,0x800a 000219e8: 8042b360 lb r2,-0x4ca0(r2) 000219ec: 00000000 nop 000219f0: 0441000d bgez r2,0x00021a28 000219f4: 00000000 nop 000219f8: 3c02800a lui r2,0x800a 000219fc: 8042b361 lb r2,-0x4c9f(r2) 00021a00: 00000000 nop 00021a04: 04410008 bgez r2,0x00021a28 00021a08: 24030001 addiu r3,r0,0x0001 00021a0c: 3c02800a lui r2,0x800a 00021a10: 9042b355 lbu r2,-0x4cab(r2) 00021a14: 3c01800a lui r1,0x800a 00021a18: a023b34e sb r3,-0x4cb2(r1) 00021a1c: 24420002 addiu r2,r2,0x0002 00021a20: 3c01800a lui r1,0x800a 00021a24: a022b355 sb r2,-0x4cab(r1) 00021a28: 8f8202e0 lw r2,0x02e0(r28) 00021a2c: 0c008566 jal 0x00021598 ; 00021a30: a0400039 sb r0,0x0039(r2) 00021a34: 9382025d lbu r2,0x025d(r28) 00021a38: 8f8302e0 lw r3,0x02e0(r28) 00021a3c: 00021080 sll r2,r2,0x02 00021a40: 00621021 addu r2,r3,r2 00021a44: 8c44002c lw r4,0x002c(r2) 00021a48: 00000000 nop 00021a4c: 28820032 slti r2,r4,0x0032 00021a50: 10400006 beq r2,r0,0x00021a6c 00021a54: 24020001 addiu r2,r0,0x0001 00021a58: 04810002 bgez r4,0x00021a64 00021a5c: a0620039 sb r2,0x0039(r3) 00021a60: 00002021 addu r4,r0,r0 00021a64: 24020063 addiu r2,r0,0x0063 00021a68: 00442023 subu r4,r2,r4 00021a6c: 28820064 slti r2,r4,0x0064 00021a70: 14400002 bne r2,r0,0x00021a7c 00021a74: 00000000 nop 00021a78: 24040063 addiu r4,r0,0x0063 00021a7c: 2484ffce addiu r4,r4,0xffce 00021a80: 3c026666 lui r2,0x6666 00021a84: 34426667 ori r2,r2,0x6667 00021a88: 00820018 mult r4,r2 00021a8c: 00041fc3 sra r3,r4,0x1f 00021a90: 8f8402e0 lw r4,0x02e0(r28) 00021a94: 00004010 mfhi r8 00021a98: 00081083 sra r2,r8,0x02 00021a9c: 00431023 subu r2,r2,r3 00021aa0: a0820038 sb r2,0x0038(r4) 00021aa4: 8f8202e0 lw r2,0x02e0(r28) 00021aa8: 0c01000b jal 0x0004002c ; 00021aac: a0400037 sb r0,0x0037(r2) 00021ab0: 00402021 addu r4,r2,r0 00021ab4: 0c01002b jal 0x000400ac ;(related to YOU WIN animation) 00021ab8: 24050002 addiu r5,r0,0x0002 00021abc: 00409821 addu r19,r2,r0 00021ac0: 02602021 addu r4,r19,r0 00021ac4: 24050020 addiu r5,r0,0x0020 00021ac8: 24060010 addiu r6,r0,0x0010 00021acc: 24070003 addiu r7,r0,0x0003 00021ad0: 24120001 addiu r18,r0,0x0001 00021ad4: 24020002 addiu r2,r0,0x0002 00021ad8: 2411000b addiu r17,r0,0x000b 00021adc: 2410020c addiu r16,r0,0x020c 00021ae0: afb20010 sw r18,0x0010(r29) 00021ae4: afa20014 sw r2,0x0014(r29) 00021ae8: afb10018 sw r17,0x0018(r29) 00021aec: 0c010133 jal 0x000404cc ; 00021af0: afb0001c sw r16,0x001c(r29) 00021af4: 0c010a46 jal 0x00042918 ; 00021af8: 02602021 addu r4,r19,r0 00021afc: 96620008 lhu r2,0x0008(r19) 00021b00: 00000000 nop 00021b04: 34420028 ori r2,r2,0x0028 00021b08: 0c01000b jal 0x0004002c ; 00021b0c: a6620008 sh r2,0x0008(r19) 00021b10: 00402021 addu r4,r2,r0 00021b14: 0c01002b jal 0x000400ac ;(related to YOU WIN animation) 00021b18: 24050002 addiu r5,r0,0x0002 00021b1c: 00409821 addu r19,r2,r0 00021b20: 02602021 addu r4,r19,r0 00021b24: 24050120 addiu r5,r0,0x0120 00021b28: 24060010 addiu r6,r0,0x0010 00021b2c: 24070003 addiu r7,r0,0x0003 00021b30: afb20010 sw r18,0x0010(r29) 00021b34: afa00014 sw r0,0x0014(r29) 00021b38: afb10018 sw r17,0x0018(r29) 00021b3c: 0c010133 jal 0x000404cc ;(related to YOU WIN animation) 00021b40: afb0001c sw r16,0x001c(r29) 00021b44: 0c010a46 jal 0x00042918 ; 00021b48: 02602021 addu r4,r19,r0 00021b4c: 96620008 lhu r2,0x0008(r19) 00021b50: 24100009 addiu r16,r0,0x0009 00021b54: 34420028 ori r2,r2,0x0028 00021b58: 0c01000b jal 0x0004002c ; 00021b5c: a6620008 sh r2,0x0008(r19) 00021b60: 00402021 addu r4,r2,r0 00021b64: 0c01002b jal 0x000400ac ;(related to YOU WIN animation) 00021b68: 24050002 addiu r5,r0,0x0002 00021b6c: 00409821 addu r19,r2,r0 00021b70: 02602021 addu r4,r19,r0 00021b74: 00002821 addu r5,r0,r0 00021b78: 24060008 addiu r6,r0,0x0008 00021b7c: 00a03821 addu r7,r5,r0 00021b80: 24020004 addiu r2,r0,0x0004 00021b84: afa20010 sw r2,0x0010(r29) 00021b88: 24020010 addiu r2,r0,0x0010 00021b8c: afa20018 sw r2,0x0018(r29) 00021b90: 00c01021 addu r2,r6,r0 00021b94: afa2001c sw r2,0x001c(r29) 00021b98: 3c02801b lui r2,0x801b 00021b9c: 2442f000 addiu r2,r2,0xf000 ;r2 = 0x801a1000 00021ba0: afa00014 sw r0,0x0014(r29) 00021ba4: 0c010a2a jal 0x000428a8 ;jump to 0x428a8 and link 00021ba8: afa20020 sw r2,0x0020(r29) 00021bac: 0c010a46 jal 0x00042918 ;(related to YOU WIN animation) 00021bb0: 02602021 addu r4,r19,r0 ;... 00021bb4: 02602021 addu r4,r19,r0 ;r4 = r19 00021bb8: 0c010a3b jal 0x000428ec ; 00021bbc: 2405ffff addiu r5,r0,0xffff ;r5 = -1 00021bc0: 8f8302e0 lw r3,0x02e0(r28) ;r3 = (r28+0x2e0) 00021bc4: 96620008 lhu r2,0x0008(r19) ;r2 = (r19+0x8) 00021bc8: 24640024 addiu r4,r3,0x0024 ;r4 = r3 + 0x24 00021bcc: 34420020 ori r2,r2,0x0020 ;r2 |= 0x20 00021bd0: a6620008 sh r2,0x0008(r19) 00021bd4: ac730000 sw r19,0x0000(r3) 00021bd8: ac800004 sw r0,0x0004(r4) ;store 0 to (r4+0x4) 00021bdc: 2610ffff addiu r16,r16,0xffff ;r16-- 00021be0: 0601fffd bgez r16,0x00021bd8 ;while(r16 ≥ 0), loop to 0x21bd8 00021be4: 2484fffc addiu r4,r4,0xfffc ;r4 -= 4 00021be8: 3c02800a lui r2,0x800a 00021bec: 8042b360 lb r2,-0x4ca0(r2) ;r2 = (0x8009b360) 00021bf0: 3c01800a lui r1,0x800a 00021bf4: a420b338 sh r0,-0x4cc8(r1) 00021bf8: 04410048 bgez r2,0x00021d1c ;if(r2 ≥ 0), branch to 0x21d1c (defeat ?) 00021bfc: 00000000 nop 00021c00: 3c02800a lui r2,0x800a 00021c04: 8042b361 lb r2,-0x4c9f(r2) ;r2 = (0x8009b361) 00021c08: 00000000 nop 00021c0c: 04400043 bltz r2,0x00021d1c ;if(r2 < 0), branch to 0x21d1c (defeat ?) 00021c10: 00000000 nop 00021c14: 9382025d lbu r2,0x025d(r28) ;r2 = (r28+0x25d) 00021c18: 00000000 nop 00021c1c: 14400040 bne r2,r0,0x00021d20 ;if(r2 ≠ 0), branch to 0x21d20 (defeat ?) 00021c20: 00000000 nop 00021c24: 8f8302e0 lw r3,0x02e0(r28) 00021c28: 00000000 nop 00021c2c: 90620038 lbu r2,0x0038(r3) 00021c30: 00000000 nop 00021c34: 24420001 addiu r2,r2,0x0001 00021c38: a062003a sb r2,0x003a(r3) 00021c3c: 8f8302e0 lw r3,0x02e0(r28) ;r3 = pointer to Duel Rank ? 00021c40: 00000000 nop 00021c44: 90620039 lbu r2,0x0039(r3) ;r2 = (r3+00x39) 00021c48: 90630038 lbu r3,0x0038(r3) ;r3 = (r3+00x38) 00021c4c: 0002102b sltu r2,r0,r2 ;if(r2 > 0), r2 = 1 00021c50: 2c630003 sltiu r3,r3,0x0003 ;if(r3 < 3), r3 = 1 00021c54: 10600002 beq r3,r0,0x00021c60 ;if(r3 == 0), branch to 0x21c60 00021c58: 00022040 sll r4,r2,0x01 ;duel_rank = r2 << 1 00021c5c: 24040001 addiu r4,r0,0x0001 ;duel_rank ++ 00021c60: 0c008604 jal 0x00021810 ;Card drop PRNG routine 00021c64: 00008021 addu r16,r0,r0 00021c68: 8f8402e0 lw r4,0x02e0(r28) 00021c6c: 3c03801d lui r3,0x801d 00021c70: 3c01800a lui r1,0x800a 00021c74: a422b338 sh r2,-0x4cc8(r1) 00021c78: a482003c sh r2,0x003c(r4) 00021c7c: 00021400 sll r2,r2,0x10 00021c80: 00021403 sra r2,r2,0x10 00021c84: ac6256a8 sw r2,0x56a8(r3) 00021c88: 9082003a lbu r2,0x003a(r4) 00021c8c: 00000000 nop 00021c90: 10400022 beq r2,r0,0x00021d1c 00021c94: 24120008 addiu r18,r0,0x0008 00021c98: 241100a0 addiu r17,r0,0x00a0 00021c9c: 0c01000b jal 0x0004002c ; 00021ca0: 26100001 addiu r16,r16,0x0001 00021ca4: 00402021 addu r4,r2,r0 00021ca8: 0c01002b jal 0x000400ac ; 00021cac: 24050002 addiu r5,r0,0x0002 00021cb0: 00409821 addu r19,r2,r0 00021cb4: 02602021 addu r4,r19,r0 00021cb8: 02202821 addu r5,r17,r0 00021cbc: 240600c0 addiu r6,r0,0x00c0 00021cc0: 24070003 addiu r7,r0,0x0003 00021cc4: 24020004 addiu r2,r0,0x0004 00021cc8: afa20010 sw r2,0x0010(r29) 00021ccc: 2402000b addiu r2,r0,0x000b 00021cd0: afa20018 sw r2,0x0018(r29) 00021cd4: 2402020c addiu r2,r0,0x020c 00021cd8: afa00014 sw r0,0x0014(r29) 00021cdc: 0c010133 jal 0x000404cc ; 00021ce0: afa2001c sw r2,0x001c(r29) 00021ce4: 0c010a46 jal 0x00042918 ; 00021ce8: 02602021 addu r4,r19,r0 00021cec: 26310014 addiu r17,r17,0x0014 00021cf0: 96620008 lhu r2,0x0008(r19) 00021cf4: 8f8302e0 lw r3,0x02e0(r28) 00021cf8: 34420020 ori r2,r2,0x0020 00021cfc: a6620008 sh r2,0x0008(r19) 00021d00: 00721021 addu r2,r3,r18 00021d04: ac530004 sw r19,0x0004(r2) 00021d08: 9062003a lbu r2,0x003a(r3) 00021d0c: 00000000 nop 00021d10: 0202102a slt r2,r16,r2 00021d14: 1440ffe1 bne r2,r0,0x00021c9c 00021d18: 26520004 addiu r18,r18,0x0004 00021d1c: 9382025d lbu r2,0x025d(r28) ;r2 = (r28+0x25d) 00021d20: 3c03800a lui r3,0x800a 00021d24: 2463b360 addiu r3,r3,0xb360 ;r3 += 0xb360 00021d28: 00431021 addu r2,r2,r3 ;r2 += r3 00021d2c: 80420000 lb r2,0x0000(r2) 00021d30: 00000000 nop 00021d34: 044100c6 bgez r2,0x00022050 00021d38: 00000000 nop 00021d3c: 0c01000b jal 0x0004002c ; 00021d40: 24110008 addiu r17,r0,0x0008 00021d44: 00402021 addu r4,r2,r0 00021d48: 0c01002b jal 0x000400ac ;(probably YOU LOSE animation here) 00021d4c: 24050002 addiu r5,r0,0x0002 00021d50: 00409821 addu r19,r2,r0 00021d54: 02602021 addu r4,r19,r0 00021d58: 00002821 addu r5,r0,r0 00021d5c: 24060010 addiu r6,r0,0x0010 00021d60: 00a03821 addu r7,r5,r0 00021d64: 24020005 addiu r2,r0,0x0005 00021d68: 00c09021 addu r18,r6,r0 00021d6c: 8f8302e0 lw r3,0x02e0(r28) 00021d70: 3c10801b lui r16,0x801b 00021d74: afa20010 sw r2,0x0010(r29) 00021d78: 90620039 lbu r2,0x0039(r3) 00021d7c: 2610f000 addiu r16,r16,0xf000 00021d80: afb20018 sw r18,0x0018(r29) 00021d84: afb1001c sw r17,0x001c(r29) 00021d88: afb00020 sw r16,0x0020(r29) 00021d8c: 0c010a2a jal 0x000428a8 ; 00021d90: afa20014 sw r2,0x0014(r29) 00021d94: 0c010a46 jal 0x00042918 ; 00021d98: 02602021 addu r4,r19,r0 00021d9c: 02602021 addu r4,r19,r0 00021da0: 0c010a3b jal 0x000428ec ; 00021da4: 2405fffe addiu r5,r0,0xfffe 00021da8: 96620008 lhu r2,0x0008(r19) 00021dac: 8f8302e0 lw r3,0x02e0(r28) 00021db0: 34420020 ori r2,r2,0x0020 00021db4: a6620008 sh r2,0x0008(r19) 00021db8: 0c01000b jal 0x0004002c ; 00021dbc: ac730004 sw r19,0x0004(r3) 00021dc0: 00402021 addu r4,r2,r0 00021dc4: 0c01002b jal 0x000400ac ; 00021dc8: 24050002 addiu r5,r0,0x0002 00021dcc: 00409821 addu r19,r2,r0 00021dd0: 02602021 addu r4,r19,r0 00021dd4: 00002821 addu r5,r0,r0 00021dd8: 24060010 addiu r6,r0,0x0010 00021ddc: 8f8302e0 lw r3,0x02e0(r28) 00021de0: 24020006 addiu r2,r0,0x0006 00021de4: afa20010 sw r2,0x0010(r29) 00021de8: 90620038 lbu r2,0x0038(r3) 00021dec: 00a03821 addu r7,r5,r0 00021df0: afb20018 sw r18,0x0018(r29) 00021df4: afb1001c sw r17,0x001c(r29) 00021df8: afb00020 sw r16,0x0020(r29) 00021dfc: 0c010a2a jal 0x000428a8 ; 00021e00: afa20014 sw r2,0x0014(r29) 00021e04: 0c010a46 jal 0x00042918 ; 00021e08: 02602021 addu r4,r19,r0 00021e0c: 02602021 addu r4,r19,r0 00021e10: 0c010a3b jal 0x000428ec ; 00021e14: 2405ffff addiu r5,r0,0xffff 00021e18: 96620008 lhu r2,0x0008(r19) 00021e1c: 8f8302e0 lw r3,0x02e0(r28) 00021e20: 34420020 ori r2,r2,0x0020 00021e24: a6620008 sh r2,0x0008(r19) 00021e28: 08008814 j 0x00022050 00021e2c: ac730008 sw r19,0x0008(r3)
Card drop PRNG routine
00021810: 27bdffe8 addiu r29,r29,0xffe8 00021814: afb00010 sw r16,0x0010(r29) 00021818: 000480c0 sll r16,r4,0x03 ;... 0002181c: 02048021 addu r16,r16,r4 ;... 00021820: 001080c0 sll r16,r16,0x03 ;... 00021824: 02048021 addu r16,r16,r4 ;... 00021828: 00101080 sll r2,r16,0x02 ;... 0002182c: 02028021 addu r16,r16,r2 ;... 00021830: 00108080 sll r16,r16,0x02 ;r16 = rank_ID × 1460 00021834: 3c028018 lui r2,0x8018 00021838: 2442878c addiu r2,r2,0x878c ;r2 = 0x8017878C 0002183c: afbf0014 sw r31,0x0014(r29) 00021840: 0c023964 jal 0x0008e590 ;PRNG advance 00021844: 02028021 addu r16,r16,r2 ;r16 += 0x8017878C 00021848: 304207ff andi r2,r2,0x07ff ;PRN &= 2047 0002184c: 24450001 addiu r5,r2,0x0001 ;r5 = PRN + 1 00021850: 00002021 addu r4,r0,r0 ;r3 = r0 00021854: 00801821 addu r3,r4,r0 ;r3 = r4 00021858: 96020000 lhu r2,0x0000(r16) ;r2 = card_proba 0002185c: 00000000 nop 00021860: 00822021 addu r4,r4,r2 ;r4 += card_proba 00021864: 0085102a slt r2,r4,r5 00021868: 10400006 beq r2,r0,0x00021884 ;if(r4 > PRN), exit this function 0002186c: 24620001 addiu r2,r3,0x0001 ;card_id = r3 + 1 00021870: 24630001 addiu r3,r3,0x0001 ;r3++ 00021874: 286202d2 slti r2,r3,0x02d2 00021878: 1440fff7 bne r2,r0,0x00021858 ;if the 722 cards have not been checked, loop to 0x21858 0002187c: 26100002 addiu r16,r16,0x0002 ;r16 += 2 (next card_proba) 00021880: 00001021 addu r2,r0,r0 ;card_id = 0 00021884: 8fbf0014 lw r31,0x0014(r29) 00021888: 8fb00010 lw r16,0x0010(r29) 0002188c: 03e00008 jr r31 00021890: 27bd0018 addiu r29,r29,0x0018
Duel End Routine - Campaign
000218f0: 27bdffc0 addiu r29,r29,0xffc0 000218f4: 3c02800f lui r2,0x800f 000218f8: 24422848 addiu r2,r2,0x2848 000218fc: afbf0038 sw r31,0x0038(r29) 00021900: afb30034 sw r19,0x0034(r29) 00021904: afb20030 sw r18,0x0030(r29) 00021908: afb1002c sw r17,0x002c(r29) 0002190c: afb00028 sw r16,0x0028(r29) 00021910: 94430002 lhu r3,0x0002(r2) 00021914: 00000000 nop 00021918: 24630002 addiu r3,r3,0x0002 0002191c: 0c004d4b jal 0x0001352c 00021920: a4430002 sh r3,0x0002(r2) 00021924: 97830332 lhu r3,0x0332(r28) 00021928: 00000000 nop 0002192c: 30628000 andi r2,r3,0x8000 ;r2 = r3 & 0x8000 00021930: 1440013f bne r2,r0,0x00021e30 ;if(r2 ≠ 0), branch to 0x21e30 00021934: 30624000 andi r2,r3,0x4000 00021938: 34628000 ori r2,r3,0x8000 0002193c: a7820332 sh r2,0x0332(r28) 00021940: 0c005721 jal 0x00015c84 00021944: 00000000 nop 00021948: 24040080 addiu r4,r0,0x0080 0002194c: 0c0056f6 jal 0x00015bd8 00021950: 24050002 addiu r5,r0,0x0002 00021954: 3c028018 lui r2,0x8018 00021958: 244299d8 addiu r2,r2,0x99d8 0002195c: af8202e0 sw r2,0x02e0(r28) 00021960: 3c02801d lui r2,0x801d 00021964: 9383025d lbu r3,0x025d(r28) 00021968: 24040004 addiu r4,r0,0x0004 0002196c: a0445708 sb r4,0x5708(r2) 00021970: 24425708 addiu r2,r2,0x5708 00021974: 3c01800a lui r1,0x800a 00021978: a420b148 sh r0,-0x4eb8(r1) 0002197c: 3c01800a lui r1,0x800a 00021980: a420b146 sh r0,-0x4eba(r1) 00021984: 3c01800a lui r1,0x800a 00021988: a020b34e sb r0,-0x4cb2(r1) 0002198c: 3c01800a lui r1,0x800a 00021990: a020b355 sb r0,-0x4cab(r1) 00021994: a0440001 sb r4,0x0001(r2) 00021998: 00621821 addu r3,r3,r2 0002199c: a0600000 sb r0,0x0000(r3) 000219a0: 9382025d lbu r2,0x025d(r28) 000219a4: 00000000 nop 000219a8: 1040000c beq r2,r0,0x000219dc 000219ac: 240472e1 addiu r4,r0,0x72e1 000219b0: 240472f1 addiu r4,r0,0x72f1 000219b4: 3c02800a lui r2,0x800a 000219b8: 9042b361 lbu r2,-0x4c9f(r2) 000219bc: 24030001 addiu r3,r0,0x0001 000219c0: 3c01800a lui r1,0x800a 000219c4: a023b355 sb r3,-0x4cab(r1) 000219c8: 00021600 sll r2,r2,0x18 000219cc: 00021603 sra r2,r2,0x18 000219d0: 24428328 addiu r2,r2,0x8328 000219d4: 3c01800a lui r1,0x800a 000219d8: a422b32e sh r2,-0x4cd2(r1) 000219dc: 0c00ffc2 jal 0x0003ff08 000219e0: 00000000 nop 000219e4: 3c02800a lui r2,0x800a 000219e8: 8042b360 lb r2,-0x4ca0(r2) 000219ec: 00000000 nop 000219f0: 0441000d bgez r2,0x00021a28 000219f4: 00000000 nop 000219f8: 3c02800a lui r2,0x800a 000219fc: 8042b361 lb r2,-0x4c9f(r2) 00021a00: 00000000 nop 00021a04: 04410008 bgez r2,0x00021a28 00021a08: 24030001 addiu r3,r0,0x0001 00021a0c: 3c02800a lui r2,0x800a 00021a10: 9042b355 lbu r2,-0x4cab(r2) 00021a14: 3c01800a lui r1,0x800a 00021a18: a023b34e sb r3,-0x4cb2(r1) 00021a1c: 24420002 addiu r2,r2,0x0002 00021a20: 3c01800a lui r1,0x800a 00021a24: a022b355 sb r2,-0x4cab(r1) 00021a28: 8f8202e0 lw r2,0x02e0(r28) 00021a2c: 0c008566 jal 0x00021598 00021a30: a0400039 sb r0,0x0039(r2) 00021a34: 9382025d lbu r2,0x025d(r28) 00021a38: 8f8302e0 lw r3,0x02e0(r28) 00021a3c: 00021080 sll r2,r2,0x02 00021a40: 00621021 addu r2,r3,r2 00021a44: 8c44002c lw r4,0x002c(r2) 00021a48: 00000000 nop 00021a4c: 28820032 slti r2,r4,0x0032 00021a50: 10400006 beq r2,r0,0x00021a6c 00021a54: 24020001 addiu r2,r0,0x0001 00021a58: 04810002 bgez r4,0x00021a64 00021a5c: a0620039 sb r2,0x0039(r3) 00021a60: 00002021 addu r4,r0,r0 00021a64: 24020063 addiu r2,r0,0x0063 00021a68: 00442023 subu r4,r2,r4 00021a6c: 28820064 slti r2,r4,0x0064 00021a70: 14400002 bne r2,r0,0x00021a7c 00021a74: 00000000 nop 00021a78: 24040063 addiu r4,r0,0x0063 00021a7c: 2484ffce addiu r4,r4,0xffce 00021a80: 3c026666 lui r2,0x6666 00021a84: 34426667 ori r2,r2,0x6667 00021a88: 00820018 mult r4,r2 00021a8c: 00041fc3 sra r3,r4,0x1f 00021a90: 8f8402e0 lw r4,0x02e0(r28) 00021a94: 00004010 mfhi r8 00021a98: 00081083 sra r2,r8,0x02 00021a9c: 00431023 subu r2,r2,r3 00021aa0: a0820038 sb r2,0x0038(r4) 00021aa4: 8f8202e0 lw r2,0x02e0(r28) 00021aa8: 0c01000b jal 0x0004002c 00021aac: a0400037 sb r0,0x0037(r2) 00021ab0: 00402021 addu r4,r2,r0 00021ab4: 0c01002b jal 0x000400ac 00021ab8: 24050002 addiu r5,r0,0x0002 00021abc: 00409821 addu r19,r2,r0 00021ac0: 02602021 addu r4,r19,r0 00021ac4: 24050020 addiu r5,r0,0x0020 00021ac8: 24060010 addiu r6,r0,0x0010 00021acc: 24070003 addiu r7,r0,0x0003 00021ad0: 24120001 addiu r18,r0,0x0001 00021ad4: 24020002 addiu r2,r0,0x0002 00021ad8: 2411000b addiu r17,r0,0x000b 00021adc: 2410020c addiu r16,r0,0x020c 00021ae0: afb20010 sw r18,0x0010(r29) 00021ae4: afa20014 sw r2,0x0014(r29) 00021ae8: afb10018 sw r17,0x0018(r29) 00021aec: 0c010133 jal 0x000404cc 00021af0: afb0001c sw r16,0x001c(r29) 00021af4: 0c010a46 jal 0x00042918 00021af8: 02602021 addu r4,r19,r0 00021afc: 96620008 lhu r2,0x0008(r19) 00021b00: 00000000 nop 00021b04: 34420028 ori r2,r2,0x0028 00021b08: 0c01000b jal 0x0004002c 00021b0c: a6620008 sh r2,0x0008(r19) 00021b10: 00402021 addu r4,r2,r0 00021b14: 0c01002b jal 0x000400ac 00021b18: 24050002 addiu r5,r0,0x0002 00021b1c: 00409821 addu r19,r2,r0 00021b20: 02602021 addu r4,r19,r0 00021b24: 24050120 addiu r5,r0,0x0120 00021b28: 24060010 addiu r6,r0,0x0010 00021b2c: 24070003 addiu r7,r0,0x0003 00021b30: afb20010 sw r18,0x0010(r29) 00021b34: afa00014 sw r0,0x0014(r29) 00021b38: afb10018 sw r17,0x0018(r29) 00021b3c: 0c010133 jal 0x000404cc 00021b40: afb0001c sw r16,0x001c(r29) 00021b44: 0c010a46 jal 0x00042918 00021b48: 02602021 addu r4,r19,r0 00021b4c: 96620008 lhu r2,0x0008(r19) 00021b50: 24100009 addiu r16,r0,0x0009 00021b54: 34420028 ori r2,r2,0x0028 00021b58: 0c01000b jal 0x0004002c 00021b5c: a6620008 sh r2,0x0008(r19) 00021b60: 00402021 addu r4,r2,r0 00021b64: 0c01002b jal 0x000400ac 00021b68: 24050002 addiu r5,r0,0x0002 00021b6c: 00409821 addu r19,r2,r0 00021b70: 02602021 addu r4,r19,r0 00021b74: 00002821 addu r5,r0,r0 00021b78: 24060008 addiu r6,r0,0x0008 00021b7c: 00a03821 addu r7,r5,r0 00021b80: 24020004 addiu r2,r0,0x0004 00021b84: afa20010 sw r2,0x0010(r29) 00021b88: 24020010 addiu r2,r0,0x0010 00021b8c: afa20018 sw r2,0x0018(r29) 00021b90: 00c01021 addu r2,r6,r0 00021b94: afa2001c sw r2,0x001c(r29) 00021b98: 3c02801b lui r2,0x801b 00021b9c: 2442f000 addiu r2,r2,0xf000 00021ba0: afa00014 sw r0,0x0014(r29) 00021ba4: 0c010a2a jal 0x000428a8 00021ba8: afa20020 sw r2,0x0020(r29) 00021bac: 0c010a46 jal 0x00042918 00021bb0: 02602021 addu r4,r19,r0 00021bb4: 02602021 addu r4,r19,r0 00021bb8: 0c010a3b jal 0x000428ec 00021bbc: 2405ffff addiu r5,r0,0xffff 00021bc0: 8f8302e0 lw r3,0x02e0(r28) 00021bc4: 96620008 lhu r2,0x0008(r19) 00021bc8: 24640024 addiu r4,r3,0x0024 00021bcc: 34420020 ori r2,r2,0x0020 00021bd0: a6620008 sh r2,0x0008(r19) 00021bd4: ac730000 sw r19,0x0000(r3) 00021bd8: ac800004 sw r0,0x0004(r4) 00021bdc: 2610ffff addiu r16,r16,0xffff 00021be0: 0601fffd bgez r16,0x00021bd8 00021be4: 2484fffc addiu r4,r4,0xfffc 00021be8: 3c02800a lui r2,0x800a 00021bec: 8042b360 lb r2,-0x4ca0(r2) 00021bf0: 3c01800a lui r1,0x800a 00021bf4: a420b338 sh r0,-0x4cc8(r1) 00021bf8: 04410048 bgez r2,0x00021d1c 00021bfc: 00000000 nop 00021c00: 3c02800a lui r2,0x800a 00021c04: 8042b361 lb r2,-0x4c9f(r2) 00021c08: 00000000 nop 00021c0c: 04400043 bltz r2,0x00021d1c 00021c10: 00000000 nop 00021c14: 9382025d lbu r2,0x025d(r28) ;r2 = (r28+0x25d) 00021c18: 00000000 nop 00021c1c: 14400040 bne r2,r0,0x00021d20 ;if(r2 == 0), branch to 0x21d20 00021c20: 00000000 nop 00021c24: 8f8302e0 lw r3,0x02e0(r28) 00021c28: 00000000 nop 00021c2c: 90620038 lbu r2,0x0038(r3) 00021c30: 00000000 nop 00021c34: 24420001 addiu r2,r2,0x0001 00021c38: a062003a sb r2,0x003a(r3) ;store Starchips in (r3+0x3a) 00021c3c: 8f8302e0 lw r3,0x02e0(r28) 00021c40: 00000000 nop 00021c44: 90620039 lbu r2,0x0039(r3) 00021c48: 90630038 lbu r3,0x0038(r3) 00021c4c: 0002102b sltu r2,r0,r2 00021c50: 2c630003 sltiu r3,r3,0x0003 00021c54: 10600002 beq r3,r0,0x00021c60 ;if(r3 < 3), branch to 0x21c60 00021c58: 00022040 sll r4,r2,0x01 ;r4 = r2 << 1 00021c5c: 24040001 addiu r4,r0,0x0001 ;r4 = 1 00021c60: 0c008604 jal 0x00021810 ;Card drop PRNG routine 00021c64: 00008021 addu r16,r0,r0 ;r16 = 0 00021c68: 8f8402e0 lw r4,0x02e0(r28) 00021c6c: 3c03801d lui r3,0x801d 00021c70: 3c01800a lui r1,0x800a 00021c74: a422b338 sh r2,-0x4cc8(r1) ;... 00021c78: a482003c sh r2,0x003c(r4) ;store card_drop_id in (0x8009B338) and in (r4+0x3c) 00021c7c: 00021400 sll r2,r2,0x10 00021c80: 00021403 sra r2,r2,0x10 ;remove higher 16 bits from r2 00021c84: ac6256a8 sw r2,0x56a8(r3) ;store card_drop_id in (0x801d56a8) 00021c88: 9082003a lbu r2,0x003a(r4) ;r2 = Starchips 00021c8c: 00000000 nop 00021c90: 10400022 beq r2,r0,0x00021d1c ;if(starchips == 0), branch to 0x21d1c 00021c94: 24120008 addiu r18,r0,0x0008 ;r18 += 8 00021c98: 241100a0 addiu r17,r0,0x00a0 ;r17 += 0xa0 00021c9c: 0c01000b jal 0x0004002c 00021ca0: 26100001 addiu r16,r16,0x0001 ;r16++ 00021ca4: 00402021 addu r4,r2,r0 ;r4 = r2 00021ca8: 0c01002b jal 0x000400ac 00021cac: 24050002 addiu r5,r0,0x0002 00021cb0: 00409821 addu r19,r2,r0 00021cb4: 02602021 addu r4,r19,r0 00021cb8: 02202821 addu r5,r17,r0 00021cbc: 240600c0 addiu r6,r0,0x00c0 00021cc0: 24070003 addiu r7,r0,0x0003 00021cc4: 24020004 addiu r2,r0,0x0004 00021cc8: afa20010 sw r2,0x0010(r29) 00021ccc: 2402000b addiu r2,r0,0x000b 00021cd0: afa20018 sw r2,0x0018(r29) 00021cd4: 2402020c addiu r2,r0,0x020c 00021cd8: afa00014 sw r0,0x0014(r29) 00021cdc: 0c010133 jal 0x000404cc 00021ce0: afa2001c sw r2,0x001c(r29) 00021ce4: 0c010a46 jal 0x00042918 00021ce8: 02602021 addu r4,r19,r0 00021cec: 26310014 addiu r17,r17,0x0014 00021cf0: 96620008 lhu r2,0x0008(r19) 00021cf4: 8f8302e0 lw r3,0x02e0(r28) 00021cf8: 34420020 ori r2,r2,0x0020 00021cfc: a6620008 sh r2,0x0008(r19) 00021d00: 00721021 addu r2,r3,r18 00021d04: ac530004 sw r19,0x0004(r2) 00021d08: 9062003a lbu r2,0x003a(r3) 00021d0c: 00000000 nop 00021d10: 0202102a slt r2,r16,r2 00021d14: 1440ffe1 bne r2,r0,0x00021c9c 00021d18: 26520004 addiu r18,r18,0x0004 00021d1c: 9382025d lbu r2,0x025d(r28) ;r2 = (r28+0x25d) 00021d20: 3c03800a lui r3,0x800a 00021d24: 2463b360 addiu r3,r3,0xb360 ;r3 = 8009b360 00021d28: 00431021 addu r2,r2,r3 ;r2 += r3 00021d2c: 80420000 lb r2,0x0000(r2) ;r2 = (r2) 00021d30: 00000000 nop 00021d34: 044100c6 bgez r2,0x00022050 ;if(r2 ≥ 0), branch to 0x22050 00021d38: 00000000 nop 00021d3c: 0c01000b jal 0x0004002c 00021d40: 24110008 addiu r17,r0,0x0008 ;r17 = 8 00021d44: 00402021 addu r4,r2,r0 ;r4 = r2 00021d48: 0c01002b jal 0x000400ac 00021d4c: 24050002 addiu r5,r0,0x0002 ;r5 = 2 00021d50: 00409821 addu r19,r2,r0 00021d54: 02602021 addu r4,r19,r0 00021d58: 00002821 addu r5,r0,r0 00021d5c: 24060010 addiu r6,r0,0x0010 00021d60: 00a03821 addu r7,r5,r0 00021d64: 24020005 addiu r2,r0,0x0005 00021d68: 00c09021 addu r18,r6,r0 00021d6c: 8f8302e0 lw r3,0x02e0(r28) 00021d70: 3c10801b lui r16,0x801b 00021d74: afa20010 sw r2,0x0010(r29) 00021d78: 90620039 lbu r2,0x0039(r3) 00021d7c: 2610f000 addiu r16,r16,0xf000 00021d80: afb20018 sw r18,0x0018(r29) 00021d84: afb1001c sw r17,0x001c(r29) 00021d88: afb00020 sw r16,0x0020(r29) 00021d8c: 0c010a2a jal 0x000428a8 00021d90: afa20014 sw r2,0x0014(r29) 00021d94: 0c010a46 jal 0x00042918 00021d98: 02602021 addu r4,r19,r0 00021d9c: 02602021 addu r4,r19,r0 00021da0: 0c010a3b jal 0x000428ec 00021da4: 2405fffe addiu r5,r0,0xfffe 00021da8: 96620008 lhu r2,0x0008(r19) 00021dac: 8f8302e0 lw r3,0x02e0(r28) 00021db0: 34420020 ori r2,r2,0x0020 00021db4: a6620008 sh r2,0x0008(r19) 00021db8: 0c01000b jal 0x0004002c 00021dbc: ac730004 sw r19,0x0004(r3) 00021dc0: 00402021 addu r4,r2,r0 00021dc4: 0c01002b jal 0x000400ac 00021dc8: 24050002 addiu r5,r0,0x0002 00021dcc: 00409821 addu r19,r2,r0 00021dd0: 02602021 addu r4,r19,r0 00021dd4: 00002821 addu r5,r0,r0 00021dd8: 24060010 addiu r6,r0,0x0010 00021ddc: 8f8302e0 lw r3,0x02e0(r28) 00021de0: 24020006 addiu r2,r0,0x0006 00021de4: afa20010 sw r2,0x0010(r29) 00021de8: 90620038 lbu r2,0x0038(r3) 00021dec: 00a03821 addu r7,r5,r0 00021df0: afb20018 sw r18,0x0018(r29) 00021df4: afb1001c sw r17,0x001c(r29) 00021df8: afb00020 sw r16,0x0020(r29) 00021dfc: 0c010a2a jal 0x000428a8 00021e00: afa20014 sw r2,0x0014(r29) 00021e04: 0c010a46 jal 0x00042918 00021e08: 02602021 addu r4,r19,r0 00021e0c: 02602021 addu r4,r19,r0 00021e10: 0c010a3b jal 0x000428ec 00021e14: 2405ffff addiu r5,r0,0xffff 00021e18: 96620008 lhu r2,0x0008(r19) 00021e1c: 8f8302e0 lw r3,0x02e0(r28) 00021e20: 34420020 ori r2,r2,0x0020 00021e24: a6620008 sh r2,0x0008(r19) 00021e28: 08008814 j 0x00022050 00021e2c: ac730008 sw r19,0x0008(r3)
0x21e30
00021e30: 1040005f beq r2,r0,0x00021fb0 00021e34: 3c02800f lui r2,0x800f 00021e38: 24509ec8 addiu r16,r2,0x9ec8 00021e3c: 92020006 lbu r2,0x0006(r16) 00021e40: 00000000 nop 00021e44: 30420080 andi r2,r2,0x0080 00021e48: 14400094 bne r2,r0,0x0002209c 00021e4c: 30622000 andi r2,r3,0x2000 00021e50: 1440000a bne r2,r0,0x00021e7c 00021e54: 34622000 ori r2,r3,0x2000 00021e58: a7820332 sh r2,0x0332(r28) 00021e5c: 0c005641 jal 0x00015904 00021e60: 00000000 nop 00021e64: 240400ff addiu r4,r0,0x00ff 00021e68: 00801021 addu r2,r4,r0 00021e6c: 0c0055ae jal 0x000156b8 00021e70: a2020004 sb r2,0x0004(r16) 00021e74: 08008827 j 0x0002209c 00021e78: 00000000 nop
0x24388
00024388: 27bdffe8 addiu r29,r29,0xffe8 0002438c: 3c02800a lui r2,0x800a 00024390: 8042b361 lb r2,-0x4c9f(r2) 00024394: 00001821 addu r3,r0,r0 00024398: 04410006 bgez r2,0x000243b4 0002439c: afbf0010 sw r31,0x0010(r29) 000243a0: 83820330 lb r2,0x0330(r28) 000243a4: 938302cd lbu r3,0x02cd(r28) 000243a8: 04400002 bltz r2,0x000243b4 000243ac: 00000000 nop 000243b0: 00401821 addu r3,r2,r0 000243b4: 10600009 beq r3,r0,0x000243dc 000243b8: 00000000 nop 000243bc: 0c00f37e jal 0x0003cdf8 000243c0: 00000000 nop 000243c4: 0c009080 jal 0x00024200 000243c8: 00000000 nop 000243cc: 0c00f392 jal 0x0003ce48 000243d0: 00000000 nop 000243d4: 080090f9 j 0x000243e4 000243d8: 00000000 nop
0x243dc
000243dc: 0c009080 jal 0x00024200 ;jump to 0x24200, and link 000243e0: 00000000 nop 000243e4: 8fbf0010 lw r31,0x0010(r29) ;r31 = (r29+0x10) 000243e8: 00000000 nop 000243ec: 03e00008 jr r31 000243f0: 27bd0018 addiu r29,r29,0x0018 ;r29 += 0x18
Shuffle Player's deck
000244ec: 00008821 addu r17,r0,r0 ;r17 = 0 000244f0: 94820000 lhu r2,0x0000(r4) 000244f4: 24840002 addiu r4,r4,0x0002 000244f8: a6020000 sh r2,0x0000(r16) ;store card_id in (shuffled_deck_pointer) 000244fc: a2510000 sb r17,0x0000(r18) ;store card_order in (shuffle_order_pointer) 00024500: 26520001 addiu r18,r18,0x0001 ;shuffle_order_pointer++ 00024504: 26310001 addiu r17,r17,0x0001 ;r17++ 00024508: 2a220028 slti r2,r17,0x0028 0002450c: 1440fff8 bne r2,r0,0x000244f0 ;While the whole deck is not copied, loop to 0x244f0 00024510: 26100002 addiu r16,r16,0x0002 ;shuffled_deck_pointer += 2 00024514: 00008821 addu r17,r0,r0 ;r17 = 0 00024518: 0c00d63f jal 0x000358fc ;PRN % (r16+r4) 0002451c: 24040028 addiu r4,r0,0x0028 ;r4 = 40 00024520: 24040028 addiu r4,r0,0x0028 ;r4 = 40 00024524: 0c00d63f jal 0x000358fc ;PRN % (r16+r4) 00024528: 00408021 addu r16,r2,r0 ;r16 = r2 0002452c: 00102840 sll r5,r16,0x01 ;r5 = r16 << 1 00024530: 00b62821 addu r5,r5,r22 ;r5 += r22 00024534: 00022040 sll r4,r2,0x01 ;r4 = r2 << 1 00024538: 00962021 addu r4,r4,r22 ;r4 += r22 0002453c: 02b08021 addu r16,r21,r16 ;r16 += r21 00024540: 94a60000 lhu r6,0x0000(r5) ;r6 = (r5) 00024544: 94830000 lhu r3,0x0000(r4) ;r3 = (r4) 00024548: 02a21021 addu r2,r21,r2 ;r2 += r21 0002454c: a4a30000 sh r3,0x0000(r5) ;store r3 in (r5) 00024550: a4860000 sh r6,0x0000(r4) ;store r6 in (r4) 00024554: 92060000 lbu r6,0x0000(r16) ;r6 = (r16) 00024558: 90430000 lbu r3,0x0000(r2) ;r3 = (r2) 0002455c: 26310001 addiu r17,r17,0x0001 ;r17++ 00024560: a2030000 sb r3,0x0000(r16) ;store r3 in (r16) 00024564: a0460000 sb r6,0x0000(r2) ;store r6 in (r2) 00024568: 2a2200a0 slti r2,r17,0x00a0 0002456c: 1440ffea bne r2,r0,0x00024518 ;if(r17 < 160), loop to 0x24518 00024570: 00000000 nop 00024574: 8fbf0308 lw r31,0x0308(r29) 00024578: 8fb70304 lw r23,0x0304(r29) 0002457c: 8fb60300 lw r22,0x0300(r29) 00024580: 8fb502fc lw r21,0x02fc(r29) 00024584: 8fb402f8 lw r20,0x02f8(r29) 00024588: 8fb302f4 lw r19,0x02f4(r29) 0002458c: 8fb202f0 lw r18,0x02f0(r29) 00024590: 8fb102ec lw r17,0x02ec(r29) 00024594: 8fb002e8 lw r16,0x02e8(r29) 00024598: 03e00008 jr r31 0002459c: 27bd0310 addiu r29,r29,0x0310
0002cc24: 3c03801d lui r3,0x801d 0002cc28: 24634244 addiu r3,r3,0x4244 0002cc2c: 2482ffff addiu r2,r4,0xffff 0002cc30: 00021080 sll r2,r2,0x02 0002cc34: 00431021 addu r2,r2,r3 0002cc38: 8c430000 lw r3,0x0000(r2) 0002cc3c: 00000000 nop 0002cc40: 306301ff andi r3,r3,0x01ff 0002cc44: 00031080 sll r2,r3,0x02 0002cc48: 00431021 addu r2,r2,r3 0002cc4c: 00028040 sll r16,r2,0x01 0002cc50: 3c02801d lui r2,0x801d 0002cc54: 24424244 addiu r2,r2,0x4244 0002cc58: 2483ffff addiu r3,r4,0xffff 0002cc5c: 00031880 sll r3,r3,0x02 0002cc60: 00621821 addu r3,r3,r2 0002cc64: 8c640000 lw r4,0x0000(r3) 0002cc68: 00000000 nop 0002cc6c: 00042683 sra r4,r4,0x1a 0002cc70: 0c00925f jal 0x0002497c 0002cc74: 3084001f andi r4,r4,0x001f 0002cc78: 02028021 addu r16,r16,r2 0002cc7c: 06000006 bltz r16,0x0002cc98 0002cc80: 00001021 addu r2,r0,r0 0002cc84: 2a022710 slti r2,r16,0x2710 0002cc88: 14400003 bne r2,r0,0x0002cc98 0002cc8c: 02001021 addu r2,r16,r0 0002cc90: 2410270f addiu r16,r0,0x270f ;r16 = 9999 0002cc94: 02001021 addu r2,r16,r0 0002cc98: 8fbf0014 lw r31,0x0014(r29) 0002cc9c: 8fb00010 lw r16,0x0010(r29) 0002cca0: 03e00008 jr r31 0002cca4: 27bd0018 addiu r29,r29,0x0018
0x2cca8 (card drop ?)
0002cca8: 308307ff andi r3,r4,0x07ff ;r3 = r4 & 2047 0002ccac: 000318c3 sra r3,r3,0x03 0002ccb0: 30860007 andi r6,r4,0x0007 0002ccb4: 24050080 addiu r5,r0,0x0080 0002ccb8: 3c02801d lui r2,0x801d 0002ccbc: 24420000 addiu r2,r2,0x0000 0002ccc0: 00621821 addu r3,r3,r2 0002ccc4: 90620618 lbu r2,0x0618(r3) 0002ccc8: 00c52807 srav r5,r5,r6 0002cccc: 30848000 andi r4,r4,0x8000 0002ccd0: 10800002 beq r4,r0,0x0002ccdc 0002ccd4: 00451024 and r2,r2,r5 0002ccd8: 2c420001 sltiu r2,r2,0x0001 0002ccdc: 03e00008 jr r31 0002cce0: 00000000 nop
0x2cce4 (card drop ?)
0002cce4: 308207ff andi r2,r4,0x07ff ;r2 = r4 & 2047 0002cce8: 000230c3 sra r6,r2,0x03 0002ccec: 30828000 andi r2,r4,0x8000 0002ccf0: 1040000c beq r2,r0,0x0002cd24 0002ccf4: 30850007 andi r5,r4,0x0007 0002ccf8: 30830007 andi r3,r4,0x0007 0002ccfc: 24020080 addiu r2,r0,0x0080 0002cd00: 00622007 srav r4,r2,r3 0002cd04: 3c03801d lui r3,0x801d 0002cd08: 24630000 addiu r3,r3,0x0000 0002cd0c: 00c31821 addu r3,r6,r3 0002cd10: 90620618 lbu r2,0x0618(r3) 0002cd14: 00042027 nor r4,r0,r4 0002cd18: 00441024 and r2,r2,r4 0002cd1c: 03e00008 jr r31 0002cd20: a0620618 sb r2,0x0618(r3)
0002d024: 0c0090e2 jal 0x00024388 ;jump to 0x24388, and link 0002d028: 00000000 nop 0002d02c: 3c02800a lui r2,0x800a 0002d030: 9442b16c lhu r2,-0x4e94(r2) ;r2 = 0x8009B16C 0002d034: 00000000 nop 0002d038: 30422000 andi r2,r2,0x2000 ;r2 &= 0x2000 0002d03c: 10400023 beq r2,r0,0x0002d0cc ;if(r2 == r0), branch to 0x2d0cc 0002d040: 24020002 addiu r2,r0,0x0002 ;r2 = r0 + 0x2 0002d044: a3820366 sb r2,0x0366(r28) ;store r2 in 0002d048: 0800b433 j 0x0002d0cc ;jump to 0x2d0cc 0002d04c: 00000000 nop
0x2d0cc
0002d0cc: 8fbf0018 lw r31,0x0018(r29) 0002d0d0: 8fb10014 lw r17,0x0014(r29) 0002d0d4: 8fb00010 lw r16,0x0010(r29) 0002d0d8: 03e00008 jr r31 0002d0dc: 27bd0020 addiu r29,r29,0x0020
PRN % (r16+r4)
000358fc: 27bdffe8 addiu r29,r29,0xffe8 00035900: afb00010 sw r16,0x0010(r29) 00035904: afbf0014 sw r31,0x0014(r29) 00035908: 0c023964 jal 0x0008e590 ;PRNG advance 0003590c: 00808021 addu r16,r4,r0 ;r16 += r4 00035910: 0050001a div r2,r16 ;PRN ÷ r16 00035914: 16000002 bne r16,r0,0x00035920 00035918: 00000000 nop 0003591c: 0007000d break 0x00001c00 ;ERROR: division by zero 00035920: 2401ffff addiu r1,r0,0xffff 00035924: 16010004 bne r16,r1,0x00035938 00035928: 3c018000 lui r1,0x8000 0003592c: 14410002 bne r2,r1,0x00035938 00035930: 00000000 nop 00035934: 0006000d break 0x00001800 ;ERROR: negative 00035938: 00001010 mfhi r2 ;r2 = PRN % r16 0003593c: 8fbf0014 lw r31,0x0014(r29) 00035940: 8fb00010 lw r16,0x0010(r29) 00035944: 03e00008 jr r31 00035948: 27bd0018 addiu r29,r29,0x0018
Return a PRN in r2
000358fc: 27bdffe8 addiu r29,r29,0xffe8 00035900: afb00010 sw r16,0x0010(r29) 00035904: afbf0014 sw r31,0x0014(r29) 00035908: 0c023964 jal 0x0008e590 ;PRNG advance 0003590c: 00808021 addu r16,r4,r0 ;r16 = r4 + r0 00035910: 0050001a div r2,r16 00035914: 16000002 bne r16,r0,0x00035920 00035918: 00000000 nop 0003591c: 0007000d break 0x00001c00 ;ERROR: division by zero 00035920: 2401ffff addiu r1,r0,0xffff ;r1 = r0 - 1 00035924: 16010004 bne r16,r1,0x00035938 00035928: 3c018000 lui r1,0x8000 0003592c: 14410002 bne r2,r1,0x00035938 00035930: 00000000 nop 00035934: 0006000d break 0x00001800 00035938: 00001010 mfhi r2 ;r2 = PRN ÷ r16 0003593c: 8fbf0014 lw r31,0x0014(r29) 00035940: 8fb00010 lw r16,0x0010(r29) 00035944: 03e00008 jr r31 00035948: 27bd0018 addiu r29,r29,0x0018
0x4002c (card drops shenanigans)
0004002c: 3c02800f lui r2,0x800f 00040030: 24440548 addiu r4,r2,0x0548 ;r4 = r2 + 0x548 00040034: 24030010 addiu r3,r0,0x0010 ;r3 = r0 + 0x10 00040038: 94820008 lhu r2,0x0008(r4) 0004003c: 00000000 nop 00040040: 30420080 andi r2,r2,0x0080 ;r2 &= 0x80 00040044: 10400007 beq r2,r0,0x00040064 ;if(r2 == r0), exit this function 00040048: 00601021 addu r2,r3,r0 ;r2 = r3 + r0 0004004c: 24630001 addiu r3,r3,0x0001 ;r3++ 00040050: 28620060 slti r2,r3,0x0060 00040054: 1440fff8 bne r2,r0,0x00040038 ;if(r3 < 0x60), loop to 0x40038 00040058: 24840070 addiu r4,r4,0x0070 ;r4 += 0x70 0004005c: 03e00008 jr r31 00040060: 2402ffff addiu r2,r0,0xffff ;r2 = r0- - 1
00040064: 03e00008 jr r31 00040068: 00000000 nop
0004006c: 3c02800f lui r2,0x800f 00040070: 2444fe48 addiu r4,r2,0xfe48 ;r4 = 0x800ffe48 00040074: 00001821 addu r3,r0,r0 00040078: 94820008 lhu r2,0x0008(r4) 0004007c: 00000000 nop 00040080: 30420080 andi r2,r2,0x0080 00040084: 10400007 beq r2,r0,0x000400a4 00040088: 00601021 addu r2,r3,r0 0004008c: 24630001 addiu r3,r3,0x0001 00040090: 28620060 slti r2,r3,0x0060 00040094: 1440fff8 bne r2,r0,0x00040078 00040098: 24840070 addiu r4,r4,0x0070 0004009c: 03e00008 jr r31 000400a0: 2402ffff addiu r2,r0,0xffff
0x400ac (YOU WIN blablabla)
000400ac: 00803821 addu r7,r4,r0 000400b0: 04e10003 bgez r7,0x000400c0 000400b4: 00a04821 addu r9,r5,r0 000400b8: 03e00008 jr r31 000400bc: 00001021 addu r2,r0,r0 000400c0: 000710c0 sll r2,r7,0x03 000400c4: 00471023 subu r2,r2,r7 000400c8: 00021100 sll r2,r2,0x04 000400cc: 3c03800f lui r3,0x800f 000400d0: 2468fe48 addiu r8,r3,0xfe48 000400d4: 00483021 addu r6,r2,r8 000400d8: 9782050a lhu r2,0x050a(r28) 000400dc: 94c30008 lhu r3,0x0008(r6) 000400e0: 24420001 addiu r2,r2,0x0001 000400e4: 30630080 andi r3,r3,0x0080 000400e8: a782050a sh r2,0x050a(r28) 000400ec: 14600045 bne r3,r0,0x00040204 000400f0: 3c02800f lui r2,0x800f 000400f4: 2442fe38 addiu r2,r2,0xfe38 000400f8: 00092040 sll r4,r9,0x01 000400fc: 00822821 addu r5,r4,r2 00040100: 84a30000 lh r3,0x0000(r5) 00040104: 00000000 nop 00040108: 04610009 bgez r3,0x00040130 0004010c: 00000000 nop 00040110: 3c02800f lui r2,0x800f 00040114: 24422878 addiu r2,r2,0x2878 00040118: 00821021 addu r2,r4,r2 0004011c: a4470000 sh r7,0x0000(r2) 00040120: 2402ffff addiu r2,r0,0xffff 00040124: a4c20002 sh r2,0x0002(r6) 00040128: 08010054 j 0x00040150 0004012c: a4c20000 sh r2,0x0000(r6)
0x40130 (YOU WIN shenanigans)
00040130: 000310c0 sll r2,r3,0x03 00040134: 00431023 subu r2,r2,r3 00040138: 00021100 sll r2,r2,0x04 0004013c: 00481021 addu r2,r2,r8 00040140: a4470000 sh r7,0x0000(r2) 00040144: 94a20000 lhu r2,0x0000(r5) 00040148: 00000000 nop 0004014c: a4c20002 sh r2,0x0002(r6) 00040150: 3c040080 lui r4,0x0080 00040154: 34848080 ori r4,r4,0x8080 00040158: 3c051000 lui r5,0x1000 0004015c: 34a51000 ori r5,r5,0x1000 00040160: 2402ffff addiu r2,r0,0xffff 00040164: 3c03800f lui r3,0x800f 00040168: 2463fe38 addiu r3,r3,0xfe38 0004016c: a4c20000 sh r2,0x0000(r6) 00040170: 00091040 sll r2,r9,0x01 00040174: 00431021 addu r2,r2,r3 00040178: a4470000 sh r7,0x0000(r2) 0004017c: 3c020800 lui r2,0x0800 00040180: acc20004 sw r2,0x0004(r6) 00040184: 240200c0 addiu r2,r0,0x00c0 00040188: a4c20008 sh r2,0x0008(r6) 0004018c: 24020002 addiu r2,r0,0x0002 00040190: a0c20017 sb r2,0x0017(r6) 00040194: 3c02801b lui r2,0x801b 00040198: 90c30017 lbu r3,0x0017(r6) 0004019c: 2442c000 addiu r2,r2,0xc000 000401a0: acc20054 sw r2,0x0054(r6) 000401a4: 2782006c addiu r2,r28,0x006c 000401a8: a0c0006c sb r0,0x006c(r6) 000401ac: acc00024 sw r0,0x0024(r6) 000401b0: a4c9001e sh r9,0x001e(r6) 000401b4: a0c7000a sb r7,0x000a(r6) 000401b8: a0c0000b sb r0,0x000b(r6) 000401bc: acc4000c sw r4,0x000c(r6) 000401c0: acc00020 sw r0,0x0020(r6) 000401c4: acc00010 sw r0,0x0010(r6) 000401c8: a4c0001c sh r0,0x001c(r6) 000401cc: a4c0001a sh r0,0x001a(r6) 000401d0: a4c00018 sh r0,0x0018(r6) 000401d4: a0c00066 sb r0,0x0066(r6) 000401d8: acc00048 sw r0,0x0048(r6) 000401dc: acc50044 sw r5,0x0044(r6) 000401e0: acc00040 sw r0,0x0040(r6) 000401e4: a4c0005e sh r0,0x005e(r6) 000401e8: a0c00065 sb r0,0x0065(r6) 000401ec: a0c00016 sb r0,0x0016(r6) 000401f0: 00031840 sll r3,r3,0x01 000401f4: 00621821 addu r3,r3,r2 000401f8: 94620000 lhu r2,0x0000(r3) 000401fc: 00000000 nop 00040200: a4c20014 sh r2,0x0014(r6) 00040204: 03e00008 jr r31 00040208: 00c01021 addu r2,r6,r0
000404cc: 27bdffe0 addiu r29,r29,0xffe0 000404d0: 8fa20038 lw r2,0x0038(r29) 000404d4: 8fa3003c lw r3,0x003c(r29) 000404d8: afbf0018 sw r31,0x0018(r29) 000404dc: a4850030 sh r5,0x0030(r4) 000404e0: 00e02821 addu r5,r7,r0 000404e4: a4860032 sh r6,0x0032(r4) 000404e8: afa20010 sw r2,0x0010(r29) 000404ec: afa30014 sw r3,0x0014(r29) 000404f0: 8fa60030 lw r6,0x0030(r29) 000404f4: 8fa70034 lw r7,0x0034(r29) 000404f8: 0c01011a jal 0x00040468 000404fc: 00000000 nop 00040500: 8fbf0018 lw r31,0x0018(r29) 00040504: 00000000 nop 00040508: 03e00008 jr r31 0004050c: 27bd0020 addiu r29,r29,0x0020
00042918: 90830016 lbu r3,0x0016(r4) ;r3 = (r4+0x16) 0004291c: 24020001 addiu r2,r0,0x0001 ;r2 = r0 + 1 00042920: a0820017 sb r2,0x0017(r4) ;store r2 in (r4+0x17) 00042924: 9782006e lhu r2,0x006e(r28) ;r2 = (r28+0x6e) 00042928: 00031e00 sll r3,r3,0x18 ;r3 << 0x18 0004292c: 00031e03 sra r3,r3,0x18 ;r3 >> 0x18 00042930: 00431023 subu r2,r2,r3 ;r2 -= r3 00042934: 03e00008 jr r31 00042938: a4820014 sh r2,0x0014(r4) ;store r2 in (r4+0x14)
0x42874 (YOU WIN etc.)
00042874: 27bdffe0 addiu r29,r29,0xffe0 00042878: 8fa20038 lw r2,0x0038(r29) 0004287c: 8fa30030 lw r3,0x0030(r29) 00042880: 8fa80034 lw r8,0x0034(r29) 00042884: afbf0018 sw r31,0x0018(r29) 00042888: ac820054 sw r2,0x0054(r4) 0004288c: afa30010 sw r3,0x0010(r29) 00042890: 0c01011a jal 0x00040468 00042894: afa80014 sw r8,0x0014(r29) 00042898: 8fbf0018 lw r31,0x0018(r29) 0004289c: 00000000 nop 000428a0: 03e00008 jr r31 000428a4: 27bd0020 addiu r29,r29,0x0020
Loads YOU WIN letters
000428a8: 27bdffd8 addiu r29,r29,0xffd8 ;r29 -= 0x28 000428ac: 8fa20048 lw r2,0x0048(r29) ;r2 = (r29+0x48) 000428b0: 8fa30038 lw r3,0x0038(r29) ;... 000428b4: 8fa8003c lw r8,0x003c(r29) ; 000428b8: 8fa90040 lw r9,0x0040(r29) ; 000428bc: 8faa0044 lw r10,0x0044(r29) ; 000428c0: afbf0020 sw r31,0x0020(r29) ; 000428c4: ac820054 sw r2,0x0054(r4) ; 000428c8: afa30010 sw r3,0x0010(r29) ; 000428cc: afa80014 sw r8,0x0014(r29) ; 000428d0: afa90018 sw r9,0x0018(r29) ;... 000428d4: 0c010133 jal 0x000404cc ; 000428d8: afaa001c sw r10,0x001c(r29) ;store r10 in (r29+0x1c) 000428dc: 8fbf0020 lw r31,0x0020(r29) 000428e0: 00000000 nop 000428e4: 03e00008 jr r31 000428e8: 27bd0028 addiu r29,r29,0x0028 ;r29 += 0x28
PRNG
PRNG advance
seed × 0x41C64E6D + 0x3039
0008e590: 3c0341c6 lui r3,0x41c6 0008e594: 3c028010 lui r2,0x8010 0008e598: 8c42e6f8 lw r2,-0x1908(r2) ;r2 = seed 0008e59c: 34634e6d ori r3,r3,0x4e6d ;r3 = 0x41C64E6D 0008e5a0: 00430018 mult r2,r3 0008e5a4: 00002012 mflo r4 ;r4 = r2 × r3 0008e5a8: 24823039 addiu r2,r4,0x3039 ;r2 = r4 + 0x3039 0008e5ac: 3c018010 lui r1,0x8010 0008e5b0: ac22e6f8 sw r2,-0x1908(r1) ;store new seed in (0x800FE6F8) 0008e5b4: 00021402 srl r2,r2,0x10 ;r2 >> 0x10 0008e5b8: 03e00008 jr r31 0008e5bc: 30427fff andi r2,r2,0x7fff ;r2 &= 0x7FFF
PRNG seed update
0008e5c0: 3c018010 lui r1,0x8010 0008e5c4: 03e00008 jr r31 0008e5c8: ac24e6f8 sw r4,-0x1908(r1) ;store new seed in (0x800FE6F8)
Starter Deck generation
0016a640: 8c83d4d8 lw r3,-0x2b28(r4) 0016a644: 00000000 nop 0016a648: 90620021 lbu r2,0x0021(r3) 0016a64c: 00000000 nop 0016a650: 24420008 addiu r2,r2,0x0008 0016a654: a0620021 sb r2,0x0021(r3) 0016a658: 8c83d4d8 lw r3,-0x2b28(r4) 0016a65c: 00000000 nop 0016a660: 90620021 lbu r2,0x0021(r3) 0016a664: 00000000 nop 0016a668: 144000ab bne r2,r0,0x0016a918 0016a66c: 2404000c addiu r4,r0,0x000c 0016a670: 94620008 lhu r2,0x0008(r3) 0016a674: 00000000 nop 0016a678: 3042fffb andi r2,r2,0xfffb 0016a67c: 0c00ffb8 jal 0x0003fee0 0016a680: a4620008 sh r2,0x0008(r3) 0016a684: 24020002 addiu r2,r0,0x0002 0016a688: a602d424 sh r2,-0x2bdc(r16) 0016a68c: 3c118017 lui r17,0x8017 0016a690: 9624d424 lhu r4,-0x2bdc(r17) 0016a694: 00000000 nop 0016a698: 30828000 andi r2,r4,0x8000 0016a69c: 14400029 bne r2,r0,0x0016a744 0016a6a0: 30824000 andi r2,r4,0x4000 0016a6a4: 3c128017 lui r18,0x8017 0016a6a8: 34828000 ori r2,r4,0x8000 0016a6ac: 3c06801d lui r6,0x801d 0016a6b0: a622d424 sh r2,-0x2bdc(r17) 0016a6b4: 3c02801b lui r2,0x801b 0016a6b8: 9643d4dc lhu r3,-0x2b24(r18) 0016a6bc: 24508000 addiu r16,r2,0x8000 0016a6c0: 24640400 addiu r4,r3,0x0400 0016a6c4: 000310c0 sll r2,r3,0x03 0016a6c8: 00501021 addu r2,r2,r16 0016a6cc: 8c450000 lw r5,0x0000(r2) 0016a6d0: 24c25608 addiu r2,r6,0x5608 0016a6d4: ac430004 sw r3,0x0004(r2) 0016a6d8: 0c00b32a jal 0x0002cca8 0016a6dc: acc55608 sw r5,0x5608(r6) 0016a6e0: 10400005 beq r2,r0,0x0016a6f8 0016a6e4: 240400e5 addiu r4,r0,0x00e5 0016a6e8: 0c05a761 jal 0x00169d84 0016a6ec: 24050080 addiu r5,r0,0x0080 0016a6f0: 0805aa46 j 0x0016a918 0016a6f4: 00000000 nop 0016a6f8: 3c02801d lui r2,0x801d 0016a6fc: 9643d4dc lhu r3,-0x2b24(r18) 0016a700: 8c4207e0 lw r2,0x07e0(r2) 0016a704: 000318c0 sll r3,r3,0x03 0016a708: 00701821 addu r3,r3,r16 0016a70c: 8c630000 lw r3,0x0000(r3) 0016a710: 00000000 nop 0016a714: 0043102b sltu r2,r2,r3 0016a718: 10400002 beq r2,r0,0x0016a724 0016a71c: 240400e3 addiu r4,r0,0x00e3 0016a720: 240400e4 addiu r4,r0,0x00e4 0016a724: 0c05a761 jal 0x00169d84 0016a728: 00002821 addu r5,r0,r0 0016a72c: 3c038017 lui r3,0x8017 0016a730: 9462d424 lhu r2,-0x2bdc(r3) 0016a734: 00000000 nop 0016a738: 34424000 ori r2,r2,0x4000 0016a73c: 0805aa46 j 0x0016a918 0016a740: a462d424 sh r2,-0x2bdc(r3) 0016a744: 1040000f beq r2,r0,0x0016a784 0016a748: 3c02800a lui r2,0x800a 0016a74c: 8043b34d lb r3,-0x4cb3(r2) 0016a750: 3082bfff andi r2,r4,0xbfff 0016a754: 1460000b bne r3,r0,0x0016a784 0016a758: a622d424 sh r2,-0x2bdc(r17) 0016a75c: 3c108017 lui r16,0x8017 0016a760: 9604d4dc lhu r4,-0x2b24(r16) 0016a764: 0c00b339 jal 0x0002cce4 0016a768: 24840400 addiu r4,r4,0x0400 0016a76c: 9604d4dc lhu r4,-0x2b24(r16) 0016a770: 0c008625 jal 0x00021894 0016a774: 00000000 nop 0016a778: 24020003 addiu r2,r0,0x0003 0016a77c: 0805aa46 j 0x0016a918 0016a780: a622d424 sh r2,-0x2bdc(r17) 0016a784: 3c038017 lui r3,0x8017 0016a788: 24020004 addiu r2,r0,0x0004 0016a78c: 0805aa46 j 0x0016a918 0016a790: a462d424 sh r2,-0x2bdc(r3) 0016a794: 3c058017 lui r5,0x8017 0016a798: 94a3d424 lhu r3,-0x2bdc(r5) 0016a79c: 00000000 nop 0016a7a0: 30628000 andi r2,r3,0x8000 0016a7a4: 1440000c bne r2,r0,0x0016a7d8 0016a7a8: 3c068017 lui r6,0x8017 0016a7ac: 34628000 ori r2,r3,0x8000 0016a7b0: a4a2d424 sh r2,-0x2bdc(r5) 0016a7b4: 3c028017 lui r2,0x8017 0016a7b8: 3c03801b lui r3,0x801b 0016a7bc: 9442d4dc lhu r2,-0x2b24(r2) 0016a7c0: 24638000 addiu r3,r3,0x8000 0016a7c4: 000210c0 sll r2,r2,0x03 0016a7c8: 00431021 addu r2,r2,r3 0016a7cc: 8c430000 lw r3,0x0000(r2) 0016a7d0: 3c028017 lui r2,0x8017 0016a7d4: ac43d438 sw r3,-0x2bc8(r2) 0016a7d8: 8cc4d438 lw r4,-0x2bc8(r6) 0016a7dc: 00000000 nop 0016a7e0: 2c82000a sltiu r2,r4,0x000a 0016a7e4: 14400006 bne r2,r0,0x0016a800 0016a7e8: 24100001 addiu r16,r0,0x0001 0016a7ec: 3c02cccc lui r2,0xcccc 0016a7f0: 3442cccd ori r2,r2,0xcccd 0016a7f4: 00820019 multu r4,r2 0016a7f8: 00003810 mfhi r7 0016a7fc: 000780c2 srl r16,r7,0x03 0016a800: 2c820064 sltiu r2,r4,0x0064 0016a804: 14400007 bne r2,r0,0x0016a824 0016a808: 2c8203e8 sltiu r2,r4,0x03e8 0016a80c: 3c02cccc lui r2,0xcccc 0016a810: 3442cccd ori r2,r2,0xcccd 0016a814: 00820019 multu r4,r2 0016a818: 00003810 mfhi r7 0016a81c: 00078102 srl r16,r7,0x04 0016a820: 2c8203e8 sltiu r2,r4,0x03e8 0016a824: 14400007 bne r2,r0,0x0016a844 0016a828: 2c822710 sltiu r2,r4,0x2710 0016a82c: 3c028888 lui r2,0x8888 0016a830: 34428889 ori r2,r2,0x8889 0016a834: 00820019 multu r4,r2 0016a838: 00003810 mfhi r7 0016a83c: 00078102 srl r16,r7,0x04 0016a840: 2c822710 sltiu r2,r4,0x2710 0016a844: 14400006 bne r2,r0,0x0016a860 0016a848: 00000000 nop 0016a84c: 3c02cccc lui r2,0xcccc 0016a850: 3442cccd ori r2,r2,0xcccd 0016a854: 00820019 multu r4,r2 0016a858: 00003810 mfhi r7 0016a85c: 00078142 srl r16,r7,0x05 0016a860: 16000002 bne r16,r0,0x0016a86c 0016a864: 3c02801d lui r2,0x801d 0016a868: 24100001 addiu r16,r0,0x0001 0016a86c: 24420000 addiu r2,r2,0x0000 0016a870: 8c4307e0 lw r3,0x07e0(r2) 0016a874: 00902023 subu r4,r4,r16 0016a878: acc4d438 sw r4,-0x2bc8(r6) 0016a87c: 00701823 subu r3,r3,r16 0016a880: 14800003 bne r4,r0,0x0016a890 0016a884: ac4307e0 sw r3,0x07e0(r2) 0016a888: 24020004 addiu r2,r0,0x0004 0016a88c: a4a2d424 sh r2,-0x2bdc(r5) 0016a890: 0c05a744 jal 0x00169d10 0016a894: 00000000 nop 0016a898: 0805aa46 j 0x0016a918 0016a89c: 00000000 nop
Starter Deck generation - Part 2
0016a8a0: 3c108017 lui r16,0x8017 0016a8a4: 9603d424 lhu r3,-0x2bdc(r16) ;r3 = (0x8016D424) 0016a8a8: 00000000 nop 0016a8ac: 30628000 andi r2,r3,0x8000 ;r2 = r3 & 0x8000 0016a8b0: 1440000a bne r2,r0,0x0016a8dc ;if(r2 ≠ 0), branch to 0x0016a8dc 0016a8b4: 3c048017 lui r4,0x8017 ;r7 = 0x80170000 0016a8b8: 3c028017 lui r2,0x8017 0016a8bc: 8c44d4d8 lw r4,-0x2b28(r2) ;r4 = (0x8016D4D8) 0016a8c0: 00000000 nop 0016a8c4: 94820008 lhu r2,0x0008(r4) ;r2 = ((0x80170008)) 0016a8c8: 34638000 ori r3,r3,0x8000 ;r3 |= 0x8000 0016a8cc: a603d424 sh r3,-0x2bdc(r16) ;Store r3 in (0x8016D424) 0016a8d0: 34420004 ori r2,r2,0x0004 ;r2 |= 4 0016a8d4: a4820008 sh r2,0x0008(r4) ;Store r2 in (0x8016D4E0) 0016a8d8: 3c048017 lui r4,0x8017 0016a8dc: 8c83d4d8 lw r3,-0x2b28(r4) ;r3 = (0x8016D4D8) 0016a8e0: 00000000 nop 0016a8e4: 90620021 lbu r2,0x0021(r3) ;r2 = (r3+0x21) 0016a8e8: 00000000 nop 0016a8ec: 24420008 addiu r2,r2,0x0008 ;r2 += 8 0016a8f0: a0620021 sb r2,0x0021(r3) ;Store r2 in (r3 + 0x21) 0016a8f4: 8c82d4d8 lw r2,-0x2b28(r4) ;r2 = (0x8016D4D8) 0016a8f8: 00000000 nop 0016a8fc: 80420021 lb r2,0x0021(r2) ;r2 = (r2 + 0x21) 0016a900: 00000000 nop 0016a904: 04410004 bgez r2,0x0016a918 ;if(r2 ≥ 0), branch to 0x0016a918 0016a908: 240400e2 addiu r4,r0,0x00e2 ;r4 = 0xE2 0016a90c: 0c05a761 jal 0x00169d84 ;Jump to 0x00169d84 and link 0016a910: 00002821 addu r5,r0,r0 ;r5 = 0 0016a914: a600d424 sh r0,-0x2bdc(r16) ;Store 0 in (0x8016D424) 0016a918: 8fbf001c lw r31,0x001c(r29) 0016a91c: 8fb20018 lw r18,0x0018(r29) 0016a920: 8fb10014 lw r17,0x0014(r29) 0016a924: 8fb00010 lw r16,0x0010(r29) 0016a928: 03e00008 jr r31 0016a92c: 27bd0020 addiu r29,r29,0x0020 ;r29 += 0x20 0016a930: 27bdfcf0 addiu r29,r29,0xfcf0 ;r29 -= 0x310 0016a934: afb002e8 sw r16,0x02e8(r29) 0016a938: 241002d1 addiu r16,r0,0x02d1 ;r16 = 721 0016a93c: 27a30010 addiu r3,r29,0x0010 ;r3 = r29 + 0x10 0016a940: afbf030c sw r31,0x030c(r29) 0016a944: afbe0308 sw r30,0x0308(r29) 0016a948: afb70304 sw r23,0x0304(r29) 0016a94c: afb60300 sw r22,0x0300(r29) 0016a950: afb502fc sw r21,0x02fc(r29) 0016a954: afb402f8 sw r20,0x02f8(r29) 0016a958: afb302f4 sw r19,0x02f4(r29) 0016a95c: afb202f0 sw r18,0x02f0(r29) 0016a960: afb102ec sw r17,0x02ec(r29) 0016a964: 00701021 addu r2,r3,r16 ;r2 = r3 + r16 0016a968: 2610ffff addiu r16,r16,0xffff ;r16-- 0016a96c: 0601fffd bgez r16,0x0016a964 ;if(r16 ≥ 0), loop to 0x0016a964 0016a970: a0400000 sb r0,0x0000(r2) ;Store r0 to (r2) 0016a974: 3c02801d lui r2,0x801d 0016a978: 24560200 addiu r22,r2,0x0200 ;r22 = 0x801D0200 0016a97c: 3c028017 lui r2,0x8017 0016a980: 8c54d3dc lw r20,-0x2c24(r2) ;r20 = (0x801CD3DC) 0016a984: 00000000 nop 0016a988: 1280002c beq r20,r0,0x0016aa3c ;if(r20 == 0), branch to 0x0016aa3c 0016a98c: 2457d3dc addiu r23,r2,0xd3dc ;r23 = 0x8016d3dc (pointer table to the card probabilities) 0016a990: 27be0010 addiu r30,r29,0x0010 ;r30 = r29 + 0x10 0016a994: 96930000 lhu r19,0x0000(r20) ;r19 = (r20) 0016a998: 26940002 addiu r20,r20,0x0002 ;r20 += 2 0016a99c: 0c023964 jal 0x0008e590 ;PRNG advance 0016a9a0: 00009021 addu r18,r0,r0 ;r18 = 0 0016a9a4: 304207ff andi r2,r2,0x07ff ;r2 &= 2047 0016a9a8: 24550001 addiu r21,r2,0x0001 ;r21 = r2 + 1 0016a9ac: 02408021 addu r16,r18,r0 ;r16 = r18 0016a9b0: 02808821 addu r17,r20,r0 ;r17 = r20 0016a9b4: 0c023964 jal 0x0008e590 ;PRNG advance 0016a9b8: 00000000 nop 0016a9bc: 96220000 lhu r2,0x0000(r17) ;r2 = card_probability 0016a9c0: 00000000 nop 0016a9c4: 02429021 addu r18,r18,r2 ;r18 += card_probability 0016a9c8: 0255102a slt r2,r18,r21 0016a9cc: 1440000f bne r2,r0,0x0016aa0c ;if(r18 < r21), branch to 0x0016aa0c 0016a9d0: 03d02021 addu r4,r30,r16 ;r4 = r16 + r30 0016a9d4: 90830000 lbu r3,0x0000(r4) ;r3 = (r4) 0016a9d8: 00000000 nop 0016a9dc: 2c620003 sltiu r2,r3,0x0003 0016a9e0: 14400003 bne r2,r0,0x0016a9f0 ;if(card_quantity < 3), branch to 0x0016a9f0 0016a9e4: 24620001 addiu r2,r3,0x0001 ;r2 = card_quantity + 1 0016a9e8: 0805aa87 j 0x0016aa1c ;Jump to 0x0016aa1c 0016a9ec: 26730001 addiu r19,r19,0x0001 ;r19++ 0016a9f0: a0820000 sb r2,0x0000(r4) ;r2 = (r4) 0016a9f4: 26020001 addiu r2,r16,0x0001 ;r2 = r16 + 1 0016a9f8: 26040121 addiu r4,r16,0x0121 ;r4 = r16 + 0x121 0016a9fc: 0c00b339 jal 0x0002cce4 ;Jump to 0x0002cce4 and link 0016aa00: a6c20000 sh r2,0x0000(r22) ;Store r2 to (r22) 0016aa04: 0805aa87 j 0x0016aa1c ;Jump to 0x0016aa1c 0016aa08: 26d60002 addiu r22,r22,0x0002 ;r22 += 2 0016aa0c: 26100001 addiu r16,r16,0x0001 ;r16++ 0016aa10: 2a0202d0 slti r2,r16,0x02d0 0016aa14: 1440ffe7 bne r2,r0,0x0016a9b4 ;if(r16 < 720), loop to 0x0016a9b4 (loop until all probas have been checked) 0016aa18: 26310002 addiu r17,r17,0x0002 ;r17 += 2 0016aa1c: 2673ffff addiu r19,r19,0xffff ;r19-- 0016aa20: 1660ffde bne r19,r0,0x0016a99c ;if(r19 ≠ 0), loop to 0x0016a99c 0016aa24: 00000000 nop 0016aa28: 26f70004 addiu r23,r23,0x0004 ;next entry in the card probabilities pointer table 0016aa2c: 8ef40000 lw r20,0x0000(r23) ;r20 = card probabilities pointer 0016aa30: 00000000 nop 0016aa34: 1680ffd7 bne r20,r0,0x0016a994 ;if(pointer ≠ 0), branch to 0x0016a994 0016aa38: 00000000 nop 0016aa3c: 8fbf030c lw r31,0x030c(r29) 0016aa40: 8fbe0308 lw r30,0x0308(r29) 0016aa44: 8fb70304 lw r23,0x0304(r29) 0016aa48: 8fb60300 lw r22,0x0300(r29) 0016aa4c: 8fb502fc lw r21,0x02fc(r29) 0016aa50: 8fb402f8 lw r20,0x02f8(r29) 0016aa54: 8fb302f4 lw r19,0x02f4(r29) 0016aa58: 8fb202f0 lw r18,0x02f0(r29) 0016aa5c: 8fb102ec lw r17,0x02ec(r29) 0016aa60: 8fb002e8 lw r16,0x02e8(r29) 0016aa64: 03e00008 jr r31 0016aa68: 27bd0310 addiu r29,r29,0x0310
Starter Deck generation - Part 3
0016aa6c: 27bdffe0 addiu r29,r29,0xffe0 0016aa70: afb00010 sw r16,0x0010(r29) 0016aa74: 3c10801d lui r16,0x801d 0016aa78: 26100000 addiu r16,r16,0x0000 ;r16 = 0x801d0000 0016aa7c: 02002021 addu r4,r16,r0 ;r4 = r16 0016aa80: 00002821 addu r5,r0,r0 ;r5 = 0 0016aa84: 24063000 addiu r6,r0,0x3000 ;r6 = 0x3000 0016aa88: afbf0018 sw r31,0x0018(r29) 0016aa8c: 0c00d5d2 jal 0x00035748 ;Jump to 0x00035748 and link 0016aa90: afb10014 sw r17,0x0014(r29) 0016aa94: 3c048017 lui r4,0x8017 0016aa98: 24848090 addiu r4,r4,0x8090 ;r4 = 0x80161910 0016aa9c: 02002821 addu r5,r16,r0 ;r5 = r16 0016aaa0: 0c023a1c jal 0x0008e870 ;Jump to 0x0008e870 and link 0016aaa4: 24063000 addiu r6,r0,0x3000 ;r6 = 0x3000 0016aaa8: 0c05a0fb jal 0x001683ec ;Jump to 0x001683ec and link 0016aaac: 00000000 nop 0016aab0: 0c004b53 jal 0x00012d4c ;Jump to 0x00012d4c and link 0016aab4: 00000000 nop 0016aab8: 0c023964 jal 0x0008e590 ;PRNG advance 0016aabc: 00000000 nop 0016aac0: 0c05a702 jal 0x00169c08 ;Jump to 0x00169c08 and link 0016aac4: 00000000 nop 0016aac8: 1040fff9 beq r2,r0,0x0016aab0 ;if(r2 == 0), branch to 0x0016aab0 0016aacc: 00000000 nop 0016aad0: 0c05aa4c jal 0x0016a930 ;Jump to 0x0016a930 and link 0016aad4: 00008021 addu r16,r0,r0 ;r16 = 0 0016aad8: 3c02801d lui r2,0x801d 0016aadc: 24510200 addiu r17,r2,0x0200 ;r17 = 0x801d0200 0016aae0: 2624040c addiu r4,r17,0x040c ;r4 = 0x801D060C 0016aae4: 2403000b addiu r3,r0,0x000b ;r3 = 11 0016aae8: 90820000 lbu r2,0x0000(r4) ;Store r2 to (r4) 0016aaec: 24840001 addiu r4,r4,0x0001 ;r4++ 0016aaf0: 2463ffff addiu r3,r3,0xffff ;r3-- 0016aaf4: 0461fffc bgez r3,0x0016aae8 ;if(r3 ≥ 0), loop to 0x0016aae8 0016aaf8: 02028026 xor r16,r16,r2 ;r16 ^= r2 0016aafc: 3c02800a lui r2,0x800a 0016ab00: 8c42b09c lw r2,-0x4f64(r2) ;r2 = (0x8009B09C) 0016ab04: 0805aac6 j 0x0016ab18 ;Jump to 0x0016ab18 0016ab08: 00021200 sll r2,r2,0x08 ;r2 << 8 0016ab0c: 0c023964 jal 0x0008e590 ;PRNG advance 0016ab10: 00000000 nop 0016ab14: 00021200 sll r2,r2,0x08 ;r2 = PRN << 8 0016ab18: 00501025 or r2,r2,r16 ;r2 |= r16 0016ab1c: 1040fffb beq r2,r0,0x0016ab0c ;if(r2 == 0), loop to 0x0016ab0c 0016ab20: ae220334 sw r2,0x0334(r17) ;Store r2 to (r17+0x334) 0016ab24: 8fbf0018 lw r31,0x0018(r29) 0016ab28: 8fb10014 lw r17,0x0014(r29) 0016ab2c: 8fb00010 lw r16,0x0010(r29) 0016ab30: 03e00008 jr r31 0016ab34: 27bd0020 addiu r29,r29,0x0020
Starter deck card groups
Card Probabilities, in groups of 1444 bytes (722 cards × 2)
0x276EC58-0x288E1DF
(main ROM) or 0xE99800-0xFB8D87
(in data/wa_mrg.mrg
)
Card drops / decks
Rex Raptor
0x277C8D8
for the deck0x277CE8C
for the drops
Weevil Underwood
0x277E468
for the deck
Mai Valentine
0x277FFF8
for the deck
Bandit Keith
0x2781B88
for the deck
Shadi
0x2783718
for the deck
Kaiba
0x278A558
for the deck
DarkNite
0x27ACC98
for the deck
Nitemare
0x27AE828
for the deck
Starter deck card groups pointers
0x288E1F4-0x288E20F
- Card Probabilities pointers
D4 AB 16 80 8C B1 16 80 44 B7 16 80 FC BC 16 80 B4 C2 16 80 6C C8 16 80 24 CE 16 80
Card passwords + Card cost
- NTSC-U:
0x28B7CD0
(ROM .bin) or0xFB9808
(indata/wa_mrg.mrg
) - NTSC-J:
0x28BE1E0
(ROM .bin) - PAL:
0x2D17870
(ROM .bin)
xx xx xx xx yy yy yy yy xx - Cost yy - Password 3F 42 0F 00 39 11 63 89 - Blue-Eyes White Dragon A0 00 00 00 44 58 02 15 46 00 00 00 92 46 18 76 3F 42 0F 00 87 95 81 88 1E 00 00 00 96 32 30 15 8C 00 00 00 91 28 39 41 3F 42 0F 00 00 69 79 87 1E 00 00 00 08 16 18 14 0F 00 00 00 13 53 57 40 50 00 00 00 52 43 56 87 E8 03 00 00 66 90 06 13 22 01 00 00 65 37 45 40 78 00 00 00 70 28 84 72 E6 00 00 00 79 64 24 18 40 01 00 00 77 11 23 45 3F 42 0F 00 22 52 62 71 3F 42 0F 00 21 49 12 08 3F 42 0F 00 36 95 51 44 3F 42 0F 00 34 36 90 70 3F 42 0F 00 49 23 90 07 3F 42 0F 00 48 69 39 33 3F 42 0F 00 52 10 78 70 3C 00 00 00 91 57 28 06 0A 00 00 00 90 44 27 32 50 00 00 00 05 94 66 69 3F 42 0F 00 03 31 05 05 8C 00 00 00 18 28 45 32 3F 42 0F 00 17 69 84 68 23 00 00 00 62 15 93 04 3C 00 00 00 60 92 33 31 8C 00 00 00 79 43 72 67 A0 00 00 00 74 99 11 94 E8 03 00 00 82 36 11 30 3C 00 00 00 87 27 60 66 3F 42 0F 00 14 64 98 46 8C 00 00 00 31 10 49 29 3F 42 0F 00 39 91 88 66 3F 42 0F 00 38 80 36 06 3F 42 0F 00 43 95 27 28 37 00 00 00 52 35 76 55 78 00 00 00 56 22 15 91 40 01 00 00 05 69 54 28 8C 00 00 00 00 19 54 54 78 00 00 00 08 96 93 91 1E 00 00 00 13 43 32 27 8C 00 00 00 12 94 82 53 2D 00 00 00 21 30 81 80 23 00 00 00 65 21 20 26 8C 00 00 00 74 68 60 53 19 00 00 00 79 15 09 89 3F 42 0F 00 88 05 48 15 3F 42 0F 00 82 42 58 52 46 00 00 00 91 99 97 88 3F 42 0F 00 30 70 36 15 8C 00 00 00 34 26 76 41 3F 42 0F 00 43 63 75 87 3F 42 0F 00 48 14 14 14 0A 00 00 00 57 00 64 40 37 00 00 00 23 49 37 40 3F 42 0F 00 00 98 42 13 37 00 00 00 09 75 41 49 3F 42 0F 00 13 21 81 76 3F 42 0F 00 12 62 20 12 3F 42 0F 00 27 19 79 49 37 00 00 00 90 70 35 90 8C 00 00 00 20 46 18 01 3F 42 0F 00 79 93 57 48 22 01 00 00 74 70 97 14 3F 42 0F 00 83 20 46 41 78 00 00 00 81 67 45 77 8C 00 00 00 96 14 85 14 3F 42 0F 00 95 05 24 40 22 01 00 00 49 41 63 76 22 01 00 00 48 98 03 13 1E 00 00 00 43 79 12 49 50 00 00 00 52 26 51 76 64 00 00 00 50 62 90 02 A0 00 00 00 65 53 30 48 F4 01 00 00 04 00 39 75 50 00 00 00 19 46 78 01 A0 00 00 00 17 97 28 38 3F 42 0F 00 22 74 67 74 A0 00 00 00 21 21 06 00 22 01 00 00 39 61 06 33 5E 01 00 00 34 58 45 69 B4 00 00 00 73 05 84 06 C8 00 00 00 88 46 34 32 22 01 00 00 86 92 33 68 C8 00 00 00 91 79 72 95 F4 01 00 00 90 20 12 31 3F 42 0F 00 05 67 51 68 3F 42 0F 00 43 53 90 94 04 01 00 00 52 04 09 30 C8 00 00 00 57 41 49 67 8C 00 00 00 55 97 88 93 04 01 00 00 60 78 27 20 C8 00 00 00 69 25 67 66 8C 00 00 00 14 72 66 92 F4 01 00 00 12 52 15 29 28 00 00 00 21 09 55 55 1E 00 00 00 26 46 94 92 1E 00 00 00 34 37 93 28 3F 42 0F 00 39 73 33 55 19 00 00 00 07 67 02 22 14 00 00 00 56 78 45 46 E6 00 00 00 81 57 61 54 1E 00 00 00 90 04 60 80 23 00 00 00 95 45 09 27 46 00 00 00 04 32 49 53 3C 00 00 00 08 72 98 89 C8 00 00 00 57 29 97 16 46 00 00 00 52 76 36 52 28 00 00 00 38 99 15 09 28 00 00 00 65 03 15 15 78 00 00 00 74 40 54 41 28 00 00 00 73 31 64 88 78 00 00 00 17 77 03 14 37 00 00 00 26 24 42 41 46 00 00 00 21 75 82 77 3C 00 00 00 30 52 21 13 78 00 00 00 34 08 20 40 19 00 00 00 43 49 70 76 0F 00 00 00 42 36 19 13 E6 00 00 00 96 73 58 49 78 00 00 00 95 23 58 75 22 01 00 00 90 10 97 02 B4 00 00 00 09 57 36 48 B4 00 00 00 03 08 85 75 1E 00 00 00 88 34 96 90 14 00 00 00 51 31 24 37 C8 00 00 00 66 72 63 74 3C 00 00 00 64 28 03 00 32 00 00 00 79 15 42 37 1E 00 00 00 78 56 51 63 19 00 00 00 28 04 80 52 8C 00 00 00 21 49 30 36 14 00 00 00 20 30 79 62 37 00 00 00 35 77 19 09 23 00 00 00 33 24 28 35 37 00 00 00 48 14 67 62 37 00 00 00 47 51 07 98 32 00 00 00 51 08 46 34 28 00 00 00 90 48 45 61 23 00 00 00 05 35 84 97 1E 00 00 00 04 82 34 24 46 00 00 00 02 23 73 00 3F 42 0F 00 17 19 12 36 1E 00 00 00 16 56 12 63 78 00 00 00 61 07 51 99 E6 00 00 00 69 44 90 36 64 00 00 00 74 30 40 62 19 00 00 00 73 81 89 98 3C 00 00 00 81 28 88 25 19 00 00 00 14 12 58 53 2D 00 00 00 35 55 67 94 1E 00 00 00 30 02 06 20 1E 00 00 00 45 35 29 53 1E 00 00 00 43 39 55 93 1E 00 00 00 42 86 94 29 1E 00 00 00 51 23 34 56 1E 00 00 00 55 14 73 92 37 00 00 00 04 50 72 28 78 00 00 00 09 07 21 55 50 00 00 00 17 88 61 81 3C 00 00 00 12 35 00 28 64 00 00 00 21 81 09 54 0F 00 00 00 26 22 49 81 8C 00 00 00 64 19 88 17 37 00 00 00 73 55 37 53 A0 00 00 00 78 06 77 80 46 00 00 00 87 83 76 16 37 00 00 00 81 34 15 53 23 00 00 00 90 80 55 89 19 00 00 00 35 27 04 15 28 00 00 00 43 18 43 42 1E 00 00 00 42 55 43 88 2D 00 00 00 47 01 82 15 2D 00 00 00 56 82 21 41 1E 00 00 00 50 39 60 77 2D 00 00 00 69 85 70 14 37 00 00 00 04 66 19 40 19 00 00 00 12 13 58 77 1E 00 00 00 11 50 98 03 1E 00 00 00 26 00 37 49 19 00 00 00 93 17 51 64 64 00 00 00 39 34 86 02 1E 00 00 00 78 85 25 49 28 00 00 00 73 61 64 75 23 00 00 00 82 18 64 01 2D 00 00 00 86 59 03 38 19 00 00 00 87 03 43 09 0F 00 00 00 94 92 92 01 64 00 00 00 48 33 31 37 64 00 00 00 47 80 30 63 1E 00 00 00 52 66 75 00 46 00 00 00 51 17 15 36 14 00 00 00 55 54 54 63 1E 00 00 00 64 01 03 99 28 00 00 00 63 91 03 36 1E 00 00 00 64 65 35 75 46 00 00 00 16 85 81 98 14 00 00 00 23 95 88 75 1E 00 00 00 20 12 20 61 E6 00 00 00 34 59 79 98 28 00 00 00 33 40 19 24 23 00 00 00 82 96 58 60 19 00 00 00 87 33 97 97 1E 00 00 00 39 27 14 38 1E 00 00 00 82 59 17 39 19 00 00 00 99 17 85 96 1E 00 00 00 88 09 51 15 1E 00 00 00 50 26 83 53 04 01 00 00 57 92 63 85 19 00 00 00 33 16 40 15 2D 00 00 00 64 89 52 58 78 00 00 00 69 66 91 84 3F 42 0F 00 78 16 90 11 23 00 00 00 73 53 30 57 37 00 00 00 11 40 79 84 50 00 00 00 26 91 18 10 3C 00 00 00 25 37 28 56 1E 00 00 00 33 84 67 83 26 02 00 00 38 65 06 19 23 00 00 00 47 12 46 46 46 00 00 00 82 58 85 22 28 00 00 00 90 49 84 54 1E 00 00 00 86 86 71 46 32 00 00 00 94 33 73 17 1E 00 00 00 85 36 78 08 8C 00 00 00 07 60 51 80 37 00 00 00 56 11 51 17 1E 00 00 00 51 57 90 43 78 00 00 00 69 44 49 89 78 00 00 00 64 95 89 16 3F 42 0F 00 73 32 88 42 46 00 00 00 78 28 27 89 14 00 00 00 23 56 28 84 1E 00 00 00 25 16 06 41 23 00 00 00 20 63 55 78 1E 00 00 00 75 45 94 08 78 00 00 00 33 90 94 41 19 00 00 00 16 54 69 47 23 00 00 00 47 27 73 03 32 00 00 00 95 64 82 40 19 00 00 00 94 11 21 76 3C 00 00 00 09 62 60 03 28 00 00 00 08 48 00 39 46 00 00 00 02 95 49 75 78 00 00 00 11 36 48 02 37 00 00 00 56 23 98 38 3C 00 00 00 65 69 37 75 3F 42 0F 00 63 10 76 01 2D 00 00 00 78 07 16 37 19 00 00 00 77 43 15 64 64 00 00 00 81 94 54 00 46 00 00 00 80 31 04 37 37 00 00 00 35 28 43 63 3C 00 00 00 34 68 42 99 50 00 00 00 38 15 82 36 2D 00 00 00 47 02 21 62 1E 00 00 00 71 03 15 15 3C 00 00 00 50 99 10 25 3C 00 00 00 99 36 19 62 2D 00 00 00 04 27 58 98 1E 00 00 00 07 07 71 18 23 00 00 00 17 10 37 51 1E 00 00 00 16 01 36 97 19 00 00 00 80 70 50 15 37 00 00 00 60 94 25 50 32 00 00 00 68 35 64 96 1E 00 00 00 73 22 03 23 46 00 00 00 72 69 03 59 3C 00 00 00 86 19 42 86 3C 00 00 00 85 06 91 22 64 00 00 00 94 43 31 58 37 00 00 00 39 94 30 85 23 00 00 00 47 30 79 11 0A 00 00 00 42 27 19 58 32 00 00 00 41 68 68 84 50 00 00 00 56 14 07 10 64 00 00 00 54 01 06 47 2D 00 00 00 09 42 46 83 2D 00 00 00 08 99 85 10 3F 42 0F 00 16 75 24 46 1E 00 00 00 11 26 74 82 22 01 00 00 20 73 73 19 78 00 00 00 25 10 12 45 3F 42 0F 00 73 00 52 72 0F 00 00 00 78 47 91 18 3C 00 00 00 77 94 90 45 50 00 00 00 86 74 40 71 1E 00 00 00 80 21 89 07 46 00 00 00 99 72 28 44 3C 00 00 00 94 19 68 70 32 00 00 00 42 05 67 07 37 00 00 00 47 46 06 33 78 00 00 00 56 93 55 75 2D 00 00 00 55 70 95 02 3F 42 0F 00 59 20 94 38 23 00 00 00 04 58 70 85 20 03 00 00 11 41 85 61 20 03 00 00 12 05 12 37 20 03 00 00 16 41 61 04 20 03 00 00 25 98 61 40 20 03 00 00 20 79 00 77 20 03 00 00 38 25 49 03 20 03 00 00 77 72 89 39 20 03 00 00 06 99 00 46 20 03 00 00 81 00 37 02 20 03 00 00 85 46 77 39 20 03 00 00 94 97 16 65 20 03 00 00 99 74 55 01 20 03 00 00 07 21 55 38 20 03 00 00 46 71 04 64 20 03 00 00 51 58 43 01 20 03 00 00 50 05 82 37 20 03 00 00 64 45 22 63 3F 42 0F 00 63 92 21 90 20 03 00 00 78 79 60 36 20 03 00 00 17 20 10 63 20 03 00 00 15 76 59 99 20 03 00 00 62 24 05 15 20 03 00 00 18 57 59 91 20 03 00 00 33 41 37 98 3F 42 0F 00 32 97 76 25 20 03 00 00 87 78 26 51 20 03 00 00 86 25 25 98 20 03 00 00 45 74 02 77 3F 42 0F 00 99 52 04 50 37 00 00 00 98 09 43 87 37 00 00 00 03 46 42 23 37 00 00 00 01 36 91 50 37 00 00 00 56 83 31 86 37 00 00 00 55 20 70 22 37 00 00 00 69 71 19 59 20 4E 00 00 43 94 12 53 3F 42 0F 00 77 04 58 12 3F 42 0F 00 72 45 07 58 37 00 00 00 96 96 19 38 20 4E 00 00 25 88 86 11 B8 88 00 00 24 29 85 47 3F 42 0F 00 39 76 25 84 0A 00 00 00 75 36 10 76 37 00 00 00 46 03 13 46 20 4E 00 00 81 40 13 73 B8 88 00 00 99 37 52 19 3F 42 0F 00 94 87 91 46 3F 42 0F 00 03 24 30 72 3F 42 0F 00 08 71 80 18 3F 42 0F 00 06 52 89 45 A0 00 00 00 11 08 28 71 A0 00 00 00 51 91 82 12 8C 00 00 00 68 36 07 44 3C 00 00 00 63 82 06 71 22 01 00 00 72 23 56 07 3F 42 0F 00 FE FF FF FF 40 01 00 00 85 57 34 70 A4 06 00 00 20 07 74 06 32 00 00 00 39 44 73 33 3F 42 0F 00 FE FF FF FF 46 00 00 00 32 82 62 05 C8 00 00 00 41 28 01 32 78 00 00 00 46 15 40 68 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF C8 00 00 00 08 49 28 67 50 00 00 00 07 30 77 94 B4 00 00 00 11 87 77 30 3F 42 0F 00 10 23 16 63 3F 42 0F 00 25 14 55 99 3F 42 0F 00 64 51 95 25 3F 42 0F 00 68 08 34 62 3F 42 0F 00 77 48 43 98 3F 42 0F 00 FE FF FF FF 22 01 00 00 80 82 22 51 40 01 00 00 89 23 61 97 A0 00 00 00 34 19 61 24 90 01 00 00 33 56 00 50 A0 00 00 00 47 07 59 97 3F 42 0F 00 FE FF FF FF 78 00 00 00 41 30 38 59 40 01 00 00 50 81 37 26 22 01 00 00 98 28 76 62 78 00 00 00 03 14 26 99 84 03 00 00 02 55 65 25 3F 42 0F 00 16 02 04 52 0F 00 00 00 15 99 04 98 E8 03 00 00 20 39 43 24 22 01 00 00 29 86 82 51 3F 42 0F 00 77 23 32 87 3F 42 0F 00 72 13 31 24 3F 42 0F 00 71 50 70 50 0A 00 00 00 85 07 10 86 0A 00 00 00 84 98 59 13 0A 00 00 00 99 34 98 59 04 01 00 00 38 81 08 86 0F 00 00 00 42 22 47 12 0A 00 00 00 41 19 86 58 0A 00 00 00 50 55 25 85 22 01 00 00 55 06 25 11 BC 02 00 00 53 93 64 48 0F 00 00 00 08 30 13 84 22 01 00 00 07 80 53 10 B4 00 00 00 11 27 92 47 B4 00 00 00 10 14 91 73 50 00 00 00 29 54 31 10 20 03 00 00 24 01 70 46 90 01 00 00 32 98 29 72 5E 01 00 00 77 39 29 09 14 00 00 00 86 85 68 45 0F 00 00 00 81 62 07 72 78 00 00 00 89 13 47 08 04 01 00 00 98 50 86 44 3C 00 00 00 93 00 95 71 78 00 00 00 41 97 35 07 78 00 00 00 46 34 74 34 28 00 00 00 55 84 13 70 64 00 00 00 50 61 52 07 5E 01 00 00 68 18 62 33 19 00 00 00 63 59 01 69 1E 00 00 00 12 05 40 06 14 00 00 00 11 92 80 32 40 01 00 00 15 33 89 69 E8 03 00 00 24 80 28 95 E6 00 00 00 29 66 78 31 84 03 00 00 37 17 17 68 84 03 00 00 32 64 56 94 3F 42 0F 00 81 00 56 31 3F 42 0F 00 80 91 95 67 78 00 00 00 94 38 34 93 37 00 00 00 93 85 84 20 2D 00 00 00 98 65 83 66 78 00 00 00 06 12 22 93 04 01 00 00 41 69 61 29 46 00 00 00 50 40 01 55 14 00 00 00 59 96 40 92 5E 01 00 00 63 33 59 28 5E 01 00 00 62 84 99 55 22 01 00 00 77 61 38 81 78 00 00 00 16 17 77 23 22 01 00 00 20 68 17 50 BC 02 00 00 29 45 16 86 E8 03 00 00 24 91 65 23 14 00 00 00 32 32 05 59 50 00 00 00 31 89 44 85 32 00 00 00 46 66 43 12 78 00 00 00 85 16 83 58 B4 00 00 00 99 63 32 85 22 01 00 00 98 40 71 11 3C 00 00 00 03 91 10 48 1E 00 00 00 02 37 10 84 1E 00 00 00 00 84 59 10 20 03 00 00 55 65 98 47 64 00 00 00 54 11 48 73 50 00 00 00 68 68 47 10 64 00 00 00 67 49 86 46 46 00 00 00 72 96 26 72 22 01 00 00 71 32 65 09 64 00 00 00 29 23 04 45 B4 00 00 00 24 60 14 12 32 00 00 00 33 17 53 48 A0 00 00 00 38 67 92 84 28 00 00 00 36 44 32 11 22 01 00 00 41 91 31 47 26 02 00 00 40 31 70 74 8C 00 00 00 94 28 20 10 BC 02 00 00 93 65 69 46 04 01 00 00 02 16 08 73 0F 00 00 00 07 62 07 09 8C 00 00 00 15 49 47 46 20 03 00 00 10 90 86 72 E8 03 00 00 69 37 35 08 40 01 00 00 63 23 75 35 78 00 00 00 62 64 74 71 0A 00 00 00 71 11 13 08 1E 00 00 00 76 62 53 34 23 00 00 00 84 48 92 70 2D 00 00 00 29 95 01 07 3F 42 0F 00 38 36 41 33 46 00 00 00 33 22 80 60 23 00 00 00 41 79 29 06 40 01 00 00 40 10 69 33 E8 03 00 00 45 07 78 69 0F 00 00 00 53 43 17 95 14 00 00 00 98 94 56 32 19 00 00 00 07 31 96 68 04 01 00 00 02 28 95 95 14 00 00 00 10 78 34 21 28 00 00 00 15 15 84 67 1E 00 00 00 24 02 23 94 04 01 00 00 63 42 62 20 19 00 00 00 77 99 62 67 B4 00 00 00 76 36 01 93 04 01 00 00 71 27 40 29 04 01 00 00 89 73 90 56 46 00 00 00 84 10 39 92 78 00 00 00 33 01 38 29 A0 00 00 00 32 48 78 55 3F 42 0F 00 46 94 17 81 BC 02 00 00 45 35 56 28 14 00 00 00 50 22 65 54 78 00 00 00 59 79 05 81 23 00 00 00 53 19 44 17 0F 00 00 00 02 06 83 53 2D 00 00 00 01 43 23 80 19 00 00 00 15 93 22 16 A0 00 00 00 14 30 71 53 04 01 00 00 29 27 11 89 20 03 00 00 28 78 50 16 1E 00 00 00 72 14 59 42 8C 00 00 00 71 01 99 84 8C 00 00 00 80 42 38 11 04 01 00 00 85 99 87 47 50 00 00 00 83 75 27 74 64 00 00 00 98 26 26 10 14 00 00 00 37 73 65 46 B4 00 00 00 41 19 05 73 90 01 00 00 40 00 54 09 E6 00 00 00 55 47 53 46 90 01 00 00 54 94 92 72 90 01 00 00 62 74 32 08 26 02 00 00 07 21 71 35 A0 00 00 00 16 78 10 71 14 00 00 00 10 19 20 08 E6 00 00 00 19 05 69 34 90 01 00 00 24 42 08 70 0A 00 00 00 23 93 48 07 40 01 00 00 31 89 87 33 26 02 00 00 76 26 86 60 32 00 00 00 85 77 36 06 F4 01 00 00 80 14 75 32 A0 00 00 00 98 00 14 69 90 01 00 00 93 41 14 95 23 00 00 00 92 98 53 32 64 00 00 00 40 85 92 68 1E 00 00 00 45 25 41 94 1E 00 00 00 54 72 81 21 28 00 00 00 59 53 80 07 2D 00 00 00 67 00 29 34 1E 00 00 00 62 46 69 60 3F 42 0F 00 11 97 08 07 C8 00 00 00 16 84 17 33 3C 00 00 00 24 20 57 69 1E 00 00 00 23 71 96 96 3F 42 0F 00 28 58 35 32 3C 00 00 00 36 05 75 69 0F 00 00 00 31 45 74 95 0F 00 00 00 80 92 23 21 19 00 00 00 85 89 63 68 50 00 00 00 93 20 02 94 A0 00 00 00 92 76 41 21 46 00 00 00 07 53 40 57 37 00 00 00 06 04 90 93 3F 42 0F 00 40 40 39 20 3F 42 0F 00 59 97 78 56 1E 00 00 00 54 88 78 93 04 01 00 00 62 25 17 29 14 00 00 00 61 71 56 55 32 00 00 00 76 52 06 82 50 00 00 00 15 09 45 28 46 00 00 00 29 46 44 55 3F 42 0F 00 28 36 84 81 14 00 00 00 33 83 23 17 20 03 00 00 31 20 62 54 40 01 00 00 36 70 72 80 3C 00 00 00 45 57 11 17 3C 00 00 00 84 04 50 43 2D 00 00 00 98 45 90 89 28 00 00 00 97 31 35 16 3C 00 00 00 02 88 34 42 3F 42 0F 00 01 29 83 89 F4 01 00 00 15 76 23 15 2D 00 00 00 54 52 62 42 50 00 00 00 63 03 01 78 E8 03 00 00 67 50 01 14 3C 00 00 00 66 37 40 41 40 01 00 00 71 87 99 77 64 00 00 00 70 24 39 04 19 00 00 00 24 71 38 40 37 00 00 00 23 51 77 76 78 00 00 00 32 08 17 03 5E 01 00 00 37 55 56 35 78 00 00 00 45 36 05 72 3C 00 00 00 40 82 05 08 2D 00 00 00 49 29 44 34 1E 00 00 00 93 10 83 61 8C 00 00 00 92 57 22 07 37 00 00 00 07 03 32 34 19 00 00 00 06 54 71 60 28 00 00 00 14 31 10 06 1E 00 00 00 19 87 50 33 28 00 00 00 68 28 99 69 04 01 00 00 63 15 98 96 F4 01 00 00 71 52 48 32 8C 00 00 00 76 02 87 68 A0 00 00 00 75 59 26 95 8C 00 00 00 83 30 26 21 19 00 00 00 28 87 65 68 50 00 00 00 37 23 04 94 46 00 00 00 32 14 54 20 3C 00 00 00 40 51 93 57 19 00 00 00 45 07 92 93 3F 42 0F 00 54 58 31 20 1E 00 00 00 52 35 71 56 28 00 00 00 97 82 10 93 1E 00 00 00 06 22 69 29 64 00 00 00 01 19 69 55 78 00 00 00 19 56 08 82 1E 00 00 00 14 07 47 28 23 00 00 00 23 53 87 55 19 00 00 00 68 30 86 81 32 00 00 00 76 81 35 17 6C 07 00 00 75 28 75 54 C8 00 00 00 80 14 14 80 46 00 00 00 88 55 53 17 50 00 00 00 83 02 53 43 22 01 00 00 32 98 92 29 90 01 00 00 37 39 41 56 5E 01 00 00 45 86 81 82 46 00 00 00 44 23 80 29 B4 00 00 00 59 13 29 55 E6 00 00 00 58 60 68 81 64 00 00 00 62 07 18 18 B4 00 00 00 01 98 57 54 8C 00 00 00 16 34 56 81 8C 00 00 00 14 81 96 17 26 02 00 00 13 22 35 43 3F 42 0F 00 28 18 74 80 37 00 00 00 27 65 24 16 64 00 00 00 71 06 23 43 A0 00 00 00 70 93 62 79 E6 00 00 00 85 39 02 15 E6 00 00 00 84 80 41 42 78 00 00 00 98 27 40 78 0F 00 00 00 97 14 90 05 A0 00 00 00 36 64 39 41 22 01 00 00 40 01 78 78 22 01 00 00 49 98 17 04 E6 00 00 00 54 38 17 40 3F 42 0F 00 53 85 56 77 C8 00 00 00 67 62 05 03 37 00 00 00 66 13 45 30 50 00 00 00 15 69 44 76 14 00 00 00 19 06 83 02 BC 02 00 00 28 97 23 39 37 00 00 00 23 34 62 65 78 00 00 00 22 80 11 02 B4 00 00 00 36 61 11 38 78 00 00 00 75 18 50 64 04 01 00 00 84 65 99 91 20 03 00 00 89 05 39 37 0A 00 00 00 97 92 38 64 3F 42 0F 00 92 39 87 90 20 03 00 00 01 89 26 32 0A 00 00 00 45 66 66 69 3F 42 0F 00 44 13 05 95 50 C3 00 00 59 64 04 22 3F 42 0F 00 58 00 54 68 20 03 00 00 66 91 93 94 3F 42 0F 00 61 38 32 21 3F 42 0F 00 70 85 72 57 3F 42 0F 00 15 65 71 94 3F 42 0F 00 23 12 10 20 3F 42 0F 00 28 69 60 56 0A 00 00 00 37 49 09 83 0A 00 00 00 35 96 08 29 3F 42 0F 00 30 33 48 56 20 03 00 00 89 84 87 82 3F 42 0F 00 84 70 26 29 64 00 00 00 92 17 76 55 64 00 00 00 97 68 75 81 3F 42 0F 00 06 45 14 18 64 00 00 00 05 91 53 54 64 00 00 00 59 32 93 81 3F 42 0F 00 58 89 92 17 32 00 00 00 63 75 41 43 32 00 00 00 61 16 81 80 64 00 00 00 66 63 20 16 32 00 00 00 75 40 69 43 32 00 00 00 70 90 69 79 3F 42 0F 00 28 37 08 15 3F 42 0F 00 27 84 57 42 3F 42 0F 00 32 75 97 78 3F 42 0F 00 30 11 36 15 3F 42 0F 00 45 68 35 41 3F 42 0F 00 44 49 75 77 3F 42 0F 00 89 96 14 04 3F 42 0F 00 97 32 63 40 3F 42 0F 00 96 23 62 77 3F 42 0F 00 01 70 02 03 32 00 00 00 00 16 41 39 64 00 00 00 14 67 80 76 64 00 00 00 53 44 30 02 64 00 00 00 68 91 39 39 32 00 00 00 66 31 78 05 3F 42 0F 00 75 28 18 41 32 00 00 00 70 75 57 78 32 00 00 00 79 16 56 04 0A 00 00 00 83 62 06 31 0A 00 00 00 22 49 45 77 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 91 48 50 02 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 18 79 27 38 3F 42 0F 00 67 16 27 64 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 70 43 05 27 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF 3F 42 0F 00 FE FF FF FF - Magician of Black Chaos
Internal Data for Yu-Gi-Oh! Forbidden Memories
| |
---|---|