mirror of https://github.com/PrimeDecomp/prime.git
1360 lines
59 KiB
ArmAsm
1360 lines
59 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .sdata2
|
|
.global lbl_805AF398
|
|
lbl_805AF398:
|
|
# ROM: 0x3FBC38
|
|
.4byte 0x3F800000
|
|
|
|
.global lbl_805AF39C
|
|
lbl_805AF39C:
|
|
# ROM: 0x3FBC3C
|
|
.4byte 0x46FFFE00
|
|
|
|
.global lbl_805AF3A0
|
|
lbl_805AF3A0:
|
|
# ROM: 0x3FBC40
|
|
.4byte 0x45800000
|
|
.4byte 0
|
|
|
|
.global lbl_805AF3A8
|
|
lbl_805AF3A8:
|
|
# ROM: 0x3FBC48
|
|
.4byte 0x43300000
|
|
.4byte 0
|
|
|
|
|
|
.section .sbss
|
|
.balign 4
|
|
.global salTimeOffset
|
|
salTimeOffset:
|
|
.skip 0x4
|
|
.global salHooks
|
|
salHooks:
|
|
.skip 0x8
|
|
.global salMaxStudioNum
|
|
salMaxStudioNum:
|
|
.skip 0x1
|
|
.global salNumVoices
|
|
salNumVoices:
|
|
.skip 0x1
|
|
.global salAuxFrame
|
|
salAuxFrame:
|
|
.skip 0x1
|
|
.global salFrame
|
|
salFrame:
|
|
.skip 0x1
|
|
|
|
.section .sdata, "wa"
|
|
.global lbl_805A8BD8
|
|
lbl_805A8BD8:
|
|
.2byte 0
|
|
.2byte 1
|
|
.2byte 2
|
|
.balign 4
|
|
|
|
.global lbl_805A8BE0
|
|
lbl_805A8BE0:
|
|
.2byte 0
|
|
.2byte 1
|
|
.2byte 2
|
|
.balign 4
|
|
|
|
.section .rodata
|
|
.global lbl_803D8BD0
|
|
lbl_803D8BD0:
|
|
# ROM: 0x3D5BD0
|
|
.4byte 0
|
|
.4byte 0
|
|
.4byte 0
|
|
.4byte 0
|
|
.4byte 0
|
|
.4byte 0x00000001
|
|
.4byte 0x00010001
|
|
.4byte 0x00010001
|
|
.4byte 0x00010001
|
|
.4byte 0x00020002
|
|
.4byte 0x00020002
|
|
.4byte 0x00020003
|
|
.4byte 0x00030003
|
|
.4byte 0x00030003
|
|
.4byte 0x00040004
|
|
.4byte 0x00040004
|
|
.4byte 0x00050005
|
|
.4byte 0x00050006
|
|
.4byte 0x00060006
|
|
.4byte 0x00070007
|
|
.4byte 0x00070008
|
|
.4byte 0x00080008
|
|
.4byte 0x00090009
|
|
.4byte 0x0009000A
|
|
.4byte 0x000A000A
|
|
.4byte 0x000B000B
|
|
.4byte 0x000C000C
|
|
.4byte 0x000C000D
|
|
.4byte 0x000D000D
|
|
.4byte 0x000E000E
|
|
.4byte 0x000F000F
|
|
.4byte 0x000F0010
|
|
.4byte 0x00100011
|
|
.4byte 0x00110011
|
|
.4byte 0x00120012
|
|
.4byte 0x00130013
|
|
.4byte 0x00130014
|
|
.4byte 0x00140014
|
|
.4byte 0x00150015
|
|
.4byte 0x00160016
|
|
.4byte 0x00160017
|
|
.4byte 0x00170017
|
|
.4byte 0x00180018
|
|
.4byte 0x00180019
|
|
.4byte 0x00190019
|
|
.4byte 0x001A001A
|
|
.4byte 0x001A001B
|
|
.4byte 0x001B001B
|
|
.4byte 0x001C001C
|
|
.4byte 0x001C001C
|
|
.4byte 0x001D001D
|
|
.4byte 0x001D001D
|
|
.4byte 0x001D001E
|
|
.4byte 0x001E001E
|
|
.4byte 0x001E001E
|
|
.4byte 0x001F001F
|
|
.4byte 0x001F001F
|
|
.4byte 0x001F001F
|
|
.4byte 0x001F0020
|
|
.4byte 0x00200020
|
|
.4byte 0x00200020
|
|
.4byte 0x00200020
|
|
.4byte 0x00200020
|
|
.4byte 0x00200020
|
|
|
|
|
|
.section .text, "ax"
|
|
|
|
.global snd_handle_irq
|
|
snd_handle_irq:
|
|
/* 803B2F4C 003AFEAC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B2F50 003AFEB0 7C 08 02 A6 */ mflr r0
|
|
/* 803B2F54 003AFEB4 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B2F58 003AFEB8 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 803B2F5C 003AFEBC 88 0D AE 48 */ lbz r0, sndActive@sda21(r13)
|
|
/* 803B2F60 003AFEC0 28 00 00 00 */ cmplwi r0, 0
|
|
/* 803B2F64 003AFEC4 41 82 01 28 */ beq lbl_803B308C
|
|
/* 803B2F68 003AFEC8 4B FE A2 F1 */ bl nullsub_60
|
|
/* 803B2F6C 003AFECC 48 00 21 89 */ bl hwIRQEnterCritical
|
|
/* 803B2F70 003AFED0 48 00 1F 05 */ bl salAiGetDest
|
|
/* 803B2F74 003AFED4 48 00 20 21 */ bl salCtrlDsp
|
|
/* 803B2F78 003AFED8 48 00 21 9D */ bl hwIRQLeaveCritical
|
|
/* 803B2F7C 003AFEDC 48 00 21 79 */ bl hwIRQEnterCritical
|
|
/* 803B2F80 003AFEE0 4B FF B0 39 */ bl salHandleAuxProcessing
|
|
/* 803B2F84 003AFEE4 48 00 21 91 */ bl hwIRQLeaveCritical
|
|
/* 803B2F88 003AFEE8 48 00 21 6D */ bl hwIRQEnterCritical
|
|
/* 803B2F8C 003AFEEC 88 8D AF 8E */ lbz r4, salAuxFrame@sda21(r13)
|
|
/* 803B2F90 003AFEF0 3C 60 55 55 */ lis r3, 0x55555556@ha
|
|
/* 803B2F94 003AFEF4 38 03 55 56 */ addi r0, r3, 0x55555556@l
|
|
/* 803B2F98 003AFEF8 88 AD AF 8F */ lbz r5, salFrame@sda21(r13)
|
|
/* 803B2F9C 003AFEFC 38 84 00 01 */ addi r4, r4, 1
|
|
/* 803B2FA0 003AFF00 39 20 00 00 */ li r9, 0
|
|
/* 803B2FA4 003AFF04 7C 60 20 96 */ mulhw r3, r0, r4
|
|
/* 803B2FA8 003AFF08 68 A0 00 01 */ xori r0, r5, 1
|
|
/* 803B2FAC 003AFF0C 98 0D AF 8F */ stb r0, salFrame@sda21(r13)
|
|
/* 803B2FB0 003AFF10 39 00 00 00 */ li r8, 0
|
|
/* 803B2FB4 003AFF14 54 60 0F FE */ srwi r0, r3, 0x1f
|
|
/* 803B2FB8 003AFF18 7C 03 02 14 */ add r0, r3, r0
|
|
/* 803B2FBC 003AFF1C 1C 00 00 03 */ mulli r0, r0, 3
|
|
/* 803B2FC0 003AFF20 7C 00 20 50 */ subf r0, r0, r4
|
|
/* 803B2FC4 003AFF24 98 0D AF 8E */ stb r0, salAuxFrame@sda21(r13)
|
|
/* 803B2FC8 003AFF28 48 00 00 4C */ b lbl_803B3014
|
|
lbl_803B2FCC:
|
|
/* 803B2FCC 003AFF2C 55 20 06 3E */ clrlwi r0, r9, 0x18
|
|
/* 803B2FD0 003AFF30 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B2FD4 003AFF34 1C 80 00 F4 */ mulli r4, r0, 0xf4
|
|
/* 803B2FD8 003AFF38 39 29 00 01 */ addi r9, r9, 1
|
|
/* 803B2FDC 003AFF3C 38 E4 00 24 */ addi r7, r4, 0x24
|
|
/* 803B2FE0 003AFF40 7D 03 39 2E */ stwx r8, r3, r7
|
|
/* 803B2FE4 003AFF44 38 A7 00 04 */ addi r5, r7, 4
|
|
/* 803B2FE8 003AFF48 38 87 00 08 */ addi r4, r7, 8
|
|
/* 803B2FEC 003AFF4C 38 67 00 0C */ addi r3, r7, 0xc
|
|
/* 803B2FF0 003AFF50 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B2FF4 003AFF54 38 07 00 10 */ addi r0, r7, 0x10
|
|
/* 803B2FF8 003AFF58 7D 06 29 2E */ stwx r8, r6, r5
|
|
/* 803B2FFC 003AFF5C 80 AD AF 54 */ lwz r5, dspVoice@sda21(r13)
|
|
/* 803B3000 003AFF60 7D 05 21 2E */ stwx r8, r5, r4
|
|
/* 803B3004 003AFF64 80 8D AF 54 */ lwz r4, dspVoice@sda21(r13)
|
|
/* 803B3008 003AFF68 7D 04 19 2E */ stwx r8, r4, r3
|
|
/* 803B300C 003AFF6C 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B3010 003AFF70 7D 03 01 2E */ stwx r8, r3, r0
|
|
lbl_803B3014:
|
|
/* 803B3014 003AFF74 88 0D AF 8D */ lbz r0, salNumVoices@sda21(r13)
|
|
/* 803B3018 003AFF78 55 23 06 3E */ clrlwi r3, r9, 0x18
|
|
/* 803B301C 003AFF7C 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B3020 003AFF80 41 80 FF AC */ blt lbl_803B2FCC
|
|
/* 803B3024 003AFF84 48 00 20 F1 */ bl hwIRQLeaveCritical
|
|
/* 803B3028 003AFF88 3B E0 00 00 */ li r31, 0
|
|
/* 803B302C 003AFF8C 48 00 00 28 */ b lbl_803B3054
|
|
lbl_803B3030:
|
|
/* 803B3030 003AFF90 48 00 20 C5 */ bl hwIRQEnterCritical
|
|
/* 803B3034 003AFF94 7F E3 FB 78 */ mr r3, r31
|
|
/* 803B3038 003AFF98 48 00 01 55 */ bl hwSetTimeOffset
|
|
/* 803B303C 003AFF9C 38 60 01 00 */ li r3, 0x100
|
|
/* 803B3040 003AFFA0 4B FE 50 C5 */ bl sub_80398104
|
|
/* 803B3044 003AFFA4 38 60 01 00 */ li r3, 0x100
|
|
/* 803B3048 003AFFA8 4B FE 7A C1 */ bl synthHandle
|
|
/* 803B304C 003AFFAC 48 00 20 C9 */ bl hwIRQLeaveCritical
|
|
/* 803B3050 003AFFB0 3B FF 00 01 */ addi r31, r31, 1
|
|
lbl_803B3054:
|
|
/* 803B3054 003AFFB4 57 E0 06 3E */ clrlwi r0, r31, 0x18
|
|
/* 803B3058 003AFFB8 28 00 00 05 */ cmplwi r0, 5
|
|
/* 803B305C 003AFFBC 41 80 FF D4 */ blt lbl_803B3030
|
|
/* 803B3060 003AFFC0 48 00 20 95 */ bl hwIRQEnterCritical
|
|
/* 803B3064 003AFFC4 38 60 00 00 */ li r3, 0
|
|
/* 803B3068 003AFFC8 48 00 01 25 */ bl hwSetTimeOffset
|
|
/* 803B306C 003AFFCC 4B FF D2 ED */ bl s3dHandle
|
|
/* 803B3070 003AFFD0 48 00 20 A5 */ bl hwIRQLeaveCritical
|
|
/* 803B3074 003AFFD4 48 00 20 81 */ bl hwIRQEnterCritical
|
|
/* 803B3078 003AFFD8 4B FE 99 35 */ bl streamHandle
|
|
/* 803B307C 003AFFDC 48 00 20 99 */ bl hwIRQLeaveCritical
|
|
/* 803B3080 003AFFE0 48 00 20 75 */ bl hwIRQEnterCritical
|
|
/* 803B3084 003AFFE4 4B FF 6E F1 */ bl vsSampleUpdates
|
|
/* 803B3088 003AFFE8 48 00 20 8D */ bl hwIRQLeaveCritical
|
|
lbl_803B308C:
|
|
/* 803B308C 003AFFEC 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3090 003AFFF0 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 803B3094 003AFFF4 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3098 003AFFF8 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B309C 003AFFFC 4E 80 00 20 */ blr
|
|
|
|
.global hwInit
|
|
hwInit:
|
|
/* 803B30A0 003B0000 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 803B30A4 003B0004 7C 08 02 A6 */ mflr r0
|
|
/* 803B30A8 003B0008 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 803B30AC 003B000C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 803B30B0 003B0010 7C DF 33 78 */ mr r31, r6
|
|
/* 803B30B4 003B0014 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 803B30B8 003B0018 7C BE 2B 78 */ mr r30, r5
|
|
/* 803B30BC 003B001C 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 803B30C0 003B0020 7C 9D 23 78 */ mr r29, r4
|
|
/* 803B30C4 003B0024 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 803B30C8 003B0028 7C 7C 1B 78 */ mr r28, r3
|
|
/* 803B30CC 003B002C 48 00 1F 89 */ bl hwInitIrq
|
|
/* 803B30D0 003B0030 38 00 00 00 */ li r0, 0
|
|
/* 803B30D4 003B0034 3C 60 80 3B */ lis r3, snd_handle_irq@ha
|
|
/* 803B30D8 003B0038 98 0D AF 8F */ stb r0, salFrame@sda21(r13)
|
|
/* 803B30DC 003B003C 38 63 2F 4C */ addi r3, r3, snd_handle_irq@l
|
|
/* 803B30E0 003B0040 7F E4 FB 78 */ mr r4, r31
|
|
/* 803B30E4 003B0044 7F 85 E3 78 */ mr r5, r28
|
|
/* 803B30E8 003B0048 98 0D AF 8E */ stb r0, salAuxFrame@sda21(r13)
|
|
/* 803B30EC 003B004C 90 0D AF 58 */ stw r0, salMessageCallback@sda21(r13)
|
|
/* 803B30F0 003B0050 48 00 1C 69 */ bl salInitAi
|
|
/* 803B30F4 003B0054 28 03 00 00 */ cmplwi r3, 0
|
|
/* 803B30F8 003B0058 41 82 00 3C */ beq lbl_803B3134
|
|
/* 803B30FC 003B005C 57 E5 07 FE */ clrlwi r5, r31, 0x1f
|
|
/* 803B3100 003B0060 57 A3 06 3E */ clrlwi r3, r29, 0x18
|
|
/* 803B3104 003B0064 57 C4 06 3E */ clrlwi r4, r30, 0x18
|
|
/* 803B3108 003B0068 4B FF 7B F5 */ bl salInitDspCtrl
|
|
/* 803B310C 003B006C 28 03 00 00 */ cmplwi r3, 0
|
|
/* 803B3110 003B0070 41 82 00 24 */ beq lbl_803B3134
|
|
/* 803B3114 003B0074 7F E3 FB 78 */ mr r3, r31
|
|
/* 803B3118 003B0078 48 00 1D 8D */ bl salInitDsp
|
|
/* 803B311C 003B007C 28 03 00 00 */ cmplwi r3, 0
|
|
/* 803B3120 003B0080 41 82 00 14 */ beq lbl_803B3134
|
|
/* 803B3124 003B0084 48 00 1F 61 */ bl hwEnableIrq
|
|
/* 803B3128 003B0088 48 00 1C F9 */ bl salStartAi
|
|
/* 803B312C 003B008C 38 60 00 00 */ li r3, 0
|
|
/* 803B3130 003B0090 48 00 00 08 */ b lbl_803B3138
|
|
lbl_803B3134:
|
|
/* 803B3134 003B0094 38 60 FF FF */ li r3, -1
|
|
lbl_803B3138:
|
|
/* 803B3138 003B0098 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 803B313C 003B009C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 803B3140 003B00A0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 803B3144 003B00A4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 803B3148 003B00A8 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 803B314C 003B00AC 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3150 003B00B0 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 803B3154 003B00B4 4E 80 00 20 */ blr
|
|
|
|
.global hwExit
|
|
hwExit:
|
|
/* 803B3158 003B00B8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B315C 003B00BC 7C 08 02 A6 */ mflr r0
|
|
/* 803B3160 003B00C0 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3164 003B00C4 48 00 1F 59 */ bl hwDisableIrq
|
|
/* 803B3168 003B00C8 48 00 1D F9 */ bl salExitDsp
|
|
/* 803B316C 003B00CC 4B FF 7F 7D */ bl salExitDspCtrl
|
|
/* 803B3170 003B00D0 48 00 1C D1 */ bl salExitAi
|
|
/* 803B3174 003B00D4 48 00 1F 11 */ bl hwEnableIrq
|
|
/* 803B3178 003B00D8 48 00 1F 09 */ bl hwExitIrq
|
|
/* 803B317C 003B00DC 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3180 003B00E0 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3184 003B00E4 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3188 003B00E8 4E 80 00 20 */ blr
|
|
|
|
.global hwSetTimeOffset
|
|
hwSetTimeOffset:
|
|
/* 803B318C 003B00EC 98 6D AF 80 */ stb r3, salTimeOffset@sda21(r13)
|
|
/* 803B3190 003B00F0 4E 80 00 20 */ blr
|
|
|
|
.global hwGetTimeOffset
|
|
hwGetTimeOffset:
|
|
/* 803B3194 003B00F4 88 6D AF 80 */ lbz r3, salTimeOffset@sda21(r13)
|
|
/* 803B3198 003B00F8 4E 80 00 20 */ blr
|
|
|
|
.global hwIsActive
|
|
hwIsActive:
|
|
/* 803B319C 003B00FC 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B31A0 003B0100 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B31A4 003B0104 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B31A8 003B0108 88 63 00 EC */ lbz r3, 0xec(r3)
|
|
/* 803B31AC 003B010C 7C 03 00 D0 */ neg r0, r3
|
|
/* 803B31B0 003B0110 7C 00 1B 78 */ or r0, r0, r3
|
|
/* 803B31B4 003B0114 54 03 0F FE */ srwi r3, r0, 0x1f
|
|
/* 803B31B8 003B0118 4E 80 00 20 */ blr
|
|
|
|
.global hwSetMesgCallback
|
|
hwSetMesgCallback:
|
|
/* 803B31BC 003B011C 90 6D AF 58 */ stw r3, salMessageCallback@sda21(r13)
|
|
/* 803B31C0 003B0120 4E 80 00 20 */ blr
|
|
|
|
.global hwSetPriority
|
|
hwSetPriority:
|
|
/* 803B31C4 003B0124 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B31C8 003B0128 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B31CC 003B012C 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B31D0 003B0130 90 83 00 1C */ stw r4, 0x1c(r3)
|
|
/* 803B31D4 003B0134 4E 80 00 20 */ blr
|
|
|
|
.global hwInitSamplePlayback
|
|
hwInitSamplePlayback:
|
|
/* 803B31D8 003B0138 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 803B31DC 003B013C 7C 08 02 A6 */ mflr r0
|
|
/* 803B31E0 003B0140 39 80 00 00 */ li r12, 0
|
|
/* 803B31E4 003B0144 39 60 00 00 */ li r11, 0
|
|
/* 803B31E8 003B0148 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 803B31EC 003B014C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 803B31F0 003B0150 7D 5F 53 78 */ mr r31, r10
|
|
/* 803B31F4 003B0154 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 803B31F8 003B0158 7C 7E 1B 78 */ mr r30, r3
|
|
/* 803B31FC 003B015C 1C 7E 00 F4 */ mulli r3, r30, 0xf4
|
|
/* 803B3200 003B0160 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 803B3204 003B0164 3B A0 00 00 */ li r29, 0
|
|
/* 803B3208 003B0168 48 00 00 28 */ b lbl_803B3230
|
|
lbl_803B320C:
|
|
/* 803B320C 003B016C 81 4D AF 54 */ lwz r10, dspVoice@sda21(r13)
|
|
/* 803B3210 003B0170 55 80 15 BA */ rlwinm r0, r12, 2, 0x16, 0x1d
|
|
/* 803B3214 003B0174 39 8C 00 01 */ addi r12, r12, 1
|
|
/* 803B3218 003B0178 7D 4A 02 14 */ add r10, r10, r0
|
|
/* 803B321C 003B017C 39 4A 00 24 */ addi r10, r10, 0x24
|
|
/* 803B3220 003B0180 7C 03 50 2E */ lwzx r0, r3, r10
|
|
/* 803B3224 003B0184 54 00 06 B4 */ rlwinm r0, r0, 0, 0x1a, 0x1a
|
|
/* 803B3228 003B0188 7D 63 51 2E */ stwx r11, r3, r10
|
|
/* 803B322C 003B018C 7F BD 03 78 */ or r29, r29, r0
|
|
lbl_803B3230:
|
|
/* 803B3230 003B0190 88 0D AF 80 */ lbz r0, salTimeOffset@sda21(r13)
|
|
/* 803B3234 003B0194 55 8A 06 3E */ clrlwi r10, r12, 0x18
|
|
/* 803B3238 003B0198 7C 0A 00 40 */ cmplw r10, r0
|
|
/* 803B323C 003B019C 40 81 FF D0 */ ble lbl_803B320C
|
|
/* 803B3240 003B01A0 81 4D AF 54 */ lwz r10, dspVoice@sda21(r13)
|
|
/* 803B3244 003B01A4 38 00 00 00 */ li r0, 0
|
|
/* 803B3248 003B01A8 28 06 00 00 */ cmplwi r6, 0
|
|
/* 803B324C 003B01AC 7C CA 1A 14 */ add r6, r10, r3
|
|
/* 803B3250 003B01B0 93 A6 00 24 */ stw r29, 0x24(r6)
|
|
/* 803B3254 003B01B4 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B3258 003B01B8 7C C6 1A 14 */ add r6, r6, r3
|
|
/* 803B325C 003B01BC 90 E6 00 1C */ stw r7, 0x1c(r6)
|
|
/* 803B3260 003B01C0 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B3264 003B01C4 7C C6 1A 14 */ add r6, r6, r3
|
|
/* 803B3268 003B01C8 91 06 00 18 */ stw r8, 0x18(r6)
|
|
/* 803B326C 003B01CC 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B3270 003B01D0 7C C6 1A 14 */ add r6, r6, r3
|
|
/* 803B3274 003B01D4 90 06 00 F0 */ stw r0, 0xf0(r6)
|
|
/* 803B3278 003B01D8 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B327C 003B01DC 7C C6 1A 14 */ add r6, r6, r3
|
|
/* 803B3280 003B01E0 B0 86 00 70 */ sth r4, 0x70(r6)
|
|
/* 803B3284 003B01E4 80 ED AF 54 */ lwz r7, dspVoice@sda21(r13)
|
|
/* 803B3288 003B01E8 80 C5 00 00 */ lwz r6, 0(r5)
|
|
/* 803B328C 003B01EC 80 85 00 04 */ lwz r4, 4(r5)
|
|
/* 803B3290 003B01F0 7C E7 1A 14 */ add r7, r7, r3
|
|
/* 803B3294 003B01F4 90 C7 00 74 */ stw r6, 0x74(r7)
|
|
/* 803B3298 003B01F8 90 87 00 78 */ stw r4, 0x78(r7)
|
|
/* 803B329C 003B01FC 80 C5 00 08 */ lwz r6, 8(r5)
|
|
/* 803B32A0 003B0200 80 85 00 0C */ lwz r4, 0xc(r5)
|
|
/* 803B32A4 003B0204 90 C7 00 7C */ stw r6, 0x7c(r7)
|
|
/* 803B32A8 003B0208 90 87 00 80 */ stw r4, 0x80(r7)
|
|
/* 803B32AC 003B020C 80 C5 00 10 */ lwz r6, 0x10(r5)
|
|
/* 803B32B0 003B0210 80 85 00 14 */ lwz r4, 0x14(r5)
|
|
/* 803B32B4 003B0214 90 C7 00 84 */ stw r6, 0x84(r7)
|
|
/* 803B32B8 003B0218 90 87 00 88 */ stw r4, 0x88(r7)
|
|
/* 803B32BC 003B021C 80 C5 00 18 */ lwz r6, 0x18(r5)
|
|
/* 803B32C0 003B0220 80 85 00 1C */ lwz r4, 0x1c(r5)
|
|
/* 803B32C4 003B0224 90 C7 00 8C */ stw r6, 0x8c(r7)
|
|
/* 803B32C8 003B0228 90 87 00 90 */ stw r4, 0x90(r7)
|
|
/* 803B32CC 003B022C 41 82 00 44 */ beq lbl_803B3310
|
|
/* 803B32D0 003B0230 80 8D AF 54 */ lwz r4, dspVoice@sda21(r13)
|
|
/* 803B32D4 003B0234 38 A0 7F FF */ li r5, 0x7fff
|
|
/* 803B32D8 003B0238 7C 84 1A 14 */ add r4, r4, r3
|
|
/* 803B32DC 003B023C 98 04 00 A4 */ stb r0, 0xa4(r4)
|
|
/* 803B32E0 003B0240 80 8D AF 54 */ lwz r4, dspVoice@sda21(r13)
|
|
/* 803B32E4 003B0244 7C 84 1A 14 */ add r4, r4, r3
|
|
/* 803B32E8 003B0248 90 04 00 B8 */ stw r0, 0xb8(r4)
|
|
/* 803B32EC 003B024C 80 8D AF 54 */ lwz r4, dspVoice@sda21(r13)
|
|
/* 803B32F0 003B0250 7C 84 1A 14 */ add r4, r4, r3
|
|
/* 803B32F4 003B0254 90 04 00 BC */ stw r0, 0xbc(r4)
|
|
/* 803B32F8 003B0258 80 8D AF 54 */ lwz r4, dspVoice@sda21(r13)
|
|
/* 803B32FC 003B025C 7C 84 1A 14 */ add r4, r4, r3
|
|
/* 803B3300 003B0260 B0 A4 00 C0 */ sth r5, 0xc0(r4)
|
|
/* 803B3304 003B0264 80 8D AF 54 */ lwz r4, dspVoice@sda21(r13)
|
|
/* 803B3308 003B0268 7C 84 1A 14 */ add r4, r4, r3
|
|
/* 803B330C 003B026C 90 04 00 C4 */ stw r0, 0xc4(r4)
|
|
lbl_803B3310:
|
|
/* 803B3310 003B0270 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3314 003B0274 38 A0 00 FF */ li r5, 0xff
|
|
/* 803B3318 003B0278 28 09 00 00 */ cmplwi r9, 0
|
|
/* 803B331C 003B027C 7C 80 1A 14 */ add r4, r0, r3
|
|
/* 803B3320 003B0280 98 A4 00 E4 */ stb r5, 0xe4(r4)
|
|
/* 803B3324 003B0284 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3328 003B0288 7C 80 1A 14 */ add r4, r0, r3
|
|
/* 803B332C 003B028C 98 A4 00 E5 */ stb r5, 0xe5(r4)
|
|
/* 803B3330 003B0290 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3334 003B0294 7C 80 1A 14 */ add r4, r0, r3
|
|
/* 803B3338 003B0298 98 A4 00 E6 */ stb r5, 0xe6(r4)
|
|
/* 803B333C 003B029C 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3340 003B02A0 7C 60 1A 14 */ add r3, r0, r3
|
|
/* 803B3344 003B02A4 98 A3 00 E7 */ stb r5, 0xe7(r3)
|
|
/* 803B3348 003B02A8 41 82 00 1C */ beq lbl_803B3364
|
|
/* 803B334C 003B02AC 7F C3 F3 78 */ mr r3, r30
|
|
/* 803B3350 003B02B0 38 80 00 00 */ li r4, 0
|
|
/* 803B3354 003B02B4 48 00 03 81 */ bl sub_803b36d4
|
|
/* 803B3358 003B02B8 7F C3 F3 78 */ mr r3, r30
|
|
/* 803B335C 003B02BC 38 80 00 01 */ li r4, 1
|
|
/* 803B3360 003B02C0 48 00 03 A1 */ bl hwSetSRCType
|
|
lbl_803B3364:
|
|
/* 803B3364 003B02C4 7F C3 F3 78 */ mr r3, r30
|
|
/* 803B3368 003B02C8 7F E4 FB 78 */ mr r4, r31
|
|
/* 803B336C 003B02CC 48 00 03 C1 */ bl hwSetITDMode
|
|
/* 803B3370 003B02D0 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 803B3374 003B02D4 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 803B3378 003B02D8 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 803B337C 003B02DC 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 803B3380 003B02E0 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3384 003B02E4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 803B3388 003B02E8 4E 80 00 20 */ blr
|
|
|
|
.global hwBreak
|
|
hwBreak:
|
|
/* 803B338C 003B02EC 1C 83 00 F4 */ mulli r4, r3, 0xf4
|
|
/* 803B3390 003B02F0 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3394 003B02F4 7C 60 22 14 */ add r3, r0, r4
|
|
/* 803B3398 003B02F8 88 03 00 EC */ lbz r0, 0xec(r3)
|
|
/* 803B339C 003B02FC 28 00 00 01 */ cmplwi r0, 1
|
|
/* 803B33A0 003B0300 40 82 00 18 */ bne lbl_803B33B8
|
|
/* 803B33A4 003B0304 88 0D AF 80 */ lbz r0, salTimeOffset@sda21(r13)
|
|
/* 803B33A8 003B0308 28 00 00 00 */ cmplwi r0, 0
|
|
/* 803B33AC 003B030C 40 82 00 0C */ bne lbl_803B33B8
|
|
/* 803B33B0 003B0310 38 00 00 01 */ li r0, 1
|
|
/* 803B33B4 003B0314 98 03 00 EE */ stb r0, 0xee(r3)
|
|
lbl_803B33B8:
|
|
/* 803B33B8 003B0318 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B33BC 003B031C 88 0D AF 80 */ lbz r0, salTimeOffset@sda21(r13)
|
|
/* 803B33C0 003B0320 7C 63 22 14 */ add r3, r3, r4
|
|
/* 803B33C4 003B0324 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 803B33C8 003B0328 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B33CC 003B032C 80 03 00 24 */ lwz r0, 0x24(r3)
|
|
/* 803B33D0 003B0330 60 00 00 20 */ ori r0, r0, 0x20
|
|
/* 803B33D4 003B0334 90 03 00 24 */ stw r0, 0x24(r3)
|
|
/* 803B33D8 003B0338 4E 80 00 20 */ blr
|
|
|
|
.global hwSetADSR
|
|
hwSetADSR:
|
|
/* 803B33DC 003B033C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 803B33E0 003B0340 7C 08 02 A6 */ mflr r0
|
|
/* 803B33E4 003B0344 54 A6 06 3F */ clrlwi. r6, r5, 0x18
|
|
/* 803B33E8 003B0348 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 803B33EC 003B034C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 803B33F0 003B0350 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 803B33F4 003B0354 7C 9E 23 78 */ mr r30, r4
|
|
/* 803B33F8 003B0358 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 803B33FC 003B035C 7C 7D 1B 78 */ mr r29, r3
|
|
/* 803B3400 003B0360 41 82 00 14 */ beq lbl_803B3414
|
|
/* 803B3404 003B0364 41 80 01 50 */ blt lbl_803B3554
|
|
/* 803B3408 003B0368 2C 06 00 03 */ cmpwi r6, 3
|
|
/* 803B340C 003B036C 40 80 01 48 */ bge lbl_803B3554
|
|
/* 803B3410 003B0370 48 00 00 6C */ b lbl_803B347C
|
|
lbl_803B3414:
|
|
/* 803B3414 003B0374 1C BD 00 F4 */ mulli r5, r29, 0xf4
|
|
/* 803B3418 003B0378 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B341C 003B037C 38 80 00 00 */ li r4, 0
|
|
/* 803B3420 003B0380 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3424 003B0384 98 83 00 A4 */ stb r4, 0xa4(r3)
|
|
/* 803B3428 003B0388 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B342C 003B038C A0 9E 00 00 */ lhz r4, 0(r30)
|
|
/* 803B3430 003B0390 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3434 003B0394 90 83 00 B8 */ stw r4, 0xb8(r3)
|
|
/* 803B3438 003B0398 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B343C 003B039C A0 9E 00 02 */ lhz r4, 2(r30)
|
|
/* 803B3440 003B03A0 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3444 003B03A4 90 83 00 BC */ stw r4, 0xbc(r3)
|
|
/* 803B3448 003B03A8 A0 1E 00 04 */ lhz r0, 4(r30)
|
|
/* 803B344C 003B03AC 54 04 18 38 */ slwi r4, r0, 3
|
|
/* 803B3450 003B03B0 28 04 7F FF */ cmplwi r4, 0x7fff
|
|
/* 803B3454 003B03B4 40 81 00 08 */ ble lbl_803B345C
|
|
/* 803B3458 003B03B8 38 80 7F FF */ li r4, 0x7fff
|
|
lbl_803B345C:
|
|
/* 803B345C 003B03BC 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3460 003B03C0 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3464 003B03C4 B0 83 00 C0 */ sth r4, 0xc0(r3)
|
|
/* 803B3468 003B03C8 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B346C 003B03CC A0 9E 00 06 */ lhz r4, 6(r30)
|
|
/* 803B3470 003B03D0 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3474 003B03D4 90 83 00 C4 */ stw r4, 0xc4(r3)
|
|
/* 803B3478 003B03D8 48 00 00 DC */ b lbl_803B3554
|
|
lbl_803B347C:
|
|
/* 803B347C 003B03DC 1F FD 00 F4 */ mulli r31, r29, 0xf4
|
|
/* 803B3480 003B03E0 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3484 003B03E4 38 A0 00 01 */ li r5, 1
|
|
/* 803B3488 003B03E8 28 06 00 01 */ cmplwi r6, 1
|
|
/* 803B348C 003B03EC 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B3490 003B03F0 38 80 00 00 */ li r4, 0
|
|
/* 803B3494 003B03F4 98 A3 00 A4 */ stb r5, 0xa4(r3)
|
|
/* 803B3498 003B03F8 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B349C 003B03FC 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B34A0 003B0400 98 83 00 CA */ stb r4, 0xca(r3)
|
|
/* 803B34A4 003B0404 40 82 00 68 */ bne lbl_803B350C
|
|
/* 803B34A8 003B0408 80 7E 00 00 */ lwz r3, 0(r30)
|
|
/* 803B34AC 003B040C 4B FF 5D 65 */ bl adsrConvertTimeCents
|
|
/* 803B34B0 003B0410 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B34B4 003B0414 54 64 04 3E */ clrlwi r4, r3, 0x10
|
|
/* 803B34B8 003B0418 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B34BC 003B041C 90 83 00 B8 */ stw r4, 0xb8(r3)
|
|
/* 803B34C0 003B0420 80 7E 00 04 */ lwz r3, 4(r30)
|
|
/* 803B34C4 003B0424 4B FF 5D 4D */ bl adsrConvertTimeCents
|
|
/* 803B34C8 003B0428 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B34CC 003B042C 54 64 04 3E */ clrlwi r4, r3, 0x10
|
|
/* 803B34D0 003B0430 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B34D4 003B0434 90 83 00 BC */ stw r4, 0xbc(r3)
|
|
/* 803B34D8 003B0438 A0 1E 00 08 */ lhz r0, 8(r30)
|
|
/* 803B34DC 003B043C 7C 04 16 70 */ srawi r4, r0, 2
|
|
/* 803B34E0 003B0440 28 04 03 FF */ cmplwi r4, 0x3ff
|
|
/* 803B34E4 003B0444 40 81 00 08 */ ble lbl_803B34EC
|
|
/* 803B34E8 003B0448 38 80 03 FF */ li r4, 0x3ff
|
|
lbl_803B34EC:
|
|
/* 803B34EC 003B044C 3C 60 80 3F */ lis r3, lbl_803F39A4@ha
|
|
/* 803B34F0 003B0450 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B34F4 003B0454 38 63 39 A4 */ addi r3, r3, lbl_803F39A4@l
|
|
/* 803B34F8 003B0458 7C 83 20 AE */ lbzx r4, r3, r4
|
|
/* 803B34FC 003B045C 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B3500 003B0460 20 04 00 C1 */ subfic r0, r4, 0xc1
|
|
/* 803B3504 003B0464 B0 03 00 C0 */ sth r0, 0xc0(r3)
|
|
/* 803B3508 003B0468 48 00 00 3C */ b lbl_803B3544
|
|
lbl_803B350C:
|
|
/* 803B350C 003B046C 80 7E 00 00 */ lwz r3, 0(r30)
|
|
/* 803B3510 003B0470 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3514 003B0474 54 64 04 3E */ clrlwi r4, r3, 0x10
|
|
/* 803B3518 003B0478 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B351C 003B047C 90 83 00 B8 */ stw r4, 0xb8(r3)
|
|
/* 803B3520 003B0480 80 7E 00 04 */ lwz r3, 4(r30)
|
|
/* 803B3524 003B0484 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3528 003B0488 54 64 04 3E */ clrlwi r4, r3, 0x10
|
|
/* 803B352C 003B048C 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B3530 003B0490 90 83 00 BC */ stw r4, 0xbc(r3)
|
|
/* 803B3534 003B0494 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3538 003B0498 A0 9E 00 08 */ lhz r4, 8(r30)
|
|
/* 803B353C 003B049C 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B3540 003B04A0 B0 83 00 C0 */ sth r4, 0xc0(r3)
|
|
lbl_803B3544:
|
|
/* 803B3544 003B04A4 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3548 003B04A8 A0 9E 00 0A */ lhz r4, 0xa(r30)
|
|
/* 803B354C 003B04AC 7C 60 FA 14 */ add r3, r0, r31
|
|
/* 803B3550 003B04B0 90 83 00 C4 */ stw r4, 0xc4(r3)
|
|
lbl_803B3554:
|
|
/* 803B3554 003B04B4 1C 1D 00 F4 */ mulli r0, r29, 0xf4
|
|
/* 803B3558 003B04B8 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B355C 003B04BC 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B3560 003B04C0 80 03 00 24 */ lwz r0, 0x24(r3)
|
|
/* 803B3564 003B04C4 60 00 00 10 */ ori r0, r0, 0x10
|
|
/* 803B3568 003B04C8 90 03 00 24 */ stw r0, 0x24(r3)
|
|
/* 803B356C 003B04CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 803B3570 003B04D0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 803B3574 003B04D4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 803B3578 003B04D8 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 803B357C 003B04DC 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3580 003B04E0 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 803B3584 003B04E4 4E 80 00 20 */ blr
|
|
|
|
.global hwSetVirtualSampleLoopBuffer
|
|
hwSetVirtualSampleLoopBuffer:
|
|
/* 803B3588 003B04E8 1C C3 00 F4 */ mulli r6, r3, 0xf4
|
|
/* 803B358C 003B04EC 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3590 003B04F0 7C 60 32 14 */ add r3, r0, r6
|
|
/* 803B3594 003B04F4 90 83 00 94 */ stw r4, 0x94(r3)
|
|
/* 803B3598 003B04F8 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B359C 003B04FC 7C 60 32 14 */ add r3, r0, r6
|
|
/* 803B35A0 003B0500 90 A3 00 98 */ stw r5, 0x98(r3)
|
|
/* 803B35A4 003B0504 4E 80 00 20 */ blr
|
|
|
|
.global hwGetVirtualSampleState
|
|
hwGetVirtualSampleState:
|
|
/* 803B35A8 003B0508 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B35AC 003B050C 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B35B0 003B0510 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B35B4 003B0514 88 63 00 9C */ lbz r3, 0x9c(r3)
|
|
/* 803B35B8 003B0518 4E 80 00 20 */ blr
|
|
|
|
.global hwGetSampleType
|
|
hwGetSampleType:
|
|
/* 803B35BC 003B051C 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B35C0 003B0520 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B35C4 003B0524 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B35C8 003B0528 88 63 00 90 */ lbz r3, 0x90(r3)
|
|
/* 803B35CC 003B052C 4E 80 00 20 */ blr
|
|
|
|
.global hwGetSampleID
|
|
hwGetSampleID:
|
|
/* 803B35D0 003B0530 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B35D4 003B0534 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B35D8 003B0538 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B35DC 003B053C A0 63 00 70 */ lhz r3, 0x70(r3)
|
|
/* 803B35E0 003B0540 4E 80 00 20 */ blr
|
|
|
|
.global hwSetStreamLoopPS
|
|
hwSetStreamLoopPS:
|
|
/* 803B35E4 003B0544 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B35E8 003B0548 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B35EC 003B054C 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B35F0 003B0550 98 83 00 A0 */ stb r4, 0xa0(r3)
|
|
/* 803B35F4 003B0554 4E 80 00 20 */ blr
|
|
|
|
.global hwStart
|
|
hwStart:
|
|
/* 803B35F8 003B0558 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B35FC 003B055C 7C 08 02 A6 */ mflr r0
|
|
/* 803B3600 003B0560 1C C3 00 F4 */ mulli r6, r3, 0xf4
|
|
/* 803B3604 003B0564 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3608 003B0568 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B360C 003B056C 88 AD AF 80 */ lbz r5, salTimeOffset@sda21(r13)
|
|
/* 803B3610 003B0570 7C 60 32 14 */ add r3, r0, r6
|
|
/* 803B3614 003B0574 98 A3 00 D4 */ stb r5, 0xd4(r3)
|
|
/* 803B3618 003B0578 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B361C 003B057C 7C 60 32 14 */ add r3, r0, r6
|
|
/* 803B3620 003B0580 4B FF A6 A5 */ bl salActivateVoice
|
|
/* 803B3624 003B0584 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3628 003B0588 7C 08 03 A6 */ mtlr r0
|
|
/* 803B362C 003B058C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3630 003B0590 4E 80 00 20 */ blr
|
|
|
|
.global hwKeyOff
|
|
hwKeyOff:
|
|
/* 803B3634 003B0594 1C 63 00 F4 */ mulli r3, r3, 0xf4
|
|
/* 803B3638 003B0598 80 8D AF 54 */ lwz r4, dspVoice@sda21(r13)
|
|
/* 803B363C 003B059C 88 0D AF 80 */ lbz r0, salTimeOffset@sda21(r13)
|
|
/* 803B3640 003B05A0 7C 64 1A 14 */ add r3, r4, r3
|
|
/* 803B3644 003B05A4 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 803B3648 003B05A8 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B364C 003B05AC 80 03 00 24 */ lwz r0, 0x24(r3)
|
|
/* 803B3650 003B05B0 60 00 00 40 */ ori r0, r0, 0x40
|
|
/* 803B3654 003B05B4 90 03 00 24 */ stw r0, 0x24(r3)
|
|
/* 803B3658 003B05B8 4E 80 00 20 */ blr
|
|
|
|
.global hwSetPitch
|
|
hwSetPitch:
|
|
/* 803B365C 003B05BC 54 80 04 3E */ clrlwi r0, r4, 0x10
|
|
/* 803B3660 003B05C0 80 AD AF 54 */ lwz r5, dspVoice@sda21(r13)
|
|
/* 803B3664 003B05C4 1C 63 00 F4 */ mulli r3, r3, 0xf4
|
|
/* 803B3668 003B05C8 28 00 40 00 */ cmplwi r0, 0x4000
|
|
/* 803B366C 003B05CC 7C A5 1A 14 */ add r5, r5, r3
|
|
/* 803B3670 003B05D0 41 80 00 08 */ blt lbl_803B3678
|
|
/* 803B3674 003B05D4 38 80 3F FF */ li r4, 0x3fff
|
|
lbl_803B3678:
|
|
/* 803B3678 003B05D8 88 05 00 E4 */ lbz r0, 0xe4(r5)
|
|
/* 803B367C 003B05DC 28 00 00 FF */ cmplwi r0, 0xff
|
|
/* 803B3680 003B05E0 41 82 00 1C */ beq lbl_803B369C
|
|
/* 803B3684 003B05E4 54 03 15 BA */ rlwinm r3, r0, 2, 0x16, 0x1d
|
|
/* 803B3688 003B05E8 54 80 23 36 */ rlwinm r0, r4, 4, 0xc, 0x1b
|
|
/* 803B368C 003B05EC 7C 65 1A 14 */ add r3, r5, r3
|
|
/* 803B3690 003B05F0 80 63 00 38 */ lwz r3, 0x38(r3)
|
|
/* 803B3694 003B05F4 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B3698 003B05F8 4D 82 00 20 */ beqlr
|
|
lbl_803B369C:
|
|
/* 803B369C 003B05FC 88 0D AF 80 */ lbz r0, salTimeOffset@sda21(r13)
|
|
/* 803B36A0 003B0600 54 84 23 36 */ rlwinm r4, r4, 4, 0xc, 0x1b
|
|
/* 803B36A4 003B0604 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 803B36A8 003B0608 7C 65 02 14 */ add r3, r5, r0
|
|
/* 803B36AC 003B060C 90 83 00 38 */ stw r4, 0x38(r3)
|
|
/* 803B36B0 003B0610 88 0D AF 80 */ lbz r0, salTimeOffset@sda21(r13)
|
|
/* 803B36B4 003B0614 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 803B36B8 003B0618 7C 65 02 14 */ add r3, r5, r0
|
|
/* 803B36BC 003B061C 80 03 00 24 */ lwz r0, 0x24(r3)
|
|
/* 803B36C0 003B0620 60 00 00 08 */ ori r0, r0, 8
|
|
/* 803B36C4 003B0624 90 03 00 24 */ stw r0, 0x24(r3)
|
|
/* 803B36C8 003B0628 88 0D AF 80 */ lbz r0, salTimeOffset@sda21(r13)
|
|
/* 803B36CC 003B062C 98 05 00 E4 */ stb r0, 0xe4(r5)
|
|
/* 803B36D0 003B0630 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b36d4
|
|
sub_803b36d4:
|
|
/* 803B36D4 003B0634 1C A3 00 F4 */ mulli r5, r3, 0xf4
|
|
/* 803B36D8 003B0638 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B36DC 003B063C 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e
|
|
/* 803B36E0 003B0640 38 6D A0 18 */ addi r3, r13, lbl_805A8BD8@sda21
|
|
/* 803B36E4 003B0644 7C 03 02 2E */ lhzx r0, r3, r0
|
|
/* 803B36E8 003B0648 7C 66 2A 14 */ add r3, r6, r5
|
|
/* 803B36EC 003B064C B0 03 00 CC */ sth r0, 0xcc(r3)
|
|
/* 803B36F0 003B0650 80 03 00 24 */ lwz r0, 0x24(r3)
|
|
/* 803B36F4 003B0654 60 00 01 00 */ ori r0, r0, 0x100
|
|
/* 803B36F8 003B0658 90 03 00 24 */ stw r0, 0x24(r3)
|
|
/* 803B36FC 003B065C 4E 80 00 20 */ blr
|
|
|
|
.global hwSetSRCType
|
|
hwSetSRCType:
|
|
/* 803B3700 003B0660 1C A3 00 F4 */ mulli r5, r3, 0xf4
|
|
/* 803B3704 003B0664 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B3708 003B0668 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e
|
|
/* 803B370C 003B066C 38 6D A0 20 */ addi r3, r13, lbl_805A8BE0@sda21
|
|
/* 803B3710 003B0670 7C 03 02 2E */ lhzx r0, r3, r0
|
|
/* 803B3714 003B0674 7C 66 2A 14 */ add r3, r6, r5
|
|
/* 803B3718 003B0678 B0 03 00 CE */ sth r0, 0xce(r3)
|
|
/* 803B371C 003B067C 80 03 00 24 */ lwz r0, 0x24(r3)
|
|
/* 803B3720 003B0680 60 00 00 80 */ ori r0, r0, 0x80
|
|
/* 803B3724 003B0684 90 03 00 24 */ stw r0, 0x24(r3)
|
|
/* 803B3728 003B0688 4E 80 00 20 */ blr
|
|
|
|
.global hwSetITDMode
|
|
hwSetITDMode:
|
|
/* 803B372C 003B068C 54 80 06 3F */ clrlwi. r0, r4, 0x18
|
|
/* 803B3730 003B0690 40 82 00 3C */ bne lbl_803B376C
|
|
/* 803B3734 003B0694 1C A3 00 F4 */ mulli r5, r3, 0xf4
|
|
/* 803B3738 003B0698 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B373C 003B069C 38 80 00 10 */ li r4, 0x10
|
|
/* 803B3740 003B06A0 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3744 003B06A4 80 03 00 F0 */ lwz r0, 0xf0(r3)
|
|
/* 803B3748 003B06A8 64 00 80 00 */ oris r0, r0, 0x8000
|
|
/* 803B374C 003B06AC 90 03 00 F0 */ stw r0, 0xf0(r3)
|
|
/* 803B3750 003B06B0 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3754 003B06B4 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3758 003B06B8 B0 83 00 D0 */ sth r4, 0xd0(r3)
|
|
/* 803B375C 003B06BC 80 0D AF 54 */ lwz r0, dspVoice@sda21(r13)
|
|
/* 803B3760 003B06C0 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3764 003B06C4 B0 83 00 D2 */ sth r4, 0xd2(r3)
|
|
/* 803B3768 003B06C8 4E 80 00 20 */ blr
|
|
lbl_803B376C:
|
|
/* 803B376C 003B06CC 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B3770 003B06D0 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B3774 003B06D4 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B3778 003B06D8 80 03 00 F0 */ lwz r0, 0xf0(r3)
|
|
/* 803B377C 003B06DC 54 00 00 7E */ clrlwi r0, r0, 1
|
|
/* 803B3780 003B06E0 90 03 00 F0 */ stw r0, 0xf0(r3)
|
|
/* 803B3784 003B06E4 4E 80 00 20 */ blr
|
|
|
|
.global hwSetVolume
|
|
hwSetVolume:
|
|
/* 803B3788 003B06E8 94 21 FF B0 */ stwu r1, -0x50(r1)
|
|
/* 803B378C 003B06EC 7C 08 02 A6 */ mflr r0
|
|
/* 803B3790 003B06F0 C0 02 D6 78 */ lfs f0, lbl_805AF398@sda21(r2)
|
|
/* 803B3794 003B06F4 90 01 00 54 */ stw r0, 0x54(r1)
|
|
/* 803B3798 003B06F8 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B379C 003B06FC FC 01 00 40 */ fcmpo cr0, f1, f0
|
|
/* 803B37A0 003B0700 93 E1 00 4C */ stw r31, 0x4c(r1)
|
|
/* 803B37A4 003B0704 93 C1 00 48 */ stw r30, 0x48(r1)
|
|
/* 803B37A8 003B0708 7C BE 2B 78 */ mr r30, r5
|
|
/* 803B37AC 003B070C 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B37B0 003B0710 7F E3 02 14 */ add r31, r3, r0
|
|
/* 803B37B4 003B0714 4C 41 13 82 */ cror 2, 1, 2
|
|
/* 803B37B8 003B0718 40 82 00 08 */ bne lbl_803B37C0
|
|
/* 803B37BC 003B071C FC 20 00 90 */ fmr f1, f0
|
|
lbl_803B37C0:
|
|
/* 803B37C0 003B0720 C0 02 D6 78 */ lfs f0, lbl_805AF398@sda21(r2)
|
|
/* 803B37C4 003B0724 FC 02 00 40 */ fcmpo cr0, f2, f0
|
|
/* 803B37C8 003B0728 4C 41 13 82 */ cror 2, 1, 2
|
|
/* 803B37CC 003B072C 40 82 00 08 */ bne lbl_803B37D4
|
|
/* 803B37D0 003B0730 FC 40 00 90 */ fmr f2, f0
|
|
lbl_803B37D4:
|
|
/* 803B37D4 003B0734 C0 02 D6 78 */ lfs f0, lbl_805AF398@sda21(r2)
|
|
/* 803B37D8 003B0738 FC 03 00 40 */ fcmpo cr0, f3, f0
|
|
/* 803B37DC 003B073C 4C 41 13 82 */ cror 2, 1, 2
|
|
/* 803B37E0 003B0740 40 82 00 08 */ bne lbl_803B37E8
|
|
/* 803B37E4 003B0744 FC 60 00 90 */ fmr f3, f0
|
|
lbl_803B37E8:
|
|
/* 803B37E8 003B0748 88 1F 00 EF */ lbz r0, 0xef(r31)
|
|
/* 803B37EC 003B074C 3C 60 80 56 */ lis r3, dspStudio@ha
|
|
/* 803B37F0 003B0750 38 E3 F2 60 */ addi r7, r3, dspStudio@l
|
|
/* 803B37F4 003B0754 81 1F 00 F0 */ lwz r8, 0xf0(r31)
|
|
/* 803B37F8 003B0758 1C 00 00 BC */ mulli r0, r0, 0xbc
|
|
/* 803B37FC 003B075C 7C 83 23 78 */ mr r3, r4
|
|
/* 803B3800 003B0760 7F C5 F3 78 */ mr r5, r30
|
|
/* 803B3804 003B0764 7C 87 02 14 */ add r4, r7, r0
|
|
/* 803B3808 003B0768 55 07 0F FE */ srwi r7, r8, 0x1f
|
|
/* 803B380C 003B076C 80 04 00 54 */ lwz r0, 0x54(r4)
|
|
/* 803B3810 003B0770 38 81 00 08 */ addi r4, r1, 8
|
|
/* 803B3814 003B0774 20 00 00 01 */ subfic r0, r0, 1
|
|
/* 803B3818 003B0778 7C 00 00 34 */ cntlzw r0, r0
|
|
/* 803B381C 003B077C 54 08 D9 7E */ srwi r8, r0, 5
|
|
/* 803B3820 003B0780 4B FF A8 F1 */ bl salCalcVolume
|
|
/* 803B3824 003B0784 C0 62 D6 7C */ lfs f3, lbl_805AF39C@sda21(r2)
|
|
/* 803B3828 003B0788 C0 41 00 08 */ lfs f2, 8(r1)
|
|
/* 803B382C 003B078C C0 21 00 0C */ lfs f1, 0xc(r1)
|
|
/* 803B3830 003B0790 C0 01 00 10 */ lfs f0, 0x10(r1)
|
|
/* 803B3834 003B0794 EC 43 00 B2 */ fmuls f2, f3, f2
|
|
/* 803B3838 003B0798 EC 23 00 72 */ fmuls f1, f3, f1
|
|
/* 803B383C 003B079C 88 1F 00 E5 */ lbz r0, 0xe5(r31)
|
|
/* 803B3840 003B07A0 EC 03 00 32 */ fmuls f0, f3, f0
|
|
/* 803B3844 003B07A4 FC 40 10 1E */ fctiwz f2, f2
|
|
/* 803B3848 003B07A8 28 00 00 FF */ cmplwi r0, 0xff
|
|
/* 803B384C 003B07AC FC 20 08 1E */ fctiwz f1, f1
|
|
/* 803B3850 003B07B0 FC 00 00 1E */ fctiwz f0, f0
|
|
/* 803B3854 003B07B4 D8 41 00 30 */ stfd f2, 0x30(r1)
|
|
/* 803B3858 003B07B8 D8 21 00 38 */ stfd f1, 0x38(r1)
|
|
/* 803B385C 003B07BC 80 81 00 34 */ lwz r4, 0x34(r1)
|
|
/* 803B3860 003B07C0 D8 01 00 40 */ stfd f0, 0x40(r1)
|
|
/* 803B3864 003B07C4 80 A1 00 3C */ lwz r5, 0x3c(r1)
|
|
/* 803B3868 003B07C8 80 C1 00 44 */ lwz r6, 0x44(r1)
|
|
/* 803B386C 003B07CC 41 82 00 34 */ beq lbl_803B38A0
|
|
/* 803B3870 003B07D0 A0 7F 00 4C */ lhz r3, 0x4c(r31)
|
|
/* 803B3874 003B07D4 54 80 04 3E */ clrlwi r0, r4, 0x10
|
|
/* 803B3878 003B07D8 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B387C 003B07DC 40 82 00 24 */ bne lbl_803B38A0
|
|
/* 803B3880 003B07E0 A0 7F 00 4E */ lhz r3, 0x4e(r31)
|
|
/* 803B3884 003B07E4 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
|
/* 803B3888 003B07E8 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B388C 003B07EC 40 82 00 14 */ bne lbl_803B38A0
|
|
/* 803B3890 003B07F0 A0 7F 00 50 */ lhz r3, 0x50(r31)
|
|
/* 803B3894 003B07F4 54 C0 04 3E */ clrlwi r0, r6, 0x10
|
|
/* 803B3898 003B07F8 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B389C 003B07FC 41 82 00 24 */ beq lbl_803B38C0
|
|
lbl_803B38A0:
|
|
/* 803B38A0 003B0800 B0 9F 00 4C */ sth r4, 0x4c(r31)
|
|
/* 803B38A4 003B0804 38 00 00 00 */ li r0, 0
|
|
/* 803B38A8 003B0808 B0 BF 00 4E */ sth r5, 0x4e(r31)
|
|
/* 803B38AC 003B080C B0 DF 00 50 */ sth r6, 0x50(r31)
|
|
/* 803B38B0 003B0810 80 7F 00 24 */ lwz r3, 0x24(r31)
|
|
/* 803B38B4 003B0814 60 63 00 01 */ ori r3, r3, 1
|
|
/* 803B38B8 003B0818 90 7F 00 24 */ stw r3, 0x24(r31)
|
|
/* 803B38BC 003B081C 98 1F 00 E5 */ stb r0, 0xe5(r31)
|
|
lbl_803B38C0:
|
|
/* 803B38C0 003B0820 C0 62 D6 7C */ lfs f3, lbl_805AF39C@sda21(r2)
|
|
/* 803B38C4 003B0824 C0 41 00 14 */ lfs f2, 0x14(r1)
|
|
/* 803B38C8 003B0828 C0 21 00 18 */ lfs f1, 0x18(r1)
|
|
/* 803B38CC 003B082C C0 01 00 1C */ lfs f0, 0x1c(r1)
|
|
/* 803B38D0 003B0830 EC 43 00 B2 */ fmuls f2, f3, f2
|
|
/* 803B38D4 003B0834 EC 23 00 72 */ fmuls f1, f3, f1
|
|
/* 803B38D8 003B0838 88 1F 00 E6 */ lbz r0, 0xe6(r31)
|
|
/* 803B38DC 003B083C EC 03 00 32 */ fmuls f0, f3, f0
|
|
/* 803B38E0 003B0840 FC 40 10 1E */ fctiwz f2, f2
|
|
/* 803B38E4 003B0844 28 00 00 FF */ cmplwi r0, 0xff
|
|
/* 803B38E8 003B0848 FC 20 08 1E */ fctiwz f1, f1
|
|
/* 803B38EC 003B084C FC 00 00 1E */ fctiwz f0, f0
|
|
/* 803B38F0 003B0850 D8 41 00 40 */ stfd f2, 0x40(r1)
|
|
/* 803B38F4 003B0854 D8 21 00 38 */ stfd f1, 0x38(r1)
|
|
/* 803B38F8 003B0858 80 81 00 44 */ lwz r4, 0x44(r1)
|
|
/* 803B38FC 003B085C D8 01 00 30 */ stfd f0, 0x30(r1)
|
|
/* 803B3900 003B0860 80 A1 00 3C */ lwz r5, 0x3c(r1)
|
|
/* 803B3904 003B0864 80 C1 00 34 */ lwz r6, 0x34(r1)
|
|
/* 803B3908 003B0868 41 82 00 34 */ beq lbl_803B393C
|
|
/* 803B390C 003B086C A0 7F 00 52 */ lhz r3, 0x52(r31)
|
|
/* 803B3910 003B0870 54 80 04 3E */ clrlwi r0, r4, 0x10
|
|
/* 803B3914 003B0874 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B3918 003B0878 40 82 00 24 */ bne lbl_803B393C
|
|
/* 803B391C 003B087C A0 7F 00 54 */ lhz r3, 0x54(r31)
|
|
/* 803B3920 003B0880 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
|
/* 803B3924 003B0884 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B3928 003B0888 40 82 00 14 */ bne lbl_803B393C
|
|
/* 803B392C 003B088C A0 7F 00 56 */ lhz r3, 0x56(r31)
|
|
/* 803B3930 003B0890 54 C0 04 3E */ clrlwi r0, r6, 0x10
|
|
/* 803B3934 003B0894 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B3938 003B0898 41 82 00 24 */ beq lbl_803B395C
|
|
lbl_803B393C:
|
|
/* 803B393C 003B089C B0 9F 00 52 */ sth r4, 0x52(r31)
|
|
/* 803B3940 003B08A0 38 00 00 00 */ li r0, 0
|
|
/* 803B3944 003B08A4 B0 BF 00 54 */ sth r5, 0x54(r31)
|
|
/* 803B3948 003B08A8 B0 DF 00 56 */ sth r6, 0x56(r31)
|
|
/* 803B394C 003B08AC 80 7F 00 24 */ lwz r3, 0x24(r31)
|
|
/* 803B3950 003B08B0 60 63 00 02 */ ori r3, r3, 2
|
|
/* 803B3954 003B08B4 90 7F 00 24 */ stw r3, 0x24(r31)
|
|
/* 803B3958 003B08B8 98 1F 00 E6 */ stb r0, 0xe6(r31)
|
|
lbl_803B395C:
|
|
/* 803B395C 003B08BC C0 62 D6 7C */ lfs f3, lbl_805AF39C@sda21(r2)
|
|
/* 803B3960 003B08C0 C0 41 00 20 */ lfs f2, 0x20(r1)
|
|
/* 803B3964 003B08C4 C0 21 00 24 */ lfs f1, 0x24(r1)
|
|
/* 803B3968 003B08C8 C0 01 00 28 */ lfs f0, 0x28(r1)
|
|
/* 803B396C 003B08CC EC 43 00 B2 */ fmuls f2, f3, f2
|
|
/* 803B3970 003B08D0 EC 23 00 72 */ fmuls f1, f3, f1
|
|
/* 803B3974 003B08D4 88 1F 00 E7 */ lbz r0, 0xe7(r31)
|
|
/* 803B3978 003B08D8 EC 03 00 32 */ fmuls f0, f3, f0
|
|
/* 803B397C 003B08DC FC 40 10 1E */ fctiwz f2, f2
|
|
/* 803B3980 003B08E0 28 00 00 FF */ cmplwi r0, 0xff
|
|
/* 803B3984 003B08E4 FC 20 08 1E */ fctiwz f1, f1
|
|
/* 803B3988 003B08E8 FC 00 00 1E */ fctiwz f0, f0
|
|
/* 803B398C 003B08EC D8 41 00 40 */ stfd f2, 0x40(r1)
|
|
/* 803B3990 003B08F0 D8 21 00 38 */ stfd f1, 0x38(r1)
|
|
/* 803B3994 003B08F4 80 81 00 44 */ lwz r4, 0x44(r1)
|
|
/* 803B3998 003B08F8 D8 01 00 30 */ stfd f0, 0x30(r1)
|
|
/* 803B399C 003B08FC 80 A1 00 3C */ lwz r5, 0x3c(r1)
|
|
/* 803B39A0 003B0900 80 C1 00 34 */ lwz r6, 0x34(r1)
|
|
/* 803B39A4 003B0904 41 82 00 34 */ beq lbl_803B39D8
|
|
/* 803B39A8 003B0908 A0 7F 00 58 */ lhz r3, 0x58(r31)
|
|
/* 803B39AC 003B090C 54 80 04 3E */ clrlwi r0, r4, 0x10
|
|
/* 803B39B0 003B0910 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B39B4 003B0914 40 82 00 24 */ bne lbl_803B39D8
|
|
/* 803B39B8 003B0918 A0 7F 00 5A */ lhz r3, 0x5a(r31)
|
|
/* 803B39BC 003B091C 54 A0 04 3E */ clrlwi r0, r5, 0x10
|
|
/* 803B39C0 003B0920 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B39C4 003B0924 40 82 00 14 */ bne lbl_803B39D8
|
|
/* 803B39C8 003B0928 A0 7F 00 5C */ lhz r3, 0x5c(r31)
|
|
/* 803B39CC 003B092C 54 C0 04 3E */ clrlwi r0, r6, 0x10
|
|
/* 803B39D0 003B0930 7C 03 00 40 */ cmplw r3, r0
|
|
/* 803B39D4 003B0934 41 82 00 24 */ beq lbl_803B39F8
|
|
lbl_803B39D8:
|
|
/* 803B39D8 003B0938 B0 9F 00 58 */ sth r4, 0x58(r31)
|
|
/* 803B39DC 003B093C 38 00 00 00 */ li r0, 0
|
|
/* 803B39E0 003B0940 B0 BF 00 5A */ sth r5, 0x5a(r31)
|
|
/* 803B39E4 003B0944 B0 DF 00 5C */ sth r6, 0x5c(r31)
|
|
/* 803B39E8 003B0948 80 7F 00 24 */ lwz r3, 0x24(r31)
|
|
/* 803B39EC 003B094C 60 63 00 04 */ ori r3, r3, 4
|
|
/* 803B39F0 003B0950 90 7F 00 24 */ stw r3, 0x24(r31)
|
|
/* 803B39F4 003B0954 98 1F 00 E7 */ stb r0, 0xe7(r31)
|
|
lbl_803B39F8:
|
|
/* 803B39F8 003B0958 80 1F 00 F0 */ lwz r0, 0xf0(r31)
|
|
/* 803B39FC 003B095C 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
|
|
/* 803B3A00 003B0960 41 82 00 30 */ beq lbl_803B3A30
|
|
/* 803B3A04 003B0964 3C 60 80 3E */ lis r3, lbl_803D8BD0@ha
|
|
/* 803B3A08 003B0968 57 C0 8D FC */ rlwinm r0, r30, 0x11, 0x17, 0x1e
|
|
/* 803B3A0C 003B096C 38 83 8B D0 */ addi r4, r3, lbl_803D8BD0@l
|
|
/* 803B3A10 003B0970 7C 64 02 2E */ lhzx r3, r4, r0
|
|
/* 803B3A14 003B0974 7C 04 02 2E */ lhzx r0, r4, r0
|
|
/* 803B3A18 003B0978 B0 7F 00 D0 */ sth r3, 0xd0(r31)
|
|
/* 803B3A1C 003B097C 20 00 00 20 */ subfic r0, r0, 0x20
|
|
/* 803B3A20 003B0980 B0 1F 00 D2 */ sth r0, 0xd2(r31)
|
|
/* 803B3A24 003B0984 80 1F 00 24 */ lwz r0, 0x24(r31)
|
|
/* 803B3A28 003B0988 60 00 02 00 */ ori r0, r0, 0x200
|
|
/* 803B3A2C 003B098C 90 1F 00 24 */ stw r0, 0x24(r31)
|
|
lbl_803B3A30:
|
|
/* 803B3A30 003B0990 80 01 00 54 */ lwz r0, 0x54(r1)
|
|
/* 803B3A34 003B0994 83 E1 00 4C */ lwz r31, 0x4c(r1)
|
|
/* 803B3A38 003B0998 83 C1 00 48 */ lwz r30, 0x48(r1)
|
|
/* 803B3A3C 003B099C 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3A40 003B09A0 38 21 00 50 */ addi r1, r1, 0x50
|
|
/* 803B3A44 003B09A4 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3a48
|
|
sub_803b3a48:
|
|
/* 803B3A48 003B09A8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3A4C 003B09AC 7C 08 02 A6 */ mflr r0
|
|
/* 803B3A50 003B09B0 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3A54 003B09B4 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B3A58 003B09B8 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B3A5C 003B09BC 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B3A60 003B09C0 4B FF A3 05 */ bl salDeactivateVoice
|
|
/* 803B3A64 003B09C4 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3A68 003B09C8 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3A6C 003B09CC 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3A70 003B09D0 4E 80 00 20 */ blr
|
|
|
|
.global hwSetAUXProcessingCallbacks
|
|
hwSetAUXProcessingCallbacks:
|
|
/* 803B3A74 003B09D4 54 60 06 3E */ clrlwi r0, r3, 0x18
|
|
/* 803B3A78 003B09D8 3C 60 80 56 */ lis r3, dspStudio@ha
|
|
/* 803B3A7C 003B09DC 1D 00 00 BC */ mulli r8, r0, 0xbc
|
|
/* 803B3A80 003B09E0 38 03 F2 60 */ addi r0, r3, dspStudio@l
|
|
/* 803B3A84 003B09E4 7C 60 42 14 */ add r3, r0, r8
|
|
/* 803B3A88 003B09E8 90 83 00 AC */ stw r4, 0xac(r3)
|
|
/* 803B3A8C 003B09EC 90 A3 00 B4 */ stw r5, 0xb4(r3)
|
|
/* 803B3A90 003B09F0 90 C3 00 B0 */ stw r6, 0xb0(r3)
|
|
/* 803B3A94 003B09F4 90 E3 00 B8 */ stw r7, 0xb8(r3)
|
|
/* 803B3A98 003B09F8 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3a9c
|
|
sub_803b3a9c:
|
|
/* 803B3A9C 003B09FC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3AA0 003B0A00 7C 08 02 A6 */ mflr r0
|
|
/* 803B3AA4 003B0A04 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3AA8 003B0A08 4B FF 77 21 */ bl salActivateStudio
|
|
/* 803B3AAC 003B0A0C 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3AB0 003B0A10 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3AB4 003B0A14 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3AB8 003B0A18 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3abc
|
|
sub_803b3abc:
|
|
/* 803B3ABC 003B0A1C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3AC0 003B0A20 7C 08 02 A6 */ mflr r0
|
|
/* 803B3AC4 003B0A24 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3AC8 003B0A28 4B FF 78 51 */ bl sub_803ab318
|
|
/* 803B3ACC 003B0A2C 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3AD0 003B0A30 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3AD4 003B0A34 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3AD8 003B0A38 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3adc
|
|
sub_803b3adc:
|
|
/* 803B3ADC 003B0A3C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3AE0 003B0A40 7C 08 02 A6 */ mflr r0
|
|
/* 803B3AE4 003B0A44 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3AE8 003B0A48 54 60 06 3E */ clrlwi r0, r3, 0x18
|
|
/* 803B3AEC 003B0A4C 1C A0 00 BC */ mulli r5, r0, 0xbc
|
|
/* 803B3AF0 003B0A50 3C 60 80 56 */ lis r3, dspStudio@ha
|
|
/* 803B3AF4 003B0A54 38 03 F2 60 */ addi r0, r3, dspStudio@l
|
|
/* 803B3AF8 003B0A58 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3AFC 003B0A5C 4B FF A3 91 */ bl sub_803ade8c
|
|
/* 803B3B00 003B0A60 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3B04 003B0A64 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3B08 003B0A68 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3B0C 003B0A6C 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3b10
|
|
sub_803b3b10:
|
|
/* 803B3B10 003B0A70 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3B14 003B0A74 7C 08 02 A6 */ mflr r0
|
|
/* 803B3B18 003B0A78 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3B1C 003B0A7C 54 60 06 3E */ clrlwi r0, r3, 0x18
|
|
/* 803B3B20 003B0A80 1C A0 00 BC */ mulli r5, r0, 0xbc
|
|
/* 803B3B24 003B0A84 3C 60 80 56 */ lis r3, dspStudio@ha
|
|
/* 803B3B28 003B0A88 38 03 F2 60 */ addi r0, r3, dspStudio@l
|
|
/* 803B3B2C 003B0A8C 7C 60 2A 14 */ add r3, r0, r5
|
|
/* 803B3B30 003B0A90 4B FF A4 05 */ bl sub_803adf34
|
|
/* 803B3B34 003B0A94 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3B38 003B0A98 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3B3C 003B0A9C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3B40 003B0AA0 4E 80 00 20 */ blr
|
|
|
|
.global hwChangeStudio
|
|
hwChangeStudio:
|
|
/* 803B3B44 003B0AA4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3B48 003B0AA8 7C 08 02 A6 */ mflr r0
|
|
/* 803B3B4C 003B0AAC 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3B50 003B0AB0 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B3B54 003B0AB4 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B3B58 003B0AB8 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B3B5C 003B0ABC 4B FF A2 69 */ bl sub_803addc4
|
|
/* 803B3B60 003B0AC0 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3B64 003B0AC4 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3B68 003B0AC8 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3B6C 003B0ACC 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3b70
|
|
sub_803b3b70:
|
|
/* 803B3B70 003B0AD0 1C A3 00 F4 */ mulli r5, r3, 0xf4
|
|
/* 803B3B74 003B0AD4 80 CD AF 54 */ lwz r6, dspVoice@sda21(r13)
|
|
/* 803B3B78 003B0AD8 7C 86 2A 14 */ add r4, r6, r5
|
|
/* 803B3B7C 003B0ADC 88 04 00 EC */ lbz r0, 0xec(r4)
|
|
/* 803B3B80 003B0AE0 28 00 00 02 */ cmplwi r0, 2
|
|
/* 803B3B84 003B0AE4 41 82 00 0C */ beq lbl_803B3B90
|
|
/* 803B3B88 003B0AE8 38 60 00 00 */ li r3, 0
|
|
/* 803B3B8C 003B0AEC 4E 80 00 20 */ blr
|
|
lbl_803B3B90:
|
|
/* 803B3B90 003B0AF0 88 04 00 90 */ lbz r0, 0x90(r4)
|
|
/* 803B3B94 003B0AF4 2C 00 00 03 */ cmpwi r0, 3
|
|
/* 803B3B98 003B0AF8 41 82 00 58 */ beq lbl_803B3BF0
|
|
/* 803B3B9C 003B0AFC 40 80 00 18 */ bge lbl_803B3BB4
|
|
/* 803B3BA0 003B0B00 2C 00 00 02 */ cmpwi r0, 2
|
|
/* 803B3BA4 003B0B04 40 80 00 5C */ bge lbl_803B3C00
|
|
/* 803B3BA8 003B0B08 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 803B3BAC 003B0B0C 40 80 00 10 */ bge lbl_803B3BBC
|
|
|
|
.global sub_803b3bb0
|
|
sub_803b3bb0:
|
|
/* 803B3BB0 003B0B10 4E 80 00 20 */ blr
|
|
lbl_803B3BB4:
|
|
/* 803B3BB4 003B0B14 2C 00 00 06 */ cmpwi r0, 6
|
|
/* 803B3BB8 003B0B18 4C 80 00 20 */ bgelr
|
|
lbl_803B3BBC:
|
|
/* 803B3BBC 003B0B1C 7C 66 2A 14 */ add r3, r6, r5
|
|
/* 803B3BC0 003B0B20 80 03 00 78 */ lwz r0, 0x78(r3)
|
|
/* 803B3BC4 003B0B24 80 63 00 20 */ lwz r3, 0x20(r3)
|
|
/* 803B3BC8 003B0B28 54 00 08 3C */ slwi r0, r0, 1
|
|
/* 803B3BCC 003B0B2C 7C 00 18 50 */ subf r0, r0, r3
|
|
/* 803B3BD0 003B0B30 54 64 07 3E */ clrlwi r4, r3, 0x1c
|
|
/* 803B3BD4 003B0B34 54 00 E1 3E */ srwi r0, r0, 4
|
|
/* 803B3BD8 003B0B38 28 04 00 02 */ cmplwi r4, 2
|
|
/* 803B3BDC 003B0B3C 1C 60 00 0E */ mulli r3, r0, 0xe
|
|
/* 803B3BE0 003B0B40 4D 80 00 20 */ bltlr
|
|
/* 803B3BE4 003B0B44 7C 64 1A 14 */ add r3, r4, r3
|
|
/* 803B3BE8 003B0B48 38 63 FF FE */ addi r3, r3, -2
|
|
/* 803B3BEC 003B0B4C 4E 80 00 20 */ blr
|
|
lbl_803B3BF0:
|
|
/* 803B3BF0 003B0B50 80 64 00 78 */ lwz r3, 0x78(r4)
|
|
/* 803B3BF4 003B0B54 80 04 00 20 */ lwz r0, 0x20(r4)
|
|
/* 803B3BF8 003B0B58 7C 63 00 50 */ subf r3, r3, r0
|
|
/* 803B3BFC 003B0B5C 4E 80 00 20 */ blr
|
|
lbl_803B3C00:
|
|
/* 803B3C00 003B0B60 80 64 00 78 */ lwz r3, 0x78(r4)
|
|
/* 803B3C04 003B0B64 80 04 00 20 */ lwz r0, 0x20(r4)
|
|
/* 803B3C08 003B0B68 54 63 F8 7E */ srwi r3, r3, 1
|
|
/* 803B3C0C 003B0B6C 7C 63 00 50 */ subf r3, r3, r0
|
|
/* 803B3C10 003B0B70 4E 80 00 20 */ blr
|
|
|
|
.global hwFlushStream
|
|
hwFlushStream:
|
|
/* 803B3C14 003B0B74 94 21 FF D0 */ stwu r1, -0x30(r1)
|
|
/* 803B3C18 003B0B78 7C 08 02 A6 */ mflr r0
|
|
/* 803B3C1C 003B0B7C 90 01 00 34 */ stw r0, 0x34(r1)
|
|
/* 803B3C20 003B0B80 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 803B3C24 003B0B84 4B FD 5E 51 */ bl _savegpr_25
|
|
/* 803B3C28 003B0B88 7C 79 1B 78 */ mr r25, r3
|
|
/* 803B3C2C 003B0B8C 7C 9D 23 78 */ mr r29, r4
|
|
/* 803B3C30 003B0B90 7C BA 2B 78 */ mr r26, r5
|
|
/* 803B3C34 003B0B94 7C FB 3B 78 */ mr r27, r7
|
|
/* 803B3C38 003B0B98 7D 1C 43 78 */ mr r28, r8
|
|
/* 803B3C3C 003B0B9C 7C C3 33 78 */ mr r3, r6
|
|
/* 803B3C40 003B0BA0 38 81 00 08 */ addi r4, r1, 8
|
|
/* 803B3C44 003B0BA4 48 00 0E C9 */ bl aramGetStreamBufferAddress
|
|
/* 803B3C48 003B0BA8 57 A0 06 FE */ clrlwi r0, r29, 0x1b
|
|
/* 803B3C4C 003B0BAC 57 BE 00 34 */ rlwinm r30, r29, 0, 0, 0x1a
|
|
/* 803B3C50 003B0BB0 7F 5A 02 14 */ add r26, r26, r0
|
|
/* 803B3C54 003B0BB4 7C 7F 1B 78 */ mr r31, r3
|
|
/* 803B3C58 003B0BB8 38 1A 00 1F */ addi r0, r26, 0x1f
|
|
/* 803B3C5C 003B0BBC 7F B9 F2 14 */ add r29, r25, r30
|
|
/* 803B3C60 003B0BC0 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a
|
|
/* 803B3C64 003B0BC4 7F A3 EB 78 */ mr r3, r29
|
|
/* 803B3C68 003B0BC8 7F 44 D3 78 */ mr r4, r26
|
|
/* 803B3C6C 003B0BCC 4B FC AE 75 */ bl DCStoreRange
|
|
/* 803B3C70 003B0BD0 7F A3 EB 78 */ mr r3, r29
|
|
/* 803B3C74 003B0BD4 7F 45 D3 78 */ mr r5, r26
|
|
/* 803B3C78 003B0BD8 7F 67 DB 78 */ mr r7, r27
|
|
/* 803B3C7C 003B0BDC 7F 88 E3 78 */ mr r8, r28
|
|
/* 803B3C80 003B0BE0 7C 9F F2 14 */ add r4, r31, r30
|
|
/* 803B3C84 003B0BE4 38 C0 00 01 */ li r6, 1
|
|
/* 803B3C88 003B0BE8 48 00 03 89 */ bl aramUploadData
|
|
/* 803B3C8C 003B0BEC 39 61 00 30 */ addi r11, r1, 0x30
|
|
/* 803B3C90 003B0BF0 4B FD 5E 31 */ bl _restgpr_25
|
|
/* 803B3C94 003B0BF4 80 01 00 34 */ lwz r0, 0x34(r1)
|
|
/* 803B3C98 003B0BF8 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3C9C 003B0BFC 38 21 00 30 */ addi r1, r1, 0x30
|
|
/* 803B3CA0 003B0C00 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3ca4
|
|
sub_803b3ca4:
|
|
/* 803B3CA4 003B0C04 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3CA8 003B0C08 7C 08 02 A6 */ mflr r0
|
|
/* 803B3CAC 003B0C0C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3CB0 003B0C10 48 00 0D 55 */ bl aramAllocateStreamBuffer
|
|
/* 803B3CB4 003B0C14 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3CB8 003B0C18 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3CBC 003B0C1C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3CC0 003B0C20 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3cc4
|
|
sub_803b3cc4:
|
|
/* 803B3CC4 003B0C24 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3CC8 003B0C28 7C 08 02 A6 */ mflr r0
|
|
/* 803B3CCC 003B0C2C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3CD0 003B0C30 48 00 0E 75 */ bl aramFreeStreamBuffer
|
|
/* 803B3CD4 003B0C34 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3CD8 003B0C38 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3CDC 003B0C3C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3CE0 003B0C40 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3ce4
|
|
sub_803b3ce4:
|
|
/* 803B3CE4 003B0C44 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3CE8 003B0C48 7C 08 02 A6 */ mflr r0
|
|
/* 803B3CEC 003B0C4C 38 80 00 00 */ li r4, 0
|
|
/* 803B3CF0 003B0C50 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3CF4 003B0C54 48 00 0E 19 */ bl aramGetStreamBufferAddress
|
|
/* 803B3CF8 003B0C58 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3CFC 003B0C5C 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3D00 003B0C60 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3D04 003B0C64 4E 80 00 20 */ blr
|
|
|
|
.global hwTransAddr
|
|
hwTransAddr:
|
|
/* 803B3D08 003B0C68 4E 80 00 20 */ blr
|
|
|
|
.global hwFrq2Pitch
|
|
hwFrq2Pitch:
|
|
/* 803B3D0C 003B0C6C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 803B3D10 003B0C70 7C 08 02 A6 */ mflr r0
|
|
/* 803B3D14 003B0C74 3C A0 43 30 */ lis r5, 0x4330
|
|
/* 803B3D18 003B0C78 3C 80 80 55 */ lis r4, synthInfo@ha
|
|
/* 803B3D1C 003B0C7C 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 803B3D20 003B0C80 C8 42 D6 88 */ lfd f2, lbl_805AF3A8@sda21(r2)
|
|
/* 803B3D24 003B0C84 80 04 00 50 */ lwz r0, synthInfo@l(r4)
|
|
/* 803B3D28 003B0C88 90 61 00 0C */ stw r3, 0xc(r1)
|
|
/* 803B3D2C 003B0C8C C0 62 D6 80 */ lfs f3, lbl_805AF3A0@sda21(r2)
|
|
/* 803B3D30 003B0C90 90 A1 00 08 */ stw r5, 8(r1)
|
|
/* 803B3D34 003B0C94 C8 01 00 08 */ lfd f0, 8(r1)
|
|
/* 803B3D38 003B0C98 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3D3C 003B0C9C EC 20 10 28 */ fsubs f1, f0, f2
|
|
/* 803B3D40 003B0CA0 90 A1 00 10 */ stw r5, 0x10(r1)
|
|
/* 803B3D44 003B0CA4 C8 01 00 10 */ lfd f0, 0x10(r1)
|
|
/* 803B3D48 003B0CA8 EC 23 00 72 */ fmuls f1, f3, f1
|
|
/* 803B3D4C 003B0CAC EC 00 10 28 */ fsubs f0, f0, f2
|
|
/* 803B3D50 003B0CB0 EC 21 00 24 */ fdivs f1, f1, f0
|
|
/* 803B3D54 003B0CB4 4B FD 5C 01 */ bl __cvt_fp2unsigned
|
|
/* 803B3D58 003B0CB8 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 803B3D5C 003B0CBC 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3D60 003B0CC0 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 803B3D64 003B0CC4 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3d68
|
|
sub_803b3d68:
|
|
/* 803B3D68 003B0CC8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3D6C 003B0CCC 7C 08 02 A6 */ mflr r0
|
|
/* 803B3D70 003B0CD0 7C 83 23 78 */ mr r3, r4
|
|
/* 803B3D74 003B0CD4 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3D78 003B0CD8 48 00 04 8D */ bl aramInit
|
|
/* 803B3D7C 003B0CDC 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3D80 003B0CE0 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3D84 003B0CE4 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3D88 003B0CE8 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3d8c
|
|
sub_803b3d8c:
|
|
/* 803B3D8C 003B0CEC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3D90 003B0CF0 7C 08 02 A6 */ mflr r0
|
|
/* 803B3D94 003B0CF4 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3D98 003B0CF8 48 00 07 59 */ bl aramExit
|
|
/* 803B3D9C 003B0CFC 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3DA0 003B0D00 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3DA4 003B0D04 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3DA8 003B0D08 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3dac
|
|
sub_803b3dac:
|
|
/* 803B3DAC 003B0D0C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3DB0 003B0D10 7C 08 02 A6 */ mflr r0
|
|
/* 803B3DB4 003B0D14 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3DB8 003B0D18 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 803B3DBC 003B0D1C 7C 9F 23 78 */ mr r31, r4
|
|
/* 803B3DC0 003B0D20 80 63 00 00 */ lwz r3, 0(r3)
|
|
/* 803B3DC4 003B0D24 80 63 00 04 */ lwz r3, 4(r3)
|
|
/* 803B3DC8 003B0D28 54 60 46 3E */ srwi r0, r3, 0x18
|
|
/* 803B3DCC 003B0D2C 54 64 02 3E */ clrlwi r4, r3, 8
|
|
/* 803B3DD0 003B0D30 2C 00 00 03 */ cmpwi r0, 3
|
|
/* 803B3DD4 003B0D34 41 82 00 4C */ beq lbl_803B3E20
|
|
/* 803B3DD8 003B0D38 40 80 00 18 */ bge lbl_803B3DF0
|
|
/* 803B3DDC 003B0D3C 2C 00 00 02 */ cmpwi r0, 2
|
|
/* 803B3DE0 003B0D40 40 80 00 3C */ bge lbl_803B3E1C
|
|
/* 803B3DE4 003B0D44 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 803B3DE8 003B0D48 40 80 00 10 */ bge lbl_803B3DF8
|
|
/* 803B3DEC 003B0D4C 48 00 00 34 */ b lbl_803B3E20
|
|
lbl_803B3DF0:
|
|
/* 803B3DF0 003B0D50 2C 00 00 06 */ cmpwi r0, 6
|
|
/* 803B3DF4 003B0D54 40 80 00 2C */ bge lbl_803B3E20
|
|
lbl_803B3DF8:
|
|
/* 803B3DF8 003B0D58 3C 60 24 92 */ lis r3, 0x24924925@ha
|
|
/* 803B3DFC 003B0D5C 38 04 00 0D */ addi r0, r4, 0xd
|
|
/* 803B3E00 003B0D60 38 63 49 25 */ addi r3, r3, 0x24924925@l
|
|
/* 803B3E04 003B0D64 7C 63 00 16 */ mulhwu r3, r3, r0
|
|
/* 803B3E08 003B0D68 7C 03 00 50 */ subf r0, r3, r0
|
|
/* 803B3E0C 003B0D6C 54 00 F8 7E */ srwi r0, r0, 1
|
|
/* 803B3E10 003B0D70 7C 00 1A 14 */ add r0, r0, r3
|
|
/* 803B3E14 003B0D74 54 04 00 38 */ rlwinm r4, r0, 0, 0, 0x1c
|
|
/* 803B3E18 003B0D78 48 00 00 08 */ b lbl_803B3E20
|
|
lbl_803B3E1C:
|
|
/* 803B3E1C 003B0D7C 54 84 08 3C */ slwi r4, r4, 1
|
|
lbl_803B3E20:
|
|
/* 803B3E20 003B0D80 80 7F 00 00 */ lwz r3, 0(r31)
|
|
/* 803B3E24 003B0D84 48 00 07 49 */ bl aramStoreData
|
|
/* 803B3E28 003B0D88 90 7F 00 00 */ stw r3, 0(r31)
|
|
/* 803B3E2C 003B0D8C 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3E30 003B0D90 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 803B3E34 003B0D94 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3E38 003B0D98 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3E3C 003B0D9C 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3e40
|
|
sub_803b3e40:
|
|
/* 803B3E40 003B0DA0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3E44 003B0DA4 7C 08 02 A6 */ mflr r0
|
|
/* 803B3E48 003B0DA8 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3E4C 003B0DAC 48 00 06 C9 */ bl aramSetUploadCallback
|
|
/* 803B3E50 003B0DB0 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3E54 003B0DB4 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3E58 003B0DB8 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3E5C 003B0DBC 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3e60
|
|
sub_803b3e60:
|
|
/* 803B3E60 003B0DC0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3E64 003B0DC4 7C 08 02 A6 */ mflr r0
|
|
/* 803B3E68 003B0DC8 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3E6C 003B0DCC 80 63 00 04 */ lwz r3, 4(r3)
|
|
/* 803B3E70 003B0DD0 54 60 46 3E */ srwi r0, r3, 0x18
|
|
/* 803B3E74 003B0DD4 54 65 02 3E */ clrlwi r5, r3, 8
|
|
/* 803B3E78 003B0DD8 2C 00 00 03 */ cmpwi r0, 3
|
|
/* 803B3E7C 003B0DDC 41 82 00 4C */ beq lbl_803B3EC8
|
|
/* 803B3E80 003B0DE0 40 80 00 18 */ bge lbl_803B3E98
|
|
/* 803B3E84 003B0DE4 2C 00 00 02 */ cmpwi r0, 2
|
|
/* 803B3E88 003B0DE8 40 80 00 3C */ bge lbl_803B3EC4
|
|
/* 803B3E8C 003B0DEC 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 803B3E90 003B0DF0 40 80 00 10 */ bge lbl_803B3EA0
|
|
/* 803B3E94 003B0DF4 48 00 00 34 */ b lbl_803B3EC8
|
|
lbl_803B3E98:
|
|
/* 803B3E98 003B0DF8 2C 00 00 06 */ cmpwi r0, 6
|
|
/* 803B3E9C 003B0DFC 40 80 00 2C */ bge lbl_803B3EC8
|
|
lbl_803B3EA0:
|
|
/* 803B3EA0 003B0E00 3C 60 24 92 */ lis r3, 0x24924925@ha
|
|
/* 803B3EA4 003B0E04 38 05 00 0D */ addi r0, r5, 0xd
|
|
/* 803B3EA8 003B0E08 38 63 49 25 */ addi r3, r3, 0x24924925@l
|
|
/* 803B3EAC 003B0E0C 7C 63 00 16 */ mulhwu r3, r3, r0
|
|
/* 803B3EB0 003B0E10 7C 03 00 50 */ subf r0, r3, r0
|
|
/* 803B3EB4 003B0E14 54 00 F8 7E */ srwi r0, r0, 1
|
|
/* 803B3EB8 003B0E18 7C 00 1A 14 */ add r0, r0, r3
|
|
/* 803B3EBC 003B0E1C 54 05 00 38 */ rlwinm r5, r0, 0, 0, 0x1c
|
|
/* 803B3EC0 003B0E20 48 00 00 08 */ b lbl_803B3EC8
|
|
lbl_803B3EC4:
|
|
/* 803B3EC4 003B0E24 54 A5 08 3C */ slwi r5, r5, 1
|
|
lbl_803B3EC8:
|
|
/* 803B3EC8 003B0E28 7C 83 23 78 */ mr r3, r4
|
|
/* 803B3ECC 003B0E2C 7C A4 2B 78 */ mr r4, r5
|
|
/* 803B3ED0 003B0E30 48 00 0A 59 */ bl aramRemoveData
|
|
/* 803B3ED4 003B0E34 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3ED8 003B0E38 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3EDC 003B0E3C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3EE0 003B0E40 4E 80 00 20 */ blr
|
|
|
|
.global hwSyncSampleMem
|
|
hwSyncSampleMem:
|
|
/* 803B3EE4 003B0E44 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 803B3EE8 003B0E48 7C 08 02 A6 */ mflr r0
|
|
/* 803B3EEC 003B0E4C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 803B3EF0 003B0E50 48 00 02 FD */ bl aramSyncTransferQueue
|
|
/* 803B3EF4 003B0E54 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 803B3EF8 003B0E58 7C 08 03 A6 */ mtlr r0
|
|
/* 803B3EFC 003B0E5C 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 803B3F00 003B0E60 4E 80 00 20 */ blr
|
|
|
|
.global nullsub_59
|
|
nullsub_59:
|
|
/* 803B3F04 003B0E64 4E 80 00 20 */ blr
|
|
|
|
.global sndSetHooks
|
|
sndSetHooks:
|
|
/* 803B3F08 003B0E68 80 83 00 00 */ lwz r4, 0(r3)
|
|
/* 803B3F0C 003B0E6C 80 03 00 04 */ lwz r0, 4(r3)
|
|
/* 803B3F10 003B0E70 90 8D AF 84 */ stw r4, salHooks@sda21(r13)
|
|
/* 803B3F14 003B0E74 90 0D AF 88 */ stw r0, salHooks+4@sda21(r13)
|
|
/* 803B3F18 003B0E78 4E 80 00 20 */ blr
|
|
|
|
.global sub_803b3f1c
|
|
sub_803b3f1c:
|
|
/* 803B3F1C 003B0E7C 38 00 00 00 */ li r0, 0
|
|
/* 803B3F20 003B0E80 90 0D AF 44 */ stw r0, dspHRTFOn@sda21(r13)
|
|
/* 803B3F24 003B0E84 4E 80 00 20 */ blr
|
|
|
|
.global hwGetVirtualSampleID
|
|
hwGetVirtualSampleID:
|
|
/* 803B3F28 003B0E88 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B3F2C 003B0E8C 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B3F30 003B0E90 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B3F34 003B0E94 88 03 00 EC */ lbz r0, 0xec(r3)
|
|
/* 803B3F38 003B0E98 28 00 00 00 */ cmplwi r0, 0
|
|
/* 803B3F3C 003B0E9C 40 82 00 0C */ bne lbl_803B3F48
|
|
/* 803B3F40 003B0EA0 38 60 FF FF */ li r3, -1
|
|
/* 803B3F44 003B0EA4 4E 80 00 20 */ blr
|
|
lbl_803B3F48:
|
|
/* 803B3F48 003B0EA8 80 63 00 E8 */ lwz r3, 0xe8(r3)
|
|
/* 803B3F4C 003B0EAC 4E 80 00 20 */ blr
|
|
|
|
.global hwVoiceInStartup
|
|
hwVoiceInStartup:
|
|
/* 803B3F50 003B0EB0 1C 03 00 F4 */ mulli r0, r3, 0xf4
|
|
/* 803B3F54 003B0EB4 80 6D AF 54 */ lwz r3, dspVoice@sda21(r13)
|
|
/* 803B3F58 003B0EB8 7C 63 02 14 */ add r3, r3, r0
|
|
/* 803B3F5C 003B0EBC 88 03 00 EC */ lbz r0, 0xec(r3)
|
|
/* 803B3F60 003B0EC0 20 00 00 01 */ subfic r0, r0, 1
|
|
/* 803B3F64 003B0EC4 7C 00 00 34 */ cntlzw r0, r0
|
|
/* 803B3F68 003B0EC8 54 03 D9 7E */ srwi r3, r0, 5
|
|
/* 803B3F6C 003B0ECC 4E 80 00 20 */ blr
|