S 016 CdControl

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

0001fc04: 3c028003 lui r2,0x8003
0001fc08: 8c421888 lw r2,0x1888(r2)
0001fc0c: 27bdffb0 addiu r29,r29,0xffb0
0001fc10: afb5003c sw r21,0x003c(r29)
0001fc14: 00a0a821 addu r21,r5,r0                 # CDlLOC file to load address (? only when using setloc? assume only when using setloc.)
0001fc18: afb70044 sw r23,0x0044(r29)
0001fc1c: 00c0b821 addu r23,r6,r0
0001fc20: afb00028 sw r16,0x0028(r29)
0001fc24: 00e08021 addu r16,r7,r0
0001fc28: afb30034 sw r19,0x0034(r29)
0001fc2c: 00809821 addu r19,r4,r0                 # CDROM instruction to send
0001fc30: afbf0048 sw r31,0x0048(r29)
0001fc34: afb60040 sw r22,0x0040(r29)
0001fc38: afb40038 sw r20,0x0038(r29)
0001fc3c: afb20030 sw r18,0x0030(r29)
0001fc40: 28420002 slti r2,r2,0x0002
0001fc44: 1440000a bne r2,r0,0x0001fc70
0001fc48: afb1002c sw r17,0x002c(r29)
0001fc4c: 326200ff andi r2,r19,0x00ff
0001fc50: 00021080 sll r2,r2,0x02
0001fc54: 3c018003 lui r1,0x8003
0001fc58: 00220821 addu r1,r1,r2
0001fc5c: 8c2518a0 lw r5,0x18a0(r1)
0001fc60: 3c048001 lui r4,0x8001
0001fc64: 248403a8 addiu r4,r4,0x03a8
0001fc68: 0c0088cb jal 0x0002232c
0001fc6c: 00000000 nop
0001fc70: 326200ff andi r2,r19,0x00ff
0001fc74: 00021880 sll r3,r2,0x02
0001fc78: 3c018003 lui r1,0x8003
0001fc7c: 00230821 addu r1,r1,r3
0001fc80: 8c221ac0 lw r2,0x1ac0(r1)
0001fc84: 00000000 nop
0001fc88: 10400011 beq r2,r0,0x0001fcd0
0001fc8c: 00002021 addu r4,r0,r0
0001fc90: 16a0000f bne r21,r0,0x0001fcd0
0001fc94: 00000000 nop
0001fc98: 3c028003 lui r2,0x8003
0001fc9c: 8c421888 lw r2,0x1888(r2)
0001fca0: 00000000 nop
0001fca4: 184000dd blez r2,0x0002001c
0001fca8: 2402fffe addiu r2,r0,0xfffe
0001fcac: 3c018003 lui r1,0x8003
0001fcb0: 00230821 addu r1,r1,r3
0001fcb4: 8c2518a0 lw r5,0x18a0(r1)
0001fcb8: 3c048001 lui r4,0x8001
0001fcbc: 248403b0 addiu r4,r4,0x03b0
0001fcc0: 0c0088cb jal 0x0002232c
0001fcc4: 00000000 nop
0001fcc8: 08008007 j 0x0002001c
0001fccc: 2402fffe addiu r2,r0,0xfffe


