prime/asm/musyx/snd_service.s

138 lines
5.9 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax"
.global sndRand
sndRand:
/* 803B2DA0 003AFD00 3C 60 A8 35 */ lis r3, 0xA8351D63@ha
/* 803B2DA4 003AFD04 80 8D A0 10 */ lwz r4, lbl_805A8BD0@sda21(r13)
/* 803B2DA8 003AFD08 38 03 1D 63 */ addi r0, r3, 0xA8351D63@l
/* 803B2DAC 003AFD0C 7C 04 01 D6 */ mullw r0, r4, r0
/* 803B2DB0 003AFD10 90 0D A0 10 */ stw r0, lbl_805A8BD0@sda21(r13)
/* 803B2DB4 003AFD14 54 03 D4 3E */ rlwinm r3, r0, 0x1a, 0x10, 0x1f
/* 803B2DB8 003AFD18 4E 80 00 20 */ blr
.global sndSin
sndSin:
/* 803B2DBC 003AFD1C 54 60 05 3E */ clrlwi r0, r3, 0x14
/* 803B2DC0 003AFD20 28 00 04 00 */ cmplwi r0, 0x400
/* 803B2DC4 003AFD24 40 80 00 18 */ bge lbl_803B2DDC
/* 803B2DC8 003AFD28 3C 60 80 3F */ lis r3, lbl_803F4278@ha
/* 803B2DCC 003AFD2C 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e
/* 803B2DD0 003AFD30 38 63 42 78 */ addi r3, r3, lbl_803F4278@l
/* 803B2DD4 003AFD34 7C 63 02 AE */ lhax r3, r3, r0
/* 803B2DD8 003AFD38 4E 80 00 20 */ blr
lbl_803B2DDC:
/* 803B2DDC 003AFD3C 28 00 08 00 */ cmplwi r0, 0x800
/* 803B2DE0 003AFD40 40 80 00 20 */ bge lbl_803B2E00
/* 803B2DE4 003AFD44 54 00 05 BE */ clrlwi r0, r0, 0x16
/* 803B2DE8 003AFD48 3C 60 80 3F */ lis r3, lbl_803F4278@ha
/* 803B2DEC 003AFD4C 20 00 03 FF */ subfic r0, r0, 0x3ff
/* 803B2DF0 003AFD50 54 00 08 3C */ slwi r0, r0, 1
/* 803B2DF4 003AFD54 38 63 42 78 */ addi r3, r3, lbl_803F4278@l
/* 803B2DF8 003AFD58 7C 63 02 AE */ lhax r3, r3, r0
/* 803B2DFC 003AFD5C 4E 80 00 20 */ blr
lbl_803B2E00:
/* 803B2E00 003AFD60 28 00 0C 00 */ cmplwi r0, 0xc00
/* 803B2E04 003AFD64 40 80 00 20 */ bge lbl_803B2E24
/* 803B2E08 003AFD68 3C 60 80 3F */ lis r3, lbl_803F4278@ha
/* 803B2E0C 003AFD6C 54 00 0D 7C */ rlwinm r0, r0, 1, 0x15, 0x1e
/* 803B2E10 003AFD70 38 63 42 78 */ addi r3, r3, lbl_803F4278@l
/* 803B2E14 003AFD74 7C 03 02 AE */ lhax r0, r3, r0
/* 803B2E18 003AFD78 7C 00 00 D0 */ neg r0, r0
/* 803B2E1C 003AFD7C 7C 03 07 34 */ extsh r3, r0
/* 803B2E20 003AFD80 4E 80 00 20 */ blr
lbl_803B2E24:
/* 803B2E24 003AFD84 54 00 05 BE */ clrlwi r0, r0, 0x16
/* 803B2E28 003AFD88 3C 60 80 3F */ lis r3, lbl_803F4278@ha
/* 803B2E2C 003AFD8C 20 00 03 FF */ subfic r0, r0, 0x3ff
/* 803B2E30 003AFD90 54 00 08 3C */ slwi r0, r0, 1
/* 803B2E34 003AFD94 38 63 42 78 */ addi r3, r3, lbl_803F4278@l
/* 803B2E38 003AFD98 7C 03 02 AE */ lhax r0, r3, r0
/* 803B2E3C 003AFD9C 7C 00 00 D0 */ neg r0, r0
/* 803B2E40 003AFDA0 7C 03 07 34 */ extsh r3, r0
/* 803B2E44 003AFDA4 4E 80 00 20 */ blr
.global sndBSearch
sndBSearch:
/* 803B2E48 003AFDA8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803B2E4C 003AFDAC 7C 08 02 A6 */ mflr r0
/* 803B2E50 003AFDB0 90 01 00 34 */ stw r0, 0x34(r1)
/* 803B2E54 003AFDB4 39 61 00 30 */ addi r11, r1, 0x30
/* 803B2E58 003AFDB8 4B FD 6C 19 */ bl func_80389A70
/* 803B2E5C 003AFDBC 2C 05 00 00 */ cmpwi r5, 0
/* 803B2E60 003AFDC0 7C 78 1B 78 */ mr r24, r3
/* 803B2E64 003AFDC4 7C 99 23 78 */ mr r25, r4
/* 803B2E68 003AFDC8 7C DA 33 78 */ mr r26, r6
/* 803B2E6C 003AFDCC 7C FB 3B 78 */ mr r27, r7
/* 803B2E70 003AFDD0 41 82 00 60 */ beq lbl_803B2ED0
/* 803B2E74 003AFDD4 3B E0 00 01 */ li r31, 1
/* 803B2E78 003AFDD8 7C BE 2B 78 */ mr r30, r5
lbl_803B2E7C:
/* 803B2E7C 003AFDDC 7C 1F F2 14 */ add r0, r31, r30
/* 803B2E80 003AFDE0 7F 6C DB 78 */ mr r12, r27
/* 803B2E84 003AFDE4 7C 1D 0E 70 */ srawi r29, r0, 1
/* 803B2E88 003AFDE8 7F 03 C3 78 */ mr r3, r24
/* 803B2E8C 003AFDEC 38 1D FF FF */ addi r0, r29, -1
/* 803B2E90 003AFDF0 7C 1A 01 D6 */ mullw r0, r26, r0
/* 803B2E94 003AFDF4 7F 99 02 14 */ add r28, r25, r0
/* 803B2E98 003AFDF8 7F 84 E3 78 */ mr r4, r28
/* 803B2E9C 003AFDFC 7D 89 03 A6 */ mtctr r12
/* 803B2EA0 003AFE00 4E 80 04 21 */ bctrl
/* 803B2EA4 003AFE04 2C 03 00 00 */ cmpwi r3, 0
/* 803B2EA8 003AFE08 40 82 00 0C */ bne lbl_803B2EB4
/* 803B2EAC 003AFE0C 7F 83 E3 78 */ mr r3, r28
/* 803B2EB0 003AFE10 48 00 00 24 */ b lbl_803B2ED4
lbl_803B2EB4:
/* 803B2EB4 003AFE14 40 80 00 08 */ bge lbl_803B2EBC
/* 803B2EB8 003AFE18 3B DD FF FF */ addi r30, r29, -1
lbl_803B2EBC:
/* 803B2EBC 003AFE1C 54 60 0F FF */ rlwinm. r0, r3, 1, 0x1f, 0x1f
/* 803B2EC0 003AFE20 40 82 00 08 */ bne lbl_803B2EC8
/* 803B2EC4 003AFE24 3B FD 00 01 */ addi r31, r29, 1
lbl_803B2EC8:
/* 803B2EC8 003AFE28 7C 1F F0 00 */ cmpw r31, r30
/* 803B2ECC 003AFE2C 40 81 FF B0 */ ble lbl_803B2E7C
lbl_803B2ED0:
/* 803B2ED0 003AFE30 38 60 00 00 */ li r3, 0
lbl_803B2ED4:
/* 803B2ED4 003AFE34 39 61 00 30 */ addi r11, r1, 0x30
/* 803B2ED8 003AFE38 4B FD 6B E5 */ bl _restgpr_24
/* 803B2EDC 003AFE3C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803B2EE0 003AFE40 7C 08 03 A6 */ mtlr r0
/* 803B2EE4 003AFE44 38 21 00 30 */ addi r1, r1, 0x30
/* 803B2EE8 003AFE48 4E 80 00 20 */ blr
.global dGeomDisable
dGeomDisable:
/* 803B2EEC 003AFE4C 80 03 00 00 */ lwz r0, 0(r3)
/* 803B2EF0 003AFE50 54 00 40 2E */ slwi r0, r0, 8
/* 803B2EF4 003AFE54 90 03 00 00 */ stw r0, 0(r3)
/* 803B2EF8 003AFE58 4E 80 00 20 */ blr
.global sndConvertTicks
sndConvertTicks:
/* 803B2EFC 003AFE5C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803B2F00 003AFE60 7C 08 02 A6 */ mflr r0
/* 803B2F04 003AFE64 90 01 00 14 */ stw r0, 0x14(r1)
/* 803B2F08 003AFE68 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803B2F0C 003AFE6C 7C 7F 1B 78 */ mr r31, r3
/* 803B2F10 003AFE70 7C 83 23 78 */ mr r3, r4
/* 803B2F14 003AFE74 4B FE 5D D1 */ bl synthGetTicksPerSecond
/* 803B2F18 003AFE78 80 1F 00 00 */ lwz r0, 0(r31)
/* 803B2F1C 003AFE7C 54 00 80 1E */ slwi r0, r0, 0x10
/* 803B2F20 003AFE80 7C 00 1B 96 */ divwu r0, r0, r3
/* 803B2F24 003AFE84 1C 00 03 E8 */ mulli r0, r0, 0x3e8
/* 803B2F28 003AFE88 54 00 D9 7E */ srwi r0, r0, 5
/* 803B2F2C 003AFE8C 90 1F 00 00 */ stw r0, 0(r31)
/* 803B2F30 003AFE90 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803B2F34 003AFE94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803B2F38 003AFE98 7C 08 03 A6 */ mtlr r0
/* 803B2F3C 003AFE9C 38 21 00 10 */ addi r1, r1, 0x10
/* 803B2F40 003AFEA0 4E 80 00 20 */ blr
.global sub_803b2f44
sub_803b2f44:
/* 803B2F44 003AFEA4 54 63 C2 3E */ srwi r3, r3, 8
/* 803B2F48 003AFEA8 4E 80 00 20 */ blr