000138ac - 00013b1c

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

000138ac: 27bdffc0 addiu r29,r29,0xffc0
000138b0: afb40028 sw r20,0x0028(r29)
000138b4: 0080a021 addu r20,r4,r0                  current music data?
000138b8: afbf003c sw r31,0x003c(r29)
000138bc: afbe0038 sw r30,0x0038(r29)
000138c0: afb70034 sw r23,0x0034(r29)
000138c4: afb60030 sw r22,0x0030(r29)
000138c8: afb5002c sw r21,0x002c(r29)
000138cc: afb30024 sw r19,0x0024(r29)
000138d0: afb20020 sw r18,0x0020(r29)
000138d4: afb1001c sw r17,0x001c(r29)
000138d8: afb00018 sw r16,0x0018(r29)
000138dc: 92970016 lbu r23,0x0016(r20)              number of channels (current music data)
000138e0: 00000000 nop
000138e4: 12e00081 beq r23,r0,0x00013aec            branch if null
000138e8: 269100b8 addiu r17,r20,0x00b8
000138ec: 341e00ff ori r30,r0,0x00ff
000138f0: 2413ffff addiu r19,r0,0xffff
000138f4: 00003821 addu r7,r0,r0
000138f8: 34160001 ori r22,r0,0x0001
000138fc: 8e860008 lw r6,0x0008(r20)                pointer to SMD file to process
00013900: 3c128003 lui r18,0x8003
00013904: 8e522a44 lw r18,0x2a44(r18)               pointer to first current music data
00013908: 00000000 nop
0001390c: 1240000e beq r18,r0,0x00013948            branch if null
00013910: 24d50022 addiu r21,r6,0x0022              pointer to offset data in SMD
00013914: 86830018 lh r3,0x0018(r20)
00013918: 96420020 lhu r2,0x0020(r18)
0001391c: 00000000 nop
00013920: 10430005 beq r2,r3,0x00013938             branch if they're equal
00013924: 00000000 nop
00013928: 8e52002c lw r18,0x002c(r18)
0001392c: 00000000 nop
00013930: 1640fff9 bne r18,r0,0x00013918
00013934: 00000000 nop
00013938: 16400004 bne r18,r0,0x0001394c
0001393c: 26300030 addiu r16,r17,0x0030
00013940: 3c128003 lui r18,0x8003
00013944: 8e522a44 lw r18,0x2a44(r18)
00013948: 26300030 addiu r16,r17,0x0030

<loop>