0001fcd0: 0c007dae jal 0x0001f6b8
0001fcd4: 00002821 addu r5,r0,r0
0001fcd8: 326300ff andi r3,r19,0x00ff
0001fcdc: 34020002 ori r2,r0,0x0002
0001fce0: 1462000a bne r3,r2,0x0001fd0c
0001fce4: 00002021 addu r4,r0,r0
0001fce8: 02a01821 addu r3,r21,r0
0001fcec: 90620000 lbu r2,0x0000(r3)
0001fcf0: 3c018003 lui r1,0x8003
0001fcf4: 00240821 addu r1,r1,r4
0001fcf8: a0221898 sb r2,0x1898(r1)
0001fcfc: 24840001 addiu r4,r4,0x0001
0001fd00: 28820004 slti r2,r4,0x0004
0001fd04: 1440fff9 bne r2,r0,0x0001fcec
0001fd08: 24630001 addiu r3,r3,0x0001
0001fd0c: 3c028003 lui r2,0x8003
0001fd10: 24421b58 addiu r2,r2,0x1b58
0001fd14: a0400000 sb r0,0x0000(r2)
0001fd18: 326200ff andi r2,r19,0x00ff
0001fd1c: 00022080 sll r4,r2,0x02                # CDInst * 4
0001fd20: 3c018003 lui r1,0x8003
0001fd24: 00240821 addu r1,r1,r4
0001fd28: 8c2219c0 lw r2,0x19c0(r1)              # check for queue to load file?
0001fd2c: 3c038003 lui r3,0x8003
0001fd30: 246319c0 addiu r3,r3,0x19c0            # 800319c0 (data related to what to load?)
0001fd34: 10400003 beq r2,r0,0x0001fd44
0001fd38: 00000000 nop
0001fd3c: 3c018003 lui r1,0x8003
0001fd40: a0201b59 sb r0,0x1b59(r1)
0001fd44: 3c028003 lui r2,0x8003
0001fd48: 8c421b40 lw r2,0x1b40(r2)
0001fd4c: 00000000 nop
0001fd50: a0400000 sb r0,0x0000(r2)
0001fd54: 24620100 addiu r2,r3,0x0100
0001fd58: 00821821 addu r3,r4,r2                 # 
0001fd5c: 8c620000 lw r2,0x0000(r3)
0001fd60: 00000000 nop
0001fd64: 1840000d blez r2,0x0001fd9c
0001fd68: 00002021 addu r4,r0,r0
0001fd6c: 00603021 addu r6,r3,r0
0001fd70: 02a02821 addu r5,r21,r0
0001fd74: 3c038003 lui r3,0x8003
0001fd78: 8c631b48 lw r3,0x1b48(r3)             # CDROM drive parameter
0001fd7c: 90a20000 lbu r2,0x0000(r5)            # load CDlLOC data (minutes, seconds, sectors)
0001fd80: 24a50001 addiu r5,r5,0x0001
0001fd84: a0620000 sb r2,0x0000(r3)             # store in CDROM register
0001fd88: 8cc20000 lw r2,0x0000(r6)             # amount of data to parse to parameter register?
0001fd8c: 24840001 addiu r4,r4,0x0001
0001fd90: 0082102a slt r2,r4,r2
0001fd94: 1440fff7 bne r2,r0,0x0001fd74         # loop for all data to give to CDROM register
0001fd98: 00000000 nop
0001fd9c: 3c028003 lui r2,0x8003
0001fda0: 8c421b44 lw r2,0x1b44(r2)
0001fda4: 3c018003 lui r1,0x8003
0001fda8: a033189d sb r19,0x189d(r1)            # store instruction to CPU RAM as well.
0001fdac: a0530000 sb r19,0x0000(r2)            # Store command (probably setloc?) to CDROM register
0001fdb0: 1600009a bne r16,r0,0x0002001c
0001fdb4: 00001021 addu r2,r0,r0
0001fdb8: 0c0076ea jal 0x0001dba8
0001fdbc: 2404ffff addiu r4,r0,0xffff
0001fdc0: 244203c0 addiu r2,r2,0x03c0
0001fdc4: 3c048003 lui r4,0x8003
0001fdc8: 24841b58 addiu r4,r4,0x1b58
0001fdcc: 3c018003 lui r1,0x8003
0001fdd0: ac222a94 sw r2,0x2a94(r1)
0001fdd4: 3c018003 lui r1,0x8003
0001fdd8: ac202a98 sw r0,0x2a98(r1)
0001fddc: 90830000 lbu r3,0x0000(r4)
0001fde0: 3c028001 lui r2,0x8001
0001fde4: 244203c0 addiu r2,r2,0x03c0
0001fde8: 3c018003 lui r1,0x8003
0001fdec: ac222a9c sw r2,0x2a9c(r1)
0001fdf0: 14600069 bne r3,r0,0x0001ff98
0001fdf4: 00000000 nop
0001fdf8: 3c148003 lui r20,0x8003
0001fdfc: 26941920 addiu r20,r20,0x1920
0001fe00: 00809021 addu r18,r4,r0
0001fe04: 24960001 addiu r22,r4,0x0001
0001fe08: 0c0076ea jal 0x0001dba8
0001fe0c: 2404ffff addiu r4,r0,0xffff
0001fe10: 3c038003 lui r3,0x8003
0001fe14: 8c632a94 lw r3,0x2a94(r3)
0001fe18: 00000000 nop
0001fe1c: 0062182a slt r3,r3,r2
0001fe20: 1460000b bne r3,r0,0x0001fe50
0001fe24: 00000000 nop
0001fe28: 3c038003 lui r3,0x8003
0001fe2c: 8c632a98 lw r3,0x2a98(r3)
0001fe30: 00000000 nop
0001fe34: 24620001 addiu r2,r3,0x0001
0001fe38: 3c018003 lui r1,0x8003
0001fe3c: ac222a98 sw r2,0x2a98(r1)
0001fe40: 3c02003c lui r2,0x003c
0001fe44: 0043102a slt r2,r2,r3
0001fe48: 1040001e beq r2,r0,0x0001fec4
0001fe4c: 00000000 nop
0001fe50: 3c048001 lui r4,0x8001
0001fe54: 2484030c addiu r4,r4,0x030c
0001fe58: 0c0088a3 jal 0x0002228c
0001fe5c: 00000000 nop
0001fe60: 92440000 lbu r4,0x0000(r18)
0001fe64: 92420001 lbu r2,0x0001(r18)
0001fe68: 3c058003 lui r5,0x8003
0001fe6c: 8ca52a9c lw r5,0x2a9c(r5)
0001fe70: 00021080 sll r2,r2,0x02
0001fe74: 00541021 addu r2,r2,r20
0001fe78: 00042080 sll r4,r4,0x02
0001fe7c: 8c430000 lw r3,0x0000(r2)
0001fe80: 3c028003 lui r2,0x8003
0001fe84: 9042189d lbu r2,0x189d(r2)
0001fe88: 00942021 addu r4,r4,r20
0001fe8c: 00021080 sll r2,r2,0x02
0001fe90: afa30010 sw r3,0x0010(r29)
0001fe94: 3c018003 lui r1,0x8003
0001fe98: 00220821 addu r1,r1,r2
0001fe9c: 8c2618a0 lw r6,0x18a0(r1)
0001fea0: 8c870000 lw r7,0x0000(r4)
0001fea4: 3c048001 lui r4,0x8001
0001fea8: 2484031c addiu r4,r4,0x031c
0001feac: 0c0088cb jal 0x0002232c
0001feb0: 00000000 nop
0001feb4: 0c008035 jal 0x000200d4
0001feb8: 00000000 nop
0001febc: 08007fb2 j 0x0001fec8
0001fec0: 2402ffff addiu r2,r0,0xffff


