SUZUKI change volume balance handler
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