SUZUKI change volume balance handler

From Final Fantasy Hacktics Wiki
(Redirected from 00018240 - 000182fc)
Jump to navigation Jump to search
# 
# p1 = volume to set
# p2 = volume division number (probably usually 8 or 0)
#
00018240: 27bdffe0 addiu r29,r29,0xffe0
00018244: 00801021 addu r2,r4,r0                volume
00018248: 3c038003 lui r3,0x8003
0001824c: 2463705a addiu r3,r3,0x705a
00018250: 00a03021 addu r6,r5,r0
00018254: 00052c00 sll r5,r5,0x10
00018258: 00052c03 sra r5,r5,0x10
0001825c: afbf0018 sw r31,0x0018(r29)
00018260: 14a00014 bne r5,r0,0x000182b4         branch if volume division value is 0
00018264: a4620000 sh r2,0x0000(r3)             store volume here?
00018268: 00042400 sll r4,r4,0x10
0001826c: 3c018003 lui r1,0x8003
00018270: ac247050 sw r4,0x7050(r1)             volume * 0x4096
00018274: 00042403 sra r4,r4,0x10               volume
00018278: 2465ffca addiu r5,r3,0xffca           SpuCommonAttr.vol ptr
0001827c: 3c018003 lui r1,0x8003
00018280: a4207058 sh r0,0x7058(r1)
00018284: 3c018003 lui r1,0x8003
00018288: a4227048 sh r2,0x7048(r1)
0001828c: 0c006123 jal 0x0001848c               SetVolBalance
00018290: 00003021 addu r6,r0,r0                don't invert right channel volume
00018294: 3c028003 lui r2,0x8003
00018298: 8c427020 lw r2,0x7020(r2)
0001829c: 00000000 nop
000182a0: 34420003 ori r2,r2,0x0003
000182a4: 3c018003 lui r1,0x8003
000182a8: ac227020 sw r2,0x7020(r1)
000182ac: 080060bc j 0x000182f0
000182b0: 00000000 nop
000182b4: 00041c00 sll r3,r4,0x10
000182b8: 3c028003 lui r2,0x8003
000182bc: 8c427050 lw r2,0x7050(r2)             volume * 0x4096?
000182c0: 00031a03 sra r3,r3,0x08               volume input * 8
000182c4: 00021203 sra r2,r2,0x08               volume  RAM  * 8
000182c8: 00621023 subu r2,r3,r2                difference
000182cc: 10400008 beq r2,r0,0x000182f0         end if no volume change
000182d0: 00000000 nop
000182d4: 0045001a div r2,r5                    ohh how scandelous. division? from my compiler?
000182d8: 00001012 mflo r2                      difference divided by probably 0x8
000182dc: 3c018003 lui r1,0x8003
000182e0: a4267058 sh r6,0x7058(r1)             store volume division amount
000182e4: 00021200 sll r2,r2,0x08
000182e8: 3c018003 lui r1,0x8003
000182ec: ac227054 sw r2,0x7054(r1)             store? (might be real volume difference?)
000182f0: 8fbf0018 lw r31,0x0018(r29)
000182f4: 27bd0020 addiu r29,r29,0x0020
000182f8: 03e00008 jr r31
000182fc: 00000000 nop