0001fec4: 00001021 addu r2,r0,r0
0001fec8: 14400054 bne r2,r0,0x0002001c
0001fecc: 2402ffff addiu r2,r0,0xffff
0001fed0: 0c0077b8 jal 0x0001dee0
0001fed4: 00000000 nop
0001fed8: 1040002b beq r2,r0,0x0001ff88
0001fedc: 00000000 nop
0001fee0: 3c028003 lui r2,0x8003
0001fee4: 8c421b40 lw r2,0x1b40(r2)
0001fee8: 00000000 nop
0001feec: 90420000 lbu r2,0x0000(r2)
0001fef0: 00000000 nop
0001fef4: 30510003 andi r17,r2,0x0003
0001fef8: 0c007c50 jal 0x0001f140
0001fefc: 00000000 nop
0001ff00: 00408021 addu r16,r2,r0
0001ff04: 1200001c beq r16,r0,0x0001ff78
0001ff08: 32020004 andi r2,r16,0x0004
0001ff0c: 1040000c beq r2,r0,0x0001ff40
0001ff10: 32020002 andi r2,r16,0x0002
0001ff14: 3c028003 lui r2,0x8003
0001ff18: 8c421880 lw r2,0x1880(r2)
0001ff1c: 00000000 nop
0001ff20: 10400006 beq r2,r0,0x0001ff3c
0001ff24: 00000000 nop
0001ff28: 92c40000 lbu r4,0x0000(r22)
0001ff2c: 3c058003 lui r5,0x8003
0001ff30: 24a52a84 addiu r5,r5,0x2a84
0001ff34: 0040f809 jalr r2,r31
0001ff38: 00000000 nop
0001ff3c: 32020002 andi r2,r16,0x0002
0001ff40: 1040ffed beq r2,r0,0x0001fef8
0001ff44: 00000000 nop
0001ff48: 3c028003 lui r2,0x8003
0001ff4c: 8c42187c lw r2,0x187c(r2)
0001ff50: 00000000 nop
0001ff54: 1040ffe8 beq r2,r0,0x0001fef8
0001ff58: 00000000 nop
0001ff5c: 92440000 lbu r4,0x0000(r18)
0001ff60: 3c058003 lui r5,0x8003
0001ff64: 24a52a7c addiu r5,r5,0x2a7c
0001ff68: 0040f809 jalr r2,r31
0001ff6c: 00000000 nop
0001ff70: 08007fbe j 0x0001fef8
0001ff74: 00000000 nop


