diff options
-rw-r--r-- | asm/nw4r/snd/detail/snd_AxVoice.s | 2 | ||||
-rw-r--r-- | asm/nw4r/snd/detail/snd_adpcm.s | 43 | ||||
-rw-r--r-- | asm/text_11.s | 40 | ||||
-rw-r--r-- | obj_files.mk | 1 |
4 files changed, 45 insertions, 41 deletions
diff --git a/asm/nw4r/snd/detail/snd_AxVoice.s b/asm/nw4r/snd/detail/snd_AxVoice.s index d2fde9d..9ccb5f1 100644 --- a/asm/nw4r/snd/detail/snd_AxVoice.s +++ b/asm/nw4r/snd/detail/snd_AxVoice.s @@ -2572,7 +2572,7 @@ lbl_8036B6A8: /* 8036B6C4 00367324 54 80 07 3E */ clrlwi r0, r4, 0x1c
lbl_8036B6C8:
/* 8036B6C8 00367328 54 04 06 3E */ clrlwi r4, r0, 0x18
-/* 8036B6CC 0036732C 48 01 95 85 */ bl func_80384C50
+/* 8036B6CC 0036732C 48 01 95 85 */ bl DecodeDspAdpcm__Q34nw4r3snd6detailFP10_AXPBADPCMUc
/* 8036B6D0 00367330 3B FF 00 01 */ addi r31, r31, 1
lbl_8036B6D4:
/* 8036B6D4 00367334 7C 1F F0 40 */ cmplw r31, r30
diff --git a/asm/nw4r/snd/detail/snd_adpcm.s b/asm/nw4r/snd/detail/snd_adpcm.s new file mode 100644 index 0000000..a59d331 --- /dev/null +++ b/asm/nw4r/snd/detail/snd_adpcm.s @@ -0,0 +1,43 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DecodeDspAdpcm__Q34nw4r3snd6detailFP10_AXPBADPCMUc
+DecodeDspAdpcm__Q34nw4r3snd6detailFP10_AXPBADPCMUc:
+/* 80384C50 003808B0 A0 E3 00 22 */ lhz r7, 0x22(r3)
+/* 80384C54 003808B4 54 80 63 26 */ rlwinm r0, r4, 0xc, 0xc, 0x13
+/* 80384C58 003808B8 A1 23 00 24 */ lhz r9, 0x24(r3)
+/* 80384C5C 003808BC 38 A0 00 01 */ li r5, 1
+/* 80384C60 003808C0 7C E6 26 70 */ srawi r6, r7, 4
+/* 80384C64 003808C4 54 E4 07 3E */ clrlwi r4, r7, 0x1c
+/* 80384C68 003808C8 54 C7 10 3A */ slwi r7, r6, 2
+/* 80384C6C 003808CC 7C 00 07 34 */ extsh r0, r0
+/* 80384C70 003808D0 7C C3 3A 14 */ add r6, r3, r7
+/* 80384C74 003808D4 7C A4 20 30 */ slw r4, r5, r4
+/* 80384C78 003808D8 7D 03 3A AE */ lhax r8, r3, r7
+/* 80384C7C 003808DC 7D 27 07 34 */ extsh r7, r9
+/* 80384C80 003808E0 A8 C6 00 02 */ lha r6, 2(r6)
+/* 80384C84 003808E4 7C 84 07 34 */ extsh r4, r4
+/* 80384C88 003808E8 A8 A3 00 26 */ lha r5, 0x26(r3)
+/* 80384C8C 003808EC 7C 00 0E 70 */ srawi r0, r0, 1
+/* 80384C90 003808F0 7C E7 41 D6 */ mullw r7, r7, r8
+/* 80384C94 003808F4 7C A5 31 D6 */ mullw r5, r5, r6
+/* 80384C98 003808F8 7C 00 21 D6 */ mullw r0, r0, r4
+/* 80384C9C 003808FC 7C E7 2A 14 */ add r7, r7, r5
+/* 80384CA0 00380900 7C E7 02 14 */ add r7, r7, r0
+/* 80384CA4 00380904 7C E7 56 70 */ srawi r7, r7, 0xa
+/* 80384CA8 00380908 38 E7 00 01 */ addi r7, r7, 1
+/* 80384CAC 0038090C 7C E7 0E 70 */ srawi r7, r7, 1
+/* 80384CB0 00380910 2C 07 7F FF */ cmpwi r7, 0x7fff
+/* 80384CB4 00380914 40 81 00 0C */ ble lbl_80384CC0
+/* 80384CB8 00380918 38 E0 7F FF */ li r7, 0x7fff
+/* 80384CBC 0038091C 48 00 00 10 */ b lbl_80384CCC
+lbl_80384CC0:
+/* 80384CC0 00380920 2C 07 80 00 */ cmpwi r7, -32768
+/* 80384CC4 00380924 40 80 00 08 */ bge lbl_80384CCC
+/* 80384CC8 00380928 38 E0 80 00 */ li r7, -32768
+lbl_80384CCC:
+/* 80384CCC 0038092C B1 23 00 26 */ sth r9, 0x26(r3)
+/* 80384CD0 00380930 B0 E3 00 24 */ sth r7, 0x24(r3)
+/* 80384CD4 00380934 7C E3 3B 78 */ mr r3, r7
+/* 80384CD8 00380938 4E 80 00 20 */ blr
diff --git a/asm/text_11.s b/asm/text_11.s index fefc2c3..9c25f8f 100644 --- a/asm/text_11.s +++ b/asm/text_11.s @@ -2,46 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_80384C50 -func_80384C50: -/* 80384C50 003808B0 A0 E3 00 22 */ lhz r7, 0x22(r3) -/* 80384C54 003808B4 54 80 63 26 */ rlwinm r0, r4, 0xc, 0xc, 0x13 -/* 80384C58 003808B8 A1 23 00 24 */ lhz r9, 0x24(r3) -/* 80384C5C 003808BC 38 A0 00 01 */ li r5, 1 -/* 80384C60 003808C0 7C E6 26 70 */ srawi r6, r7, 4 -/* 80384C64 003808C4 54 E4 07 3E */ clrlwi r4, r7, 0x1c -/* 80384C68 003808C8 54 C7 10 3A */ slwi r7, r6, 2 -/* 80384C6C 003808CC 7C 00 07 34 */ extsh r0, r0 -/* 80384C70 003808D0 7C C3 3A 14 */ add r6, r3, r7 -/* 80384C74 003808D4 7C A4 20 30 */ slw r4, r5, r4 -/* 80384C78 003808D8 7D 03 3A AE */ lhax r8, r3, r7 -/* 80384C7C 003808DC 7D 27 07 34 */ extsh r7, r9 -/* 80384C80 003808E0 A8 C6 00 02 */ lha r6, 2(r6) -/* 80384C84 003808E4 7C 84 07 34 */ extsh r4, r4 -/* 80384C88 003808E8 A8 A3 00 26 */ lha r5, 0x26(r3) -/* 80384C8C 003808EC 7C 00 0E 70 */ srawi r0, r0, 1 -/* 80384C90 003808F0 7C E7 41 D6 */ mullw r7, r7, r8 -/* 80384C94 003808F4 7C A5 31 D6 */ mullw r5, r5, r6 -/* 80384C98 003808F8 7C 00 21 D6 */ mullw r0, r0, r4 -/* 80384C9C 003808FC 7C E7 2A 14 */ add r7, r7, r5 -/* 80384CA0 00380900 7C E7 02 14 */ add r7, r7, r0 -/* 80384CA4 00380904 7C E7 56 70 */ srawi r7, r7, 0xa -/* 80384CA8 00380908 38 E7 00 01 */ addi r7, r7, 1 -/* 80384CAC 0038090C 7C E7 0E 70 */ srawi r7, r7, 1 -/* 80384CB0 00380910 2C 07 7F FF */ cmpwi r7, 0x7fff -/* 80384CB4 00380914 40 81 00 0C */ ble lbl_80384CC0 -/* 80384CB8 00380918 38 E0 7F FF */ li r7, 0x7fff -/* 80384CBC 0038091C 48 00 00 10 */ b lbl_80384CCC -lbl_80384CC0: -/* 80384CC0 00380920 2C 07 80 00 */ cmpwi r7, -32768 -/* 80384CC4 00380924 40 80 00 08 */ bge lbl_80384CCC -/* 80384CC8 00380928 38 E0 80 00 */ li r7, -32768 -lbl_80384CCC: -/* 80384CCC 0038092C B1 23 00 26 */ sth r9, 0x26(r3) -/* 80384CD0 00380930 B0 E3 00 24 */ sth r7, 0x24(r3) -/* 80384CD4 00380934 7C E3 3B 78 */ mr r3, r7 -/* 80384CD8 00380938 4E 80 00 20 */ blr - .global func_80384CDC func_80384CDC: /* 80384CDC 0038093C FC 60 0A 10 */ fabs f3, f1 diff --git a/obj_files.mk b/obj_files.mk index 431faeb..1699640 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -164,6 +164,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/nw4r/snd/snd_WaveSoundHandle.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_WsdFile.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_WsdPlayer.o \ + $(BUILD_DIR)/asm/nw4r/snd/detail/snd_adpcm.o \ $(BUILD_DIR)/asm/text_11.o CTORS_O_FILES := \ |