0001394c: 96a20000 lhu r2,0x0000(r21)               load offset of channel N
00013950: 00000000 nop
00013954: 10400057 beq r2,r0,0x00013ab4             branch if 0
00013958: 00000000 nop
0001395c: 8e82005c lw r2,0x005c(r20)
00013960: 00000000 nop
00013964: 02c21024 and r2,r22,r2
00013968: 10400003 beq r2,r0,0x00013978
0001396c: 00f63825 or r7,r7,r22
00013970: 08004e5f j 0x0001397c
00013974: 34020421 ori r2,r0,0x0421
00013978: 34020401 ori r2,r0,0x0401
0001397c: a6220000 sh r2,0x0000(r17)
00013980: 96820010 lhu r2,0x0010(r20)
00013984: 00000000 nop
00013988: 30422000 andi r2,r2,0x2000
0001398c: 10400006 beq r2,r0,0x000139a8
00013990: 34020300 ori r2,r0,0x0300
00013994: 96220000 lhu r2,0x0000(r17)
00013998: 00000000 nop
0001399c: 34420004 ori r2,r2,0x0004
000139a0: a6220000 sh r2,0x0000(r17)
000139a4: 34020300 ori r2,r0,0x0300
000139a8: a602ffd2 sh r2,-0x002e(r16)
000139ac: a600ffd6 sh r0,-0x002a(r16)
000139b0: 94c30010 lhu r3,0x0010(r6)
000139b4: 34020010 ori r2,r0,0x0010
000139b8: a202ffdd sb r2,-0x0023(r16)
000139bc: a21effdc sb r30,-0x0024(r16)
000139c0: ae03ffd8 sw r3,-0x0028(r16)
000139c4: 96a30000 lhu r3,0x0000(r21)
000139c8: 3402003c ori r2,r0,0x003c
000139cc: a602004e sh r2,0x004e(r16)
000139d0: 3402000f ori r2,r0,0x000f
000139d4: a602004a sh r2,0x004a(r16)
000139d8: 3402ffff ori r2,r0,0xffff
000139dc: a602007c sh r2,0x007c(r16)
000139e0: 34026000 ori r2,r0,0x6000
000139e4: a6020064 sh r2,0x0064(r16)
000139e8: 3c027f00 lui r2,0x7f00
000139ec: ae020068 sw r2,0x0068(r16)
000139f0: 34024000 ori r2,r0,0x4000
000139f4: a6020062 sh r2,0x0062(r16)
000139f8: 02601021 addu r2,r19,r0
000139fc: a202fffd sb r2,-0x0003(r16)
00013a00: 304200ff andi r2,r2,0x00ff
00013a04: 2c420019 sltiu r2,r2,0x0019
00013a08: ae00ffec sw r0,-0x0014(r16)
00013a0c: ae00fff4 sw r0,-0x000c(r16)
00013a10: a600fff8 sh r0,-0x0008(r16)
00013a14: a200fffa sb r0,-0x0006(r16)
00013a18: a6000044 sh r0,0x0044(r16)
00013a1c: a2000046 sb r0,0x0046(r16)
00013a20: a6000056 sh r0,0x0056(r16)
00013a24: a200004c sb r0,0x004c(r16)
00013a28: a6000060 sh r0,0x0060(r16)
00013a2c: a6000058 sh r0,0x0058(r16)
00013a30: a600005a sh r0,0x005a(r16)
00013a34: a600005c sh r0,0x005c(r16)
00013a38: a6000010 sh r0,0x0010(r16)
00013a3c: a6000012 sh r0,0x0012(r16)
00013a40: 00c31821 addu r3,r6,r3
00013a44: ae03ffe4 sw r3,-0x001c(r16)
00013a48: 10400007 beq r2,r0,0x00013a68
00013a4c: ae03ffe8 sw r3,-0x0018(r16)
00013a50: 34020001 ori r2,r0,0x0001
00013a54: 02621004 sllv r2,r2,r19
00013a58: ae020004 sw r2,0x0004(r16)
00013a5c: 3402ff9f ori r2,r0,0xff9f
00013a60: 08004e9c j 0x00013a70
00013a64: ae020008 sw r2,0x0008(r16)
00013a68: ae000004 sw r0,0x0004(r16)
00013a6c: ae000008 sw r0,0x0008(r16)
00013a70: 34030003 ori r3,r0,0x0003
00013a74: 26220060 addiu r2,r17,0x0060
00013a78: a44000fe sh r0,0x00fe(r2)
00013a7c: 2463ffff addiu r3,r3,0xffff
00013a80: 0461fffd bgez r3,0x00013a78
00013a84: 2442ffe0 addiu r2,r2,0xffe0
00013a88: 1240000b beq r18,r0,0x00013ab8
00013a8c: ae120000 sw r18,0x0000(r16)
00013a90: 00002021 addu r4,r0,r0
00013a94: 02202821 addu r5,r17,r0
00013a98: afa60010 sw r6,0x0010(r29)
00013a9c: 0c005bed jal 0x00016fb4
00013aa0: afa70014 sw r7,0x0014(r29)
00013aa4: 8fa60010 lw r6,0x0010(r29)
00013aa8: 8fa70014 lw r7,0x0014(r29)
00013aac: 08004eaf j 0x00013abc
00013ab0: 26b50002 addiu r21,r21,0x0002
00013ab4: a6200000 sh r0,0x0000(r17)
00013ab8: 26b50002 addiu r21,r21,0x0002
00013abc: 26730001 addiu r19,r19,0x0001
00013ac0: 0016b040 sll r22,r22,0x01
00013ac4: 26100160 addiu r16,r16,0x0160
00013ac8: 26310160 addiu r17,r17,0x0160
00013acc: 2a620019 slti r2,r19,0x0019
00013ad0: 14400002 bne r2,r0,0x00013adc
00013ad4: 27de0001 addiu r30,r30,0x0001
00013ad8: 00009821 addu r19,r0,r0
00013adc: 26f7ffff addiu r23,r23,0xffff
00013ae0: 16e0ff9a bne r23,r0,0x0001394c               loop for all channels
00013ae4: 00000000 nop

</loop>

00013ae8: ae870058 sw r7,0x0058(r20)
00013aec: 8fbf003c lw r31,0x003c(r29)
00013af0: 8fbe0038 lw r30,0x0038(r29)
00013af4: 8fb70034 lw r23,0x0034(r29)
00013af8: 8fb60030 lw r22,0x0030(r29)
00013afc: 8fb5002c lw r21,0x002c(r29)
00013b00: 8fb40028 lw r20,0x0028(r29)
00013b04: 8fb30024 lw r19,0x0024(r29)
00013b08: 8fb20020 lw r18,0x0020(r29)
00013b0c: 8fb1001c lw r17,0x001c(r29)
00013b10: 8fb00018 lw r16,0x0018(r29)
00013b14: 27bd0040 addiu r29,r29,0x0040
00013b18: 03e00008 jr r31
00013b1c: 00000000 nop