From 0381e3dfef37b96e1eed49e865e82870cac75b70 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 26 Sep 2020 14:10:26 -0400 Subject: split snd_StrmSound.s --- asm/ctors.s | 2 +- asm/nw4r/snd/detail/snd_StrmSound.s | 276 ++++++++++++++++++++++++++++++++++ asm/nw4r/snd/snd_SoundArchivePlayer.s | 2 +- asm/nw4r/snd/snd_SoundPlayer.s | 4 +- asm/text_10_6.s | 245 ------------------------------ obj_files.mk | 1 + 6 files changed, 281 insertions(+), 249 deletions(-) create mode 100644 asm/nw4r/snd/detail/snd_StrmSound.s diff --git a/asm/ctors.s b/asm/ctors.s index 591ef3c..042ed7d 100644 --- a/asm/ctors.s +++ b/asm/ctors.s @@ -68,7 +68,7 @@ lbl_803E1E60: .4byte func_80262AE0, func_80262E70, func_80263C9C, func_802674AC .4byte func_80268208, __sinit_$3ut_IOStream_cpp, __sinit_$3ut_FileStream_cpp, __sinit_$3ut_DvdFileStream_cpp .4byte ut_DvdLockedFileStream_cpp, __sinit_$3ut_TextWriterBase_cpp, __sinit_$3snd_BasicSound_cpp, __sinit_$3snd_SeqSound_cpp - .4byte __sinit_$3snd_SoundSystem_cpp, func_8037F8FC, func_80383998, func_80385E14 + .4byte __sinit_$3snd_SoundSystem_cpp, __sinit_$3snd_StrmSound_cpp, func_80383998, func_80385E14 .4byte func_803872D0, func_80387EA8, func_8038A320, func_8038A3CC .4byte func_8038F254, func_803D91F4, func_803D9EA0 diff --git a/asm/nw4r/snd/detail/snd_StrmSound.s b/asm/nw4r/snd/detail/snd_StrmSound.s new file mode 100644 index 0000000..0a591fd --- /dev/null +++ b/asm/nw4r/snd/detail/snd_StrmSound.s @@ -0,0 +1,276 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1 +__ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1: +/* 8037F5D0 0037B230 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037F5D4 0037B234 7C 08 02 A6 */ mflr r0 +/* 8037F5D8 0037B238 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037F5DC 0037B23C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037F5E0 0037B240 7C 9F 23 78 */ mr r31, r4 +/* 8037F5E4 0037B244 93 C1 00 08 */ stw r30, 8(r1) +/* 8037F5E8 0037B248 7C 7E 1B 78 */ mr r30, r3 +/* 8037F5EC 0037B24C 4B FE D9 F9 */ bl __ct__Q44nw4r3snd6detail10BasicSoundFv +/* 8037F5F0 0037B250 3C 80 80 45 */ lis r4, lbl_8044CF98@ha +/* 8037F5F4 0037B254 38 7E 00 D8 */ addi r3, r30, 0xd8 +/* 8037F5F8 0037B258 38 84 CF 98 */ addi r4, r4, lbl_8044CF98@l +/* 8037F5FC 0037B25C 90 9E 00 00 */ stw r4, 0(r30) +/* 8037F600 0037B260 4B FF DC B1 */ bl __ct__Q44nw4r3snd6detail10StrmPlayerFv +/* 8037F604 0037B264 38 00 00 00 */ li r0, 0 +/* 8037F608 0037B268 93 FE 09 3C */ stw r31, 0x93c(r30) +/* 8037F60C 0037B26C 7F C3 F3 78 */ mr r3, r30 +/* 8037F610 0037B270 90 1E 09 38 */ stw r0, 0x938(r30) +/* 8037F614 0037B274 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037F618 0037B278 83 C1 00 08 */ lwz r30, 8(r1) +/* 8037F61C 0037B27C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037F620 0037B280 7C 08 03 A6 */ mtlr r0 +/* 8037F624 0037B284 38 21 00 10 */ addi r1, r1, 0x10 +/* 8037F628 0037B288 4E 80 00 20 */ blr + +.global Prepare__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail14StrmBufferPoolQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypeliPQ34nw4r2ut10FileStream +Prepare__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail14StrmBufferPoolQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypeliPQ34nw4r2ut10FileStream: +/* 8037F62C 0037B28C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8037F630 0037B290 7C 08 02 A6 */ mflr r0 +/* 8037F634 0037B294 90 01 00 24 */ stw r0, 0x24(r1) +/* 8037F638 0037B298 39 61 00 20 */ addi r11, r1, 0x20 +/* 8037F63C 0037B29C 4B E4 7A E9 */ bl _savegpr_26 +/* 8037F640 0037B2A0 2C 04 00 00 */ cmpwi r4, 0 +/* 8037F644 0037B2A4 7C 7A 1B 78 */ mr r26, r3 +/* 8037F648 0037B2A8 7C 9B 23 78 */ mr r27, r4 +/* 8037F64C 0037B2AC 7C BC 2B 78 */ mr r28, r5 +/* 8037F650 0037B2B0 7C DD 33 78 */ mr r29, r6 +/* 8037F654 0037B2B4 7C FE 3B 78 */ mr r30, r7 +/* 8037F658 0037B2B8 7D 1F 43 78 */ mr r31, r8 +/* 8037F65C 0037B2BC 40 82 00 0C */ bne lbl_8037F668 +/* 8037F660 0037B2C0 38 60 00 00 */ li r3, 0 +/* 8037F664 0037B2C4 48 00 00 64 */ b lbl_8037F6C8 +lbl_8037F668: +/* 8037F668 0037B2C8 81 83 00 00 */ lwz r12, 0(r3) +/* 8037F66C 0037B2CC 81 8C 00 64 */ lwz r12, 0x64(r12) +/* 8037F670 0037B2D0 7D 89 03 A6 */ mtctr r12 +/* 8037F674 0037B2D4 4E 80 04 21 */ bctrl +/* 8037F678 0037B2D8 7F 64 DB 78 */ mr r4, r27 +/* 8037F67C 0037B2DC 38 7A 00 D8 */ addi r3, r26, 0xd8 +/* 8037F680 0037B2E0 4B FF DE BD */ bl Setup__Q44nw4r3snd6detail10StrmPlayerFPQ44nw4r3snd6detail14StrmBufferPool +/* 8037F684 0037B2E4 2C 03 00 00 */ cmpwi r3, 0 +/* 8037F688 0037B2E8 40 82 00 0C */ bne lbl_8037F694 +/* 8037F68C 0037B2EC 38 60 00 00 */ li r3, 0 +/* 8037F690 0037B2F0 48 00 00 38 */ b lbl_8037F6C8 +lbl_8037F694: +/* 8037F694 0037B2F4 7F E4 FB 78 */ mr r4, r31 +/* 8037F698 0037B2F8 7F C5 F3 78 */ mr r5, r30 +/* 8037F69C 0037B2FC 7F 86 E3 78 */ mr r6, r28 +/* 8037F6A0 0037B300 7F A7 EB 78 */ mr r7, r29 +/* 8037F6A4 0037B304 38 7A 00 D8 */ addi r3, r26, 0xd8 +/* 8037F6A8 0037B308 4B FF DF 95 */ bl Prepare__Q44nw4r3snd6detail10StrmPlayerFPQ34nw4r2ut10FileStreamiQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypei +/* 8037F6AC 0037B30C 2C 03 00 00 */ cmpwi r3, 0 +/* 8037F6B0 0037B310 40 82 00 14 */ bne lbl_8037F6C4 +/* 8037F6B4 0037B314 38 7A 00 D8 */ addi r3, r26, 0xd8 +/* 8037F6B8 0037B318 4B FF DF 1D */ bl Shutdown__Q44nw4r3snd6detail10StrmPlayerFv +/* 8037F6BC 0037B31C 38 60 00 00 */ li r3, 0 +/* 8037F6C0 0037B320 48 00 00 08 */ b lbl_8037F6C8 +lbl_8037F6C4: +/* 8037F6C4 0037B324 38 60 00 01 */ li r3, 1 +lbl_8037F6C8: +/* 8037F6C8 0037B328 39 61 00 20 */ addi r11, r1, 0x20 +/* 8037F6CC 0037B32C 4B E4 7A A5 */ bl _restgpr_26 +/* 8037F6D0 0037B330 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8037F6D4 0037B334 7C 08 03 A6 */ mtlr r0 +/* 8037F6D8 0037B338 38 21 00 20 */ addi r1, r1, 0x20 +/* 8037F6DC 0037B33C 4E 80 00 20 */ blr + +.global Shutdown__Q44nw4r3snd6detail9StrmSoundFv +Shutdown__Q44nw4r3snd6detail9StrmSoundFv: +/* 8037F6E0 0037B340 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8037F6E4 0037B344 7C 08 02 A6 */ mflr r0 +/* 8037F6E8 0037B348 90 01 00 24 */ stw r0, 0x24(r1) +/* 8037F6EC 0037B34C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8037F6F0 0037B350 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8037F6F4 0037B354 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8037F6F8 0037B358 7C 7D 1B 78 */ mr r29, r3 +/* 8037F6FC 0037B35C 4B FE E5 81 */ bl Shutdown__Q44nw4r3snd6detail10BasicSoundFv +/* 8037F700 0037B360 83 DD 09 3C */ lwz r30, 0x93c(r29) +/* 8037F704 0037B364 3B FE 00 10 */ addi r31, r30, 0x10 +/* 8037F708 0037B368 7F E3 FB 78 */ mr r3, r31 +/* 8037F70C 0037B36C 4B EF 02 3D */ bl func_8026F948 +/* 8037F710 0037B370 80 1E 00 04 */ lwz r0, 4(r30) +/* 8037F714 0037B374 2C 00 00 00 */ cmpwi r0, 0 +/* 8037F718 0037B378 40 82 00 10 */ bne lbl_8037F728 +/* 8037F71C 0037B37C 7F E3 FB 78 */ mr r3, r31 +/* 8037F720 0037B380 4B EF 03 05 */ bl func_8026FA24 +/* 8037F724 0037B384 48 00 00 3C */ b lbl_8037F760 +lbl_8037F728: +/* 8037F728 0037B388 38 7E 00 04 */ addi r3, r30, 4 +/* 8037F72C 0037B38C 38 9D 00 B8 */ addi r4, r29, 0xb8 +/* 8037F730 0037B390 4B FE 35 45 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode +/* 8037F734 0037B394 81 9D 00 00 */ lwz r12, 0(r29) +/* 8037F738 0037B398 7F A3 EB 78 */ mr r3, r29 +/* 8037F73C 0037B39C 38 80 FF FF */ li r4, -1 +/* 8037F740 0037B3A0 81 8C 00 0C */ lwz r12, 0xc(r12) +/* 8037F744 0037B3A4 7D 89 03 A6 */ mtctr r12 +/* 8037F748 0037B3A8 4E 80 04 21 */ bctrl +/* 8037F74C 0037B3AC 7F C3 F3 78 */ mr r3, r30 +/* 8037F750 0037B3B0 7F A4 EB 78 */ mr r4, r29 +/* 8037F754 0037B3B4 4B FF 24 61 */ bl FreeImpl__Q44nw4r3snd6detail8PoolImplFPv +/* 8037F758 0037B3B8 7F E3 FB 78 */ mr r3, r31 +/* 8037F75C 0037B3BC 4B EF 02 C9 */ bl func_8026FA24 +lbl_8037F760: +/* 8037F760 0037B3C0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8037F764 0037B3C4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8037F768 0037B3C8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8037F76C 0037B3CC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8037F770 0037B3D0 7C 08 03 A6 */ mtlr r0 +/* 8037F774 0037B3D4 38 21 00 20 */ addi r1, r1, 0x20 +/* 8037F778 0037B3D8 4E 80 00 20 */ blr + +.global __dt__Q44nw4r3snd6detail9StrmSoundFv +__dt__Q44nw4r3snd6detail9StrmSoundFv: +/* 8037F77C 0037B3DC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037F780 0037B3E0 7C 08 02 A6 */ mflr r0 +/* 8037F784 0037B3E4 2C 03 00 00 */ cmpwi r3, 0 +/* 8037F788 0037B3E8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037F78C 0037B3EC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037F790 0037B3F0 7C 9F 23 78 */ mr r31, r4 +/* 8037F794 0037B3F4 93 C1 00 08 */ stw r30, 8(r1) +/* 8037F798 0037B3F8 7C 7E 1B 78 */ mr r30, r3 +/* 8037F79C 0037B3FC 41 82 00 20 */ beq lbl_8037F7BC +/* 8037F7A0 0037B400 38 80 FF FF */ li r4, -1 +/* 8037F7A4 0037B404 38 63 00 D8 */ addi r3, r3, 0xd8 +/* 8037F7A8 0037B408 4B FF DC BD */ bl __dt__Q44nw4r3snd6detail10StrmPlayerFv +/* 8037F7AC 0037B40C 2C 1F 00 00 */ cmpwi r31, 0 +/* 8037F7B0 0037B410 40 81 00 0C */ ble lbl_8037F7BC +/* 8037F7B4 0037B414 7F C3 F3 78 */ mr r3, r30 +/* 8037F7B8 0037B418 4B E5 B3 01 */ bl func_801DAAB8 +lbl_8037F7BC: +/* 8037F7BC 0037B41C 7F C3 F3 78 */ mr r3, r30 +/* 8037F7C0 0037B420 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037F7C4 0037B424 83 C1 00 08 */ lwz r30, 8(r1) +/* 8037F7C8 0037B428 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037F7CC 0037B42C 7C 08 03 A6 */ mtlr r0 +/* 8037F7D0 0037B430 38 21 00 10 */ addi r1, r1, 0x10 +/* 8037F7D4 0037B434 4E 80 00 20 */ blr + +.global SetPlayerPriority__Q44nw4r3snd6detail9StrmSoundFi +SetPlayerPriority__Q44nw4r3snd6detail9StrmSoundFi: +/* 8037F7D8 0037B438 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8037F7DC 0037B43C 7C 08 02 A6 */ mflr r0 +/* 8037F7E0 0037B440 90 01 00 24 */ stw r0, 0x24(r1) +/* 8037F7E4 0037B444 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8037F7E8 0037B448 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8037F7EC 0037B44C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8037F7F0 0037B450 93 81 00 10 */ stw r28, 0x10(r1) +/* 8037F7F4 0037B454 7C 7C 1B 78 */ mr r28, r3 +/* 8037F7F8 0037B458 4B FE E5 F5 */ bl SetPlayerPriority__Q44nw4r3snd6detail10BasicSoundFi +/* 8037F7FC 0037B45C 88 7C 00 74 */ lbz r3, 0x74(r28) +/* 8037F800 0037B460 80 1C 00 40 */ lwz r0, 0x40(r28) +/* 8037F804 0037B464 7C 63 02 14 */ add r3, r3, r0 +/* 8037F808 0037B468 2C 03 00 7F */ cmpwi r3, 0x7f +/* 8037F80C 0037B46C 40 81 00 0C */ ble lbl_8037F818 +/* 8037F810 0037B470 3B A0 00 7F */ li r29, 0x7f +/* 8037F814 0037B474 48 00 00 0C */ b lbl_8037F820 +lbl_8037F818: +/* 8037F818 0037B478 7C 60 FE 70 */ srawi r0, r3, 0x1f +/* 8037F81C 0037B47C 7C 7D 00 78 */ andc r29, r3, r0 +lbl_8037F820: +/* 8037F820 0037B480 83 DC 09 3C */ lwz r30, 0x93c(r28) +/* 8037F824 0037B484 3B FE 00 10 */ addi r31, r30, 0x10 +/* 8037F828 0037B488 7F E3 FB 78 */ mr r3, r31 +/* 8037F82C 0037B48C 4B EF 01 1D */ bl func_8026F948 +/* 8037F830 0037B490 3B 9C 00 B8 */ addi r28, r28, 0xb8 +/* 8037F834 0037B494 38 7E 00 04 */ addi r3, r30, 4 +/* 8037F838 0037B498 7F 84 E3 78 */ mr r4, r28 +/* 8037F83C 0037B49C 4B FE 34 39 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode +/* 8037F840 0037B4A0 80 7E 00 08 */ lwz r3, 8(r30) +/* 8037F844 0037B4A4 38 1E 00 08 */ addi r0, r30, 8 +/* 8037F848 0037B4A8 48 00 00 34 */ b lbl_8037F87C +lbl_8037F84C: +/* 8037F84C 0037B4AC 88 A3 FF BC */ lbz r5, -0x44(r3) +/* 8037F850 0037B4B0 80 83 FF 88 */ lwz r4, -0x78(r3) +/* 8037F854 0037B4B4 7C A5 22 14 */ add r5, r5, r4 +/* 8037F858 0037B4B8 2C 05 00 7F */ cmpwi r5, 0x7f +/* 8037F85C 0037B4BC 40 81 00 0C */ ble lbl_8037F868 +/* 8037F860 0037B4C0 38 80 00 7F */ li r4, 0x7f +/* 8037F864 0037B4C4 48 00 00 0C */ b lbl_8037F870 +lbl_8037F868: +/* 8037F868 0037B4C8 7C A4 FE 70 */ srawi r4, r5, 0x1f +/* 8037F86C 0037B4CC 7C A4 20 78 */ andc r4, r5, r4 +lbl_8037F870: +/* 8037F870 0037B4D0 7C 1D 20 00 */ cmpw r29, r4 +/* 8037F874 0037B4D4 41 80 00 10 */ blt lbl_8037F884 +/* 8037F878 0037B4D8 80 63 00 00 */ lwz r3, 0(r3) +lbl_8037F87C: +/* 8037F87C 0037B4DC 7C 03 00 40 */ cmplw r3, r0 +/* 8037F880 0037B4E0 40 82 FF CC */ bne lbl_8037F84C +lbl_8037F884: +/* 8037F884 0037B4E4 90 61 00 08 */ stw r3, 8(r1) +/* 8037F888 0037B4E8 7F 85 E3 78 */ mr r5, r28 +/* 8037F88C 0037B4EC 38 7E 00 04 */ addi r3, r30, 4 +/* 8037F890 0037B4F0 38 81 00 08 */ addi r4, r1, 8 +/* 8037F894 0037B4F4 4B FE 33 B5 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode +/* 8037F898 0037B4F8 7F E3 FB 78 */ mr r3, r31 +/* 8037F89C 0037B4FC 4B EF 01 89 */ bl func_8026FA24 +/* 8037F8A0 0037B500 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8037F8A4 0037B504 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8037F8A8 0037B508 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8037F8AC 0037B50C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8037F8B0 0037B510 83 81 00 10 */ lwz r28, 0x10(r1) +/* 8037F8B4 0037B514 7C 08 03 A6 */ mtlr r0 +/* 8037F8B8 0037B518 38 21 00 20 */ addi r1, r1, 0x20 +/* 8037F8BC 0037B51C 4E 80 00 20 */ blr + +.global IsAttachedTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv +IsAttachedTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv: +/* 8037F8C0 0037B520 80 63 09 38 */ lwz r3, 0x938(r3) +/* 8037F8C4 0037B524 7C 03 00 D0 */ neg r0, r3 +/* 8037F8C8 0037B528 7C 00 1B 78 */ or r0, r0, r3 +/* 8037F8CC 0037B52C 54 03 0F FE */ srwi r3, r0, 0x1f +/* 8037F8D0 0037B530 4E 80 00 20 */ blr + +.global DetachTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv +DetachTempSpecialHandle__Q44nw4r3snd6detail9StrmSoundFv: +/* 8037F8D4 0037B534 80 63 09 38 */ lwz r3, 0x938(r3) +/* 8037F8D8 0037B538 48 00 00 30 */ b lbl_8037F908 + +.global GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundFv +GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundFv: +/* 8037F8DC 0037B53C 38 63 00 D8 */ addi r3, r3, 0xd8 +/* 8037F8E0 0037B540 4E 80 00 20 */ blr + +.global GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundCFv +GetBasicPlayer__Q44nw4r3snd6detail9StrmSoundCFv: +/* 8037F8E4 0037B544 38 63 00 D8 */ addi r3, r3, 0xd8 +/* 8037F8E8 0037B548 4E 80 00 20 */ blr + +.global IsPrepared__Q44nw4r3snd6detail9StrmSoundCFv +IsPrepared__Q44nw4r3snd6detail9StrmSoundCFv: +/* 8037F8EC 0037B54C 88 63 01 93 */ lbz r3, 0x193(r3) +/* 8037F8F0 0037B550 4E 80 00 20 */ blr + +.global GetRuntimeTypeInfo__Q44nw4r3snd6detail9StrmSoundCFv +GetRuntimeTypeInfo__Q44nw4r3snd6detail9StrmSoundCFv: +/* 8037F8F4 0037B554 38 6D B2 88 */ addi r3, r13, lbl_80640548-_SDA_BASE_ +/* 8037F8F8 0037B558 4E 80 00 20 */ blr + +.global __sinit_$3snd_StrmSound_cpp +__sinit_$3snd_StrmSound_cpp: +/* 8037F8FC 0037B55C 38 0D B1 F0 */ addi r0, r13, lbl_806404B0-_SDA_BASE_ +/* 8037F900 0037B560 90 0D B2 88 */ stw r0, lbl_80640548-_SDA_BASE_(r13) +/* 8037F904 0037B564 4E 80 00 20 */ blr + +lbl_8037F908: +/* 8037F908 0037B568 80 83 00 00 */ lwz r4, 0(r3) +/* 8037F90C 0037B56C 2C 04 00 00 */ cmpwi r4, 0 +/* 8037F910 0037B570 41 82 00 18 */ beq lbl_8037F928 +/* 8037F914 0037B574 80 04 09 38 */ lwz r0, 0x938(r4) +/* 8037F918 0037B578 7C 00 18 40 */ cmplw r0, r3 +/* 8037F91C 0037B57C 40 82 00 0C */ bne lbl_8037F928 +/* 8037F920 0037B580 38 00 00 00 */ li r0, 0 +/* 8037F924 0037B584 90 04 09 38 */ stw r0, 0x938(r4) +lbl_8037F928: +/* 8037F928 0037B588 80 03 00 00 */ lwz r0, 0(r3) +/* 8037F92C 0037B58C 2C 00 00 00 */ cmpwi r0, 0 +/* 8037F930 0037B590 4D 82 00 20 */ beqlr +/* 8037F934 0037B594 38 00 00 00 */ li r0, 0 +/* 8037F938 0037B598 90 03 00 00 */ stw r0, 0(r3) +/* 8037F93C 0037B59C 4E 80 00 20 */ blr diff --git a/asm/nw4r/snd/snd_SoundArchivePlayer.s b/asm/nw4r/snd/snd_SoundArchivePlayer.s index 97283df..6266ba5 100644 --- a/asm/nw4r/snd/snd_SoundArchivePlayer.s +++ b/asm/nw4r/snd/snd_SoundArchivePlayer.s @@ -1802,7 +1802,7 @@ lbl_8037A238: /* 8037A240 00375EA0 7F A6 EB 78 */ mr r6, r29 /* 8037A244 00375EA4 7F C7 F3 78 */ mr r7, r30 /* 8037A248 00375EA8 38 9A 00 BC */ addi r4, r26, 0xbc -/* 8037A24C 00375EAC 48 00 53 E1 */ bl func_8037F62C +/* 8037A24C 00375EAC 48 00 53 E1 */ bl Prepare__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail14StrmBufferPoolQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypeliPQ34nw4r2ut10FileStream /* 8037A250 00375EB0 2C 03 00 00 */ cmpwi r3, 0 /* 8037A254 00375EB4 40 82 00 0C */ bne lbl_8037A260 /* 8037A258 00375EB8 38 60 00 FF */ li r3, 0xff diff --git a/asm/nw4r/snd/snd_SoundPlayer.s b/asm/nw4r/snd/snd_SoundPlayer.s index fe09352..290b7e6 100644 --- a/asm/nw4r/snd/snd_SoundPlayer.s +++ b/asm/nw4r/snd/snd_SoundPlayer.s @@ -850,7 +850,7 @@ lbl_8037B718: /* 8037B734 00377394 7C 7B 1B 78 */ mr r27, r3 /* 8037B738 00377398 41 82 00 B4 */ beq lbl_8037B7EC /* 8037B73C 0037739C 7F 44 D3 78 */ mr r4, r26 -/* 8037B740 003773A0 48 00 3E 91 */ bl func_8037F5D0 +/* 8037B740 003773A0 48 00 3E 91 */ bl __ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1 /* 8037B744 003773A4 7C 7B 1B 78 */ mr r27, r3 /* 8037B748 003773A8 48 00 00 A4 */ b lbl_8037B7EC lbl_8037B74C: @@ -898,7 +898,7 @@ lbl_8037B7BC: /* 8037B7D8 00377438 2C 03 00 00 */ cmpwi r3, 0 /* 8037B7DC 0037743C 41 82 00 0C */ beq lbl_8037B7E8 /* 8037B7E0 00377440 7F 44 D3 78 */ mr r4, r26 -/* 8037B7E4 00377444 48 00 3D ED */ bl func_8037F5D0 +/* 8037B7E4 00377444 48 00 3D ED */ bl __ct__Q44nw4r3snd6detail9StrmSoundFPQ44nw4r3snd6detail50SoundInstanceManager$0Q44nw4r3snd6detail9StrmSound$1 lbl_8037B7E8: /* 8037B7E8 00377448 7C 7B 1B 78 */ mr r27, r3 lbl_8037B7EC: diff --git a/asm/text_10_6.s b/asm/text_10_6.s index 5d9e9f8..d211d9b 100644 --- a/asm/text_10_6.s +++ b/asm/text_10_6.s @@ -2,251 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_8037F5D0 -func_8037F5D0: -/* 8037F5D0 0037B230 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037F5D4 0037B234 7C 08 02 A6 */ mflr r0 -/* 8037F5D8 0037B238 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037F5DC 0037B23C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037F5E0 0037B240 7C 9F 23 78 */ mr r31, r4 -/* 8037F5E4 0037B244 93 C1 00 08 */ stw r30, 8(r1) -/* 8037F5E8 0037B248 7C 7E 1B 78 */ mr r30, r3 -/* 8037F5EC 0037B24C 4B FE D9 F9 */ bl __ct__Q44nw4r3snd6detail10BasicSoundFv -/* 8037F5F0 0037B250 3C 80 80 45 */ lis r4, lbl_8044CF98@ha -/* 8037F5F4 0037B254 38 7E 00 D8 */ addi r3, r30, 0xd8 -/* 8037F5F8 0037B258 38 84 CF 98 */ addi r4, r4, lbl_8044CF98@l -/* 8037F5FC 0037B25C 90 9E 00 00 */ stw r4, 0(r30) -/* 8037F600 0037B260 4B FF DC B1 */ bl __ct__Q44nw4r3snd6detail10StrmPlayerFv -/* 8037F604 0037B264 38 00 00 00 */ li r0, 0 -/* 8037F608 0037B268 93 FE 09 3C */ stw r31, 0x93c(r30) -/* 8037F60C 0037B26C 7F C3 F3 78 */ mr r3, r30 -/* 8037F610 0037B270 90 1E 09 38 */ stw r0, 0x938(r30) -/* 8037F614 0037B274 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037F618 0037B278 83 C1 00 08 */ lwz r30, 8(r1) -/* 8037F61C 0037B27C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037F620 0037B280 7C 08 03 A6 */ mtlr r0 -/* 8037F624 0037B284 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037F628 0037B288 4E 80 00 20 */ blr - -.global func_8037F62C -func_8037F62C: -/* 8037F62C 0037B28C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8037F630 0037B290 7C 08 02 A6 */ mflr r0 -/* 8037F634 0037B294 90 01 00 24 */ stw r0, 0x24(r1) -/* 8037F638 0037B298 39 61 00 20 */ addi r11, r1, 0x20 -/* 8037F63C 0037B29C 4B E4 7A E9 */ bl _savegpr_26 -/* 8037F640 0037B2A0 2C 04 00 00 */ cmpwi r4, 0 -/* 8037F644 0037B2A4 7C 7A 1B 78 */ mr r26, r3 -/* 8037F648 0037B2A8 7C 9B 23 78 */ mr r27, r4 -/* 8037F64C 0037B2AC 7C BC 2B 78 */ mr r28, r5 -/* 8037F650 0037B2B0 7C DD 33 78 */ mr r29, r6 -/* 8037F654 0037B2B4 7C FE 3B 78 */ mr r30, r7 -/* 8037F658 0037B2B8 7D 1F 43 78 */ mr r31, r8 -/* 8037F65C 0037B2BC 40 82 00 0C */ bne lbl_8037F668 -/* 8037F660 0037B2C0 38 60 00 00 */ li r3, 0 -/* 8037F664 0037B2C4 48 00 00 64 */ b lbl_8037F6C8 -lbl_8037F668: -/* 8037F668 0037B2C8 81 83 00 00 */ lwz r12, 0(r3) -/* 8037F66C 0037B2CC 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 8037F670 0037B2D0 7D 89 03 A6 */ mtctr r12 -/* 8037F674 0037B2D4 4E 80 04 21 */ bctrl -/* 8037F678 0037B2D8 7F 64 DB 78 */ mr r4, r27 -/* 8037F67C 0037B2DC 38 7A 00 D8 */ addi r3, r26, 0xd8 -/* 8037F680 0037B2E0 4B FF DE BD */ bl Setup__Q44nw4r3snd6detail10StrmPlayerFPQ44nw4r3snd6detail14StrmBufferPool -/* 8037F684 0037B2E4 2C 03 00 00 */ cmpwi r3, 0 -/* 8037F688 0037B2E8 40 82 00 0C */ bne lbl_8037F694 -/* 8037F68C 0037B2EC 38 60 00 00 */ li r3, 0 -/* 8037F690 0037B2F0 48 00 00 38 */ b lbl_8037F6C8 -lbl_8037F694: -/* 8037F694 0037B2F4 7F E4 FB 78 */ mr r4, r31 -/* 8037F698 0037B2F8 7F C5 F3 78 */ mr r5, r30 -/* 8037F69C 0037B2FC 7F 86 E3 78 */ mr r6, r28 -/* 8037F6A0 0037B300 7F A7 EB 78 */ mr r7, r29 -/* 8037F6A4 0037B304 38 7A 00 D8 */ addi r3, r26, 0xd8 -/* 8037F6A8 0037B308 4B FF DF 95 */ bl Prepare__Q44nw4r3snd6detail10StrmPlayerFPQ34nw4r2ut10FileStreamiQ54nw4r3snd6detail10StrmPlayer15StartOffsetTypei -/* 8037F6AC 0037B30C 2C 03 00 00 */ cmpwi r3, 0 -/* 8037F6B0 0037B310 40 82 00 14 */ bne lbl_8037F6C4 -/* 8037F6B4 0037B314 38 7A 00 D8 */ addi r3, r26, 0xd8 -/* 8037F6B8 0037B318 4B FF DF 1D */ bl Shutdown__Q44nw4r3snd6detail10StrmPlayerFv -/* 8037F6BC 0037B31C 38 60 00 00 */ li r3, 0 -/* 8037F6C0 0037B320 48 00 00 08 */ b lbl_8037F6C8 -lbl_8037F6C4: -/* 8037F6C4 0037B324 38 60 00 01 */ li r3, 1 -lbl_8037F6C8: -/* 8037F6C8 0037B328 39 61 00 20 */ addi r11, r1, 0x20 -/* 8037F6CC 0037B32C 4B E4 7A A5 */ bl _restgpr_26 -/* 8037F6D0 0037B330 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8037F6D4 0037B334 7C 08 03 A6 */ mtlr r0 -/* 8037F6D8 0037B338 38 21 00 20 */ addi r1, r1, 0x20 -/* 8037F6DC 0037B33C 4E 80 00 20 */ blr -/* 8037F6E0 0037B340 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8037F6E4 0037B344 7C 08 02 A6 */ mflr r0 -/* 8037F6E8 0037B348 90 01 00 24 */ stw r0, 0x24(r1) -/* 8037F6EC 0037B34C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8037F6F0 0037B350 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8037F6F4 0037B354 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8037F6F8 0037B358 7C 7D 1B 78 */ mr r29, r3 -/* 8037F6FC 0037B35C 4B FE E5 81 */ bl Shutdown__Q44nw4r3snd6detail10BasicSoundFv -/* 8037F700 0037B360 83 DD 09 3C */ lwz r30, 0x93c(r29) -/* 8037F704 0037B364 3B FE 00 10 */ addi r31, r30, 0x10 -/* 8037F708 0037B368 7F E3 FB 78 */ mr r3, r31 -/* 8037F70C 0037B36C 4B EF 02 3D */ bl func_8026F948 -/* 8037F710 0037B370 80 1E 00 04 */ lwz r0, 4(r30) -/* 8037F714 0037B374 2C 00 00 00 */ cmpwi r0, 0 -/* 8037F718 0037B378 40 82 00 10 */ bne lbl_8037F728 -/* 8037F71C 0037B37C 7F E3 FB 78 */ mr r3, r31 -/* 8037F720 0037B380 4B EF 03 05 */ bl func_8026FA24 -/* 8037F724 0037B384 48 00 00 3C */ b lbl_8037F760 -lbl_8037F728: -/* 8037F728 0037B388 38 7E 00 04 */ addi r3, r30, 4 -/* 8037F72C 0037B38C 38 9D 00 B8 */ addi r4, r29, 0xb8 -/* 8037F730 0037B390 4B FE 35 45 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode -/* 8037F734 0037B394 81 9D 00 00 */ lwz r12, 0(r29) -/* 8037F738 0037B398 7F A3 EB 78 */ mr r3, r29 -/* 8037F73C 0037B39C 38 80 FF FF */ li r4, -1 -/* 8037F740 0037B3A0 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 8037F744 0037B3A4 7D 89 03 A6 */ mtctr r12 -/* 8037F748 0037B3A8 4E 80 04 21 */ bctrl -/* 8037F74C 0037B3AC 7F C3 F3 78 */ mr r3, r30 -/* 8037F750 0037B3B0 7F A4 EB 78 */ mr r4, r29 -/* 8037F754 0037B3B4 4B FF 24 61 */ bl FreeImpl__Q44nw4r3snd6detail8PoolImplFPv -/* 8037F758 0037B3B8 7F E3 FB 78 */ mr r3, r31 -/* 8037F75C 0037B3BC 4B EF 02 C9 */ bl func_8026FA24 -lbl_8037F760: -/* 8037F760 0037B3C0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8037F764 0037B3C4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8037F768 0037B3C8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8037F76C 0037B3CC 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8037F770 0037B3D0 7C 08 03 A6 */ mtlr r0 -/* 8037F774 0037B3D4 38 21 00 20 */ addi r1, r1, 0x20 -/* 8037F778 0037B3D8 4E 80 00 20 */ blr -/* 8037F77C 0037B3DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037F780 0037B3E0 7C 08 02 A6 */ mflr r0 -/* 8037F784 0037B3E4 2C 03 00 00 */ cmpwi r3, 0 -/* 8037F788 0037B3E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037F78C 0037B3EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037F790 0037B3F0 7C 9F 23 78 */ mr r31, r4 -/* 8037F794 0037B3F4 93 C1 00 08 */ stw r30, 8(r1) -/* 8037F798 0037B3F8 7C 7E 1B 78 */ mr r30, r3 -/* 8037F79C 0037B3FC 41 82 00 20 */ beq lbl_8037F7BC -/* 8037F7A0 0037B400 38 80 FF FF */ li r4, -1 -/* 8037F7A4 0037B404 38 63 00 D8 */ addi r3, r3, 0xd8 -/* 8037F7A8 0037B408 4B FF DC BD */ bl __dt__Q44nw4r3snd6detail10StrmPlayerFv -/* 8037F7AC 0037B40C 2C 1F 00 00 */ cmpwi r31, 0 -/* 8037F7B0 0037B410 40 81 00 0C */ ble lbl_8037F7BC -/* 8037F7B4 0037B414 7F C3 F3 78 */ mr r3, r30 -/* 8037F7B8 0037B418 4B E5 B3 01 */ bl func_801DAAB8 -lbl_8037F7BC: -/* 8037F7BC 0037B41C 7F C3 F3 78 */ mr r3, r30 -/* 8037F7C0 0037B420 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037F7C4 0037B424 83 C1 00 08 */ lwz r30, 8(r1) -/* 8037F7C8 0037B428 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037F7CC 0037B42C 7C 08 03 A6 */ mtlr r0 -/* 8037F7D0 0037B430 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037F7D4 0037B434 4E 80 00 20 */ blr -/* 8037F7D8 0037B438 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8037F7DC 0037B43C 7C 08 02 A6 */ mflr r0 -/* 8037F7E0 0037B440 90 01 00 24 */ stw r0, 0x24(r1) -/* 8037F7E4 0037B444 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8037F7E8 0037B448 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8037F7EC 0037B44C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8037F7F0 0037B450 93 81 00 10 */ stw r28, 0x10(r1) -/* 8037F7F4 0037B454 7C 7C 1B 78 */ mr r28, r3 -/* 8037F7F8 0037B458 4B FE E5 F5 */ bl SetPlayerPriority__Q44nw4r3snd6detail10BasicSoundFi -/* 8037F7FC 0037B45C 88 7C 00 74 */ lbz r3, 0x74(r28) -/* 8037F800 0037B460 80 1C 00 40 */ lwz r0, 0x40(r28) -/* 8037F804 0037B464 7C 63 02 14 */ add r3, r3, r0 -/* 8037F808 0037B468 2C 03 00 7F */ cmpwi r3, 0x7f -/* 8037F80C 0037B46C 40 81 00 0C */ ble lbl_8037F818 -/* 8037F810 0037B470 3B A0 00 7F */ li r29, 0x7f -/* 8037F814 0037B474 48 00 00 0C */ b lbl_8037F820 -lbl_8037F818: -/* 8037F818 0037B478 7C 60 FE 70 */ srawi r0, r3, 0x1f -/* 8037F81C 0037B47C 7C 7D 00 78 */ andc r29, r3, r0 -lbl_8037F820: -/* 8037F820 0037B480 83 DC 09 3C */ lwz r30, 0x93c(r28) -/* 8037F824 0037B484 3B FE 00 10 */ addi r31, r30, 0x10 -/* 8037F828 0037B488 7F E3 FB 78 */ mr r3, r31 -/* 8037F82C 0037B48C 4B EF 01 1D */ bl func_8026F948 -/* 8037F830 0037B490 3B 9C 00 B8 */ addi r28, r28, 0xb8 -/* 8037F834 0037B494 38 7E 00 04 */ addi r3, r30, 4 -/* 8037F838 0037B498 7F 84 E3 78 */ mr r4, r28 -/* 8037F83C 0037B49C 4B FE 34 39 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFPQ34nw4r2ut12LinkListNode -/* 8037F840 0037B4A0 80 7E 00 08 */ lwz r3, 8(r30) -/* 8037F844 0037B4A4 38 1E 00 08 */ addi r0, r30, 8 -/* 8037F848 0037B4A8 48 00 00 34 */ b lbl_8037F87C -lbl_8037F84C: -/* 8037F84C 0037B4AC 88 A3 FF BC */ lbz r5, -0x44(r3) -/* 8037F850 0037B4B0 80 83 FF 88 */ lwz r4, -0x78(r3) -/* 8037F854 0037B4B4 7C A5 22 14 */ add r5, r5, r4 -/* 8037F858 0037B4B8 2C 05 00 7F */ cmpwi r5, 0x7f -/* 8037F85C 0037B4BC 40 81 00 0C */ ble lbl_8037F868 -/* 8037F860 0037B4C0 38 80 00 7F */ li r4, 0x7f -/* 8037F864 0037B4C4 48 00 00 0C */ b lbl_8037F870 -lbl_8037F868: -/* 8037F868 0037B4C8 7C A4 FE 70 */ srawi r4, r5, 0x1f -/* 8037F86C 0037B4CC 7C A4 20 78 */ andc r4, r5, r4 -lbl_8037F870: -/* 8037F870 0037B4D0 7C 1D 20 00 */ cmpw r29, r4 -/* 8037F874 0037B4D4 41 80 00 10 */ blt lbl_8037F884 -/* 8037F878 0037B4D8 80 63 00 00 */ lwz r3, 0(r3) -lbl_8037F87C: -/* 8037F87C 0037B4DC 7C 03 00 40 */ cmplw r3, r0 -/* 8037F880 0037B4E0 40 82 FF CC */ bne lbl_8037F84C -lbl_8037F884: -/* 8037F884 0037B4E4 90 61 00 08 */ stw r3, 8(r1) -/* 8037F888 0037B4E8 7F 85 E3 78 */ mr r5, r28 -/* 8037F88C 0037B4EC 38 7E 00 04 */ addi r3, r30, 4 -/* 8037F890 0037B4F0 38 81 00 08 */ addi r4, r1, 8 -/* 8037F894 0037B4F4 4B FE 33 B5 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode -/* 8037F898 0037B4F8 7F E3 FB 78 */ mr r3, r31 -/* 8037F89C 0037B4FC 4B EF 01 89 */ bl func_8026FA24 -/* 8037F8A0 0037B500 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8037F8A4 0037B504 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8037F8A8 0037B508 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8037F8AC 0037B50C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8037F8B0 0037B510 83 81 00 10 */ lwz r28, 0x10(r1) -/* 8037F8B4 0037B514 7C 08 03 A6 */ mtlr r0 -/* 8037F8B8 0037B518 38 21 00 20 */ addi r1, r1, 0x20 -/* 8037F8BC 0037B51C 4E 80 00 20 */ blr -/* 8037F8C0 0037B520 80 63 09 38 */ lwz r3, 0x938(r3) -/* 8037F8C4 0037B524 7C 03 00 D0 */ neg r0, r3 -/* 8037F8C8 0037B528 7C 00 1B 78 */ or r0, r0, r3 -/* 8037F8CC 0037B52C 54 03 0F FE */ srwi r3, r0, 0x1f -/* 8037F8D0 0037B530 4E 80 00 20 */ blr -/* 8037F8D4 0037B534 80 63 09 38 */ lwz r3, 0x938(r3) -/* 8037F8D8 0037B538 48 00 00 30 */ b lbl_8037F908 -/* 8037F8DC 0037B53C 38 63 00 D8 */ addi r3, r3, 0xd8 -/* 8037F8E0 0037B540 4E 80 00 20 */ blr -/* 8037F8E4 0037B544 38 63 00 D8 */ addi r3, r3, 0xd8 -/* 8037F8E8 0037B548 4E 80 00 20 */ blr -/* 8037F8EC 0037B54C 88 63 01 93 */ lbz r3, 0x193(r3) -/* 8037F8F0 0037B550 4E 80 00 20 */ blr -/* 8037F8F4 0037B554 38 6D B2 88 */ addi r3, r13, lbl_80640548-_SDA_BASE_ -/* 8037F8F8 0037B558 4E 80 00 20 */ blr - -.global func_8037F8FC -func_8037F8FC: -/* 8037F8FC 0037B55C 38 0D B1 F0 */ addi r0, r13, lbl_806404B0-_SDA_BASE_ -/* 8037F900 0037B560 90 0D B2 88 */ stw r0, lbl_80640548-_SDA_BASE_(r13) -/* 8037F904 0037B564 4E 80 00 20 */ blr -lbl_8037F908: -/* 8037F908 0037B568 80 83 00 00 */ lwz r4, 0(r3) -/* 8037F90C 0037B56C 2C 04 00 00 */ cmpwi r4, 0 -/* 8037F910 0037B570 41 82 00 18 */ beq lbl_8037F928 -/* 8037F914 0037B574 80 04 09 38 */ lwz r0, 0x938(r4) -/* 8037F918 0037B578 7C 00 18 40 */ cmplw r0, r3 -/* 8037F91C 0037B57C 40 82 00 0C */ bne lbl_8037F928 -/* 8037F920 0037B580 38 00 00 00 */ li r0, 0 -/* 8037F924 0037B584 90 04 09 38 */ stw r0, 0x938(r4) -lbl_8037F928: -/* 8037F928 0037B588 80 03 00 00 */ lwz r0, 0(r3) -/* 8037F92C 0037B58C 2C 00 00 00 */ cmpwi r0, 0 -/* 8037F930 0037B590 4D 82 00 20 */ beqlr -/* 8037F934 0037B594 38 00 00 00 */ li r0, 0 -/* 8037F938 0037B598 90 03 00 00 */ stw r0, 0(r3) -/* 8037F93C 0037B59C 4E 80 00 20 */ blr - .global func_8037F940 func_8037F940: /* 8037F940 0037B5A0 94 21 FF F0 */ stwu r1, -0x10(r1) diff --git a/obj_files.mk b/obj_files.mk index 1bd123e..cfe6279 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -152,6 +152,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmChannel.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmFile.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmPlayer.o \ + $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmSound.o \ $(BUILD_DIR)/asm/text_10_6.o \ $(BUILD_DIR)/asm/text_11.o -- cgit v1.2.3 From 25cd964f52a9ad4e17b67ac2ec287b1f4b837fe9 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 26 Sep 2020 14:32:39 -0400 Subject: split snd_TaskManager and snd_Task --- asm/nw4r/snd/detail/snd_SeqSound.s | 12 +- asm/nw4r/snd/detail/snd_StrmPlayer.s | 22 +- asm/nw4r/snd/detail/snd_Task.s | 23 ++ asm/nw4r/snd/detail/snd_TaskManager.s | 490 ++++++++++++++++++++++++++++++++ asm/text_10_6.s | 517 +--------------------------------- obj_files.mk | 2 + 6 files changed, 540 insertions(+), 526 deletions(-) create mode 100644 asm/nw4r/snd/detail/snd_Task.s create mode 100644 asm/nw4r/snd/detail/snd_TaskManager.s diff --git a/asm/nw4r/snd/detail/snd_SeqSound.s b/asm/nw4r/snd/detail/snd_SeqSound.s index a0ac1ac..187c31e 100644 --- a/asm/nw4r/snd/detail/snd_SeqSound.s +++ b/asm/nw4r/snd/detail/snd_SeqSound.s @@ -56,7 +56,7 @@ __dt__Q54nw4r3snd6detail8SeqSound11SeqLoadTaskFv: /* 80374CE8 00370948 7C 7E 1B 78 */ mr r30, r3 /* 80374CEC 0037094C 41 82 00 1C */ beq lbl_80374D08 /* 80374CF0 00370950 38 80 00 00 */ li r4, 0 -/* 80374CF4 00370954 48 00 AC 4D */ bl func_8037F940 +/* 80374CF4 00370954 48 00 AC 4D */ bl __dt__Q44nw4r3snd6detail4TaskFv /* 80374CF8 00370958 2C 1F 00 00 */ cmpwi r31, 0 /* 80374CFC 0037095C 40 81 00 0C */ ble lbl_80374D08 /* 80374D00 00370960 7F C3 F3 78 */ mr r3, r30 @@ -191,10 +191,10 @@ lbl_80374EB0: /* 80374EC4 00370B24 93 FD 04 40 */ stw r31, 0x440(r29) /* 80374EC8 00370B28 90 9D 04 44 */ stw r4, 0x444(r29) /* 80374ECC 00370B2C 93 BD 04 48 */ stw r29, 0x448(r29) -/* 80374ED0 00370B30 48 00 AA B1 */ bl func_8037F980 +/* 80374ED0 00370B30 48 00 AA B1 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv /* 80374ED4 00370B34 38 9D 04 28 */ addi r4, r29, 0x428 /* 80374ED8 00370B38 38 A0 00 01 */ li r5, 1 -/* 80374EDC 00370B3C 48 00 AC 1D */ bl func_8037FAF8 +/* 80374EDC 00370B3C 48 00 AC 1D */ bl AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority /* 80374EE0 00370B40 38 00 00 01 */ li r0, 1 lbl_80374EE4: /* 80374EE4 00370B44 2C 00 00 00 */ cmpwi r0, 0 @@ -263,9 +263,9 @@ Shutdown__Q44nw4r3snd6detail8SeqSoundFv: /* 80374FB8 00370C18 88 03 02 20 */ lbz r0, 0x220(r3) /* 80374FBC 00370C1C 2C 00 00 00 */ cmpwi r0, 0 /* 80374FC0 00370C20 41 82 00 10 */ beq lbl_80374FD0 -/* 80374FC4 00370C24 48 00 A9 BD */ bl func_8037F980 +/* 80374FC4 00370C24 48 00 A9 BD */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv /* 80374FC8 00370C28 38 9D 04 28 */ addi r4, r29, 0x428 -/* 80374FCC 00370C2C 48 00 AE 8D */ bl func_8037FE58 +/* 80374FCC 00370C2C 48 00 AE 8D */ bl CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task lbl_80374FD0: /* 80374FD0 00370C30 80 7D 02 24 */ lwz r3, 0x224(r29) /* 80374FD4 00370C34 2C 03 00 00 */ cmpwi r3, 0 @@ -327,7 +327,7 @@ __dt__Q44nw4r3snd6detail8SeqSoundFv: /* 8037509C 00370CFC 34 63 04 28 */ addic. r3, r3, 0x428 /* 803750A0 00370D00 41 82 00 0C */ beq lbl_803750AC /* 803750A4 00370D04 38 80 00 00 */ li r4, 0 -/* 803750A8 00370D08 48 00 A8 99 */ bl func_8037F940 +/* 803750A8 00370D08 48 00 A8 99 */ bl __dt__Q44nw4r3snd6detail4TaskFv lbl_803750AC: /* 803750AC 00370D0C 38 7E 00 D8 */ addi r3, r30, 0xd8 /* 803750B0 00370D10 38 80 FF FF */ li r4, -1 diff --git a/asm/nw4r/snd/detail/snd_StrmPlayer.s b/asm/nw4r/snd/detail/snd_StrmPlayer.s index a9cecdf..e584f0d 100644 --- a/asm/nw4r/snd/detail/snd_StrmPlayer.s +++ b/asm/nw4r/snd/detail/snd_StrmPlayer.s @@ -83,7 +83,7 @@ __dt__Q54nw4r3snd6detail10StrmPlayer18StrmHeaderLoadTaskFv: /* 8037D3D0 00379030 7C 7E 1B 78 */ mr r30, r3 /* 8037D3D4 00379034 41 82 00 1C */ beq lbl_8037D3F0 /* 8037D3D8 00379038 38 80 00 00 */ li r4, 0 -/* 8037D3DC 0037903C 48 00 25 65 */ bl func_8037F940 +/* 8037D3DC 0037903C 48 00 25 65 */ bl __dt__Q44nw4r3snd6detail4TaskFv /* 8037D3E0 00379040 2C 1F 00 00 */ cmpwi r31, 0 /* 8037D3E4 00379044 40 81 00 0C */ ble lbl_8037D3F0 /* 8037D3E8 00379048 7F C3 F3 78 */ mr r3, r30 @@ -109,7 +109,7 @@ __dt__Q54nw4r3snd6detail10StrmPlayer16StrmDataLoadTaskFv: /* 8037D428 00379088 7C 7E 1B 78 */ mr r30, r3 /* 8037D42C 0037908C 41 82 00 1C */ beq lbl_8037D448 /* 8037D430 00379090 38 80 00 00 */ li r4, 0 -/* 8037D434 00379094 48 00 25 0D */ bl func_8037F940 +/* 8037D434 00379094 48 00 25 0D */ bl __dt__Q44nw4r3snd6detail4TaskFv /* 8037D438 00379098 2C 1F 00 00 */ cmpwi r31, 0 /* 8037D43C 0037909C 40 81 00 0C */ ble lbl_8037D448 /* 8037D440 003790A0 7F C3 F3 78 */ mr r3, r30 @@ -168,7 +168,7 @@ lbl_8037D4FC: /* 8037D4FC 0037915C 34 7D 01 08 */ addic. r3, r29, 0x108 /* 8037D500 00379160 41 82 00 0C */ beq lbl_8037D50C /* 8037D504 00379164 38 80 00 00 */ li r4, 0 -/* 8037D508 00379168 48 00 24 39 */ bl func_8037F940 +/* 8037D508 00379168 48 00 24 39 */ bl __dt__Q44nw4r3snd6detail4TaskFv lbl_8037D50C: /* 8037D50C 0037916C 2C 1E 00 00 */ cmpwi r30, 0 /* 8037D510 00379170 40 81 00 0C */ ble lbl_8037D51C @@ -297,10 +297,10 @@ lbl_8037D6A8: /* 8037D6C8 00379328 90 9A 01 1C */ stw r4, 0x11c(r26) /* 8037D6CC 0037932C 90 7A 01 20 */ stw r3, 0x120(r26) /* 8037D6D0 00379330 90 1A 01 24 */ stw r0, 0x124(r26) -/* 8037D6D4 00379334 48 00 22 AD */ bl func_8037F980 +/* 8037D6D4 00379334 48 00 22 AD */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv /* 8037D6D8 00379338 7F C4 F3 78 */ mr r4, r30 /* 8037D6DC 0037933C 38 A0 00 01 */ li r5, 1 -/* 8037D6E0 00379340 48 00 24 19 */ bl func_8037FAF8 +/* 8037D6E0 00379340 48 00 24 19 */ bl AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority /* 8037D6E4 00379344 7F E3 FB 78 */ mr r3, r31 /* 8037D6E8 00379348 4B EF 23 3D */ bl func_8026FA24 /* 8037D6EC 0037934C 39 61 00 20 */ addi r11, r1, 0x20 @@ -536,9 +536,9 @@ Stop__Q44nw4r3snd6detail10StrmPlayerFv: lbl_8037DA38: /* 8037DA38 00379698 7F E3 FB 78 */ mr r3, r31 /* 8037DA3C 0037969C 4B EF 0D 49 */ bl OSRestoreInterrupts -/* 8037DA40 003796A0 48 00 1F 41 */ bl func_8037F980 +/* 8037DA40 003796A0 48 00 1F 41 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv /* 8037DA44 003796A4 38 9B 01 08 */ addi r4, r27, 0x108 -/* 8037DA48 003796A8 48 00 24 11 */ bl func_8037FE58 +/* 8037DA48 003796A8 48 00 24 11 */ bl CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task /* 8037DA4C 003796AC 4B EF 0D 11 */ bl OSDisableInterrupts /* 8037DA50 003796B0 80 1B 01 28 */ lwz r0, 0x128(r27) /* 8037DA54 003796B4 7C 7F 1B 78 */ mr r31, r3 @@ -548,9 +548,9 @@ lbl_8037DA38: /* 8037DA64 003796C4 48 00 00 14 */ b lbl_8037DA78 lbl_8037DA68: /* 8037DA68 003796C8 83 BE 00 04 */ lwz r29, 4(r30) -/* 8037DA6C 003796CC 48 00 1F 15 */ bl func_8037F980 +/* 8037DA6C 003796CC 48 00 1F 15 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv /* 8037DA70 003796D0 38 9D FF D4 */ addi r4, r29, -44 -/* 8037DA74 003796D4 48 00 23 E5 */ bl func_8037FE58 +/* 8037DA74 003796D4 48 00 23 E5 */ bl CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task lbl_8037DA78: /* 8037DA78 003796D8 80 1B 01 28 */ lwz r0, 0x128(r27) /* 8037DA7C 003796DC 2C 00 00 00 */ cmpwi r0, 0 @@ -2069,10 +2069,10 @@ lbl_8037EF60: /* 8037EFB0 0037AC10 41 82 00 08 */ beq lbl_8037EFB8 /* 8037EFB4 0037AC14 3B E0 00 02 */ li r31, 2 lbl_8037EFB8: -/* 8037EFB8 0037AC18 48 00 09 C9 */ bl func_8037F980 +/* 8037EFB8 0037AC18 48 00 09 C9 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv /* 8037EFBC 0037AC1C 7F 84 E3 78 */ mr r4, r28 /* 8037EFC0 0037AC20 7F E5 FB 78 */ mr r5, r31 -/* 8037EFC4 0037AC24 48 00 0B 35 */ bl func_8037FAF8 +/* 8037EFC4 0037AC24 48 00 0B 35 */ bl AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority /* 8037EFC8 0037AC28 80 7D 00 E8 */ lwz r3, 0xe8(r29) /* 8037EFCC 0037AC2C 80 1D 00 FC */ lwz r0, 0xfc(r29) /* 8037EFD0 0037AC30 38 63 00 01 */ addi r3, r3, 1 diff --git a/asm/nw4r/snd/detail/snd_Task.s b/asm/nw4r/snd/detail/snd_Task.s new file mode 100644 index 0000000..0bc501f --- /dev/null +++ b/asm/nw4r/snd/detail/snd_Task.s @@ -0,0 +1,23 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __dt__Q44nw4r3snd6detail4TaskFv +__dt__Q44nw4r3snd6detail4TaskFv: +/* 8037F940 0037B5A0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037F944 0037B5A4 7C 08 02 A6 */ mflr r0 +/* 8037F948 0037B5A8 2C 03 00 00 */ cmpwi r3, 0 +/* 8037F94C 0037B5AC 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037F950 0037B5B0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037F954 0037B5B4 7C 7F 1B 78 */ mr r31, r3 +/* 8037F958 0037B5B8 41 82 00 10 */ beq lbl_8037F968 +/* 8037F95C 0037B5BC 2C 04 00 00 */ cmpwi r4, 0 +/* 8037F960 0037B5C0 40 81 00 08 */ ble lbl_8037F968 +/* 8037F964 0037B5C4 4B E5 B1 55 */ bl func_801DAAB8 +lbl_8037F968: +/* 8037F968 0037B5C8 7F E3 FB 78 */ mr r3, r31 +/* 8037F96C 0037B5CC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037F970 0037B5D0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037F974 0037B5D4 7C 08 03 A6 */ mtlr r0 +/* 8037F978 0037B5D8 38 21 00 10 */ addi r1, r1, 0x10 +/* 8037F97C 0037B5DC 4E 80 00 20 */ blr diff --git a/asm/nw4r/snd/detail/snd_TaskManager.s b/asm/nw4r/snd/detail/snd_TaskManager.s new file mode 100644 index 0000000..f587379 --- /dev/null +++ b/asm/nw4r/snd/detail/snd_TaskManager.s @@ -0,0 +1,490 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global GetInstance__Q44nw4r3snd6detail11TaskManagerFv +GetInstance__Q44nw4r3snd6detail11TaskManagerFv: +/* 8037F980 0037B5E0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037F984 0037B5E4 7C 08 02 A6 */ mflr r0 +/* 8037F988 0037B5E8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037F98C 0037B5EC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037F990 0037B5F0 88 0D B2 90 */ lbz r0, lbl_80640550-_SDA_BASE_(r13) +/* 8037F994 0037B5F4 7C 00 07 75 */ extsb. r0, r0 +/* 8037F998 0037B5F8 40 82 00 68 */ bne lbl_8037FA00 +/* 8037F99C 0037B5FC 3F E0 80 64 */ lis r31, lbl_8063CDA4@ha +/* 8037F9A0 0037B600 3C 80 80 38 */ lis r4, __ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@ha +/* 8037F9A4 0037B604 3B FF CD A4 */ addi r31, r31, lbl_8063CDA4@l +/* 8037F9A8 0037B608 3C A0 80 38 */ lis r5, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@ha +/* 8037F9AC 0037B60C 7F E3 FB 78 */ mr r3, r31 +/* 8037F9B0 0037B610 38 84 FA D8 */ addi r4, r4, __ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@l +/* 8037F9B4 0037B614 38 A5 FA 80 */ addi r5, r5, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@l +/* 8037F9B8 0037B618 38 C0 00 0C */ li r6, 0xc +/* 8037F9BC 0037B61C 38 E0 00 03 */ li r7, 3 +/* 8037F9C0 0037B620 4B E4 74 A9 */ bl __construct_array +/* 8037F9C4 0037B624 38 00 00 00 */ li r0, 0 +/* 8037F9C8 0037B628 38 7F 00 2C */ addi r3, r31, 0x2c +/* 8037F9CC 0037B62C 90 1F 00 24 */ stw r0, 0x24(r31) +/* 8037F9D0 0037B630 98 1F 00 28 */ stb r0, 0x28(r31) +/* 8037F9D4 0037B634 4B EF 19 15 */ bl func_802712E8 +/* 8037F9D8 0037B638 38 7F 00 34 */ addi r3, r31, 0x34 +/* 8037F9DC 0037B63C 4B EF 19 0D */ bl func_802712E8 +/* 8037F9E0 0037B640 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail11TaskManagerFv@ha +/* 8037F9E4 0037B644 3C A0 80 64 */ lis r5, lbl_8063CD98@ha +/* 8037F9E8 0037B648 7F E3 FB 78 */ mr r3, r31 +/* 8037F9EC 0037B64C 38 84 FA 1C */ addi r4, r4, __dt__Q44nw4r3snd6detail11TaskManagerFv@l +/* 8037F9F0 0037B650 38 A5 CD 98 */ addi r5, r5, lbl_8063CD98@l +/* 8037F9F4 0037B654 4B E4 72 55 */ bl __register_global_object_tmp +/* 8037F9F8 0037B658 38 00 00 01 */ li r0, 1 +/* 8037F9FC 0037B65C 98 0D B2 90 */ stb r0, lbl_80640550-_SDA_BASE_(r13) +lbl_8037FA00: +/* 8037FA00 0037B660 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037FA04 0037B664 3C 60 80 64 */ lis r3, lbl_8063CDA4@ha +/* 8037FA08 0037B668 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037FA0C 0037B66C 38 63 CD A4 */ addi r3, r3, lbl_8063CDA4@l +/* 8037FA10 0037B670 7C 08 03 A6 */ mtlr r0 +/* 8037FA14 0037B674 38 21 00 10 */ addi r1, r1, 0x10 +/* 8037FA18 0037B678 4E 80 00 20 */ blr + +.global __dt__Q44nw4r3snd6detail11TaskManagerFv +__dt__Q44nw4r3snd6detail11TaskManagerFv: +/* 8037FA1C 0037B67C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037FA20 0037B680 7C 08 02 A6 */ mflr r0 +/* 8037FA24 0037B684 2C 03 00 00 */ cmpwi r3, 0 +/* 8037FA28 0037B688 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037FA2C 0037B68C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037FA30 0037B690 7C 9F 23 78 */ mr r31, r4 +/* 8037FA34 0037B694 93 C1 00 08 */ stw r30, 8(r1) +/* 8037FA38 0037B698 7C 7E 1B 78 */ mr r30, r3 +/* 8037FA3C 0037B69C 41 82 00 28 */ beq lbl_8037FA64 +/* 8037FA40 0037B6A0 3C 80 80 38 */ lis r4, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@ha +/* 8037FA44 0037B6A4 38 A0 00 0C */ li r5, 0xc +/* 8037FA48 0037B6A8 38 84 FA 80 */ addi r4, r4, __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv@l +/* 8037FA4C 0037B6AC 38 C0 00 03 */ li r6, 3 +/* 8037FA50 0037B6B0 4B E4 75 11 */ bl __destroy_arr +/* 8037FA54 0037B6B4 2C 1F 00 00 */ cmpwi r31, 0 +/* 8037FA58 0037B6B8 40 81 00 0C */ ble lbl_8037FA64 +/* 8037FA5C 0037B6BC 7F C3 F3 78 */ mr r3, r30 +/* 8037FA60 0037B6C0 4B E5 B0 59 */ bl func_801DAAB8 +lbl_8037FA64: +/* 8037FA64 0037B6C4 7F C3 F3 78 */ mr r3, r30 +/* 8037FA68 0037B6C8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037FA6C 0037B6CC 83 C1 00 08 */ lwz r30, 8(r1) +/* 8037FA70 0037B6D0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037FA74 0037B6D4 7C 08 03 A6 */ mtlr r0 +/* 8037FA78 0037B6D8 38 21 00 10 */ addi r1, r1, 0x10 +/* 8037FA7C 0037B6DC 4E 80 00 20 */ blr + +.global __dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv +__dt__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv: +/* 8037FA80 0037B6E0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037FA84 0037B6E4 7C 08 02 A6 */ mflr r0 +/* 8037FA88 0037B6E8 2C 03 00 00 */ cmpwi r3, 0 +/* 8037FA8C 0037B6EC 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037FA90 0037B6F0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037FA94 0037B6F4 7C 9F 23 78 */ mr r31, r4 +/* 8037FA98 0037B6F8 93 C1 00 08 */ stw r30, 8(r1) +/* 8037FA9C 0037B6FC 7C 7E 1B 78 */ mr r30, r3 +/* 8037FAA0 0037B700 41 82 00 1C */ beq lbl_8037FABC +/* 8037FAA4 0037B704 38 80 00 00 */ li r4, 0 +/* 8037FAA8 0037B708 4B FE 30 91 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv +/* 8037FAAC 0037B70C 2C 1F 00 00 */ cmpwi r31, 0 +/* 8037FAB0 0037B710 40 81 00 0C */ ble lbl_8037FABC +/* 8037FAB4 0037B714 7F C3 F3 78 */ mr r3, r30 +/* 8037FAB8 0037B718 4B E5 B0 01 */ bl func_801DAAB8 +lbl_8037FABC: +/* 8037FABC 0037B71C 7F C3 F3 78 */ mr r3, r30 +/* 8037FAC0 0037B720 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037FAC4 0037B724 83 C1 00 08 */ lwz r30, 8(r1) +/* 8037FAC8 0037B728 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037FACC 0037B72C 7C 08 03 A6 */ mtlr r0 +/* 8037FAD0 0037B730 38 21 00 10 */ addi r1, r1, 0x10 +/* 8037FAD4 0037B734 4E 80 00 20 */ blr + +.global __ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv +__ct__Q34nw4r2ut35LinkList$0Q44nw4r3snd6detail4Task$44$1Fv: +/* 8037FAD8 0037B738 38 00 00 00 */ li r0, 0 +/* 8037FADC 0037B73C 38 83 00 04 */ addi r4, r3, 4 +/* 8037FAE0 0037B740 90 03 00 04 */ stw r0, 4(r3) +/* 8037FAE4 0037B744 90 03 00 08 */ stw r0, 8(r3) +/* 8037FAE8 0037B748 90 03 00 00 */ stw r0, 0(r3) +/* 8037FAEC 0037B74C 90 83 00 04 */ stw r4, 4(r3) +/* 8037FAF0 0037B750 90 83 00 08 */ stw r4, 8(r3) +/* 8037FAF4 0037B754 4E 80 00 20 */ blr + +.global AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority +AppendTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4TaskQ54nw4r3snd6detail11TaskManager12TaskPriority: +/* 8037FAF8 0037B758 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8037FAFC 0037B75C 7C 08 02 A6 */ mflr r0 +/* 8037FB00 0037B760 90 01 00 24 */ stw r0, 0x24(r1) +/* 8037FB04 0037B764 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8037FB08 0037B768 7C BF 2B 78 */ mr r31, r5 +/* 8037FB0C 0037B76C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8037FB10 0037B770 7C 9E 23 78 */ mr r30, r4 +/* 8037FB14 0037B774 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8037FB18 0037B778 7C 7D 1B 78 */ mr r29, r3 +/* 8037FB1C 0037B77C 4B EE EC 41 */ bl OSDisableInterrupts +/* 8037FB20 0037B780 1C 1F 00 0C */ mulli r0, r31, 0xc +/* 8037FB24 0037B784 38 80 00 01 */ li r4, 1 +/* 8037FB28 0037B788 98 9E 00 0C */ stb r4, 0xc(r30) +/* 8037FB2C 0037B78C 7C 7F 1B 78 */ mr r31, r3 +/* 8037FB30 0037B790 38 81 00 08 */ addi r4, r1, 8 +/* 8037FB34 0037B794 7C 7D 02 14 */ add r3, r29, r0 +/* 8037FB38 0037B798 38 03 00 04 */ addi r0, r3, 4 +/* 8037FB3C 0037B79C 38 BE 00 04 */ addi r5, r30, 4 +/* 8037FB40 0037B7A0 90 01 00 08 */ stw r0, 8(r1) +/* 8037FB44 0037B7A4 4B FE 31 05 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode +/* 8037FB48 0037B7A8 38 7D 00 2C */ addi r3, r29, 0x2c +/* 8037FB4C 0037B7AC 4B EF 29 15 */ bl func_80272460 +/* 8037FB50 0037B7B0 7F E3 FB 78 */ mr r3, r31 +/* 8037FB54 0037B7B4 4B EE EC 31 */ bl OSRestoreInterrupts +/* 8037FB58 0037B7B8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8037FB5C 0037B7BC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8037FB60 0037B7C0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8037FB64 0037B7C4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8037FB68 0037B7C8 7C 08 03 A6 */ mtlr r0 +/* 8037FB6C 0037B7CC 38 21 00 20 */ addi r1, r1, 0x20 +/* 8037FB70 0037B7D0 4E 80 00 20 */ blr + +.global PopTask__Q44nw4r3snd6detail11TaskManagerFv +PopTask__Q44nw4r3snd6detail11TaskManagerFv: +/* 8037FB74 0037B7D4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8037FB78 0037B7D8 7C 08 02 A6 */ mflr r0 +/* 8037FB7C 0037B7DC 90 01 00 34 */ stw r0, 0x34(r1) +/* 8037FB80 0037B7E0 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 8037FB84 0037B7E4 93 C1 00 28 */ stw r30, 0x28(r1) +/* 8037FB88 0037B7E8 93 A1 00 24 */ stw r29, 0x24(r1) +/* 8037FB8C 0037B7EC 93 81 00 20 */ stw r28, 0x20(r1) +/* 8037FB90 0037B7F0 7C 7C 1B 78 */ mr r28, r3 +/* 8037FB94 0037B7F4 4B EE EB C9 */ bl OSDisableInterrupts +/* 8037FB98 0037B7F8 7C 7F 1B 78 */ mr r31, r3 +/* 8037FB9C 0037B7FC 4B EE EB C1 */ bl OSDisableInterrupts +/* 8037FBA0 0037B800 80 1C 00 18 */ lwz r0, 0x18(r28) +/* 8037FBA4 0037B804 7C 7E 1B 78 */ mr r30, r3 +/* 8037FBA8 0037B808 2C 00 00 00 */ cmpwi r0, 0 +/* 8037FBAC 0037B80C 40 82 00 10 */ bne lbl_8037FBBC +/* 8037FBB0 0037B810 4B EE EB D5 */ bl OSRestoreInterrupts +/* 8037FBB4 0037B814 3B C0 00 00 */ li r30, 0 +/* 8037FBB8 0037B818 48 00 00 24 */ b lbl_8037FBDC +lbl_8037FBBC: +/* 8037FBBC 0037B81C 83 BC 00 1C */ lwz r29, 0x1c(r28) +/* 8037FBC0 0037B820 38 7C 00 18 */ addi r3, r28, 0x18 +/* 8037FBC4 0037B824 38 81 00 10 */ addi r4, r1, 0x10 +/* 8037FBC8 0037B828 93 A1 00 10 */ stw r29, 0x10(r1) +/* 8037FBCC 0037B82C 4B FE 2F F1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator +/* 8037FBD0 0037B830 7F C3 F3 78 */ mr r3, r30 +/* 8037FBD4 0037B834 4B EE EB B1 */ bl OSRestoreInterrupts +/* 8037FBD8 0037B838 3B DD FF FC */ addi r30, r29, -4 +lbl_8037FBDC: +/* 8037FBDC 0037B83C 2C 1E 00 00 */ cmpwi r30, 0 +/* 8037FBE0 0037B840 41 82 00 14 */ beq lbl_8037FBF4 +/* 8037FBE4 0037B844 7F E3 FB 78 */ mr r3, r31 +/* 8037FBE8 0037B848 4B EE EB 9D */ bl OSRestoreInterrupts +/* 8037FBEC 0037B84C 7F C3 F3 78 */ mr r3, r30 +/* 8037FBF0 0037B850 48 00 00 C0 */ b lbl_8037FCB0 +lbl_8037FBF4: +/* 8037FBF4 0037B854 4B EE EB 69 */ bl OSDisableInterrupts +/* 8037FBF8 0037B858 80 1C 00 0C */ lwz r0, 0xc(r28) +/* 8037FBFC 0037B85C 7C 7E 1B 78 */ mr r30, r3 +/* 8037FC00 0037B860 2C 00 00 00 */ cmpwi r0, 0 +/* 8037FC04 0037B864 40 82 00 10 */ bne lbl_8037FC14 +/* 8037FC08 0037B868 4B EE EB 7D */ bl OSRestoreInterrupts +/* 8037FC0C 0037B86C 3B C0 00 00 */ li r30, 0 +/* 8037FC10 0037B870 48 00 00 24 */ b lbl_8037FC34 +lbl_8037FC14: +/* 8037FC14 0037B874 83 BC 00 10 */ lwz r29, 0x10(r28) +/* 8037FC18 0037B878 38 7C 00 0C */ addi r3, r28, 0xc +/* 8037FC1C 0037B87C 38 81 00 0C */ addi r4, r1, 0xc +/* 8037FC20 0037B880 93 A1 00 0C */ stw r29, 0xc(r1) +/* 8037FC24 0037B884 4B FE 2F 99 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator +/* 8037FC28 0037B888 7F C3 F3 78 */ mr r3, r30 +/* 8037FC2C 0037B88C 4B EE EB 59 */ bl OSRestoreInterrupts +/* 8037FC30 0037B890 3B DD FF FC */ addi r30, r29, -4 +lbl_8037FC34: +/* 8037FC34 0037B894 2C 1E 00 00 */ cmpwi r30, 0 +/* 8037FC38 0037B898 41 82 00 14 */ beq lbl_8037FC4C +/* 8037FC3C 0037B89C 7F E3 FB 78 */ mr r3, r31 +/* 8037FC40 0037B8A0 4B EE EB 45 */ bl OSRestoreInterrupts +/* 8037FC44 0037B8A4 7F C3 F3 78 */ mr r3, r30 +/* 8037FC48 0037B8A8 48 00 00 68 */ b lbl_8037FCB0 +lbl_8037FC4C: +/* 8037FC4C 0037B8AC 4B EE EB 11 */ bl OSDisableInterrupts +/* 8037FC50 0037B8B0 80 1C 00 00 */ lwz r0, 0(r28) +/* 8037FC54 0037B8B4 7C 7E 1B 78 */ mr r30, r3 +/* 8037FC58 0037B8B8 2C 00 00 00 */ cmpwi r0, 0 +/* 8037FC5C 0037B8BC 40 82 00 10 */ bne lbl_8037FC6C +/* 8037FC60 0037B8C0 4B EE EB 25 */ bl OSRestoreInterrupts +/* 8037FC64 0037B8C4 3B C0 00 00 */ li r30, 0 +/* 8037FC68 0037B8C8 48 00 00 24 */ b lbl_8037FC8C +lbl_8037FC6C: +/* 8037FC6C 0037B8CC 83 BC 00 04 */ lwz r29, 4(r28) +/* 8037FC70 0037B8D0 7F 83 E3 78 */ mr r3, r28 +/* 8037FC74 0037B8D4 38 81 00 08 */ addi r4, r1, 8 +/* 8037FC78 0037B8D8 93 A1 00 08 */ stw r29, 8(r1) +/* 8037FC7C 0037B8DC 4B FE 2F 41 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator +/* 8037FC80 0037B8E0 7F C3 F3 78 */ mr r3, r30 +/* 8037FC84 0037B8E4 4B EE EB 01 */ bl OSRestoreInterrupts +/* 8037FC88 0037B8E8 3B DD FF FC */ addi r30, r29, -4 +lbl_8037FC8C: +/* 8037FC8C 0037B8EC 2C 1E 00 00 */ cmpwi r30, 0 +/* 8037FC90 0037B8F0 41 82 00 14 */ beq lbl_8037FCA4 +/* 8037FC94 0037B8F4 7F E3 FB 78 */ mr r3, r31 +/* 8037FC98 0037B8F8 4B EE EA ED */ bl OSRestoreInterrupts +/* 8037FC9C 0037B8FC 7F C3 F3 78 */ mr r3, r30 +/* 8037FCA0 0037B900 48 00 00 10 */ b lbl_8037FCB0 +lbl_8037FCA4: +/* 8037FCA4 0037B904 7F E3 FB 78 */ mr r3, r31 +/* 8037FCA8 0037B908 4B EE EA DD */ bl OSRestoreInterrupts +/* 8037FCAC 0037B90C 38 60 00 00 */ li r3, 0 +lbl_8037FCB0: +/* 8037FCB0 0037B910 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8037FCB4 0037B914 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 8037FCB8 0037B918 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 8037FCBC 0037B91C 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 8037FCC0 0037B920 83 81 00 20 */ lwz r28, 0x20(r1) +/* 8037FCC4 0037B924 7C 08 03 A6 */ mtlr r0 +/* 8037FCC8 0037B928 38 21 00 30 */ addi r1, r1, 0x30 +/* 8037FCCC 0037B92C 4E 80 00 20 */ blr + +.global GetNextTask__Q44nw4r3snd6detail11TaskManagerFv +GetNextTask__Q44nw4r3snd6detail11TaskManagerFv: +/* 8037FCD0 0037B930 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8037FCD4 0037B934 7C 08 02 A6 */ mflr r0 +/* 8037FCD8 0037B938 90 01 00 24 */ stw r0, 0x24(r1) +/* 8037FCDC 0037B93C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8037FCE0 0037B940 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8037FCE4 0037B944 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8037FCE8 0037B948 7C 7D 1B 78 */ mr r29, r3 +/* 8037FCEC 0037B94C 4B EE EA 71 */ bl OSDisableInterrupts +/* 8037FCF0 0037B950 7C 7F 1B 78 */ mr r31, r3 +/* 8037FCF4 0037B954 4B EE EA 69 */ bl OSDisableInterrupts +/* 8037FCF8 0037B958 80 1D 00 18 */ lwz r0, 0x18(r29) +/* 8037FCFC 0037B95C 2C 00 00 00 */ cmpwi r0, 0 +/* 8037FD00 0037B960 40 82 00 10 */ bne lbl_8037FD10 +/* 8037FD04 0037B964 4B EE EA 81 */ bl OSRestoreInterrupts +/* 8037FD08 0037B968 3B C0 00 00 */ li r30, 0 +/* 8037FD0C 0037B96C 48 00 00 10 */ b lbl_8037FD1C +lbl_8037FD10: +/* 8037FD10 0037B970 83 DD 00 1C */ lwz r30, 0x1c(r29) +/* 8037FD14 0037B974 4B EE EA 71 */ bl OSRestoreInterrupts +/* 8037FD18 0037B978 3B DE FF FC */ addi r30, r30, -4 +lbl_8037FD1C: +/* 8037FD1C 0037B97C 2C 1E 00 00 */ cmpwi r30, 0 +/* 8037FD20 0037B980 41 82 00 14 */ beq lbl_8037FD34 +/* 8037FD24 0037B984 7F E3 FB 78 */ mr r3, r31 +/* 8037FD28 0037B988 4B EE EA 5D */ bl OSRestoreInterrupts +/* 8037FD2C 0037B98C 7F C3 F3 78 */ mr r3, r30 +/* 8037FD30 0037B990 48 00 00 90 */ b lbl_8037FDC0 +lbl_8037FD34: +/* 8037FD34 0037B994 4B EE EA 29 */ bl OSDisableInterrupts +/* 8037FD38 0037B998 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 8037FD3C 0037B99C 2C 00 00 00 */ cmpwi r0, 0 +/* 8037FD40 0037B9A0 40 82 00 10 */ bne lbl_8037FD50 +/* 8037FD44 0037B9A4 4B EE EA 41 */ bl OSRestoreInterrupts +/* 8037FD48 0037B9A8 3B C0 00 00 */ li r30, 0 +/* 8037FD4C 0037B9AC 48 00 00 10 */ b lbl_8037FD5C +lbl_8037FD50: +/* 8037FD50 0037B9B0 83 DD 00 10 */ lwz r30, 0x10(r29) +/* 8037FD54 0037B9B4 4B EE EA 31 */ bl OSRestoreInterrupts +/* 8037FD58 0037B9B8 3B DE FF FC */ addi r30, r30, -4 +lbl_8037FD5C: +/* 8037FD5C 0037B9BC 2C 1E 00 00 */ cmpwi r30, 0 +/* 8037FD60 0037B9C0 41 82 00 14 */ beq lbl_8037FD74 +/* 8037FD64 0037B9C4 7F E3 FB 78 */ mr r3, r31 +/* 8037FD68 0037B9C8 4B EE EA 1D */ bl OSRestoreInterrupts +/* 8037FD6C 0037B9CC 7F C3 F3 78 */ mr r3, r30 +/* 8037FD70 0037B9D0 48 00 00 50 */ b lbl_8037FDC0 +lbl_8037FD74: +/* 8037FD74 0037B9D4 4B EE E9 E9 */ bl OSDisableInterrupts +/* 8037FD78 0037B9D8 80 1D 00 00 */ lwz r0, 0(r29) +/* 8037FD7C 0037B9DC 2C 00 00 00 */ cmpwi r0, 0 +/* 8037FD80 0037B9E0 40 82 00 10 */ bne lbl_8037FD90 +/* 8037FD84 0037B9E4 4B EE EA 01 */ bl OSRestoreInterrupts +/* 8037FD88 0037B9E8 3B C0 00 00 */ li r30, 0 +/* 8037FD8C 0037B9EC 48 00 00 10 */ b lbl_8037FD9C +lbl_8037FD90: +/* 8037FD90 0037B9F0 83 DD 00 04 */ lwz r30, 4(r29) +/* 8037FD94 0037B9F4 4B EE E9 F1 */ bl OSRestoreInterrupts +/* 8037FD98 0037B9F8 3B DE FF FC */ addi r30, r30, -4 +lbl_8037FD9C: +/* 8037FD9C 0037B9FC 2C 1E 00 00 */ cmpwi r30, 0 +/* 8037FDA0 0037BA00 41 82 00 14 */ beq lbl_8037FDB4 +/* 8037FDA4 0037BA04 7F E3 FB 78 */ mr r3, r31 +/* 8037FDA8 0037BA08 4B EE E9 DD */ bl OSRestoreInterrupts +/* 8037FDAC 0037BA0C 7F C3 F3 78 */ mr r3, r30 +/* 8037FDB0 0037BA10 48 00 00 10 */ b lbl_8037FDC0 +lbl_8037FDB4: +/* 8037FDB4 0037BA14 7F E3 FB 78 */ mr r3, r31 +/* 8037FDB8 0037BA18 4B EE E9 CD */ bl OSRestoreInterrupts +/* 8037FDBC 0037BA1C 38 60 00 00 */ li r3, 0 +lbl_8037FDC0: +/* 8037FDC0 0037BA20 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8037FDC4 0037BA24 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8037FDC8 0037BA28 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8037FDCC 0037BA2C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8037FDD0 0037BA30 7C 08 03 A6 */ mtlr r0 +/* 8037FDD4 0037BA34 38 21 00 20 */ addi r1, r1, 0x20 +/* 8037FDD8 0037BA38 4E 80 00 20 */ blr + +.global ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv +ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv: +/* 8037FDDC 0037BA3C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8037FDE0 0037BA40 7C 08 02 A6 */ mflr r0 +/* 8037FDE4 0037BA44 90 01 00 24 */ stw r0, 0x24(r1) +/* 8037FDE8 0037BA48 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8037FDEC 0037BA4C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8037FDF0 0037BA50 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8037FDF4 0037BA54 7C 7D 1B 78 */ mr r29, r3 +/* 8037FDF8 0037BA58 4B FF FD 7D */ bl PopTask__Q44nw4r3snd6detail11TaskManagerFv +/* 8037FDFC 0037BA5C 2C 03 00 00 */ cmpwi r3, 0 +/* 8037FE00 0037BA60 7C 7E 1B 78 */ mr r30, r3 +/* 8037FE04 0037BA64 40 82 00 0C */ bne lbl_8037FE10 +/* 8037FE08 0037BA68 38 60 00 00 */ li r3, 0 +/* 8037FE0C 0037BA6C 48 00 00 30 */ b lbl_8037FE3C +lbl_8037FE10: +/* 8037FE10 0037BA70 90 7D 00 24 */ stw r3, 0x24(r29) +/* 8037FE14 0037BA74 3B E0 00 00 */ li r31, 0 +/* 8037FE18 0037BA78 9B E3 00 0C */ stb r31, 0xc(r3) +/* 8037FE1C 0037BA7C 81 83 00 00 */ lwz r12, 0(r3) +/* 8037FE20 0037BA80 81 8C 00 0C */ lwz r12, 0xc(r12) +/* 8037FE24 0037BA84 7D 89 03 A6 */ mtctr r12 +/* 8037FE28 0037BA88 4E 80 04 21 */ bctrl +/* 8037FE2C 0037BA8C 93 FD 00 24 */ stw r31, 0x24(r29) +/* 8037FE30 0037BA90 38 7D 00 34 */ addi r3, r29, 0x34 +/* 8037FE34 0037BA94 4B EF 26 2D */ bl func_80272460 +/* 8037FE38 0037BA98 7F C3 F3 78 */ mr r3, r30 +lbl_8037FE3C: +/* 8037FE3C 0037BA9C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8037FE40 0037BAA0 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8037FE44 0037BAA4 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8037FE48 0037BAA8 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8037FE4C 0037BAAC 7C 08 03 A6 */ mtlr r0 +/* 8037FE50 0037BAB0 38 21 00 20 */ addi r1, r1, 0x20 +/* 8037FE54 0037BAB4 4E 80 00 20 */ blr + +.global CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task +CancelTask__Q44nw4r3snd6detail11TaskManagerFPQ44nw4r3snd6detail4Task: +/* 8037FE58 0037BAB8 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8037FE5C 0037BABC 7C 08 02 A6 */ mflr r0 +/* 8037FE60 0037BAC0 90 01 00 34 */ stw r0, 0x34(r1) +/* 8037FE64 0037BAC4 39 61 00 30 */ addi r11, r1, 0x30 +/* 8037FE68 0037BAC8 4B E4 72 B9 */ bl _savegpr_25 +/* 8037FE6C 0037BACC 7C 79 1B 78 */ mr r25, r3 +/* 8037FE70 0037BAD0 7C 9A 23 78 */ mr r26, r4 +/* 8037FE74 0037BAD4 4B EE E8 E9 */ bl OSDisableInterrupts +/* 8037FE78 0037BAD8 80 19 00 24 */ lwz r0, 0x24(r25) +/* 8037FE7C 0037BADC 7C 7E 1B 78 */ mr r30, r3 +/* 8037FE80 0037BAE0 7C 1A 00 40 */ cmplw r26, r0 +/* 8037FE84 0037BAE4 40 82 00 34 */ bne lbl_8037FEB8 +/* 8037FE88 0037BAE8 81 9A 00 00 */ lwz r12, 0(r26) +/* 8037FE8C 0037BAEC 7F 43 D3 78 */ mr r3, r26 +/* 8037FE90 0037BAF0 81 8C 00 14 */ lwz r12, 0x14(r12) +/* 8037FE94 0037BAF4 7D 89 03 A6 */ mtctr r12 +/* 8037FE98 0037BAF8 4E 80 04 21 */ bctrl +/* 8037FE9C 0037BAFC 48 00 00 0C */ b lbl_8037FEA8 +lbl_8037FEA0: +/* 8037FEA0 0037BB00 38 79 00 34 */ addi r3, r25, 0x34 +/* 8037FEA4 0037BB04 4B EF 24 D1 */ bl func_80272374 +lbl_8037FEA8: +/* 8037FEA8 0037BB08 80 19 00 24 */ lwz r0, 0x24(r25) +/* 8037FEAC 0037BB0C 7C 1A 00 40 */ cmplw r26, r0 +/* 8037FEB0 0037BB10 41 82 FF F0 */ beq lbl_8037FEA0 +/* 8037FEB4 0037BB14 48 00 00 74 */ b lbl_8037FF28 +lbl_8037FEB8: +/* 8037FEB8 0037BB18 3B 60 00 00 */ li r27, 0 +/* 8037FEBC 0037BB1C 3B E0 00 00 */ li r31, 0 +/* 8037FEC0 0037BB20 3B A0 00 00 */ li r29, 0 +lbl_8037FEC4: +/* 8037FEC4 0037BB24 7C 79 FA 14 */ add r3, r25, r31 +/* 8037FEC8 0037BB28 80 83 00 04 */ lwz r4, 4(r3) +/* 8037FECC 0037BB2C 38 03 00 04 */ addi r0, r3, 4 +/* 8037FED0 0037BB30 48 00 00 40 */ b lbl_8037FF10 +lbl_8037FED4: +/* 8037FED4 0037BB34 7C 9C 23 78 */ mr r28, r4 +/* 8037FED8 0037BB38 80 84 00 00 */ lwz r4, 0(r4) +/* 8037FEDC 0037BB3C 38 BC FF FC */ addi r5, r28, -4 +/* 8037FEE0 0037BB40 7C 05 D0 40 */ cmplw r5, r26 +/* 8037FEE4 0037BB44 40 82 00 2C */ bne lbl_8037FF10 +/* 8037FEE8 0037BB48 93 81 00 08 */ stw r28, 8(r1) +/* 8037FEEC 0037BB4C 38 81 00 08 */ addi r4, r1, 8 +/* 8037FEF0 0037BB50 4B FE 2C CD */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator +/* 8037FEF4 0037BB54 9B BC 00 08 */ stb r29, 8(r28) +/* 8037FEF8 0037BB58 38 7C FF FC */ addi r3, r28, -4 +/* 8037FEFC 0037BB5C 81 9C FF FC */ lwz r12, -4(r28) +/* 8037FF00 0037BB60 81 8C 00 10 */ lwz r12, 0x10(r12) +/* 8037FF04 0037BB64 7D 89 03 A6 */ mtctr r12 +/* 8037FF08 0037BB68 4E 80 04 21 */ bctrl +/* 8037FF0C 0037BB6C 48 00 00 0C */ b lbl_8037FF18 +lbl_8037FF10: +/* 8037FF10 0037BB70 7C 04 00 40 */ cmplw r4, r0 +/* 8037FF14 0037BB74 40 82 FF C0 */ bne lbl_8037FED4 +lbl_8037FF18: +/* 8037FF18 0037BB78 3B 7B 00 01 */ addi r27, r27, 1 +/* 8037FF1C 0037BB7C 3B FF 00 0C */ addi r31, r31, 0xc +/* 8037FF20 0037BB80 2C 1B 00 03 */ cmpwi r27, 3 +/* 8037FF24 0037BB84 41 80 FF A0 */ blt lbl_8037FEC4 +lbl_8037FF28: +/* 8037FF28 0037BB88 7F C3 F3 78 */ mr r3, r30 +/* 8037FF2C 0037BB8C 4B EE E8 59 */ bl OSRestoreInterrupts +/* 8037FF30 0037BB90 39 61 00 30 */ addi r11, r1, 0x30 +/* 8037FF34 0037BB94 4B E4 72 39 */ bl _restgpr_25 +/* 8037FF38 0037BB98 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8037FF3C 0037BB9C 7C 08 03 A6 */ mtlr r0 +/* 8037FF40 0037BBA0 38 21 00 30 */ addi r1, r1, 0x30 +/* 8037FF44 0037BBA4 4E 80 00 20 */ blr + +.global WaitTask__Q44nw4r3snd6detail11TaskManagerFv +WaitTask__Q44nw4r3snd6detail11TaskManagerFv: +/* 8037FF48 0037BBA8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037FF4C 0037BBAC 7C 08 02 A6 */ mflr r0 +/* 8037FF50 0037BBB0 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037FF54 0037BBB4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037FF58 0037BBB8 93 C1 00 08 */ stw r30, 8(r1) +/* 8037FF5C 0037BBBC 7C 7E 1B 78 */ mr r30, r3 +/* 8037FF60 0037BBC0 4B EE E7 FD */ bl OSDisableInterrupts +/* 8037FF64 0037BBC4 38 00 00 00 */ li r0, 0 +/* 8037FF68 0037BBC8 7C 7F 1B 78 */ mr r31, r3 +/* 8037FF6C 0037BBCC 98 1E 00 28 */ stb r0, 0x28(r30) +/* 8037FF70 0037BBD0 48 00 00 0C */ b lbl_8037FF7C +lbl_8037FF74: +/* 8037FF74 0037BBD4 38 7E 00 2C */ addi r3, r30, 0x2c +/* 8037FF78 0037BBD8 4B EF 23 FD */ bl func_80272374 +lbl_8037FF7C: +/* 8037FF7C 0037BBDC 7F C3 F3 78 */ mr r3, r30 +/* 8037FF80 0037BBE0 4B FF FD 51 */ bl GetNextTask__Q44nw4r3snd6detail11TaskManagerFv +/* 8037FF84 0037BBE4 2C 03 00 00 */ cmpwi r3, 0 +/* 8037FF88 0037BBE8 40 82 00 10 */ bne lbl_8037FF98 +/* 8037FF8C 0037BBEC 88 1E 00 28 */ lbz r0, 0x28(r30) +/* 8037FF90 0037BBF0 2C 00 00 00 */ cmpwi r0, 0 +/* 8037FF94 0037BBF4 41 82 FF E0 */ beq lbl_8037FF74 +lbl_8037FF98: +/* 8037FF98 0037BBF8 7F E3 FB 78 */ mr r3, r31 +/* 8037FF9C 0037BBFC 4B EE E7 E9 */ bl OSRestoreInterrupts +/* 8037FFA0 0037BC00 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037FFA4 0037BC04 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037FFA8 0037BC08 83 C1 00 08 */ lwz r30, 8(r1) +/* 8037FFAC 0037BC0C 7C 08 03 A6 */ mtlr r0 +/* 8037FFB0 0037BC10 38 21 00 10 */ addi r1, r1, 0x10 +/* 8037FFB4 0037BC14 4E 80 00 20 */ blr + +.global CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv +CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv: +/* 8037FFB8 0037BC18 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8037FFBC 0037BC1C 7C 08 02 A6 */ mflr r0 +/* 8037FFC0 0037BC20 90 01 00 14 */ stw r0, 0x14(r1) +/* 8037FFC4 0037BC24 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8037FFC8 0037BC28 93 C1 00 08 */ stw r30, 8(r1) +/* 8037FFCC 0037BC2C 7C 7E 1B 78 */ mr r30, r3 +/* 8037FFD0 0037BC30 4B EE E7 8D */ bl OSDisableInterrupts +/* 8037FFD4 0037BC34 38 00 00 01 */ li r0, 1 +/* 8037FFD8 0037BC38 7C 7F 1B 78 */ mr r31, r3 +/* 8037FFDC 0037BC3C 98 1E 00 28 */ stb r0, 0x28(r30) +/* 8037FFE0 0037BC40 38 7E 00 2C */ addi r3, r30, 0x2c +/* 8037FFE4 0037BC44 4B EF 24 7D */ bl func_80272460 +/* 8037FFE8 0037BC48 7F E3 FB 78 */ mr r3, r31 +/* 8037FFEC 0037BC4C 4B EE E7 99 */ bl OSRestoreInterrupts +/* 8037FFF0 0037BC50 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8037FFF4 0037BC54 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8037FFF8 0037BC58 83 C1 00 08 */ lwz r30, 8(r1) +/* 8037FFFC 0037BC5C 7C 08 03 A6 */ mtlr r0 +/* 80380000 0037BC60 38 21 00 10 */ addi r1, r1, 0x10 +/* 80380004 0037BC64 4E 80 00 20 */ blr diff --git a/asm/text_10_6.s b/asm/text_10_6.s index d211d9b..0607a75 100644 --- a/asm/text_10_6.s +++ b/asm/text_10_6.s @@ -2,507 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_8037F940 -func_8037F940: -/* 8037F940 0037B5A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037F944 0037B5A4 7C 08 02 A6 */ mflr r0 -/* 8037F948 0037B5A8 2C 03 00 00 */ cmpwi r3, 0 -/* 8037F94C 0037B5AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037F950 0037B5B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037F954 0037B5B4 7C 7F 1B 78 */ mr r31, r3 -/* 8037F958 0037B5B8 41 82 00 10 */ beq lbl_8037F968 -/* 8037F95C 0037B5BC 2C 04 00 00 */ cmpwi r4, 0 -/* 8037F960 0037B5C0 40 81 00 08 */ ble lbl_8037F968 -/* 8037F964 0037B5C4 4B E5 B1 55 */ bl func_801DAAB8 -lbl_8037F968: -/* 8037F968 0037B5C8 7F E3 FB 78 */ mr r3, r31 -/* 8037F96C 0037B5CC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037F970 0037B5D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037F974 0037B5D4 7C 08 03 A6 */ mtlr r0 -/* 8037F978 0037B5D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037F97C 0037B5DC 4E 80 00 20 */ blr - -.global func_8037F980 -func_8037F980: -/* 8037F980 0037B5E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037F984 0037B5E4 7C 08 02 A6 */ mflr r0 -/* 8037F988 0037B5E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037F98C 0037B5EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037F990 0037B5F0 88 0D B2 90 */ lbz r0, lbl_80640550-_SDA_BASE_(r13) -/* 8037F994 0037B5F4 7C 00 07 75 */ extsb. r0, r0 -/* 8037F998 0037B5F8 40 82 00 68 */ bne lbl_8037FA00 -/* 8037F99C 0037B5FC 3F E0 80 64 */ lis r31, lbl_8063CDA4@ha -/* 8037F9A0 0037B600 3C 80 80 38 */ lis r4, lbl_8037FAD8@ha -/* 8037F9A4 0037B604 3B FF CD A4 */ addi r31, r31, lbl_8063CDA4@l -/* 8037F9A8 0037B608 3C A0 80 38 */ lis r5, lbl_8037FA80@ha -/* 8037F9AC 0037B60C 7F E3 FB 78 */ mr r3, r31 -/* 8037F9B0 0037B610 38 84 FA D8 */ addi r4, r4, lbl_8037FAD8@l -/* 8037F9B4 0037B614 38 A5 FA 80 */ addi r5, r5, lbl_8037FA80@l -/* 8037F9B8 0037B618 38 C0 00 0C */ li r6, 0xc -/* 8037F9BC 0037B61C 38 E0 00 03 */ li r7, 3 -/* 8037F9C0 0037B620 4B E4 74 A9 */ bl __construct_array -/* 8037F9C4 0037B624 38 00 00 00 */ li r0, 0 -/* 8037F9C8 0037B628 38 7F 00 2C */ addi r3, r31, 0x2c -/* 8037F9CC 0037B62C 90 1F 00 24 */ stw r0, 0x24(r31) -/* 8037F9D0 0037B630 98 1F 00 28 */ stb r0, 0x28(r31) -/* 8037F9D4 0037B634 4B EF 19 15 */ bl func_802712E8 -/* 8037F9D8 0037B638 38 7F 00 34 */ addi r3, r31, 0x34 -/* 8037F9DC 0037B63C 4B EF 19 0D */ bl func_802712E8 -/* 8037F9E0 0037B640 3C 80 80 38 */ lis r4, lbl_8037FA1C@ha -/* 8037F9E4 0037B644 3C A0 80 64 */ lis r5, lbl_8063CD98@ha -/* 8037F9E8 0037B648 7F E3 FB 78 */ mr r3, r31 -/* 8037F9EC 0037B64C 38 84 FA 1C */ addi r4, r4, lbl_8037FA1C@l -/* 8037F9F0 0037B650 38 A5 CD 98 */ addi r5, r5, lbl_8063CD98@l -/* 8037F9F4 0037B654 4B E4 72 55 */ bl __register_global_object_tmp -/* 8037F9F8 0037B658 38 00 00 01 */ li r0, 1 -/* 8037F9FC 0037B65C 98 0D B2 90 */ stb r0, lbl_80640550-_SDA_BASE_(r13) -lbl_8037FA00: -/* 8037FA00 0037B660 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037FA04 0037B664 3C 60 80 64 */ lis r3, lbl_8063CDA4@ha -/* 8037FA08 0037B668 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037FA0C 0037B66C 38 63 CD A4 */ addi r3, r3, lbl_8063CDA4@l -/* 8037FA10 0037B670 7C 08 03 A6 */ mtlr r0 -/* 8037FA14 0037B674 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037FA18 0037B678 4E 80 00 20 */ blr -lbl_8037FA1C: -/* 8037FA1C 0037B67C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037FA20 0037B680 7C 08 02 A6 */ mflr r0 -/* 8037FA24 0037B684 2C 03 00 00 */ cmpwi r3, 0 -/* 8037FA28 0037B688 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037FA2C 0037B68C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037FA30 0037B690 7C 9F 23 78 */ mr r31, r4 -/* 8037FA34 0037B694 93 C1 00 08 */ stw r30, 8(r1) -/* 8037FA38 0037B698 7C 7E 1B 78 */ mr r30, r3 -/* 8037FA3C 0037B69C 41 82 00 28 */ beq lbl_8037FA64 -/* 8037FA40 0037B6A0 3C 80 80 38 */ lis r4, lbl_8037FA80@ha -/* 8037FA44 0037B6A4 38 A0 00 0C */ li r5, 0xc -/* 8037FA48 0037B6A8 38 84 FA 80 */ addi r4, r4, lbl_8037FA80@l -/* 8037FA4C 0037B6AC 38 C0 00 03 */ li r6, 3 -/* 8037FA50 0037B6B0 4B E4 75 11 */ bl __destroy_arr -/* 8037FA54 0037B6B4 2C 1F 00 00 */ cmpwi r31, 0 -/* 8037FA58 0037B6B8 40 81 00 0C */ ble lbl_8037FA64 -/* 8037FA5C 0037B6BC 7F C3 F3 78 */ mr r3, r30 -/* 8037FA60 0037B6C0 4B E5 B0 59 */ bl func_801DAAB8 -lbl_8037FA64: -/* 8037FA64 0037B6C4 7F C3 F3 78 */ mr r3, r30 -/* 8037FA68 0037B6C8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037FA6C 0037B6CC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8037FA70 0037B6D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037FA74 0037B6D4 7C 08 03 A6 */ mtlr r0 -/* 8037FA78 0037B6D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037FA7C 0037B6DC 4E 80 00 20 */ blr -lbl_8037FA80: -/* 8037FA80 0037B6E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037FA84 0037B6E4 7C 08 02 A6 */ mflr r0 -/* 8037FA88 0037B6E8 2C 03 00 00 */ cmpwi r3, 0 -/* 8037FA8C 0037B6EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037FA90 0037B6F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037FA94 0037B6F4 7C 9F 23 78 */ mr r31, r4 -/* 8037FA98 0037B6F8 93 C1 00 08 */ stw r30, 8(r1) -/* 8037FA9C 0037B6FC 7C 7E 1B 78 */ mr r30, r3 -/* 8037FAA0 0037B700 41 82 00 1C */ beq lbl_8037FABC -/* 8037FAA4 0037B704 38 80 00 00 */ li r4, 0 -/* 8037FAA8 0037B708 4B FE 30 91 */ bl __dt__Q44nw4r2ut6detail12LinkListImplFv -/* 8037FAAC 0037B70C 2C 1F 00 00 */ cmpwi r31, 0 -/* 8037FAB0 0037B710 40 81 00 0C */ ble lbl_8037FABC -/* 8037FAB4 0037B714 7F C3 F3 78 */ mr r3, r30 -/* 8037FAB8 0037B718 4B E5 B0 01 */ bl func_801DAAB8 -lbl_8037FABC: -/* 8037FABC 0037B71C 7F C3 F3 78 */ mr r3, r30 -/* 8037FAC0 0037B720 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037FAC4 0037B724 83 C1 00 08 */ lwz r30, 8(r1) -/* 8037FAC8 0037B728 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037FACC 0037B72C 7C 08 03 A6 */ mtlr r0 -/* 8037FAD0 0037B730 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037FAD4 0037B734 4E 80 00 20 */ blr -lbl_8037FAD8: -/* 8037FAD8 0037B738 38 00 00 00 */ li r0, 0 -/* 8037FADC 0037B73C 38 83 00 04 */ addi r4, r3, 4 -/* 8037FAE0 0037B740 90 03 00 04 */ stw r0, 4(r3) -/* 8037FAE4 0037B744 90 03 00 08 */ stw r0, 8(r3) -/* 8037FAE8 0037B748 90 03 00 00 */ stw r0, 0(r3) -/* 8037FAEC 0037B74C 90 83 00 04 */ stw r4, 4(r3) -/* 8037FAF0 0037B750 90 83 00 08 */ stw r4, 8(r3) -/* 8037FAF4 0037B754 4E 80 00 20 */ blr - -.global func_8037FAF8 -func_8037FAF8: -/* 8037FAF8 0037B758 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8037FAFC 0037B75C 7C 08 02 A6 */ mflr r0 -/* 8037FB00 0037B760 90 01 00 24 */ stw r0, 0x24(r1) -/* 8037FB04 0037B764 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8037FB08 0037B768 7C BF 2B 78 */ mr r31, r5 -/* 8037FB0C 0037B76C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8037FB10 0037B770 7C 9E 23 78 */ mr r30, r4 -/* 8037FB14 0037B774 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8037FB18 0037B778 7C 7D 1B 78 */ mr r29, r3 -/* 8037FB1C 0037B77C 4B EE EC 41 */ bl OSDisableInterrupts -/* 8037FB20 0037B780 1C 1F 00 0C */ mulli r0, r31, 0xc -/* 8037FB24 0037B784 38 80 00 01 */ li r4, 1 -/* 8037FB28 0037B788 98 9E 00 0C */ stb r4, 0xc(r30) -/* 8037FB2C 0037B78C 7C 7F 1B 78 */ mr r31, r3 -/* 8037FB30 0037B790 38 81 00 08 */ addi r4, r1, 8 -/* 8037FB34 0037B794 7C 7D 02 14 */ add r3, r29, r0 -/* 8037FB38 0037B798 38 03 00 04 */ addi r0, r3, 4 -/* 8037FB3C 0037B79C 38 BE 00 04 */ addi r5, r30, 4 -/* 8037FB40 0037B7A0 90 01 00 08 */ stw r0, 8(r1) -/* 8037FB44 0037B7A4 4B FE 31 05 */ bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode -/* 8037FB48 0037B7A8 38 7D 00 2C */ addi r3, r29, 0x2c -/* 8037FB4C 0037B7AC 4B EF 29 15 */ bl func_80272460 -/* 8037FB50 0037B7B0 7F E3 FB 78 */ mr r3, r31 -/* 8037FB54 0037B7B4 4B EE EC 31 */ bl OSRestoreInterrupts -/* 8037FB58 0037B7B8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8037FB5C 0037B7BC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8037FB60 0037B7C0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8037FB64 0037B7C4 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8037FB68 0037B7C8 7C 08 03 A6 */ mtlr r0 -/* 8037FB6C 0037B7CC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8037FB70 0037B7D0 4E 80 00 20 */ blr - -.global func_8037FB74 -func_8037FB74: -/* 8037FB74 0037B7D4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8037FB78 0037B7D8 7C 08 02 A6 */ mflr r0 -/* 8037FB7C 0037B7DC 90 01 00 34 */ stw r0, 0x34(r1) -/* 8037FB80 0037B7E0 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8037FB84 0037B7E4 93 C1 00 28 */ stw r30, 0x28(r1) -/* 8037FB88 0037B7E8 93 A1 00 24 */ stw r29, 0x24(r1) -/* 8037FB8C 0037B7EC 93 81 00 20 */ stw r28, 0x20(r1) -/* 8037FB90 0037B7F0 7C 7C 1B 78 */ mr r28, r3 -/* 8037FB94 0037B7F4 4B EE EB C9 */ bl OSDisableInterrupts -/* 8037FB98 0037B7F8 7C 7F 1B 78 */ mr r31, r3 -/* 8037FB9C 0037B7FC 4B EE EB C1 */ bl OSDisableInterrupts -/* 8037FBA0 0037B800 80 1C 00 18 */ lwz r0, 0x18(r28) -/* 8037FBA4 0037B804 7C 7E 1B 78 */ mr r30, r3 -/* 8037FBA8 0037B808 2C 00 00 00 */ cmpwi r0, 0 -/* 8037FBAC 0037B80C 40 82 00 10 */ bne lbl_8037FBBC -/* 8037FBB0 0037B810 4B EE EB D5 */ bl OSRestoreInterrupts -/* 8037FBB4 0037B814 3B C0 00 00 */ li r30, 0 -/* 8037FBB8 0037B818 48 00 00 24 */ b lbl_8037FBDC -lbl_8037FBBC: -/* 8037FBBC 0037B81C 83 BC 00 1C */ lwz r29, 0x1c(r28) -/* 8037FBC0 0037B820 38 7C 00 18 */ addi r3, r28, 0x18 -/* 8037FBC4 0037B824 38 81 00 10 */ addi r4, r1, 0x10 -/* 8037FBC8 0037B828 93 A1 00 10 */ stw r29, 0x10(r1) -/* 8037FBCC 0037B82C 4B FE 2F F1 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator -/* 8037FBD0 0037B830 7F C3 F3 78 */ mr r3, r30 -/* 8037FBD4 0037B834 4B EE EB B1 */ bl OSRestoreInterrupts -/* 8037FBD8 0037B838 3B DD FF FC */ addi r30, r29, -4 -lbl_8037FBDC: -/* 8037FBDC 0037B83C 2C 1E 00 00 */ cmpwi r30, 0 -/* 8037FBE0 0037B840 41 82 00 14 */ beq lbl_8037FBF4 -/* 8037FBE4 0037B844 7F E3 FB 78 */ mr r3, r31 -/* 8037FBE8 0037B848 4B EE EB 9D */ bl OSRestoreInterrupts -/* 8037FBEC 0037B84C 7F C3 F3 78 */ mr r3, r30 -/* 8037FBF0 0037B850 48 00 00 C0 */ b lbl_8037FCB0 -lbl_8037FBF4: -/* 8037FBF4 0037B854 4B EE EB 69 */ bl OSDisableInterrupts -/* 8037FBF8 0037B858 80 1C 00 0C */ lwz r0, 0xc(r28) -/* 8037FBFC 0037B85C 7C 7E 1B 78 */ mr r30, r3 -/* 8037FC00 0037B860 2C 00 00 00 */ cmpwi r0, 0 -/* 8037FC04 0037B864 40 82 00 10 */ bne lbl_8037FC14 -/* 8037FC08 0037B868 4B EE EB 7D */ bl OSRestoreInterrupts -/* 8037FC0C 0037B86C 3B C0 00 00 */ li r30, 0 -/* 8037FC10 0037B870 48 00 00 24 */ b lbl_8037FC34 -lbl_8037FC14: -/* 8037FC14 0037B874 83 BC 00 10 */ lwz r29, 0x10(r28) -/* 8037FC18 0037B878 38 7C 00 0C */ addi r3, r28, 0xc -/* 8037FC1C 0037B87C 38 81 00 0C */ addi r4, r1, 0xc -/* 8037FC20 0037B880 93 A1 00 0C */ stw r29, 0xc(r1) -/* 8037FC24 0037B884 4B FE 2F 99 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator -/* 8037FC28 0037B888 7F C3 F3 78 */ mr r3, r30 -/* 8037FC2C 0037B88C 4B EE EB 59 */ bl OSRestoreInterrupts -/* 8037FC30 0037B890 3B DD FF FC */ addi r30, r29, -4 -lbl_8037FC34: -/* 8037FC34 0037B894 2C 1E 00 00 */ cmpwi r30, 0 -/* 8037FC38 0037B898 41 82 00 14 */ beq lbl_8037FC4C -/* 8037FC3C 0037B89C 7F E3 FB 78 */ mr r3, r31 -/* 8037FC40 0037B8A0 4B EE EB 45 */ bl OSRestoreInterrupts -/* 8037FC44 0037B8A4 7F C3 F3 78 */ mr r3, r30 -/* 8037FC48 0037B8A8 48 00 00 68 */ b lbl_8037FCB0 -lbl_8037FC4C: -/* 8037FC4C 0037B8AC 4B EE EB 11 */ bl OSDisableInterrupts -/* 8037FC50 0037B8B0 80 1C 00 00 */ lwz r0, 0(r28) -/* 8037FC54 0037B8B4 7C 7E 1B 78 */ mr r30, r3 -/* 8037FC58 0037B8B8 2C 00 00 00 */ cmpwi r0, 0 -/* 8037FC5C 0037B8BC 40 82 00 10 */ bne lbl_8037FC6C -/* 8037FC60 0037B8C0 4B EE EB 25 */ bl OSRestoreInterrupts -/* 8037FC64 0037B8C4 3B C0 00 00 */ li r30, 0 -/* 8037FC68 0037B8C8 48 00 00 24 */ b lbl_8037FC8C -lbl_8037FC6C: -/* 8037FC6C 0037B8CC 83 BC 00 04 */ lwz r29, 4(r28) -/* 8037FC70 0037B8D0 7F 83 E3 78 */ mr r3, r28 -/* 8037FC74 0037B8D4 38 81 00 08 */ addi r4, r1, 8 -/* 8037FC78 0037B8D8 93 A1 00 08 */ stw r29, 8(r1) -/* 8037FC7C 0037B8DC 4B FE 2F 41 */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator -/* 8037FC80 0037B8E0 7F C3 F3 78 */ mr r3, r30 -/* 8037FC84 0037B8E4 4B EE EB 01 */ bl OSRestoreInterrupts -/* 8037FC88 0037B8E8 3B DD FF FC */ addi r30, r29, -4 -lbl_8037FC8C: -/* 8037FC8C 0037B8EC 2C 1E 00 00 */ cmpwi r30, 0 -/* 8037FC90 0037B8F0 41 82 00 14 */ beq lbl_8037FCA4 -/* 8037FC94 0037B8F4 7F E3 FB 78 */ mr r3, r31 -/* 8037FC98 0037B8F8 4B EE EA ED */ bl OSRestoreInterrupts -/* 8037FC9C 0037B8FC 7F C3 F3 78 */ mr r3, r30 -/* 8037FCA0 0037B900 48 00 00 10 */ b lbl_8037FCB0 -lbl_8037FCA4: -/* 8037FCA4 0037B904 7F E3 FB 78 */ mr r3, r31 -/* 8037FCA8 0037B908 4B EE EA DD */ bl OSRestoreInterrupts -/* 8037FCAC 0037B90C 38 60 00 00 */ li r3, 0 -lbl_8037FCB0: -/* 8037FCB0 0037B910 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8037FCB4 0037B914 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8037FCB8 0037B918 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8037FCBC 0037B91C 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 8037FCC0 0037B920 83 81 00 20 */ lwz r28, 0x20(r1) -/* 8037FCC4 0037B924 7C 08 03 A6 */ mtlr r0 -/* 8037FCC8 0037B928 38 21 00 30 */ addi r1, r1, 0x30 -/* 8037FCCC 0037B92C 4E 80 00 20 */ blr - -.global func_8037FCD0 -func_8037FCD0: -/* 8037FCD0 0037B930 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8037FCD4 0037B934 7C 08 02 A6 */ mflr r0 -/* 8037FCD8 0037B938 90 01 00 24 */ stw r0, 0x24(r1) -/* 8037FCDC 0037B93C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8037FCE0 0037B940 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8037FCE4 0037B944 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8037FCE8 0037B948 7C 7D 1B 78 */ mr r29, r3 -/* 8037FCEC 0037B94C 4B EE EA 71 */ bl OSDisableInterrupts -/* 8037FCF0 0037B950 7C 7F 1B 78 */ mr r31, r3 -/* 8037FCF4 0037B954 4B EE EA 69 */ bl OSDisableInterrupts -/* 8037FCF8 0037B958 80 1D 00 18 */ lwz r0, 0x18(r29) -/* 8037FCFC 0037B95C 2C 00 00 00 */ cmpwi r0, 0 -/* 8037FD00 0037B960 40 82 00 10 */ bne lbl_8037FD10 -/* 8037FD04 0037B964 4B EE EA 81 */ bl OSRestoreInterrupts -/* 8037FD08 0037B968 3B C0 00 00 */ li r30, 0 -/* 8037FD0C 0037B96C 48 00 00 10 */ b lbl_8037FD1C -lbl_8037FD10: -/* 8037FD10 0037B970 83 DD 00 1C */ lwz r30, 0x1c(r29) -/* 8037FD14 0037B974 4B EE EA 71 */ bl OSRestoreInterrupts -/* 8037FD18 0037B978 3B DE FF FC */ addi r30, r30, -4 -lbl_8037FD1C: -/* 8037FD1C 0037B97C 2C 1E 00 00 */ cmpwi r30, 0 -/* 8037FD20 0037B980 41 82 00 14 */ beq lbl_8037FD34 -/* 8037FD24 0037B984 7F E3 FB 78 */ mr r3, r31 -/* 8037FD28 0037B988 4B EE EA 5D */ bl OSRestoreInterrupts -/* 8037FD2C 0037B98C 7F C3 F3 78 */ mr r3, r30 -/* 8037FD30 0037B990 48 00 00 90 */ b lbl_8037FDC0 -lbl_8037FD34: -/* 8037FD34 0037B994 4B EE EA 29 */ bl OSDisableInterrupts -/* 8037FD38 0037B998 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 8037FD3C 0037B99C 2C 00 00 00 */ cmpwi r0, 0 -/* 8037FD40 0037B9A0 40 82 00 10 */ bne lbl_8037FD50 -/* 8037FD44 0037B9A4 4B EE EA 41 */ bl OSRestoreInterrupts -/* 8037FD48 0037B9A8 3B C0 00 00 */ li r30, 0 -/* 8037FD4C 0037B9AC 48 00 00 10 */ b lbl_8037FD5C -lbl_8037FD50: -/* 8037FD50 0037B9B0 83 DD 00 10 */ lwz r30, 0x10(r29) -/* 8037FD54 0037B9B4 4B EE EA 31 */ bl OSRestoreInterrupts -/* 8037FD58 0037B9B8 3B DE FF FC */ addi r30, r30, -4 -lbl_8037FD5C: -/* 8037FD5C 0037B9BC 2C 1E 00 00 */ cmpwi r30, 0 -/* 8037FD60 0037B9C0 41 82 00 14 */ beq lbl_8037FD74 -/* 8037FD64 0037B9C4 7F E3 FB 78 */ mr r3, r31 -/* 8037FD68 0037B9C8 4B EE EA 1D */ bl OSRestoreInterrupts -/* 8037FD6C 0037B9CC 7F C3 F3 78 */ mr r3, r30 -/* 8037FD70 0037B9D0 48 00 00 50 */ b lbl_8037FDC0 -lbl_8037FD74: -/* 8037FD74 0037B9D4 4B EE E9 E9 */ bl OSDisableInterrupts -/* 8037FD78 0037B9D8 80 1D 00 00 */ lwz r0, 0(r29) -/* 8037FD7C 0037B9DC 2C 00 00 00 */ cmpwi r0, 0 -/* 8037FD80 0037B9E0 40 82 00 10 */ bne lbl_8037FD90 -/* 8037FD84 0037B9E4 4B EE EA 01 */ bl OSRestoreInterrupts -/* 8037FD88 0037B9E8 3B C0 00 00 */ li r30, 0 -/* 8037FD8C 0037B9EC 48 00 00 10 */ b lbl_8037FD9C -lbl_8037FD90: -/* 8037FD90 0037B9F0 83 DD 00 04 */ lwz r30, 4(r29) -/* 8037FD94 0037B9F4 4B EE E9 F1 */ bl OSRestoreInterrupts -/* 8037FD98 0037B9F8 3B DE FF FC */ addi r30, r30, -4 -lbl_8037FD9C: -/* 8037FD9C 0037B9FC 2C 1E 00 00 */ cmpwi r30, 0 -/* 8037FDA0 0037BA00 41 82 00 14 */ beq lbl_8037FDB4 -/* 8037FDA4 0037BA04 7F E3 FB 78 */ mr r3, r31 -/* 8037FDA8 0037BA08 4B EE E9 DD */ bl OSRestoreInterrupts -/* 8037FDAC 0037BA0C 7F C3 F3 78 */ mr r3, r30 -/* 8037FDB0 0037BA10 48 00 00 10 */ b lbl_8037FDC0 -lbl_8037FDB4: -/* 8037FDB4 0037BA14 7F E3 FB 78 */ mr r3, r31 -/* 8037FDB8 0037BA18 4B EE E9 CD */ bl OSRestoreInterrupts -/* 8037FDBC 0037BA1C 38 60 00 00 */ li r3, 0 -lbl_8037FDC0: -/* 8037FDC0 0037BA20 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8037FDC4 0037BA24 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8037FDC8 0037BA28 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8037FDCC 0037BA2C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8037FDD0 0037BA30 7C 08 03 A6 */ mtlr r0 -/* 8037FDD4 0037BA34 38 21 00 20 */ addi r1, r1, 0x20 -/* 8037FDD8 0037BA38 4E 80 00 20 */ blr - -.global func_8037FDDC -func_8037FDDC: -/* 8037FDDC 0037BA3C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8037FDE0 0037BA40 7C 08 02 A6 */ mflr r0 -/* 8037FDE4 0037BA44 90 01 00 24 */ stw r0, 0x24(r1) -/* 8037FDE8 0037BA48 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8037FDEC 0037BA4C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8037FDF0 0037BA50 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8037FDF4 0037BA54 7C 7D 1B 78 */ mr r29, r3 -/* 8037FDF8 0037BA58 4B FF FD 7D */ bl func_8037FB74 -/* 8037FDFC 0037BA5C 2C 03 00 00 */ cmpwi r3, 0 -/* 8037FE00 0037BA60 7C 7E 1B 78 */ mr r30, r3 -/* 8037FE04 0037BA64 40 82 00 0C */ bne lbl_8037FE10 -/* 8037FE08 0037BA68 38 60 00 00 */ li r3, 0 -/* 8037FE0C 0037BA6C 48 00 00 30 */ b lbl_8037FE3C -lbl_8037FE10: -/* 8037FE10 0037BA70 90 7D 00 24 */ stw r3, 0x24(r29) -/* 8037FE14 0037BA74 3B E0 00 00 */ li r31, 0 -/* 8037FE18 0037BA78 9B E3 00 0C */ stb r31, 0xc(r3) -/* 8037FE1C 0037BA7C 81 83 00 00 */ lwz r12, 0(r3) -/* 8037FE20 0037BA80 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 8037FE24 0037BA84 7D 89 03 A6 */ mtctr r12 -/* 8037FE28 0037BA88 4E 80 04 21 */ bctrl -/* 8037FE2C 0037BA8C 93 FD 00 24 */ stw r31, 0x24(r29) -/* 8037FE30 0037BA90 38 7D 00 34 */ addi r3, r29, 0x34 -/* 8037FE34 0037BA94 4B EF 26 2D */ bl func_80272460 -/* 8037FE38 0037BA98 7F C3 F3 78 */ mr r3, r30 -lbl_8037FE3C: -/* 8037FE3C 0037BA9C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8037FE40 0037BAA0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8037FE44 0037BAA4 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8037FE48 0037BAA8 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8037FE4C 0037BAAC 7C 08 03 A6 */ mtlr r0 -/* 8037FE50 0037BAB0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8037FE54 0037BAB4 4E 80 00 20 */ blr - -.global func_8037FE58 -func_8037FE58: -/* 8037FE58 0037BAB8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8037FE5C 0037BABC 7C 08 02 A6 */ mflr r0 -/* 8037FE60 0037BAC0 90 01 00 34 */ stw r0, 0x34(r1) -/* 8037FE64 0037BAC4 39 61 00 30 */ addi r11, r1, 0x30 -/* 8037FE68 0037BAC8 4B E4 72 B9 */ bl _savegpr_25 -/* 8037FE6C 0037BACC 7C 79 1B 78 */ mr r25, r3 -/* 8037FE70 0037BAD0 7C 9A 23 78 */ mr r26, r4 -/* 8037FE74 0037BAD4 4B EE E8 E9 */ bl OSDisableInterrupts -/* 8037FE78 0037BAD8 80 19 00 24 */ lwz r0, 0x24(r25) -/* 8037FE7C 0037BADC 7C 7E 1B 78 */ mr r30, r3 -/* 8037FE80 0037BAE0 7C 1A 00 40 */ cmplw r26, r0 -/* 8037FE84 0037BAE4 40 82 00 34 */ bne lbl_8037FEB8 -/* 8037FE88 0037BAE8 81 9A 00 00 */ lwz r12, 0(r26) -/* 8037FE8C 0037BAEC 7F 43 D3 78 */ mr r3, r26 -/* 8037FE90 0037BAF0 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 8037FE94 0037BAF4 7D 89 03 A6 */ mtctr r12 -/* 8037FE98 0037BAF8 4E 80 04 21 */ bctrl -/* 8037FE9C 0037BAFC 48 00 00 0C */ b lbl_8037FEA8 -lbl_8037FEA0: -/* 8037FEA0 0037BB00 38 79 00 34 */ addi r3, r25, 0x34 -/* 8037FEA4 0037BB04 4B EF 24 D1 */ bl func_80272374 -lbl_8037FEA8: -/* 8037FEA8 0037BB08 80 19 00 24 */ lwz r0, 0x24(r25) -/* 8037FEAC 0037BB0C 7C 1A 00 40 */ cmplw r26, r0 -/* 8037FEB0 0037BB10 41 82 FF F0 */ beq lbl_8037FEA0 -/* 8037FEB4 0037BB14 48 00 00 74 */ b lbl_8037FF28 -lbl_8037FEB8: -/* 8037FEB8 0037BB18 3B 60 00 00 */ li r27, 0 -/* 8037FEBC 0037BB1C 3B E0 00 00 */ li r31, 0 -/* 8037FEC0 0037BB20 3B A0 00 00 */ li r29, 0 -lbl_8037FEC4: -/* 8037FEC4 0037BB24 7C 79 FA 14 */ add r3, r25, r31 -/* 8037FEC8 0037BB28 80 83 00 04 */ lwz r4, 4(r3) -/* 8037FECC 0037BB2C 38 03 00 04 */ addi r0, r3, 4 -/* 8037FED0 0037BB30 48 00 00 40 */ b lbl_8037FF10 -lbl_8037FED4: -/* 8037FED4 0037BB34 7C 9C 23 78 */ mr r28, r4 -/* 8037FED8 0037BB38 80 84 00 00 */ lwz r4, 0(r4) -/* 8037FEDC 0037BB3C 38 BC FF FC */ addi r5, r28, -4 -/* 8037FEE0 0037BB40 7C 05 D0 40 */ cmplw r5, r26 -/* 8037FEE4 0037BB44 40 82 00 2C */ bne lbl_8037FF10 -/* 8037FEE8 0037BB48 93 81 00 08 */ stw r28, 8(r1) -/* 8037FEEC 0037BB4C 38 81 00 08 */ addi r4, r1, 8 -/* 8037FEF0 0037BB50 4B FE 2C CD */ bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator -/* 8037FEF4 0037BB54 9B BC 00 08 */ stb r29, 8(r28) -/* 8037FEF8 0037BB58 38 7C FF FC */ addi r3, r28, -4 -/* 8037FEFC 0037BB5C 81 9C FF FC */ lwz r12, -4(r28) -/* 8037FF00 0037BB60 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 8037FF04 0037BB64 7D 89 03 A6 */ mtctr r12 -/* 8037FF08 0037BB68 4E 80 04 21 */ bctrl -/* 8037FF0C 0037BB6C 48 00 00 0C */ b lbl_8037FF18 -lbl_8037FF10: -/* 8037FF10 0037BB70 7C 04 00 40 */ cmplw r4, r0 -/* 8037FF14 0037BB74 40 82 FF C0 */ bne lbl_8037FED4 -lbl_8037FF18: -/* 8037FF18 0037BB78 3B 7B 00 01 */ addi r27, r27, 1 -/* 8037FF1C 0037BB7C 3B FF 00 0C */ addi r31, r31, 0xc -/* 8037FF20 0037BB80 2C 1B 00 03 */ cmpwi r27, 3 -/* 8037FF24 0037BB84 41 80 FF A0 */ blt lbl_8037FEC4 -lbl_8037FF28: -/* 8037FF28 0037BB88 7F C3 F3 78 */ mr r3, r30 -/* 8037FF2C 0037BB8C 4B EE E8 59 */ bl OSRestoreInterrupts -/* 8037FF30 0037BB90 39 61 00 30 */ addi r11, r1, 0x30 -/* 8037FF34 0037BB94 4B E4 72 39 */ bl _restgpr_25 -/* 8037FF38 0037BB98 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8037FF3C 0037BB9C 7C 08 03 A6 */ mtlr r0 -/* 8037FF40 0037BBA0 38 21 00 30 */ addi r1, r1, 0x30 -/* 8037FF44 0037BBA4 4E 80 00 20 */ blr - -.global func_8037FF48 -func_8037FF48: -/* 8037FF48 0037BBA8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037FF4C 0037BBAC 7C 08 02 A6 */ mflr r0 -/* 8037FF50 0037BBB0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037FF54 0037BBB4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037FF58 0037BBB8 93 C1 00 08 */ stw r30, 8(r1) -/* 8037FF5C 0037BBBC 7C 7E 1B 78 */ mr r30, r3 -/* 8037FF60 0037BBC0 4B EE E7 FD */ bl OSDisableInterrupts -/* 8037FF64 0037BBC4 38 00 00 00 */ li r0, 0 -/* 8037FF68 0037BBC8 7C 7F 1B 78 */ mr r31, r3 -/* 8037FF6C 0037BBCC 98 1E 00 28 */ stb r0, 0x28(r30) -/* 8037FF70 0037BBD0 48 00 00 0C */ b lbl_8037FF7C -lbl_8037FF74: -/* 8037FF74 0037BBD4 38 7E 00 2C */ addi r3, r30, 0x2c -/* 8037FF78 0037BBD8 4B EF 23 FD */ bl func_80272374 -lbl_8037FF7C: -/* 8037FF7C 0037BBDC 7F C3 F3 78 */ mr r3, r30 -/* 8037FF80 0037BBE0 4B FF FD 51 */ bl func_8037FCD0 -/* 8037FF84 0037BBE4 2C 03 00 00 */ cmpwi r3, 0 -/* 8037FF88 0037BBE8 40 82 00 10 */ bne lbl_8037FF98 -/* 8037FF8C 0037BBEC 88 1E 00 28 */ lbz r0, 0x28(r30) -/* 8037FF90 0037BBF0 2C 00 00 00 */ cmpwi r0, 0 -/* 8037FF94 0037BBF4 41 82 FF E0 */ beq lbl_8037FF74 -lbl_8037FF98: -/* 8037FF98 0037BBF8 7F E3 FB 78 */ mr r3, r31 -/* 8037FF9C 0037BBFC 4B EE E7 E9 */ bl OSRestoreInterrupts -/* 8037FFA0 0037BC00 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037FFA4 0037BC04 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037FFA8 0037BC08 83 C1 00 08 */ lwz r30, 8(r1) -/* 8037FFAC 0037BC0C 7C 08 03 A6 */ mtlr r0 -/* 8037FFB0 0037BC10 38 21 00 10 */ addi r1, r1, 0x10 -/* 8037FFB4 0037BC14 4E 80 00 20 */ blr - -.global func_8037FFB8 -func_8037FFB8: -/* 8037FFB8 0037BC18 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8037FFBC 0037BC1C 7C 08 02 A6 */ mflr r0 -/* 8037FFC0 0037BC20 90 01 00 14 */ stw r0, 0x14(r1) -/* 8037FFC4 0037BC24 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8037FFC8 0037BC28 93 C1 00 08 */ stw r30, 8(r1) -/* 8037FFCC 0037BC2C 7C 7E 1B 78 */ mr r30, r3 -/* 8037FFD0 0037BC30 4B EE E7 8D */ bl OSDisableInterrupts -/* 8037FFD4 0037BC34 38 00 00 01 */ li r0, 1 -/* 8037FFD8 0037BC38 7C 7F 1B 78 */ mr r31, r3 -/* 8037FFDC 0037BC3C 98 1E 00 28 */ stb r0, 0x28(r30) -/* 8037FFE0 0037BC40 38 7E 00 2C */ addi r3, r30, 0x2c -/* 8037FFE4 0037BC44 4B EF 24 7D */ bl func_80272460 -/* 8037FFE8 0037BC48 7F E3 FB 78 */ mr r3, r31 -/* 8037FFEC 0037BC4C 4B EE E7 99 */ bl OSRestoreInterrupts -/* 8037FFF0 0037BC50 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8037FFF4 0037BC54 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8037FFF8 0037BC58 83 C1 00 08 */ lwz r30, 8(r1) -/* 8037FFFC 0037BC5C 7C 08 03 A6 */ mtlr r0 -/* 80380000 0037BC60 38 21 00 10 */ addi r1, r1, 0x10 -/* 80380004 0037BC64 4E 80 00 20 */ blr - .global func_80380008 func_80380008: /* 80380008 0037BC68 38 00 00 00 */ li r0, 0 @@ -528,8 +27,8 @@ lbl_8038001C: /* 8038004C 0037BCAC 41 82 00 28 */ beq lbl_80380074 /* 80380050 0037BCB0 38 00 00 01 */ li r0, 1 /* 80380054 0037BCB4 98 03 03 1C */ stb r0, 0x31c(r3) -/* 80380058 0037BCB8 4B FF F9 29 */ bl func_8037F980 -/* 8038005C 0037BCBC 4B FF FF 5D */ bl func_8037FFB8 +/* 80380058 0037BCB8 4B FF F9 29 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 8038005C 0037BCBC 4B FF FF 5D */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv /* 80380060 0037BCC0 7F C3 F3 78 */ mr r3, r30 /* 80380064 0037BCC4 38 80 00 00 */ li r4, 0 /* 80380068 0037BCC8 4B EF 1D A1 */ bl func_80271E08 @@ -568,8 +67,8 @@ func_803800A0: /* 803800D8 0037BD38 41 82 00 28 */ beq lbl_80380100 /* 803800DC 0037BD3C 38 00 00 01 */ li r0, 1 /* 803800E0 0037BD40 98 03 03 1C */ stb r0, 0x31c(r3) -/* 803800E4 0037BD44 4B FF F8 9D */ bl func_8037F980 -/* 803800E8 0037BD48 4B FF FE D1 */ bl func_8037FFB8 +/* 803800E4 0037BD44 4B FF F8 9D */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 803800E8 0037BD48 4B FF FE D1 */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv /* 803800EC 0037BD4C 7F 83 E3 78 */ mr r3, r28 /* 803800F0 0037BD50 38 80 00 00 */ li r4, 0 /* 803800F4 0037BD54 4B EF 1D 15 */ bl func_80271E08 @@ -615,13 +114,13 @@ lbl_80380174: /* 80380184 0037BDE4 7C 7F 1B 78 */ mr r31, r3 /* 80380188 0037BDE8 48 00 00 20 */ b lbl_803801A8 lbl_8038018C: -/* 8038018C 0037BDEC 4B FF F7 F5 */ bl func_8037F980 -/* 80380190 0037BDF0 4B FF FD B9 */ bl func_8037FF48 +/* 8038018C 0037BDEC 4B FF F7 F5 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 80380190 0037BDF0 4B FF FD B9 */ bl WaitTask__Q44nw4r3snd6detail11TaskManagerFv /* 80380194 0037BDF4 88 1F 03 1C */ lbz r0, 0x31c(r31) /* 80380198 0037BDF8 2C 00 00 00 */ cmpwi r0, 0 /* 8038019C 0037BDFC 40 82 00 18 */ bne lbl_803801B4 -/* 803801A0 0037BE00 4B FF F7 E1 */ bl func_8037F980 -/* 803801A4 0037BE04 4B FF FC 39 */ bl func_8037FDDC +/* 803801A0 0037BE00 4B FF F7 E1 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 803801A4 0037BE04 4B FF FC 39 */ bl ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv lbl_803801A8: /* 803801A8 0037BE08 88 1F 03 1C */ lbz r0, 0x31c(r31) /* 803801AC 0037BE0C 2C 00 00 00 */ cmpwi r0, 0 diff --git a/obj_files.mk b/obj_files.mk index cfe6279..abd6f1f 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -153,6 +153,8 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmFile.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmPlayer.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmSound.o \ + $(BUILD_DIR)/asm/nw4r/snd/detail/snd_Task.o \ + $(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskManager.o \ $(BUILD_DIR)/asm/text_10_6.o \ $(BUILD_DIR)/asm/text_11.o -- cgit v1.2.3 From e3fe1a488285dede4b6fea8c1b2e8f8ca7276c58 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 26 Sep 2020 14:41:06 -0400 Subject: split snd_TaskThread.s --- asm/nw4r/snd/detail/snd_TaskThread.s | 136 +++++++++++++++++++++++++++++++++++ asm/nw4r/snd/snd_SoundSystem.s | 8 +-- asm/text_10_6.s | 131 --------------------------------- obj_files.mk | 1 + 4 files changed, 141 insertions(+), 135 deletions(-) create mode 100644 asm/nw4r/snd/detail/snd_TaskThread.s diff --git a/asm/nw4r/snd/detail/snd_TaskThread.s b/asm/nw4r/snd/detail/snd_TaskThread.s new file mode 100644 index 0000000..6cb7d9a --- /dev/null +++ b/asm/nw4r/snd/detail/snd_TaskThread.s @@ -0,0 +1,136 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __ct__Q44nw4r3snd6detail10TaskThreadFv +__ct__Q44nw4r3snd6detail10TaskThreadFv: +/* 80380008 0037BC68 38 00 00 00 */ li r0, 0 +/* 8038000C 0037BC6C 90 03 03 18 */ stw r0, 0x318(r3) +/* 80380010 0037BC70 98 03 03 1C */ stb r0, 0x31c(r3) +/* 80380014 0037BC74 98 03 03 1D */ stb r0, 0x31d(r3) +/* 80380018 0037BC78 4E 80 00 20 */ blr + +.global __dt__Q44nw4r3snd6detail10TaskThreadFv +__dt__Q44nw4r3snd6detail10TaskThreadFv: +/* 8038001C 0037BC7C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80380020 0037BC80 7C 08 02 A6 */ mflr r0 +/* 80380024 0037BC84 2C 03 00 00 */ cmpwi r3, 0 +/* 80380028 0037BC88 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038002C 0037BC8C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80380030 0037BC90 7C 9F 23 78 */ mr r31, r4 +/* 80380034 0037BC94 93 C1 00 08 */ stw r30, 8(r1) +/* 80380038 0037BC98 7C 7E 1B 78 */ mr r30, r3 +/* 8038003C 0037BC9C 41 82 00 48 */ beq lbl_80380084 +/* 80380040 0037BCA0 88 03 03 1D */ lbz r0, 0x31d(r3) +/* 80380044 0037BCA4 2C 00 00 00 */ cmpwi r0, 0 +/* 80380048 0037BCA8 41 82 00 2C */ beq lbl_80380074 +/* 8038004C 0037BCAC 41 82 00 28 */ beq lbl_80380074 +/* 80380050 0037BCB0 38 00 00 01 */ li r0, 1 +/* 80380054 0037BCB4 98 03 03 1C */ stb r0, 0x31c(r3) +/* 80380058 0037BCB8 4B FF F9 29 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 8038005C 0037BCBC 4B FF FF 5D */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv +/* 80380060 0037BCC0 7F C3 F3 78 */ mr r3, r30 +/* 80380064 0037BCC4 38 80 00 00 */ li r4, 0 +/* 80380068 0037BCC8 4B EF 1D A1 */ bl func_80271E08 +/* 8038006C 0037BCCC 38 00 00 00 */ li r0, 0 +/* 80380070 0037BCD0 98 1E 03 1D */ stb r0, 0x31d(r30) +lbl_80380074: +/* 80380074 0037BCD4 2C 1F 00 00 */ cmpwi r31, 0 +/* 80380078 0037BCD8 40 81 00 0C */ ble lbl_80380084 +/* 8038007C 0037BCDC 7F C3 F3 78 */ mr r3, r30 +/* 80380080 0037BCE0 4B E5 AA 39 */ bl func_801DAAB8 +lbl_80380084: +/* 80380084 0037BCE4 7F C3 F3 78 */ mr r3, r30 +/* 80380088 0037BCE8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8038008C 0037BCEC 83 C1 00 08 */ lwz r30, 8(r1) +/* 80380090 0037BCF0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80380094 0037BCF4 7C 08 03 A6 */ mtlr r0 +/* 80380098 0037BCF8 38 21 00 10 */ addi r1, r1, 0x10 +/* 8038009C 0037BCFC 4E 80 00 20 */ blr + +.global Create__Q44nw4r3snd6detail10TaskThreadFlPvUl +Create__Q44nw4r3snd6detail10TaskThreadFlPvUl: +/* 803800A0 0037BD00 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803800A4 0037BD04 7C 08 02 A6 */ mflr r0 +/* 803800A8 0037BD08 90 01 00 24 */ stw r0, 0x24(r1) +/* 803800AC 0037BD0C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803800B0 0037BD10 7C DF 33 78 */ mr r31, r6 +/* 803800B4 0037BD14 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803800B8 0037BD18 7C BE 2B 78 */ mr r30, r5 +/* 803800BC 0037BD1C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803800C0 0037BD20 7C 9D 23 78 */ mr r29, r4 +/* 803800C4 0037BD24 93 81 00 10 */ stw r28, 0x10(r1) +/* 803800C8 0037BD28 7C 7C 1B 78 */ mr r28, r3 +/* 803800CC 0037BD2C 88 03 03 1D */ lbz r0, 0x31d(r3) +/* 803800D0 0037BD30 2C 00 00 00 */ cmpwi r0, 0 +/* 803800D4 0037BD34 41 82 00 2C */ beq lbl_80380100 +/* 803800D8 0037BD38 41 82 00 28 */ beq lbl_80380100 +/* 803800DC 0037BD3C 38 00 00 01 */ li r0, 1 +/* 803800E0 0037BD40 98 03 03 1C */ stb r0, 0x31c(r3) +/* 803800E4 0037BD44 4B FF F8 9D */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 803800E8 0037BD48 4B FF FE D1 */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv +/* 803800EC 0037BD4C 7F 83 E3 78 */ mr r3, r28 +/* 803800F0 0037BD50 38 80 00 00 */ li r4, 0 +/* 803800F4 0037BD54 4B EF 1D 15 */ bl func_80271E08 +/* 803800F8 0037BD58 38 00 00 00 */ li r0, 0 +/* 803800FC 0037BD5C 98 1C 03 1D */ stb r0, 0x31d(r28) +lbl_80380100: +/* 80380100 0037BD60 3C 80 80 38 */ lis r4, ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv@ha +/* 80380104 0037BD64 7F 83 E3 78 */ mr r3, r28 +/* 80380108 0037BD68 7F 85 E3 78 */ mr r5, r28 +/* 8038010C 0037BD6C 7F E7 FB 78 */ mr r7, r31 +/* 80380110 0037BD70 7F A8 EB 78 */ mr r8, r29 +/* 80380114 0037BD74 38 84 01 74 */ addi r4, r4, ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv@l +/* 80380118 0037BD78 7C DE FA 14 */ add r6, r30, r31 +/* 8038011C 0037BD7C 39 20 00 00 */ li r9, 0 +/* 80380120 0037BD80 4B EF 17 C1 */ bl func_802718E0 +/* 80380124 0037BD84 2C 03 00 00 */ cmpwi r3, 0 +/* 80380128 0037BD88 40 82 00 0C */ bne lbl_80380134 +/* 8038012C 0037BD8C 38 60 00 00 */ li r3, 0 +/* 80380130 0037BD90 48 00 00 24 */ b lbl_80380154 +lbl_80380134: +/* 80380134 0037BD94 38 80 00 00 */ li r4, 0 +/* 80380138 0037BD98 38 00 00 01 */ li r0, 1 +/* 8038013C 0037BD9C 93 DC 03 18 */ stw r30, 0x318(r28) +/* 80380140 0037BDA0 7F 83 E3 78 */ mr r3, r28 +/* 80380144 0037BDA4 98 9C 03 1C */ stb r4, 0x31c(r28) +/* 80380148 0037BDA8 98 1C 03 1D */ stb r0, 0x31d(r28) +/* 8038014C 0037BDAC 4B EF 1D FD */ bl func_80271F48 +/* 80380150 0037BDB0 38 60 00 01 */ li r3, 1 +lbl_80380154: +/* 80380154 0037BDB4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80380158 0037BDB8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8038015C 0037BDBC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80380160 0037BDC0 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 80380164 0037BDC4 83 81 00 10 */ lwz r28, 0x10(r1) +/* 80380168 0037BDC8 7C 08 03 A6 */ mtlr r0 +/* 8038016C 0037BDCC 38 21 00 20 */ addi r1, r1, 0x20 +/* 80380170 0037BDD0 4E 80 00 20 */ blr + +.global ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv +ThreadFunc__Q44nw4r3snd6detail10TaskThreadFPv: +/* 80380174 0037BDD4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80380178 0037BDD8 7C 08 02 A6 */ mflr r0 +/* 8038017C 0037BDDC 90 01 00 14 */ stw r0, 0x14(r1) +/* 80380180 0037BDE0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80380184 0037BDE4 7C 7F 1B 78 */ mr r31, r3 +/* 80380188 0037BDE8 48 00 00 20 */ b lbl_803801A8 +lbl_8038018C: +/* 8038018C 0037BDEC 4B FF F7 F5 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 80380190 0037BDF0 4B FF FD B9 */ bl WaitTask__Q44nw4r3snd6detail11TaskManagerFv +/* 80380194 0037BDF4 88 1F 03 1C */ lbz r0, 0x31c(r31) +/* 80380198 0037BDF8 2C 00 00 00 */ cmpwi r0, 0 +/* 8038019C 0037BDFC 40 82 00 18 */ bne lbl_803801B4 +/* 803801A0 0037BE00 4B FF F7 E1 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv +/* 803801A4 0037BE04 4B FF FC 39 */ bl ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv +lbl_803801A8: +/* 803801A8 0037BE08 88 1F 03 1C */ lbz r0, 0x31c(r31) +/* 803801AC 0037BE0C 2C 00 00 00 */ cmpwi r0, 0 +/* 803801B0 0037BE10 41 82 FF DC */ beq lbl_8038018C +lbl_803801B4: +/* 803801B4 0037BE14 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803801B8 0037BE18 38 60 00 00 */ li r3, 0 +/* 803801BC 0037BE1C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803801C0 0037BE20 7C 08 03 A6 */ mtlr r0 +/* 803801C4 0037BE24 38 21 00 10 */ addi r1, r1, 0x10 +/* 803801C8 0037BE28 4E 80 00 20 */ blr diff --git a/asm/nw4r/snd/snd_SoundSystem.s b/asm/nw4r/snd/snd_SoundSystem.s index fa5adbb..b7e76d0 100644 --- a/asm/nw4r/snd/snd_SoundSystem.s +++ b/asm/nw4r/snd/snd_SoundSystem.s @@ -127,7 +127,7 @@ lbl_8037C2B8: /* 8037C358 00377FB8 80 DA 00 0C */ lwz r6, 0xc(r26) /* 8037C35C 00377FBC 7F 65 DB 78 */ mr r5, r27 /* 8037C360 00377FC0 38 63 1D 10 */ addi r3, r3, lbl_80621D10@l -/* 8037C364 00377FC4 48 00 3D 3D */ bl func_803800A0 +/* 8037C364 00377FC4 48 00 3D 3D */ bl Create__Q44nw4r3snd6detail10TaskThreadFlPvUl /* 8037C368 00377FC8 48 00 00 E9 */ bl GetInstance__Q44nw4r3snd6detail11SoundThreadFv /* 8037C36C 00377FCC 80 9A 00 00 */ lwz r4, 0(r26) /* 8037C370 00377FD0 7F A5 EB 78 */ mr r5, r29 @@ -184,11 +184,11 @@ __sinit_$3snd_SoundSystem_cpp: /* 8037C414 00378074 93 E1 00 0C */ stw r31, 0xc(r1) /* 8037C418 00378078 3F E0 80 62 */ lis r31, lbl_80621D10@ha /* 8037C41C 0037807C 38 7F 1D 10 */ addi r3, r31, lbl_80621D10@l -/* 8037C420 00378080 48 00 3B E9 */ bl func_80380008 -/* 8037C424 00378084 3C 80 80 38 */ lis r4, lbl_8038001C@ha +/* 8037C420 00378080 48 00 3B E9 */ bl __ct__Q44nw4r3snd6detail10TaskThreadFv +/* 8037C424 00378084 3C 80 80 38 */ lis r4, __dt__Q44nw4r3snd6detail10TaskThreadFv@ha /* 8037C428 00378088 3C A0 80 62 */ lis r5, lbl_80621D00@ha /* 8037C42C 0037808C 38 7F 1D 10 */ addi r3, r31, 0x1d10 -/* 8037C430 00378090 38 84 00 1C */ addi r4, r4, lbl_8038001C@l +/* 8037C430 00378090 38 84 00 1C */ addi r4, r4, __dt__Q44nw4r3snd6detail10TaskThreadFv@l /* 8037C434 00378094 38 A5 1D 00 */ addi r5, r5, lbl_80621D00@l /* 8037C438 00378098 4B E4 A8 11 */ bl __register_global_object_tmp /* 8037C43C 0037809C 80 01 00 14 */ lwz r0, 0x14(r1) diff --git a/asm/text_10_6.s b/asm/text_10_6.s index 0607a75..8538a5c 100644 --- a/asm/text_10_6.s +++ b/asm/text_10_6.s @@ -2,137 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_80380008 -func_80380008: -/* 80380008 0037BC68 38 00 00 00 */ li r0, 0 -/* 8038000C 0037BC6C 90 03 03 18 */ stw r0, 0x318(r3) -/* 80380010 0037BC70 98 03 03 1C */ stb r0, 0x31c(r3) -/* 80380014 0037BC74 98 03 03 1D */ stb r0, 0x31d(r3) -/* 80380018 0037BC78 4E 80 00 20 */ blr - -.global lbl_8038001C -lbl_8038001C: -/* 8038001C 0037BC7C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80380020 0037BC80 7C 08 02 A6 */ mflr r0 -/* 80380024 0037BC84 2C 03 00 00 */ cmpwi r3, 0 -/* 80380028 0037BC88 90 01 00 14 */ stw r0, 0x14(r1) -/* 8038002C 0037BC8C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80380030 0037BC90 7C 9F 23 78 */ mr r31, r4 -/* 80380034 0037BC94 93 C1 00 08 */ stw r30, 8(r1) -/* 80380038 0037BC98 7C 7E 1B 78 */ mr r30, r3 -/* 8038003C 0037BC9C 41 82 00 48 */ beq lbl_80380084 -/* 80380040 0037BCA0 88 03 03 1D */ lbz r0, 0x31d(r3) -/* 80380044 0037BCA4 2C 00 00 00 */ cmpwi r0, 0 -/* 80380048 0037BCA8 41 82 00 2C */ beq lbl_80380074 -/* 8038004C 0037BCAC 41 82 00 28 */ beq lbl_80380074 -/* 80380050 0037BCB0 38 00 00 01 */ li r0, 1 -/* 80380054 0037BCB4 98 03 03 1C */ stb r0, 0x31c(r3) -/* 80380058 0037BCB8 4B FF F9 29 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv -/* 8038005C 0037BCBC 4B FF FF 5D */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv -/* 80380060 0037BCC0 7F C3 F3 78 */ mr r3, r30 -/* 80380064 0037BCC4 38 80 00 00 */ li r4, 0 -/* 80380068 0037BCC8 4B EF 1D A1 */ bl func_80271E08 -/* 8038006C 0037BCCC 38 00 00 00 */ li r0, 0 -/* 80380070 0037BCD0 98 1E 03 1D */ stb r0, 0x31d(r30) -lbl_80380074: -/* 80380074 0037BCD4 2C 1F 00 00 */ cmpwi r31, 0 -/* 80380078 0037BCD8 40 81 00 0C */ ble lbl_80380084 -/* 8038007C 0037BCDC 7F C3 F3 78 */ mr r3, r30 -/* 80380080 0037BCE0 4B E5 AA 39 */ bl func_801DAAB8 -lbl_80380084: -/* 80380084 0037BCE4 7F C3 F3 78 */ mr r3, r30 -/* 80380088 0037BCE8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8038008C 0037BCEC 83 C1 00 08 */ lwz r30, 8(r1) -/* 80380090 0037BCF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80380094 0037BCF4 7C 08 03 A6 */ mtlr r0 -/* 80380098 0037BCF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8038009C 0037BCFC 4E 80 00 20 */ blr - -.global func_803800A0 -func_803800A0: -/* 803800A0 0037BD00 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803800A4 0037BD04 7C 08 02 A6 */ mflr r0 -/* 803800A8 0037BD08 90 01 00 24 */ stw r0, 0x24(r1) -/* 803800AC 0037BD0C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803800B0 0037BD10 7C DF 33 78 */ mr r31, r6 -/* 803800B4 0037BD14 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803800B8 0037BD18 7C BE 2B 78 */ mr r30, r5 -/* 803800BC 0037BD1C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 803800C0 0037BD20 7C 9D 23 78 */ mr r29, r4 -/* 803800C4 0037BD24 93 81 00 10 */ stw r28, 0x10(r1) -/* 803800C8 0037BD28 7C 7C 1B 78 */ mr r28, r3 -/* 803800CC 0037BD2C 88 03 03 1D */ lbz r0, 0x31d(r3) -/* 803800D0 0037BD30 2C 00 00 00 */ cmpwi r0, 0 -/* 803800D4 0037BD34 41 82 00 2C */ beq lbl_80380100 -/* 803800D8 0037BD38 41 82 00 28 */ beq lbl_80380100 -/* 803800DC 0037BD3C 38 00 00 01 */ li r0, 1 -/* 803800E0 0037BD40 98 03 03 1C */ stb r0, 0x31c(r3) -/* 803800E4 0037BD44 4B FF F8 9D */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv -/* 803800E8 0037BD48 4B FF FE D1 */ bl CancelWaitTask__Q44nw4r3snd6detail11TaskManagerFv -/* 803800EC 0037BD4C 7F 83 E3 78 */ mr r3, r28 -/* 803800F0 0037BD50 38 80 00 00 */ li r4, 0 -/* 803800F4 0037BD54 4B EF 1D 15 */ bl func_80271E08 -/* 803800F8 0037BD58 38 00 00 00 */ li r0, 0 -/* 803800FC 0037BD5C 98 1C 03 1D */ stb r0, 0x31d(r28) -lbl_80380100: -/* 80380100 0037BD60 3C 80 80 38 */ lis r4, lbl_80380174@ha -/* 80380104 0037BD64 7F 83 E3 78 */ mr r3, r28 -/* 80380108 0037BD68 7F 85 E3 78 */ mr r5, r28 -/* 8038010C 0037BD6C 7F E7 FB 78 */ mr r7, r31 -/* 80380110 0037BD70 7F A8 EB 78 */ mr r8, r29 -/* 80380114 0037BD74 38 84 01 74 */ addi r4, r4, lbl_80380174@l -/* 80380118 0037BD78 7C DE FA 14 */ add r6, r30, r31 -/* 8038011C 0037BD7C 39 20 00 00 */ li r9, 0 -/* 80380120 0037BD80 4B EF 17 C1 */ bl func_802718E0 -/* 80380124 0037BD84 2C 03 00 00 */ cmpwi r3, 0 -/* 80380128 0037BD88 40 82 00 0C */ bne lbl_80380134 -/* 8038012C 0037BD8C 38 60 00 00 */ li r3, 0 -/* 80380130 0037BD90 48 00 00 24 */ b lbl_80380154 -lbl_80380134: -/* 80380134 0037BD94 38 80 00 00 */ li r4, 0 -/* 80380138 0037BD98 38 00 00 01 */ li r0, 1 -/* 8038013C 0037BD9C 93 DC 03 18 */ stw r30, 0x318(r28) -/* 80380140 0037BDA0 7F 83 E3 78 */ mr r3, r28 -/* 80380144 0037BDA4 98 9C 03 1C */ stb r4, 0x31c(r28) -/* 80380148 0037BDA8 98 1C 03 1D */ stb r0, 0x31d(r28) -/* 8038014C 0037BDAC 4B EF 1D FD */ bl func_80271F48 -/* 80380150 0037BDB0 38 60 00 01 */ li r3, 1 -lbl_80380154: -/* 80380154 0037BDB4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80380158 0037BDB8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8038015C 0037BDBC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80380160 0037BDC0 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80380164 0037BDC4 83 81 00 10 */ lwz r28, 0x10(r1) -/* 80380168 0037BDC8 7C 08 03 A6 */ mtlr r0 -/* 8038016C 0037BDCC 38 21 00 20 */ addi r1, r1, 0x20 -/* 80380170 0037BDD0 4E 80 00 20 */ blr -lbl_80380174: -/* 80380174 0037BDD4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80380178 0037BDD8 7C 08 02 A6 */ mflr r0 -/* 8038017C 0037BDDC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80380180 0037BDE0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80380184 0037BDE4 7C 7F 1B 78 */ mr r31, r3 -/* 80380188 0037BDE8 48 00 00 20 */ b lbl_803801A8 -lbl_8038018C: -/* 8038018C 0037BDEC 4B FF F7 F5 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv -/* 80380190 0037BDF0 4B FF FD B9 */ bl WaitTask__Q44nw4r3snd6detail11TaskManagerFv -/* 80380194 0037BDF4 88 1F 03 1C */ lbz r0, 0x31c(r31) -/* 80380198 0037BDF8 2C 00 00 00 */ cmpwi r0, 0 -/* 8038019C 0037BDFC 40 82 00 18 */ bne lbl_803801B4 -/* 803801A0 0037BE00 4B FF F7 E1 */ bl GetInstance__Q44nw4r3snd6detail11TaskManagerFv -/* 803801A4 0037BE04 4B FF FC 39 */ bl ExecuteTask__Q44nw4r3snd6detail11TaskManagerFv -lbl_803801A8: -/* 803801A8 0037BE08 88 1F 03 1C */ lbz r0, 0x31c(r31) -/* 803801AC 0037BE0C 2C 00 00 00 */ cmpwi r0, 0 -/* 803801B0 0037BE10 41 82 FF DC */ beq lbl_8038018C -lbl_803801B4: -/* 803801B4 0037BE14 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803801B8 0037BE18 38 60 00 00 */ li r3, 0 -/* 803801BC 0037BE1C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803801C0 0037BE20 7C 08 03 A6 */ mtlr r0 -/* 803801C4 0037BE24 38 21 00 10 */ addi r1, r1, 0x10 -/* 803801C8 0037BE28 4E 80 00 20 */ blr - .global func_803801CC func_803801CC: /* 803801CC 0037BE2C 3C 80 80 45 */ lis r4, lbl_8044D02C@ha diff --git a/obj_files.mk b/obj_files.mk index abd6f1f..201a0da 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -155,6 +155,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_StrmSound.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_Task.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskManager.o \ + $(BUILD_DIR)/asm/nw4r/snd/detail/snd_TaskThread.o \ $(BUILD_DIR)/asm/text_10_6.o \ $(BUILD_DIR)/asm/text_11.o -- cgit v1.2.3