0001ff78: 3c028003 lui r2,0x8003
0001ff7c: 8c421b40 lw r2,0x1b40(r2)
0001ff80: 00000000 nop
0001ff84: a0510000 sb r17,0x0000(r2)
0001ff88: 92420000 lbu r2,0x0000(r18)
0001ff8c: 00000000 nop
0001ff90: 1040ff9d beq r2,r0,0x0001fe08
0001ff94: 00000000 nop
0001ff98: 3c028003 lui r2,0x8003
0001ff9c: 24421b58 addiu r2,r2,0x1b58
0001ffa0: 90420000 lbu r2,0x0000(r2)
0001ffa4: 34030002 ori r3,r0,0x0002
0001ffa8: 304200ff andi r2,r2,0x00ff
0001ffac: 14430008 bne r2,r3,0x0001ffd0
0001ffb0: 02e03021 addu r6,r23,r0
0001ffb4: 326300ff andi r3,r19,0x00ff
0001ffb8: 3402000e ori r2,r0,0x000e
0001ffbc: 14620004 bne r3,r2,0x0001ffd0
0001ffc0: 00000000 nop
0001ffc4: 92a20000 lbu r2,0x0000(r21)
0001ffc8: 3c018003 lui r1,0x8003
0001ffcc: a022189c sb r2,0x189c(r1)
0001ffd0: 3c048003 lui r4,0x8003
0001ffd4: 24842a7c addiu r4,r4,0x2a7c
0001ffd8: 10c00009 beq r6,r0,0x00020000
0001ffdc: 00000000 nop
0001ffe0: 34030007 ori r3,r0,0x0007
0001ffe4: 2405ffff addiu r5,r0,0xffff
0001ffe8: 90820000 lbu r2,0x0000(r4)
0001ffec: 24840001 addiu r4,r4,0x0001
0001fff0: 2463ffff addiu r3,r3,0xffff
0001fff4: a0c20000 sb r2,0x0000(r6)
0001fff8: 1465fffb bne r3,r5,0x0001ffe8
0001fffc: 24c60001 addiu r6,r6,0x0001
00020000: 3c028003 lui r2,0x8003
00020004: 24421b58 addiu r2,r2,0x1b58
00020008: 90420000 lbu r2,0x0000(r2)
0002000c: 00000000 nop
00020010: 38420005 xori r2,r2,0x0005
00020014: 2c420001 sltiu r2,r2,0x0001
00020018: 00021023 subu r2,r0,r2
0002001c: 8fbf0048 lw r31,0x0048(r29)
00020020: 8fb70044 lw r23,0x0044(r29)
00020024: 8fb60040 lw r22,0x0040(r29)
00020028: 8fb5003c lw r21,0x003c(r29)
0002002c: 8fb40038 lw r20,0x0038(r29)
00020030: 8fb30034 lw r19,0x0034(r29)
00020034: 8fb20030 lw r18,0x0030(r29)
00020038: 8fb1002c lw r17,0x002c(r29)
0002003c: 8fb00028 lw r16,0x0028(r29)
00020040: 27bd0050 addiu r29,r29,0x0050
00020044: 03e00008 jr r31
00020048: 00000000 nop