From a1b027ed524ac2f7f32f271859ef470937c3e508 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Sun, 22 Jan 2023 00:02:46 -0800 Subject: [PATCH 1/4] transform-dep.py: fix for wsl --- tools/transform-dep.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/transform-dep.py b/tools/transform-dep.py index bdb29e50133..412e3bd61d2 100755 --- a/tools/transform-dep.py +++ b/tools/transform-dep.py @@ -9,7 +9,9 @@ if os.name != 'nt': winedevices = os.path.join(wineprefix, 'dosdevices') def in_wsl() -> bool: - return 'microsoft-standard' in uname().release + # wsl1 has Microsoft, wsl2 has microsoft-standard + release = uname().release + return 'microsoft-standard' in release or 'Microsoft' in release def import_d_file(in_file) -> str: out_lines = [] @@ -36,8 +38,15 @@ def import_d_file(in_file) -> str: # shortcut for z: path = path[2:].replace('\\', '/') elif in_wsl(): - path = path[0:1] + path[2:] - path = os.path.join('/mnt', path.replace('\\', '/')) + if path.startswith(r'\\wsl'): + # first part could be wsl$ or wsl.localhost + pos = path.find('\\', 2) + pos = path.find('\\', pos + 1) + path = path[pos:] + path = path.replace('\\', '/') + else: + path = path[0:1] + path[2:] + path = os.path.join('/mnt', path.replace('\\', '/')) else: # use $WINEPREFIX/dosdevices to resolve path path = os.path.realpath(os.path.join(winedevices, path.replace('\\', '/'))) From 9237c661cfd0c5ff0c21aafa6e19459f86084ae3 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Sun, 22 Jan 2023 08:42:10 -0800 Subject: [PATCH 2/4] rename mwcceppc_patched.exe to mwcceppc_modded.exe for better windows compatibility --- .github/workflows/ok-check.yml | 2 +- Makefile | 2 +- tools/tp.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ok-check.yml b/.github/workflows/ok-check.yml index 8a5509f8627..f2c34464762 100644 --- a/.github/workflows/ok-check.yml +++ b/.github/workflows/ok-check.yml @@ -15,6 +15,6 @@ jobs: with: token: ${{secrets.MY_REPO_PAT}} - name: Copy in dol and compilers - run: cp /tmp/baserom.dol ./baserom.dol && cp -r /tmp/mwcc_compiler/ tools/mwcc_compiler && cp tools/mwcc_compiler/2.7/mwcceppc.exe tools/mwcc_compiler/2.7/mwcceppc_patched.exe && chown root /github/home/ + run: cp /tmp/baserom.dol ./baserom.dol && cp -r /tmp/mwcc_compiler/ tools/mwcc_compiler && cp tools/mwcc_compiler/2.7/mwcceppc.exe tools/mwcc_compiler/2.7/mwcceppc_modded.exe && chown root /github/home/ - name: Run Make (OK) run: make all rels && ./tp check --rels diff --git a/Makefile b/Makefile index 2cd79d6bfa9..00891539491 100644 --- a/Makefile +++ b/Makefile @@ -70,7 +70,7 @@ endif AS := $(DEVKITPPC)/bin/powerpc-eabi-as OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip -CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_patched.exe +CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_modded.exe DOLPHIN_LIB_CC := $(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe FRANK_CC := $(WINE) tools/mwcc_compiler/1.2.5e/mwcceppc.exe LD := $(WINE_LD) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe diff --git a/tools/tp.py b/tools/tp.py index b268efdd255..a38726f3255 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -247,7 +247,7 @@ def setup(debug: bool, game_path: Path, tools_path: Path): c27_mwcceppc_old = c27.joinpath("mwcceppc.old.exe") c27_mwcceppc_orignal = c27.joinpath("mwcceppc.exe") - c27_mwcceppc_patched = c27.joinpath("mwcceppc_patched.exe") + c27_mwcceppc_patched = c27.joinpath("mwcceppc_modded.exe") def patch_compiler(src: Path, dst: Path, apply: bool): with src.open("rb") as src_file: From 98db45807c609899841224aea0c1b69722139094 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Sun, 22 Jan 2023 17:36:16 -0800 Subject: [PATCH 3/4] makerel.py: Accept arguments from files, allowing rels to build with msys2 --- Makefile | 3 ++- tools/makerel.py | 24 +++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2cd79d6bfa9..d6a2ffc255b 100644 --- a/Makefile +++ b/Makefile @@ -162,7 +162,8 @@ docs: rels: $(ELF) $(RELS) @echo generating RELs from .plf - @$(PYTHON) $(MAKEREL) build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF) + @echo $(RELS) > build/plf_files + $(PYTHON) $(MAKEREL) build --string-table $(BUILD_DIR)/frameworkF.str @build/plf_files $(ELF) $(ELF): $(LIBS) $(O_FILES) @echo $(O_FILES) > build/o_files diff --git a/tools/makerel.py b/tools/makerel.py index 763ce1726d8..4ed4fb30508 100644 --- a/tools/makerel.py +++ b/tools/makerel.py @@ -583,5 +583,27 @@ def load_elfs(str_paths): return static, plfs +def convert_arg_line_to_args(arg_line: str): + return arg_line.split(' ') + + +def _read_args_from_files(args: List[str]): + new_args: List[str] = [] + for arg in args: + if not arg or arg[0] != '@': + new_args.append(arg) + else: + with open(arg[1:], 'r') as file: + file_args: List[str] = [] + for line in file: + for file_arg in convert_arg_line_to_args(line.strip()): + file_args.append(file_arg) + file_args = _read_args_from_files(file_args) + new_args.extend(file_args) + + return new_args + + if __name__ == "__main__": - makerel() + args = _read_args_from_files(sys.argv[1:]) + makerel(args) From d17c122e4dbc65f6f0f2b0309e281aeef20c4afc Mon Sep 17 00:00:00 2001 From: hatal175 Date: Tue, 24 Jan 2023 22:22:40 +0200 Subject: [PATCH 4/4] Continue robbing prime github dolphin libs blind (#254) * Continue work on dolphin libs * tp.py pull-request should print rels by default --- Progress.md | 8 +- asm/dolphin/card/CARDBios/__CARDEraseSector.s | 76 ------ .../dvd/dvdlow/AlarmHandlerForTimeout.s | 30 --- asm/dolphin/gx/GXGeometry/GXSetCullMode.s | 11 - asm/dolphin/os/OSError/OSSetErrorHandler.s | 144 ----------- asm/dolphin/os/OSMemory/MEMIntrruptHandler.s | 30 --- asm/dolphin/os/OSMutex/OSInitCond.s | 9 - asm/dolphin/os/OSMutex/OSLockMutex.s | 62 ----- asm/dolphin/os/OSMutex/OSSignalCond.s | 9 - asm/dolphin/os/OSMutex/OSTryLockMutex.s | 53 ---- asm/dolphin/os/OSMutex/OSUnlockMutex.s | 57 ----- asm/dolphin/os/OSMutex/OSWaitCond.s | 60 ----- asm/dolphin/os/OSMutex/__OSCheckDeadLock.s | 19 -- asm/dolphin/os/OSMutex/__OSCheckMutex.s | 75 ------ asm/dolphin/os/OSMutex/__OSCheckMutexes.s | 35 --- asm/dolphin/os/OSMutex/__OSUnlockAllMutex.s | 33 --- asm/dolphin/os/OSRtc/OSGetGbsMode.s | 31 --- asm/dolphin/os/OSRtc/OSGetProgressiveMode.s | 31 --- asm/dolphin/os/OSRtc/OSGetSoundMode.s | 37 --- asm/dolphin/os/OSRtc/OSGetWirelessID.s | 36 --- asm/dolphin/os/OSRtc/OSSetGbsMode.s | 53 ---- asm/dolphin/os/OSRtc/OSSetProgressiveMode.s | 46 ---- asm/dolphin/os/OSRtc/OSSetSoundMode.s | 46 ---- asm/dolphin/os/OSRtc/OSSetWirelessID.s | 48 ---- asm/dolphin/os/OSRtc/UnlockSram.s | 220 ----------------- asm/dolphin/os/OSRtc/__OSLockSram.s | 26 -- asm/dolphin/os/OSRtc/__OSLockSramEx.s | 26 -- asm/dolphin/os/OSRtc/__OSUnlockSram.s | 10 - asm/dolphin/os/OSRtc/__OSUnlockSramEx.s | 10 - asm/dolphin/si/SIBios/GetTypeCallback.s | 179 -------------- include/dolphin/os/OSError.h | 2 + include/dolphin/os/OSMutex.h | 4 +- include/dolphin/os/OSThread.h | 2 +- libs/dolphin/dvd/dvdlow.c | 48 +++- libs/dolphin/gx/GXGeometry.c | 23 +- libs/dolphin/os/OS.c | 25 +- libs/dolphin/os/OSError.c | 8 +- libs/dolphin/os/OSMemory.c | 13 +- libs/dolphin/os/OSMutex.c | 199 +++++++++------ libs/dolphin/os/OSRtc.c | 233 ++++++++++-------- libs/dolphin/os/OSThread.c | 2 +- libs/dolphin/os/OSTime.c | 3 + tools/tp.py | 2 +- 43 files changed, 332 insertions(+), 1742 deletions(-) delete mode 100644 asm/dolphin/card/CARDBios/__CARDEraseSector.s delete mode 100644 asm/dolphin/dvd/dvdlow/AlarmHandlerForTimeout.s delete mode 100644 asm/dolphin/gx/GXGeometry/GXSetCullMode.s delete mode 100644 asm/dolphin/os/OSError/OSSetErrorHandler.s delete mode 100644 asm/dolphin/os/OSMemory/MEMIntrruptHandler.s delete mode 100644 asm/dolphin/os/OSMutex/OSInitCond.s delete mode 100644 asm/dolphin/os/OSMutex/OSLockMutex.s delete mode 100644 asm/dolphin/os/OSMutex/OSSignalCond.s delete mode 100644 asm/dolphin/os/OSMutex/OSTryLockMutex.s delete mode 100644 asm/dolphin/os/OSMutex/OSUnlockMutex.s delete mode 100644 asm/dolphin/os/OSMutex/OSWaitCond.s delete mode 100644 asm/dolphin/os/OSMutex/__OSCheckDeadLock.s delete mode 100644 asm/dolphin/os/OSMutex/__OSCheckMutex.s delete mode 100644 asm/dolphin/os/OSMutex/__OSCheckMutexes.s delete mode 100644 asm/dolphin/os/OSMutex/__OSUnlockAllMutex.s delete mode 100644 asm/dolphin/os/OSRtc/OSGetGbsMode.s delete mode 100644 asm/dolphin/os/OSRtc/OSGetProgressiveMode.s delete mode 100644 asm/dolphin/os/OSRtc/OSGetSoundMode.s delete mode 100644 asm/dolphin/os/OSRtc/OSGetWirelessID.s delete mode 100644 asm/dolphin/os/OSRtc/OSSetGbsMode.s delete mode 100644 asm/dolphin/os/OSRtc/OSSetProgressiveMode.s delete mode 100644 asm/dolphin/os/OSRtc/OSSetSoundMode.s delete mode 100644 asm/dolphin/os/OSRtc/OSSetWirelessID.s delete mode 100644 asm/dolphin/os/OSRtc/UnlockSram.s delete mode 100644 asm/dolphin/os/OSRtc/__OSLockSram.s delete mode 100644 asm/dolphin/os/OSRtc/__OSLockSramEx.s delete mode 100644 asm/dolphin/os/OSRtc/__OSUnlockSram.s delete mode 100644 asm/dolphin/os/OSRtc/__OSUnlockSramEx.s delete mode 100644 asm/dolphin/si/SIBios/GetTypeCallback.s diff --git a/Progress.md b/Progress.md index 716470116b2..7a349bf2fa3 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 23.128426% | 831824 | 3596544 +.text | 23.237864% | 835760 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 31.232590% | 1255760 | 4020672 +Total | 31.330484% | 1259696 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 31.232590% | 1255760 | 4020672 +main.dol | 31.330484% | 1259696 | 4020672 RELs | 33.041295% | 3799856 | 11500324 -Total | 32.572755% | 5055616 | 15520996 +Total | 32.598114% | 5059552 | 15520996 ## RELs diff --git a/asm/dolphin/card/CARDBios/__CARDEraseSector.s b/asm/dolphin/card/CARDBios/__CARDEraseSector.s deleted file mode 100644 index c5fe25889b1..00000000000 --- a/asm/dolphin/card/CARDBios/__CARDEraseSector.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_803539B8: -/* 803539B8 7C 08 02 A6 */ mflr r0 -/* 803539BC 90 01 00 04 */ stw r0, 4(r1) -/* 803539C0 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 803539C4 93 E1 00 24 */ stw r31, 0x24(r1) -/* 803539C8 93 C1 00 20 */ stw r30, 0x20(r1) -/* 803539CC 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 803539D0 3B A3 00 00 */ addi r29, r3, 0 -/* 803539D4 1C DD 01 10 */ mulli r6, r29, 0x110 -/* 803539D8 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */ -/* 803539DC 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */ -/* 803539E0 7F E0 32 14 */ add r31, r0, r6 -/* 803539E4 A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 803539E8 28 00 00 80 */ cmplwi r0, 0x80 -/* 803539EC 40 81 00 28 */ ble lbl_80353A14 -/* 803539F0 28 05 00 00 */ cmplwi r5, 0 -/* 803539F4 41 82 00 18 */ beq lbl_80353A0C -/* 803539F8 39 85 00 00 */ addi r12, r5, 0 -/* 803539FC 7D 88 03 A6 */ mtlr r12 -/* 80353A00 38 7D 00 00 */ addi r3, r29, 0 -/* 80353A04 38 80 00 00 */ li r4, 0 -/* 80353A08 4E 80 00 21 */ blrl -lbl_80353A0C: -/* 80353A0C 38 60 00 00 */ li r3, 0 -/* 80353A10 48 00 00 9C */ b lbl_80353AAC -lbl_80353A14: -/* 80353A14 38 00 00 F1 */ li r0, 0xf1 -/* 80353A18 98 1F 00 94 */ stb r0, 0x94(r31) -/* 80353A1C 54 80 7E 7E */ rlwinm r0, r4, 0xf, 0x19, 0x1f -/* 80353A20 54 83 BE 3E */ rlwinm r3, r4, 0x17, 0x18, 0x1f -/* 80353A24 98 1F 00 95 */ stb r0, 0x95(r31) -/* 80353A28 38 C0 00 03 */ li r6, 3 -/* 80353A2C 38 00 FF FF */ li r0, -1 -/* 80353A30 98 7F 00 96 */ stb r3, 0x96(r31) -/* 80353A34 7F A3 EB 78 */ mr r3, r29 -/* 80353A38 38 80 00 00 */ li r4, 0 -/* 80353A3C 90 DF 00 A0 */ stw r6, 0xa0(r31) -/* 80353A40 90 1F 00 A4 */ stw r0, 0xa4(r31) -/* 80353A44 90 DF 00 A8 */ stw r6, 0xa8(r31) -/* 80353A48 4B FF FA DD */ bl __CARDStart -/* 80353A4C 3B C3 00 00 */ addi r30, r3, 0 -/* 80353A50 2C 1E FF FF */ cmpwi r30, -1 -/* 80353A54 40 82 00 0C */ bne lbl_80353A60 -/* 80353A58 3B C0 00 00 */ li r30, 0 -/* 80353A5C 48 00 00 4C */ b lbl_80353AA8 -lbl_80353A60: -/* 80353A60 2C 1E 00 00 */ cmpwi r30, 0 -/* 80353A64 41 80 00 44 */ blt lbl_80353AA8 -/* 80353A68 80 BF 00 A0 */ lwz r5, 0xa0(r31) -/* 80353A6C 38 7D 00 00 */ addi r3, r29, 0 -/* 80353A70 38 9F 00 94 */ addi r4, r31, 0x94 -/* 80353A74 38 C0 00 01 */ li r6, 1 -/* 80353A78 4B FE F4 E5 */ bl EXIImmEx -/* 80353A7C 2C 03 00 00 */ cmpwi r3, 0 -/* 80353A80 40 82 00 14 */ bne lbl_80353A94 -/* 80353A84 38 00 00 00 */ li r0, 0 -/* 80353A88 90 1F 00 CC */ stw r0, 0xcc(r31) -/* 80353A8C 3B C0 FF FD */ li r30, -3 -/* 80353A90 48 00 00 08 */ b lbl_80353A98 -lbl_80353A94: -/* 80353A94 3B C0 00 00 */ li r30, 0 -lbl_80353A98: -/* 80353A98 7F A3 EB 78 */ mr r3, r29 -/* 80353A9C 4B FE FE F9 */ bl EXIDeselect -/* 80353AA0 7F A3 EB 78 */ mr r3, r29 -/* 80353AA4 4B FF 06 79 */ bl EXIUnlock -lbl_80353AA8: -/* 80353AA8 7F C3 F3 78 */ mr r3, r30 -lbl_80353AAC: -/* 80353AAC 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80353AB0 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 80353AB4 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 80353AB8 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 80353ABC 38 21 00 28 */ addi r1, r1, 0x28 -/* 80353AC0 7C 08 03 A6 */ mtlr r0 -/* 80353AC4 4E 80 00 20 */ blr diff --git a/asm/dolphin/dvd/dvdlow/AlarmHandlerForTimeout.s b/asm/dolphin/dvd/dvdlow/AlarmHandlerForTimeout.s deleted file mode 100644 index a150e9ebb56..00000000000 --- a/asm/dolphin/dvd/dvdlow/AlarmHandlerForTimeout.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80347A18: -/* 80347A18 7C 08 02 A6 */ mflr r0 -/* 80347A1C 38 60 04 00 */ li r3, 0x400 -/* 80347A20 90 01 00 04 */ stw r0, 4(r1) -/* 80347A24 94 21 FD 20 */ stwu r1, -0x2e0(r1) -/* 80347A28 93 E1 02 DC */ stw r31, 0x2dc(r1) -/* 80347A2C 3B E4 00 00 */ addi r31, r4, 0 -/* 80347A30 4B FF 60 8D */ bl __OSMaskInterrupts -/* 80347A34 38 61 00 10 */ addi r3, r1, 0x10 -/* 80347A38 4B FF 45 C9 */ bl OSClearContext -/* 80347A3C 38 61 00 10 */ addi r3, r1, 0x10 -/* 80347A40 4B FF 43 F9 */ bl OSSetCurrentContext -/* 80347A44 81 8D 91 98 */ lwz r12, Callback(r13) -/* 80347A48 38 00 00 00 */ li r0, 0 -/* 80347A4C 28 0C 00 00 */ cmplwi r12, 0 -/* 80347A50 90 0D 91 98 */ stw r0, Callback(r13) -/* 80347A54 41 82 00 10 */ beq lbl_80347A64 -/* 80347A58 7D 88 03 A6 */ mtlr r12 -/* 80347A5C 38 60 00 10 */ li r3, 0x10 -/* 80347A60 4E 80 00 21 */ blrl -lbl_80347A64: -/* 80347A64 38 61 00 10 */ addi r3, r1, 0x10 -/* 80347A68 4B FF 45 99 */ bl OSClearContext -/* 80347A6C 7F E3 FB 78 */ mr r3, r31 -/* 80347A70 4B FF 43 C9 */ bl OSSetCurrentContext -/* 80347A74 80 01 02 E4 */ lwz r0, 0x2e4(r1) -/* 80347A78 83 E1 02 DC */ lwz r31, 0x2dc(r1) -/* 80347A7C 38 21 02 E0 */ addi r1, r1, 0x2e0 -/* 80347A80 7C 08 03 A6 */ mtlr r0 -/* 80347A84 4E 80 00 20 */ blr diff --git a/asm/dolphin/gx/GXGeometry/GXSetCullMode.s b/asm/dolphin/gx/GXGeometry/GXSetCullMode.s deleted file mode 100644 index 8aac8caa8bc..00000000000 --- a/asm/dolphin/gx/GXGeometry/GXSetCullMode.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8035C984: -/* 8035C984 80 82 CB 80 */ lwz r4, __GXData(r2) -/* 8035C988 54 65 FF FE */ rlwinm r5, r3, 0x1f, 0x1f, 0x1f -/* 8035C98C 50 65 0F BC */ rlwimi r5, r3, 1, 0x1e, 0x1e -/* 8035C990 80 04 02 04 */ lwz r0, 0x204(r4) -/* 8035C994 50 A0 74 22 */ rlwimi r0, r5, 0xe, 0x10, 0x11 -/* 8035C998 90 04 02 04 */ stw r0, 0x204(r4) -/* 8035C99C 80 04 05 AC */ lwz r0, 0x5ac(r4) -/* 8035C9A0 60 00 00 04 */ ori r0, r0, 4 -/* 8035C9A4 90 04 05 AC */ stw r0, 0x5ac(r4) -/* 8035C9A8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSError/OSSetErrorHandler.s b/asm/dolphin/os/OSError/OSSetErrorHandler.s deleted file mode 100644 index 8f820572110..00000000000 --- a/asm/dolphin/os/OSError/OSSetErrorHandler.s +++ /dev/null @@ -1,144 +0,0 @@ -lbl_8033C580: -/* 8033C580 7C 08 02 A6 */ mflr r0 -/* 8033C584 90 01 00 04 */ stw r0, 4(r1) -/* 8033C588 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8033C58C 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 8033C590 93 C1 00 28 */ stw r30, 0x28(r1) -/* 8033C594 93 A1 00 24 */ stw r29, 0x24(r1) -/* 8033C598 3B A3 00 00 */ addi r29, r3, 0 -/* 8033C59C 93 81 00 20 */ stw r28, 0x20(r1) -/* 8033C5A0 3B 84 00 00 */ addi r28, r4, 0 -/* 8033C5A4 48 00 11 51 */ bl OSDisableInterrupts -/* 8033C5A8 3C 80 80 45 */ lis r4, __OSErrorTable@ha /* 0x8044BAD0@ha */ -/* 8033C5AC 57 A5 13 BA */ rlwinm r5, r29, 2, 0xe, 0x1d -/* 8033C5B0 38 04 BA D0 */ addi r0, r4, __OSErrorTable@l /* 0x8044BAD0@l */ -/* 8033C5B4 57 A6 04 3E */ clrlwi r6, r29, 0x10 -/* 8033C5B8 7C 80 2A 14 */ add r4, r0, r5 -/* 8033C5BC 83 C4 00 00 */ lwz r30, 0(r4) -/* 8033C5C0 28 06 00 10 */ cmplwi r6, 0x10 -/* 8033C5C4 7C 7D 1B 78 */ mr r29, r3 -/* 8033C5C8 93 84 00 00 */ stw r28, 0(r4) -/* 8033C5CC 40 82 01 A0 */ bne lbl_8033C76C -/* 8033C5D0 4B FF D6 F1 */ bl PPCMfmsr -/* 8033C5D4 3B E3 00 00 */ addi r31, r3, 0 -/* 8033C5D8 63 E3 20 00 */ ori r3, r31, 0x2000 -/* 8033C5DC 4B FF D6 ED */ bl PPCMtmsr -/* 8033C5E0 4B FF D7 65 */ bl PPCMffpscr -/* 8033C5E4 28 1C 00 00 */ cmplwi r28, 0 -/* 8033C5E8 41 82 01 18 */ beq lbl_8033C700 -/* 8033C5EC 3C A0 80 00 */ lis r5, 0x8000 /* 0x800000DC@ha */ -/* 8033C5F0 3C 80 60 06 */ lis r4, 0x6006 /* 0x6005F8FF@ha */ -/* 8033C5F4 80 C5 00 DC */ lwz r6, 0x00DC(r5) /* 0x800000DC@l */ -/* 8033C5F8 38 84 F8 FF */ addi r4, r4, 0xF8FF /* 0x6005F8FF@l */ -/* 8033C5FC 48 00 00 E8 */ b lbl_8033C6E4 -lbl_8033C600: -/* 8033C600 80 06 01 9C */ lwz r0, 0x19c(r6) -/* 8033C604 60 00 09 00 */ ori r0, r0, 0x900 -/* 8033C608 90 06 01 9C */ stw r0, 0x19c(r6) -/* 8033C60C A0 A6 01 A2 */ lhz r5, 0x1a2(r6) -/* 8033C610 54 A0 07 FF */ clrlwi. r0, r5, 0x1f -/* 8033C614 40 82 00 AC */ bne lbl_8033C6C0 -/* 8033C618 60 A5 00 01 */ ori r5, r5, 1 -/* 8033C61C 38 00 00 04 */ li r0, 4 -/* 8033C620 B0 A6 01 A2 */ sth r5, 0x1a2(r6) -/* 8033C624 7C 09 03 A6 */ mtctr r0 -/* 8033C628 38 A6 00 00 */ addi r5, r6, 0 -lbl_8033C62C: -/* 8033C62C 38 00 FF FF */ li r0, -1 -/* 8033C630 90 05 00 94 */ stw r0, 0x94(r5) -/* 8033C634 90 05 00 90 */ stw r0, 0x90(r5) -/* 8033C638 90 05 01 CC */ stw r0, 0x1cc(r5) -/* 8033C63C 90 05 01 C8 */ stw r0, 0x1c8(r5) -/* 8033C640 90 05 00 9C */ stw r0, 0x9c(r5) -/* 8033C644 90 05 00 98 */ stw r0, 0x98(r5) -/* 8033C648 90 05 01 D4 */ stw r0, 0x1d4(r5) -/* 8033C64C 90 05 01 D0 */ stw r0, 0x1d0(r5) -/* 8033C650 90 05 00 A4 */ stw r0, 0xa4(r5) -/* 8033C654 90 05 00 A0 */ stw r0, 0xa0(r5) -/* 8033C658 90 05 01 DC */ stw r0, 0x1dc(r5) -/* 8033C65C 90 05 01 D8 */ stw r0, 0x1d8(r5) -/* 8033C660 90 05 00 AC */ stw r0, 0xac(r5) -/* 8033C664 90 05 00 A8 */ stw r0, 0xa8(r5) -/* 8033C668 90 05 01 E4 */ stw r0, 0x1e4(r5) -/* 8033C66C 90 05 01 E0 */ stw r0, 0x1e0(r5) -/* 8033C670 90 05 00 B4 */ stw r0, 0xb4(r5) -/* 8033C674 90 05 00 B0 */ stw r0, 0xb0(r5) -/* 8033C678 90 05 01 EC */ stw r0, 0x1ec(r5) -/* 8033C67C 90 05 01 E8 */ stw r0, 0x1e8(r5) -/* 8033C680 90 05 00 BC */ stw r0, 0xbc(r5) -/* 8033C684 90 05 00 B8 */ stw r0, 0xb8(r5) -/* 8033C688 90 05 01 F4 */ stw r0, 0x1f4(r5) -/* 8033C68C 90 05 01 F0 */ stw r0, 0x1f0(r5) -/* 8033C690 90 05 00 C4 */ stw r0, 0xc4(r5) -/* 8033C694 90 05 00 C0 */ stw r0, 0xc0(r5) -/* 8033C698 90 05 01 FC */ stw r0, 0x1fc(r5) -/* 8033C69C 90 05 01 F8 */ stw r0, 0x1f8(r5) -/* 8033C6A0 90 05 00 CC */ stw r0, 0xcc(r5) -/* 8033C6A4 90 05 00 C8 */ stw r0, 0xc8(r5) -/* 8033C6A8 90 05 02 04 */ stw r0, 0x204(r5) -/* 8033C6AC 90 05 02 00 */ stw r0, 0x200(r5) -/* 8033C6B0 38 A5 00 40 */ addi r5, r5, 0x40 -/* 8033C6B4 42 00 FF 78 */ bdnz lbl_8033C62C -/* 8033C6B8 38 00 00 04 */ li r0, 4 -/* 8033C6BC 90 06 01 94 */ stw r0, 0x194(r6) -lbl_8033C6C0: -/* 8033C6C0 80 0D 84 20 */ lwz r0, __OSFpscrEnableBits(r13) -/* 8033C6C4 80 A6 01 94 */ lwz r5, 0x194(r6) -/* 8033C6C8 54 00 06 38 */ rlwinm r0, r0, 0, 0x18, 0x1c -/* 8033C6CC 7C A0 03 78 */ or r0, r5, r0 -/* 8033C6D0 90 06 01 94 */ stw r0, 0x194(r6) -/* 8033C6D4 80 06 01 94 */ lwz r0, 0x194(r6) -/* 8033C6D8 7C 00 20 38 */ and r0, r0, r4 -/* 8033C6DC 90 06 01 94 */ stw r0, 0x194(r6) -/* 8033C6E0 80 C6 02 FC */ lwz r6, 0x2fc(r6) -lbl_8033C6E4: -/* 8033C6E4 28 06 00 00 */ cmplwi r6, 0 -/* 8033C6E8 40 82 FF 18 */ bne lbl_8033C600 -/* 8033C6EC 80 0D 84 20 */ lwz r0, __OSFpscrEnableBits(r13) -/* 8033C6F0 63 FF 09 00 */ ori r31, r31, 0x900 -/* 8033C6F4 54 00 06 38 */ rlwinm r0, r0, 0, 0x18, 0x1c -/* 8033C6F8 7C 63 03 78 */ or r3, r3, r0 -/* 8033C6FC 48 00 00 58 */ b lbl_8033C754 -lbl_8033C700: -/* 8033C700 3C A0 80 00 */ lis r5, 0x8000 /* 0x800000DC@ha */ -/* 8033C704 3C 80 60 06 */ lis r4, 0x6006 /* 0x6005F8FF@ha */ -/* 8033C708 80 C5 00 DC */ lwz r6, 0x00DC(r5) /* 0x800000DC@l */ -/* 8033C70C 38 84 F8 FF */ addi r4, r4, 0xF8FF /* 0x6005F8FF@l */ -/* 8033C710 38 A0 F6 FF */ li r5, -2305 -/* 8033C714 48 00 00 2C */ b lbl_8033C740 -lbl_8033C718: -/* 8033C718 80 06 01 9C */ lwz r0, 0x19c(r6) -/* 8033C71C 7C 00 28 38 */ and r0, r0, r5 -/* 8033C720 90 06 01 9C */ stw r0, 0x19c(r6) -/* 8033C724 80 06 01 94 */ lwz r0, 0x194(r6) -/* 8033C728 54 00 07 6E */ rlwinm r0, r0, 0, 0x1d, 0x17 -/* 8033C72C 90 06 01 94 */ stw r0, 0x194(r6) -/* 8033C730 80 06 01 94 */ lwz r0, 0x194(r6) -/* 8033C734 7C 00 20 38 */ and r0, r0, r4 -/* 8033C738 90 06 01 94 */ stw r0, 0x194(r6) -/* 8033C73C 80 C6 02 FC */ lwz r6, 0x2fc(r6) -lbl_8033C740: -/* 8033C740 28 06 00 00 */ cmplwi r6, 0 -/* 8033C744 40 82 FF D4 */ bne lbl_8033C718 -/* 8033C748 38 00 F6 FF */ li r0, -2305 -/* 8033C74C 54 63 07 6E */ rlwinm r3, r3, 0, 0x1d, 0x17 -/* 8033C750 7F FF 00 38 */ and r31, r31, r0 -lbl_8033C754: -/* 8033C754 3C 80 60 06 */ lis r4, 0x6006 /* 0x6005F8FF@ha */ -/* 8033C758 38 04 F8 FF */ addi r0, r4, 0xF8FF /* 0x6005F8FF@l */ -/* 8033C75C 7C 63 00 38 */ and r3, r3, r0 -/* 8033C760 4B FF D6 05 */ bl PPCMtfpscr -/* 8033C764 7F E3 FB 78 */ mr r3, r31 -/* 8033C768 4B FF D5 61 */ bl PPCMtmsr -lbl_8033C76C: -/* 8033C76C 7F A3 EB 78 */ mr r3, r29 -/* 8033C770 48 00 0F AD */ bl OSRestoreInterrupts -/* 8033C774 7F C3 F3 78 */ mr r3, r30 -/* 8033C778 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8033C77C 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 8033C780 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8033C784 83 A1 00 24 */ lwz r29, 0x24(r1) -/* 8033C788 83 81 00 20 */ lwz r28, 0x20(r1) -/* 8033C78C 38 21 00 30 */ addi r1, r1, 0x30 -/* 8033C790 7C 08 03 A6 */ mtlr r0 -/* 8033C794 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMemory/MEMIntrruptHandler.s b/asm/dolphin/os/OSMemory/MEMIntrruptHandler.s deleted file mode 100644 index b353011ed1d..00000000000 --- a/asm/dolphin/os/OSMemory/MEMIntrruptHandler.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_8033ECA8: -/* 8033ECA8 7C 08 02 A6 */ mflr r0 -/* 8033ECAC 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC004000@ha */ -/* 8033ECB0 90 01 00 04 */ stw r0, 4(r1) -/* 8033ECB4 39 03 40 00 */ addi r8, r3, 0x4000 /* 0xCC004000@l */ -/* 8033ECB8 38 00 00 00 */ li r0, 0 -/* 8033ECBC 94 21 FF F8 */ stwu r1, -8(r1) -/* 8033ECC0 A0 E3 40 24 */ lhz r7, 0x4024(r3) -/* 8033ECC4 3C 60 80 45 */ lis r3, __OSErrorTable@ha /* 0x8044BAD0@ha */ -/* 8033ECC8 A0 C8 00 22 */ lhz r6, 0x22(r8) -/* 8033ECCC 38 63 BA D0 */ addi r3, r3, __OSErrorTable@l /* 0x8044BAD0@l */ -/* 8033ECD0 A0 A8 00 1E */ lhz r5, 0x1e(r8) -/* 8033ECD4 50 E6 81 9E */ rlwimi r6, r7, 0x10, 6, 0xf -/* 8033ECD8 B0 08 00 20 */ sth r0, 0x20(r8) -/* 8033ECDC 81 83 00 3C */ lwz r12, 0x3c(r3) -/* 8033ECE0 28 0C 00 00 */ cmplwi r12, 0 -/* 8033ECE4 41 82 00 18 */ beq lbl_8033ECFC -/* 8033ECE8 7D 88 03 A6 */ mtlr r12 -/* 8033ECEC 38 60 00 0F */ li r3, 0xf -/* 8033ECF0 4C C6 31 82 */ crclr 6 -/* 8033ECF4 4E 80 00 21 */ blrl -/* 8033ECF8 48 00 00 0C */ b lbl_8033ED04 -lbl_8033ECFC: -/* 8033ECFC 38 60 00 0F */ li r3, 0xf -/* 8033ED00 4B FF DA 99 */ bl __OSUnhandledException -lbl_8033ED04: -/* 8033ED04 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8033ED08 38 21 00 08 */ addi r1, r1, 8 -/* 8033ED0C 7C 08 03 A6 */ mtlr r0 -/* 8033ED10 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/OSInitCond.s b/asm/dolphin/os/OSMutex/OSInitCond.s deleted file mode 100644 index 64dcbcae060..00000000000 --- a/asm/dolphin/os/OSMutex/OSInitCond.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8033F310: -/* 8033F310 7C 08 02 A6 */ mflr r0 -/* 8033F314 90 01 00 04 */ stw r0, 4(r1) -/* 8033F318 94 21 FF F8 */ stwu r1, -8(r1) -/* 8033F31C 48 00 19 59 */ bl OSInitThreadQueue -/* 8033F320 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8033F324 38 21 00 08 */ addi r1, r1, 8 -/* 8033F328 7C 08 03 A6 */ mtlr r0 -/* 8033F32C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/OSLockMutex.s b/asm/dolphin/os/OSMutex/OSLockMutex.s deleted file mode 100644 index 1a1f2076bf3..00000000000 --- a/asm/dolphin/os/OSMutex/OSLockMutex.s +++ /dev/null @@ -1,62 +0,0 @@ -lbl_8033F040: -/* 8033F040 7C 08 02 A6 */ mflr r0 -/* 8033F044 90 01 00 04 */ stw r0, 4(r1) -/* 8033F048 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8033F04C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8033F050 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8033F054 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8033F058 93 81 00 10 */ stw r28, 0x10(r1) -/* 8033F05C 7C 7C 1B 78 */ mr r28, r3 -/* 8033F060 4B FF E6 95 */ bl OSDisableInterrupts -/* 8033F064 7C 7D 1B 78 */ mr r29, r3 -/* 8033F068 48 00 1C 1D */ bl OSGetCurrentThread -/* 8033F06C 3B C3 00 00 */ addi r30, r3, 0 -/* 8033F070 3B E0 00 00 */ li r31, 0 -lbl_8033F074: -/* 8033F074 80 1C 00 08 */ lwz r0, 8(r28) -/* 8033F078 28 00 00 00 */ cmplwi r0, 0 -/* 8033F07C 40 82 00 40 */ bne lbl_8033F0BC -/* 8033F080 93 DC 00 08 */ stw r30, 8(r28) -/* 8033F084 80 7C 00 0C */ lwz r3, 0xc(r28) -/* 8033F088 38 03 00 01 */ addi r0, r3, 1 -/* 8033F08C 90 1C 00 0C */ stw r0, 0xc(r28) -/* 8033F090 80 7E 02 F8 */ lwz r3, 0x2f8(r30) -/* 8033F094 28 03 00 00 */ cmplwi r3, 0 -/* 8033F098 40 82 00 0C */ bne lbl_8033F0A4 -/* 8033F09C 93 9E 02 F4 */ stw r28, 0x2f4(r30) -/* 8033F0A0 48 00 00 08 */ b lbl_8033F0A8 -lbl_8033F0A4: -/* 8033F0A4 93 83 00 10 */ stw r28, 0x10(r3) -lbl_8033F0A8: -/* 8033F0A8 90 7C 00 14 */ stw r3, 0x14(r28) -/* 8033F0AC 38 00 00 00 */ li r0, 0 -/* 8033F0B0 90 1C 00 10 */ stw r0, 0x10(r28) -/* 8033F0B4 93 9E 02 F8 */ stw r28, 0x2f8(r30) -/* 8033F0B8 48 00 00 3C */ b lbl_8033F0F4 -lbl_8033F0BC: -/* 8033F0BC 7C 00 F0 40 */ cmplw r0, r30 -/* 8033F0C0 40 82 00 14 */ bne lbl_8033F0D4 -/* 8033F0C4 80 7C 00 0C */ lwz r3, 0xc(r28) -/* 8033F0C8 38 03 00 01 */ addi r0, r3, 1 -/* 8033F0CC 90 1C 00 0C */ stw r0, 0xc(r28) -/* 8033F0D0 48 00 00 24 */ b lbl_8033F0F4 -lbl_8033F0D4: -/* 8033F0D4 93 9E 02 F0 */ stw r28, 0x2f0(r30) -/* 8033F0D8 80 7C 00 08 */ lwz r3, 8(r28) -/* 8033F0DC 80 9E 02 D0 */ lwz r4, 0x2d0(r30) -/* 8033F0E0 48 00 1E C9 */ bl __OSPromoteThread -/* 8033F0E4 7F 83 E3 78 */ mr r3, r28 -/* 8033F0E8 48 00 2A C5 */ bl OSSleepThread -/* 8033F0EC 93 FE 02 F0 */ stw r31, 0x2f0(r30) -/* 8033F0F0 4B FF FF 84 */ b lbl_8033F074 -lbl_8033F0F4: -/* 8033F0F4 7F A3 EB 78 */ mr r3, r29 -/* 8033F0F8 4B FF E6 25 */ bl OSRestoreInterrupts -/* 8033F0FC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8033F100 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8033F104 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8033F108 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8033F10C 83 81 00 10 */ lwz r28, 0x10(r1) -/* 8033F110 38 21 00 20 */ addi r1, r1, 0x20 -/* 8033F114 7C 08 03 A6 */ mtlr r0 -/* 8033F118 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/OSSignalCond.s b/asm/dolphin/os/OSMutex/OSSignalCond.s deleted file mode 100644 index 9fb7050c32e..00000000000 --- a/asm/dolphin/os/OSMutex/OSSignalCond.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8033F404: -/* 8033F404 7C 08 02 A6 */ mflr r0 -/* 8033F408 90 01 00 04 */ stw r0, 4(r1) -/* 8033F40C 94 21 FF F8 */ stwu r1, -8(r1) -/* 8033F410 48 00 28 89 */ bl OSWakeupThread -/* 8033F414 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8033F418 38 21 00 08 */ addi r1, r1, 8 -/* 8033F41C 7C 08 03 A6 */ mtlr r0 -/* 8033F420 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/OSTryLockMutex.s b/asm/dolphin/os/OSMutex/OSTryLockMutex.s deleted file mode 100644 index 70d5f0be3c6..00000000000 --- a/asm/dolphin/os/OSMutex/OSTryLockMutex.s +++ /dev/null @@ -1,53 +0,0 @@ -lbl_8033F254: -/* 8033F254 7C 08 02 A6 */ mflr r0 -/* 8033F258 90 01 00 04 */ stw r0, 4(r1) -/* 8033F25C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8033F260 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8033F264 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8033F268 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8033F26C 7C 7D 1B 78 */ mr r29, r3 -/* 8033F270 4B FF E4 85 */ bl OSDisableInterrupts -/* 8033F274 7C 7F 1B 78 */ mr r31, r3 -/* 8033F278 48 00 1A 0D */ bl OSGetCurrentThread -/* 8033F27C 80 1D 00 08 */ lwz r0, 8(r29) -/* 8033F280 28 00 00 00 */ cmplwi r0, 0 -/* 8033F284 40 82 00 44 */ bne lbl_8033F2C8 -/* 8033F288 90 7D 00 08 */ stw r3, 8(r29) -/* 8033F28C 80 9D 00 0C */ lwz r4, 0xc(r29) -/* 8033F290 38 04 00 01 */ addi r0, r4, 1 -/* 8033F294 90 1D 00 0C */ stw r0, 0xc(r29) -/* 8033F298 80 83 02 F8 */ lwz r4, 0x2f8(r3) -/* 8033F29C 28 04 00 00 */ cmplwi r4, 0 -/* 8033F2A0 40 82 00 0C */ bne lbl_8033F2AC -/* 8033F2A4 93 A3 02 F4 */ stw r29, 0x2f4(r3) -/* 8033F2A8 48 00 00 08 */ b lbl_8033F2B0 -lbl_8033F2AC: -/* 8033F2AC 93 A4 00 10 */ stw r29, 0x10(r4) -lbl_8033F2B0: -/* 8033F2B0 90 9D 00 14 */ stw r4, 0x14(r29) -/* 8033F2B4 38 00 00 00 */ li r0, 0 -/* 8033F2B8 3B C0 00 01 */ li r30, 1 -/* 8033F2BC 90 1D 00 10 */ stw r0, 0x10(r29) -/* 8033F2C0 93 A3 02 F8 */ stw r29, 0x2f8(r3) -/* 8033F2C4 48 00 00 24 */ b lbl_8033F2E8 -lbl_8033F2C8: -/* 8033F2C8 7C 00 18 40 */ cmplw r0, r3 -/* 8033F2CC 40 82 00 18 */ bne lbl_8033F2E4 -/* 8033F2D0 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 8033F2D4 3B C0 00 01 */ li r30, 1 -/* 8033F2D8 38 03 00 01 */ addi r0, r3, 1 -/* 8033F2DC 90 1D 00 0C */ stw r0, 0xc(r29) -/* 8033F2E0 48 00 00 08 */ b lbl_8033F2E8 -lbl_8033F2E4: -/* 8033F2E4 3B C0 00 00 */ li r30, 0 -lbl_8033F2E8: -/* 8033F2E8 7F E3 FB 78 */ mr r3, r31 -/* 8033F2EC 4B FF E4 31 */ bl OSRestoreInterrupts -/* 8033F2F0 7F C3 F3 78 */ mr r3, r30 -/* 8033F2F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8033F2F8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8033F2FC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8033F300 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8033F304 38 21 00 20 */ addi r1, r1, 0x20 -/* 8033F308 7C 08 03 A6 */ mtlr r0 -/* 8033F30C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/OSUnlockMutex.s b/asm/dolphin/os/OSMutex/OSUnlockMutex.s deleted file mode 100644 index 26199114173..00000000000 --- a/asm/dolphin/os/OSMutex/OSUnlockMutex.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_8033F11C: -/* 8033F11C 7C 08 02 A6 */ mflr r0 -/* 8033F120 90 01 00 04 */ stw r0, 4(r1) -/* 8033F124 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8033F128 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8033F12C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8033F130 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8033F134 7C 7D 1B 78 */ mr r29, r3 -/* 8033F138 4B FF E5 BD */ bl OSDisableInterrupts -/* 8033F13C 7C 7F 1B 78 */ mr r31, r3 -/* 8033F140 48 00 1B 45 */ bl OSGetCurrentThread -/* 8033F144 80 1D 00 08 */ lwz r0, 8(r29) -/* 8033F148 3B C3 00 00 */ addi r30, r3, 0 -/* 8033F14C 7C 00 F0 40 */ cmplw r0, r30 -/* 8033F150 40 82 00 70 */ bne lbl_8033F1C0 -/* 8033F154 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 8033F158 34 03 FF FF */ addic. r0, r3, -1 -/* 8033F15C 90 1D 00 0C */ stw r0, 0xc(r29) -/* 8033F160 40 82 00 60 */ bne lbl_8033F1C0 -/* 8033F164 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 8033F168 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 8033F16C 28 03 00 00 */ cmplwi r3, 0 -/* 8033F170 40 82 00 0C */ bne lbl_8033F17C -/* 8033F174 90 9E 02 F8 */ stw r4, 0x2f8(r30) -/* 8033F178 48 00 00 08 */ b lbl_8033F180 -lbl_8033F17C: -/* 8033F17C 90 83 00 14 */ stw r4, 0x14(r3) -lbl_8033F180: -/* 8033F180 28 04 00 00 */ cmplwi r4, 0 -/* 8033F184 40 82 00 0C */ bne lbl_8033F190 -/* 8033F188 90 7E 02 F4 */ stw r3, 0x2f4(r30) -/* 8033F18C 48 00 00 08 */ b lbl_8033F194 -lbl_8033F190: -/* 8033F190 90 64 00 10 */ stw r3, 0x10(r4) -lbl_8033F194: -/* 8033F194 38 00 00 00 */ li r0, 0 -/* 8033F198 90 1D 00 08 */ stw r0, 8(r29) -/* 8033F19C 80 7E 02 D0 */ lwz r3, 0x2d0(r30) -/* 8033F1A0 80 1E 02 D4 */ lwz r0, 0x2d4(r30) -/* 8033F1A4 7C 03 00 00 */ cmpw r3, r0 -/* 8033F1A8 40 80 00 10 */ bge lbl_8033F1B8 -/* 8033F1AC 7F C3 F3 78 */ mr r3, r30 -/* 8033F1B0 48 00 1B FD */ bl __OSGetEffectivePriority -/* 8033F1B4 90 7E 02 D0 */ stw r3, 0x2d0(r30) -lbl_8033F1B8: -/* 8033F1B8 7F A3 EB 78 */ mr r3, r29 -/* 8033F1BC 48 00 2A DD */ bl OSWakeupThread -lbl_8033F1C0: -/* 8033F1C0 7F E3 FB 78 */ mr r3, r31 -/* 8033F1C4 4B FF E5 59 */ bl OSRestoreInterrupts -/* 8033F1C8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8033F1CC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8033F1D0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8033F1D4 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8033F1D8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8033F1DC 7C 08 03 A6 */ mtlr r0 -/* 8033F1E0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/OSWaitCond.s b/asm/dolphin/os/OSMutex/OSWaitCond.s deleted file mode 100644 index 0f3195faf57..00000000000 --- a/asm/dolphin/os/OSMutex/OSWaitCond.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_8033F330: -/* 8033F330 7C 08 02 A6 */ mflr r0 -/* 8033F334 90 01 00 04 */ stw r0, 4(r1) -/* 8033F338 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8033F33C BF 61 00 14 */ stmw r27, 0x14(r1) -/* 8033F340 3B 63 00 00 */ addi r27, r3, 0 -/* 8033F344 3B 84 00 00 */ addi r28, r4, 0 -/* 8033F348 4B FF E3 AD */ bl OSDisableInterrupts -/* 8033F34C 7C 7F 1B 78 */ mr r31, r3 -/* 8033F350 48 00 19 35 */ bl OSGetCurrentThread -/* 8033F354 80 1C 00 08 */ lwz r0, 8(r28) -/* 8033F358 3B C3 00 00 */ addi r30, r3, 0 -/* 8033F35C 7C 00 F0 40 */ cmplw r0, r30 -/* 8033F360 40 82 00 88 */ bne lbl_8033F3E8 -/* 8033F364 83 BC 00 0C */ lwz r29, 0xc(r28) -/* 8033F368 38 00 00 00 */ li r0, 0 -/* 8033F36C 90 1C 00 0C */ stw r0, 0xc(r28) -/* 8033F370 80 7C 00 10 */ lwz r3, 0x10(r28) -/* 8033F374 80 9C 00 14 */ lwz r4, 0x14(r28) -/* 8033F378 28 03 00 00 */ cmplwi r3, 0 -/* 8033F37C 40 82 00 0C */ bne lbl_8033F388 -/* 8033F380 90 9E 02 F8 */ stw r4, 0x2f8(r30) -/* 8033F384 48 00 00 08 */ b lbl_8033F38C -lbl_8033F388: -/* 8033F388 90 83 00 14 */ stw r4, 0x14(r3) -lbl_8033F38C: -/* 8033F38C 28 04 00 00 */ cmplwi r4, 0 -/* 8033F390 40 82 00 0C */ bne lbl_8033F39C -/* 8033F394 90 7E 02 F4 */ stw r3, 0x2f4(r30) -/* 8033F398 48 00 00 08 */ b lbl_8033F3A0 -lbl_8033F39C: -/* 8033F39C 90 64 00 10 */ stw r3, 0x10(r4) -lbl_8033F3A0: -/* 8033F3A0 38 00 00 00 */ li r0, 0 -/* 8033F3A4 90 1C 00 08 */ stw r0, 8(r28) -/* 8033F3A8 80 7E 02 D0 */ lwz r3, 0x2d0(r30) -/* 8033F3AC 80 1E 02 D4 */ lwz r0, 0x2d4(r30) -/* 8033F3B0 7C 03 00 00 */ cmpw r3, r0 -/* 8033F3B4 40 80 00 10 */ bge lbl_8033F3C4 -/* 8033F3B8 7F C3 F3 78 */ mr r3, r30 -/* 8033F3BC 48 00 19 F1 */ bl __OSGetEffectivePriority -/* 8033F3C0 90 7E 02 D0 */ stw r3, 0x2d0(r30) -lbl_8033F3C4: -/* 8033F3C4 48 00 19 01 */ bl OSDisableScheduler -/* 8033F3C8 7F 83 E3 78 */ mr r3, r28 -/* 8033F3CC 48 00 28 CD */ bl OSWakeupThread -/* 8033F3D0 48 00 19 35 */ bl OSEnableScheduler -/* 8033F3D4 7F 63 DB 78 */ mr r3, r27 -/* 8033F3D8 48 00 27 D5 */ bl OSSleepThread -/* 8033F3DC 7F 83 E3 78 */ mr r3, r28 -/* 8033F3E0 4B FF FC 61 */ bl OSLockMutex -/* 8033F3E4 93 BC 00 0C */ stw r29, 0xc(r28) -lbl_8033F3E8: -/* 8033F3E8 7F E3 FB 78 */ mr r3, r31 -/* 8033F3EC 4B FF E3 31 */ bl OSRestoreInterrupts -/* 8033F3F0 BB 61 00 14 */ lmw r27, 0x14(r1) -/* 8033F3F4 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8033F3F8 38 21 00 28 */ addi r1, r1, 0x28 -/* 8033F3FC 7C 08 03 A6 */ mtlr r0 -/* 8033F400 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/__OSCheckDeadLock.s b/asm/dolphin/os/OSMutex/__OSCheckDeadLock.s deleted file mode 100644 index 893d38ced36..00000000000 --- a/asm/dolphin/os/OSMutex/__OSCheckDeadLock.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8033F524: -/* 8033F524 80 83 02 F0 */ lwz r4, 0x2f0(r3) -/* 8033F528 48 00 00 18 */ b lbl_8033F540 -lbl_8033F52C: -/* 8033F52C 7C 04 18 40 */ cmplw r4, r3 -/* 8033F530 40 82 00 0C */ bne lbl_8033F53C -/* 8033F534 38 60 00 01 */ li r3, 1 -/* 8033F538 4E 80 00 20 */ blr -lbl_8033F53C: -/* 8033F53C 80 84 02 F0 */ lwz r4, 0x2f0(r4) -lbl_8033F540: -/* 8033F540 28 04 00 00 */ cmplwi r4, 0 -/* 8033F544 41 82 00 10 */ beq lbl_8033F554 -/* 8033F548 80 84 00 08 */ lwz r4, 8(r4) -/* 8033F54C 28 04 00 00 */ cmplwi r4, 0 -/* 8033F550 40 82 FF DC */ bne lbl_8033F52C -lbl_8033F554: -/* 8033F554 38 60 00 00 */ li r3, 0 -/* 8033F558 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/__OSCheckMutex.s b/asm/dolphin/os/OSMutex/__OSCheckMutex.s deleted file mode 100644 index 13eaadc5e8e..00000000000 --- a/asm/dolphin/os/OSMutex/__OSCheckMutex.s +++ /dev/null @@ -1,75 +0,0 @@ -lbl_8033F424: -/* 8033F424 80 83 00 00 */ lwz r4, 0(r3) -/* 8033F428 38 E0 00 00 */ li r7, 0 -/* 8033F42C 28 04 00 00 */ cmplwi r4, 0 -/* 8033F430 41 82 00 18 */ beq lbl_8033F448 -/* 8033F434 80 04 02 E4 */ lwz r0, 0x2e4(r4) -/* 8033F438 28 00 00 00 */ cmplwi r0, 0 -/* 8033F43C 41 82 00 0C */ beq lbl_8033F448 -/* 8033F440 38 60 00 00 */ li r3, 0 -/* 8033F444 4E 80 00 20 */ blr -lbl_8033F448: -/* 8033F448 80 A3 00 04 */ lwz r5, 4(r3) -/* 8033F44C 28 05 00 00 */ cmplwi r5, 0 -/* 8033F450 41 82 00 18 */ beq lbl_8033F468 -/* 8033F454 80 05 02 E0 */ lwz r0, 0x2e0(r5) -/* 8033F458 28 00 00 00 */ cmplwi r0, 0 -/* 8033F45C 41 82 00 0C */ beq lbl_8033F468 -/* 8033F460 38 60 00 00 */ li r3, 0 -/* 8033F464 4E 80 00 20 */ blr -lbl_8033F468: -/* 8033F468 7C 86 23 78 */ mr r6, r4 -/* 8033F46C 48 00 00 74 */ b lbl_8033F4E0 -lbl_8033F470: -/* 8033F470 80 86 02 E0 */ lwz r4, 0x2e0(r6) -/* 8033F474 28 04 00 00 */ cmplwi r4, 0 -/* 8033F478 41 82 00 18 */ beq lbl_8033F490 -/* 8033F47C 80 04 02 E4 */ lwz r0, 0x2e4(r4) -/* 8033F480 7C 06 00 40 */ cmplw r6, r0 -/* 8033F484 41 82 00 0C */ beq lbl_8033F490 -/* 8033F488 38 60 00 00 */ li r3, 0 -/* 8033F48C 4E 80 00 20 */ blr -lbl_8033F490: -/* 8033F490 80 A6 02 E4 */ lwz r5, 0x2e4(r6) -/* 8033F494 28 05 00 00 */ cmplwi r5, 0 -/* 8033F498 41 82 00 18 */ beq lbl_8033F4B0 -/* 8033F49C 80 05 02 E0 */ lwz r0, 0x2e0(r5) -/* 8033F4A0 7C 06 00 40 */ cmplw r6, r0 -/* 8033F4A4 41 82 00 0C */ beq lbl_8033F4B0 -/* 8033F4A8 38 60 00 00 */ li r3, 0 -/* 8033F4AC 4E 80 00 20 */ blr -lbl_8033F4B0: -/* 8033F4B0 A0 06 02 C8 */ lhz r0, 0x2c8(r6) -/* 8033F4B4 28 00 00 04 */ cmplwi r0, 4 -/* 8033F4B8 41 82 00 0C */ beq lbl_8033F4C4 -/* 8033F4BC 38 60 00 00 */ li r3, 0 -/* 8033F4C0 4E 80 00 20 */ blr -lbl_8033F4C4: -/* 8033F4C4 80 06 02 D0 */ lwz r0, 0x2d0(r6) -/* 8033F4C8 7C 00 38 00 */ cmpw r0, r7 -/* 8033F4CC 40 80 00 0C */ bge lbl_8033F4D8 -/* 8033F4D0 38 60 00 00 */ li r3, 0 -/* 8033F4D4 4E 80 00 20 */ blr -lbl_8033F4D8: -/* 8033F4D8 7C 07 03 78 */ mr r7, r0 -/* 8033F4DC 38 C4 00 00 */ addi r6, r4, 0 -lbl_8033F4E0: -/* 8033F4E0 28 06 00 00 */ cmplwi r6, 0 -/* 8033F4E4 40 82 FF 8C */ bne lbl_8033F470 -/* 8033F4E8 80 03 00 08 */ lwz r0, 8(r3) -/* 8033F4EC 28 00 00 00 */ cmplwi r0, 0 -/* 8033F4F0 41 82 00 18 */ beq lbl_8033F508 -/* 8033F4F4 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8033F4F8 2C 00 00 00 */ cmpwi r0, 0 -/* 8033F4FC 41 81 00 20 */ bgt lbl_8033F51C -/* 8033F500 38 60 00 00 */ li r3, 0 -/* 8033F504 4E 80 00 20 */ blr -lbl_8033F508: -/* 8033F508 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8033F50C 2C 00 00 00 */ cmpwi r0, 0 -/* 8033F510 41 82 00 0C */ beq lbl_8033F51C -/* 8033F514 38 60 00 00 */ li r3, 0 -/* 8033F518 4E 80 00 20 */ blr -lbl_8033F51C: -/* 8033F51C 38 60 00 01 */ li r3, 1 -/* 8033F520 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/__OSCheckMutexes.s b/asm/dolphin/os/OSMutex/__OSCheckMutexes.s deleted file mode 100644 index 0d4abc5cfab..00000000000 --- a/asm/dolphin/os/OSMutex/__OSCheckMutexes.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_8033F55C: -/* 8033F55C 7C 08 02 A6 */ mflr r0 -/* 8033F560 90 01 00 04 */ stw r0, 4(r1) -/* 8033F564 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8033F568 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8033F56C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8033F570 7C 7E 1B 78 */ mr r30, r3 -/* 8033F574 83 E3 02 F4 */ lwz r31, 0x2f4(r3) -/* 8033F578 48 00 00 34 */ b lbl_8033F5AC -lbl_8033F57C: -/* 8033F57C 80 1F 00 08 */ lwz r0, 8(r31) -/* 8033F580 7C 00 F0 40 */ cmplw r0, r30 -/* 8033F584 41 82 00 0C */ beq lbl_8033F590 -/* 8033F588 38 60 00 00 */ li r3, 0 -/* 8033F58C 48 00 00 2C */ b lbl_8033F5B8 -lbl_8033F590: -/* 8033F590 7F E3 FB 78 */ mr r3, r31 -/* 8033F594 4B FF FE 91 */ bl __OSCheckMutex -/* 8033F598 2C 03 00 00 */ cmpwi r3, 0 -/* 8033F59C 40 82 00 0C */ bne lbl_8033F5A8 -/* 8033F5A0 38 60 00 00 */ li r3, 0 -/* 8033F5A4 48 00 00 14 */ b lbl_8033F5B8 -lbl_8033F5A8: -/* 8033F5A8 83 FF 00 10 */ lwz r31, 0x10(r31) -lbl_8033F5AC: -/* 8033F5AC 28 1F 00 00 */ cmplwi r31, 0 -/* 8033F5B0 40 82 FF CC */ bne lbl_8033F57C -/* 8033F5B4 38 60 00 01 */ li r3, 1 -lbl_8033F5B8: -/* 8033F5B8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8033F5BC 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8033F5C0 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8033F5C4 38 21 00 18 */ addi r1, r1, 0x18 -/* 8033F5C8 7C 08 03 A6 */ mtlr r0 -/* 8033F5CC 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSMutex/__OSUnlockAllMutex.s b/asm/dolphin/os/OSMutex/__OSUnlockAllMutex.s deleted file mode 100644 index 64a88259d3f..00000000000 --- a/asm/dolphin/os/OSMutex/__OSUnlockAllMutex.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8033F1E4: -/* 8033F1E4 7C 08 02 A6 */ mflr r0 -/* 8033F1E8 90 01 00 04 */ stw r0, 4(r1) -/* 8033F1EC 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8033F1F0 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8033F1F4 3B E0 00 00 */ li r31, 0 -/* 8033F1F8 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8033F1FC 3B C3 00 00 */ addi r30, r3, 0 -/* 8033F200 48 00 00 30 */ b lbl_8033F230 -lbl_8033F204: -/* 8033F204 80 A4 00 10 */ lwz r5, 0x10(r4) -/* 8033F208 38 64 00 00 */ addi r3, r4, 0 -/* 8033F20C 28 05 00 00 */ cmplwi r5, 0 -/* 8033F210 40 82 00 0C */ bne lbl_8033F21C -/* 8033F214 93 FE 02 F8 */ stw r31, 0x2f8(r30) -/* 8033F218 48 00 00 08 */ b lbl_8033F220 -lbl_8033F21C: -/* 8033F21C 93 E5 00 14 */ stw r31, 0x14(r5) -lbl_8033F220: -/* 8033F220 90 BE 02 F4 */ stw r5, 0x2f4(r30) -/* 8033F224 93 E4 00 0C */ stw r31, 0xc(r4) -/* 8033F228 93 E4 00 08 */ stw r31, 8(r4) -/* 8033F22C 48 00 2A 6D */ bl OSWakeupThread -lbl_8033F230: -/* 8033F230 80 9E 02 F4 */ lwz r4, 0x2f4(r30) -/* 8033F234 28 04 00 00 */ cmplwi r4, 0 -/* 8033F238 40 82 FF CC */ bne lbl_8033F204 -/* 8033F23C 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8033F240 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8033F244 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8033F248 38 21 00 18 */ addi r1, r1, 0x18 -/* 8033F24C 7C 08 03 A6 */ mtlr r0 -/* 8033F250 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSGetGbsMode.s b/asm/dolphin/os/OSRtc/OSGetGbsMode.s deleted file mode 100644 index d2b951ef092..00000000000 --- a/asm/dolphin/os/OSRtc/OSGetGbsMode.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_803408F8: -/* 803408F8 7C 08 02 A6 */ mflr r0 -/* 803408FC 3C 60 80 45 */ lis r3, Scb@ha /* 0x8044BB20@ha */ -/* 80340900 90 01 00 04 */ stw r0, 4(r1) -/* 80340904 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 80340908 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034090C 3B E3 BB 20 */ addi r31, r3, Scb@l /* 0x8044BB20@l */ -/* 80340910 4B FF CD E5 */ bl OSDisableInterrupts -/* 80340914 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 80340918 38 9F 00 48 */ addi r4, r31, 0x48 -/* 8034091C 2C 00 00 00 */ cmpwi r0, 0 -/* 80340920 41 82 00 10 */ beq lbl_80340930 -/* 80340924 4B FF CD F9 */ bl OSRestoreInterrupts -/* 80340928 38 60 00 00 */ li r3, 0 -/* 8034092C 48 00 00 14 */ b lbl_80340940 -lbl_80340930: -/* 80340930 90 7F 00 44 */ stw r3, 0x44(r31) -/* 80340934 38 00 00 01 */ li r0, 1 -/* 80340938 38 7F 00 14 */ addi r3, r31, 0x14 -/* 8034093C 90 04 00 00 */ stw r0, 0(r4) -lbl_80340940: -/* 80340940 A3 E3 00 28 */ lhz r31, 0x28(r3) -/* 80340944 38 60 00 00 */ li r3, 0 -/* 80340948 38 80 00 14 */ li r4, 0x14 -/* 8034094C 4B FF F8 B1 */ bl UnlockSram -/* 80340950 7F E3 FB 78 */ mr r3, r31 -/* 80340954 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80340958 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034095C 38 21 00 18 */ addi r1, r1, 0x18 -/* 80340960 7C 08 03 A6 */ mtlr r0 -/* 80340964 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSGetProgressiveMode.s b/asm/dolphin/os/OSRtc/OSGetProgressiveMode.s deleted file mode 100644 index 53edfbadf95..00000000000 --- a/asm/dolphin/os/OSRtc/OSGetProgressiveMode.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_803406B4: -/* 803406B4 7C 08 02 A6 */ mflr r0 -/* 803406B8 3C 60 80 45 */ lis r3, Scb@ha /* 0x8044BB20@ha */ -/* 803406BC 90 01 00 04 */ stw r0, 4(r1) -/* 803406C0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 803406C4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 803406C8 3B E3 BB 20 */ addi r31, r3, Scb@l /* 0x8044BB20@l */ -/* 803406CC 4B FF D0 29 */ bl OSDisableInterrupts -/* 803406D0 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 803406D4 38 9F 00 48 */ addi r4, r31, 0x48 -/* 803406D8 2C 00 00 00 */ cmpwi r0, 0 -/* 803406DC 41 82 00 10 */ beq lbl_803406EC -/* 803406E0 4B FF D0 3D */ bl OSRestoreInterrupts -/* 803406E4 3B E0 00 00 */ li r31, 0 -/* 803406E8 48 00 00 10 */ b lbl_803406F8 -lbl_803406EC: -/* 803406EC 90 7F 00 44 */ stw r3, 0x44(r31) -/* 803406F0 38 00 00 01 */ li r0, 1 -/* 803406F4 90 04 00 00 */ stw r0, 0(r4) -lbl_803406F8: -/* 803406F8 88 1F 00 13 */ lbz r0, 0x13(r31) -/* 803406FC 38 60 00 00 */ li r3, 0 -/* 80340700 38 80 00 00 */ li r4, 0 -/* 80340704 54 1F CF FE */ rlwinm r31, r0, 0x19, 0x1f, 0x1f -/* 80340708 4B FF FA F5 */ bl UnlockSram -/* 8034070C 7F E3 FB 78 */ mr r3, r31 -/* 80340710 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80340714 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 80340718 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034071C 7C 08 03 A6 */ mtlr r0 -/* 80340720 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSGetSoundMode.s b/asm/dolphin/os/OSRtc/OSGetSoundMode.s deleted file mode 100644 index 764dc0f8513..00000000000 --- a/asm/dolphin/os/OSRtc/OSGetSoundMode.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80340590: -/* 80340590 7C 08 02 A6 */ mflr r0 -/* 80340594 3C 60 80 45 */ lis r3, Scb@ha /* 0x8044BB20@ha */ -/* 80340598 90 01 00 04 */ stw r0, 4(r1) -/* 8034059C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803405A0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803405A4 3B E3 BB 20 */ addi r31, r3, Scb@l /* 0x8044BB20@l */ -/* 803405A8 4B FF D1 4D */ bl OSDisableInterrupts -/* 803405AC 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 803405B0 38 9F 00 48 */ addi r4, r31, 0x48 -/* 803405B4 2C 00 00 00 */ cmpwi r0, 0 -/* 803405B8 41 82 00 10 */ beq lbl_803405C8 -/* 803405BC 4B FF D1 61 */ bl OSRestoreInterrupts -/* 803405C0 3B E0 00 00 */ li r31, 0 -/* 803405C4 48 00 00 10 */ b lbl_803405D4 -lbl_803405C8: -/* 803405C8 90 7F 00 44 */ stw r3, 0x44(r31) -/* 803405CC 38 00 00 01 */ li r0, 1 -/* 803405D0 90 04 00 00 */ stw r0, 0(r4) -lbl_803405D4: -/* 803405D4 88 1F 00 13 */ lbz r0, 0x13(r31) -/* 803405D8 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 803405DC 41 82 00 0C */ beq lbl_803405E8 -/* 803405E0 3B E0 00 01 */ li r31, 1 -/* 803405E4 48 00 00 08 */ b lbl_803405EC -lbl_803405E8: -/* 803405E8 3B E0 00 00 */ li r31, 0 -lbl_803405EC: -/* 803405EC 38 60 00 00 */ li r3, 0 -/* 803405F0 38 80 00 00 */ li r4, 0 -/* 803405F4 4B FF FC 09 */ bl UnlockSram -/* 803405F8 7F E3 FB 78 */ mr r3, r31 -/* 803405FC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80340600 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80340604 38 21 00 20 */ addi r1, r1, 0x20 -/* 80340608 7C 08 03 A6 */ mtlr r0 -/* 8034060C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSGetWirelessID.s b/asm/dolphin/os/OSRtc/OSGetWirelessID.s deleted file mode 100644 index bcbb1403548..00000000000 --- a/asm/dolphin/os/OSRtc/OSGetWirelessID.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_803407C8: -/* 803407C8 7C 08 02 A6 */ mflr r0 -/* 803407CC 3C 80 80 45 */ lis r4, Scb@ha /* 0x8044BB20@ha */ -/* 803407D0 90 01 00 04 */ stw r0, 4(r1) -/* 803407D4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803407D8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 803407DC 3B E4 BB 20 */ addi r31, r4, Scb@l /* 0x8044BB20@l */ -/* 803407E0 93 C1 00 18 */ stw r30, 0x18(r1) -/* 803407E4 3B C3 00 00 */ addi r30, r3, 0 -/* 803407E8 4B FF CF 0D */ bl OSDisableInterrupts -/* 803407EC 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 803407F0 38 9F 00 48 */ addi r4, r31, 0x48 -/* 803407F4 2C 00 00 00 */ cmpwi r0, 0 -/* 803407F8 41 82 00 10 */ beq lbl_80340808 -/* 803407FC 4B FF CF 21 */ bl OSRestoreInterrupts -/* 80340800 38 60 00 00 */ li r3, 0 -/* 80340804 48 00 00 14 */ b lbl_80340818 -lbl_80340808: -/* 80340808 90 7F 00 44 */ stw r3, 0x44(r31) -/* 8034080C 38 00 00 01 */ li r0, 1 -/* 80340810 38 7F 00 14 */ addi r3, r31, 0x14 -/* 80340814 90 04 00 00 */ stw r0, 0(r4) -lbl_80340818: -/* 80340818 57 C0 08 3C */ slwi r0, r30, 1 -/* 8034081C 7C 63 02 14 */ add r3, r3, r0 -/* 80340820 A3 E3 00 1C */ lhz r31, 0x1c(r3) -/* 80340824 38 60 00 00 */ li r3, 0 -/* 80340828 38 80 00 14 */ li r4, 0x14 -/* 8034082C 4B FF F9 D1 */ bl UnlockSram -/* 80340830 7F E3 FB 78 */ mr r3, r31 -/* 80340834 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80340838 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8034083C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80340840 38 21 00 20 */ addi r1, r1, 0x20 -/* 80340844 7C 08 03 A6 */ mtlr r0 -/* 80340848 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSSetGbsMode.s b/asm/dolphin/os/OSRtc/OSSetGbsMode.s deleted file mode 100644 index 6681b07c36d..00000000000 --- a/asm/dolphin/os/OSRtc/OSSetGbsMode.s +++ /dev/null @@ -1,53 +0,0 @@ -lbl_80340968: -/* 80340968 7C 08 02 A6 */ mflr r0 -/* 8034096C 54 64 04 3E */ clrlwi r4, r3, 0x10 -/* 80340970 90 01 00 04 */ stw r0, 4(r1) -/* 80340974 54 60 04 6A */ rlwinm r0, r3, 0, 0x11, 0x15 -/* 80340978 28 00 50 00 */ cmplwi r0, 0x5000 -/* 8034097C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80340980 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80340984 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80340988 3B C3 00 00 */ addi r30, r3, 0 -/* 8034098C 3C 60 80 45 */ lis r3, Scb@ha /* 0x8044BB20@ha */ -/* 80340990 3B E3 BB 20 */ addi r31, r3, Scb@l /* 0x8044BB20@l */ -/* 80340994 41 82 00 10 */ beq lbl_803409A4 -/* 80340998 54 80 06 32 */ rlwinm r0, r4, 0, 0x18, 0x19 -/* 8034099C 28 00 00 C0 */ cmplwi r0, 0xc0 -/* 803409A0 40 82 00 08 */ bne lbl_803409A8 -lbl_803409A4: -/* 803409A4 3B C0 00 00 */ li r30, 0 -lbl_803409A8: -/* 803409A8 4B FF CD 4D */ bl OSDisableInterrupts -/* 803409AC 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 803409B0 38 BF 00 48 */ addi r5, r31, 0x48 -/* 803409B4 2C 00 00 00 */ cmpwi r0, 0 -/* 803409B8 41 82 00 10 */ beq lbl_803409C8 -/* 803409BC 4B FF CD 61 */ bl OSRestoreInterrupts -/* 803409C0 38 80 00 00 */ li r4, 0 -/* 803409C4 48 00 00 14 */ b lbl_803409D8 -lbl_803409C8: -/* 803409C8 90 7F 00 44 */ stw r3, 0x44(r31) -/* 803409CC 38 00 00 01 */ li r0, 1 -/* 803409D0 38 9F 00 14 */ addi r4, r31, 0x14 -/* 803409D4 90 05 00 00 */ stw r0, 0(r5) -lbl_803409D8: -/* 803409D8 A0 04 00 28 */ lhz r0, 0x28(r4) -/* 803409DC 57 C3 04 3E */ clrlwi r3, r30, 0x10 -/* 803409E0 7C 03 00 40 */ cmplw r3, r0 -/* 803409E4 40 82 00 14 */ bne lbl_803409F8 -/* 803409E8 38 60 00 00 */ li r3, 0 -/* 803409EC 38 80 00 14 */ li r4, 0x14 -/* 803409F0 4B FF F8 0D */ bl UnlockSram -/* 803409F4 48 00 00 14 */ b lbl_80340A08 -lbl_803409F8: -/* 803409F8 B3 C4 00 28 */ sth r30, 0x28(r4) -/* 803409FC 38 60 00 01 */ li r3, 1 -/* 80340A00 38 80 00 14 */ li r4, 0x14 -/* 80340A04 4B FF F7 F9 */ bl UnlockSram -lbl_80340A08: -/* 80340A08 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80340A0C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80340A10 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80340A14 38 21 00 20 */ addi r1, r1, 0x20 -/* 80340A18 7C 08 03 A6 */ mtlr r0 -/* 80340A1C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSSetProgressiveMode.s b/asm/dolphin/os/OSRtc/OSSetProgressiveMode.s deleted file mode 100644 index 4709877e460..00000000000 --- a/asm/dolphin/os/OSRtc/OSSetProgressiveMode.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_80340724: -/* 80340724 7C 08 02 A6 */ mflr r0 -/* 80340728 3C 80 80 45 */ lis r4, Scb@ha /* 0x8044BB20@ha */ -/* 8034072C 90 01 00 04 */ stw r0, 4(r1) -/* 80340730 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80340734 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80340738 3B E4 BB 20 */ addi r31, r4, Scb@l /* 0x8044BB20@l */ -/* 8034073C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80340740 54 7E 3E 30 */ rlwinm r30, r3, 7, 0x18, 0x18 -/* 80340744 4B FF CF B1 */ bl OSDisableInterrupts -/* 80340748 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 8034074C 38 9F 00 48 */ addi r4, r31, 0x48 -/* 80340750 2C 00 00 00 */ cmpwi r0, 0 -/* 80340754 41 82 00 10 */ beq lbl_80340764 -/* 80340758 4B FF CF C5 */ bl OSRestoreInterrupts -/* 8034075C 3B E0 00 00 */ li r31, 0 -/* 80340760 48 00 00 10 */ b lbl_80340770 -lbl_80340764: -/* 80340764 90 7F 00 44 */ stw r3, 0x44(r31) -/* 80340768 38 00 00 01 */ li r0, 1 -/* 8034076C 90 04 00 00 */ stw r0, 0(r4) -lbl_80340770: -/* 80340770 88 7F 00 13 */ lbz r3, 0x13(r31) -/* 80340774 54 60 06 30 */ rlwinm r0, r3, 0, 0x18, 0x18 -/* 80340778 7C 1E 00 40 */ cmplw r30, r0 -/* 8034077C 40 82 00 14 */ bne lbl_80340790 -/* 80340780 38 60 00 00 */ li r3, 0 -/* 80340784 38 80 00 00 */ li r4, 0 -/* 80340788 4B FF FA 75 */ bl UnlockSram -/* 8034078C 48 00 00 24 */ b lbl_803407B0 -lbl_80340790: -/* 80340790 54 60 06 6E */ rlwinm r0, r3, 0, 0x19, 0x17 -/* 80340794 98 1F 00 13 */ stb r0, 0x13(r31) -/* 80340798 38 60 00 01 */ li r3, 1 -/* 8034079C 38 80 00 00 */ li r4, 0 -/* 803407A0 88 1F 00 13 */ lbz r0, 0x13(r31) -/* 803407A4 7C 00 F3 78 */ or r0, r0, r30 -/* 803407A8 98 1F 00 13 */ stb r0, 0x13(r31) -/* 803407AC 4B FF FA 51 */ bl UnlockSram -lbl_803407B0: -/* 803407B0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803407B4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803407B8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803407BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 803407C0 7C 08 03 A6 */ mtlr r0 -/* 803407C4 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSSetSoundMode.s b/asm/dolphin/os/OSRtc/OSSetSoundMode.s deleted file mode 100644 index 21a813fa2a7..00000000000 --- a/asm/dolphin/os/OSRtc/OSSetSoundMode.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_80340610: -/* 80340610 7C 08 02 A6 */ mflr r0 -/* 80340614 3C 80 80 45 */ lis r4, Scb@ha /* 0x8044BB20@ha */ -/* 80340618 90 01 00 04 */ stw r0, 4(r1) -/* 8034061C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80340620 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80340624 3B E4 BB 20 */ addi r31, r4, Scb@l /* 0x8044BB20@l */ -/* 80340628 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8034062C 54 7E 17 7A */ rlwinm r30, r3, 2, 0x1d, 0x1d -/* 80340630 4B FF D0 C5 */ bl OSDisableInterrupts -/* 80340634 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 80340638 38 9F 00 48 */ addi r4, r31, 0x48 -/* 8034063C 2C 00 00 00 */ cmpwi r0, 0 -/* 80340640 41 82 00 10 */ beq lbl_80340650 -/* 80340644 4B FF D0 D9 */ bl OSRestoreInterrupts -/* 80340648 3B E0 00 00 */ li r31, 0 -/* 8034064C 48 00 00 10 */ b lbl_8034065C -lbl_80340650: -/* 80340650 90 7F 00 44 */ stw r3, 0x44(r31) -/* 80340654 38 00 00 01 */ li r0, 1 -/* 80340658 90 04 00 00 */ stw r0, 0(r4) -lbl_8034065C: -/* 8034065C 88 7F 00 13 */ lbz r3, 0x13(r31) -/* 80340660 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d -/* 80340664 7C 1E 00 40 */ cmplw r30, r0 -/* 80340668 40 82 00 14 */ bne lbl_8034067C -/* 8034066C 38 60 00 00 */ li r3, 0 -/* 80340670 38 80 00 00 */ li r4, 0 -/* 80340674 4B FF FB 89 */ bl UnlockSram -/* 80340678 48 00 00 24 */ b lbl_8034069C -lbl_8034067C: -/* 8034067C 54 60 07 B8 */ rlwinm r0, r3, 0, 0x1e, 0x1c -/* 80340680 98 1F 00 13 */ stb r0, 0x13(r31) -/* 80340684 38 60 00 01 */ li r3, 1 -/* 80340688 38 80 00 00 */ li r4, 0 -/* 8034068C 88 1F 00 13 */ lbz r0, 0x13(r31) -/* 80340690 7C 00 F3 78 */ or r0, r0, r30 -/* 80340694 98 1F 00 13 */ stb r0, 0x13(r31) -/* 80340698 4B FF FB 65 */ bl UnlockSram -lbl_8034069C: -/* 8034069C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803406A0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803406A4 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 803406A8 38 21 00 20 */ addi r1, r1, 0x20 -/* 803406AC 7C 08 03 A6 */ mtlr r0 -/* 803406B0 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/OSSetWirelessID.s b/asm/dolphin/os/OSRtc/OSSetWirelessID.s deleted file mode 100644 index 87948e54c86..00000000000 --- a/asm/dolphin/os/OSRtc/OSSetWirelessID.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_8034084C: -/* 8034084C 7C 08 02 A6 */ mflr r0 -/* 80340850 3C A0 80 45 */ lis r5, Scb@ha /* 0x8044BB20@ha */ -/* 80340854 90 01 00 04 */ stw r0, 4(r1) -/* 80340858 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8034085C 93 E1 00 24 */ stw r31, 0x24(r1) -/* 80340860 3B E5 BB 20 */ addi r31, r5, Scb@l /* 0x8044BB20@l */ -/* 80340864 93 C1 00 20 */ stw r30, 0x20(r1) -/* 80340868 3B C4 00 00 */ addi r30, r4, 0 -/* 8034086C 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 80340870 3B A3 00 00 */ addi r29, r3, 0 -/* 80340874 4B FF CE 81 */ bl OSDisableInterrupts -/* 80340878 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 8034087C 38 9F 00 48 */ addi r4, r31, 0x48 -/* 80340880 2C 00 00 00 */ cmpwi r0, 0 -/* 80340884 41 82 00 10 */ beq lbl_80340894 -/* 80340888 4B FF CE 95 */ bl OSRestoreInterrupts -/* 8034088C 38 60 00 00 */ li r3, 0 -/* 80340890 48 00 00 14 */ b lbl_803408A4 -lbl_80340894: -/* 80340894 90 7F 00 44 */ stw r3, 0x44(r31) -/* 80340898 38 00 00 01 */ li r0, 1 -/* 8034089C 38 7F 00 14 */ addi r3, r31, 0x14 -/* 803408A0 90 04 00 00 */ stw r0, 0(r4) -lbl_803408A4: -/* 803408A4 57 A0 08 3C */ slwi r0, r29, 1 -/* 803408A8 7C 83 02 14 */ add r4, r3, r0 -/* 803408AC A4 64 00 1C */ lhzu r3, 0x1c(r4) -/* 803408B0 57 C0 04 3E */ clrlwi r0, r30, 0x10 -/* 803408B4 7C 03 00 40 */ cmplw r3, r0 -/* 803408B8 41 82 00 18 */ beq lbl_803408D0 -/* 803408BC B3 C4 00 00 */ sth r30, 0(r4) -/* 803408C0 38 60 00 01 */ li r3, 1 -/* 803408C4 38 80 00 14 */ li r4, 0x14 -/* 803408C8 4B FF F9 35 */ bl UnlockSram -/* 803408CC 48 00 00 10 */ b lbl_803408DC -lbl_803408D0: -/* 803408D0 38 60 00 00 */ li r3, 0 -/* 803408D4 38 80 00 14 */ li r4, 0x14 -/* 803408D8 4B FF F9 25 */ bl UnlockSram -lbl_803408DC: -/* 803408DC 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 803408E0 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 803408E4 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 803408E8 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 803408EC 38 21 00 28 */ addi r1, r1, 0x28 -/* 803408F0 7C 08 03 A6 */ mtlr r0 -/* 803408F4 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/UnlockSram.s b/asm/dolphin/os/OSRtc/UnlockSram.s deleted file mode 100644 index c642e79500a..00000000000 --- a/asm/dolphin/os/OSRtc/UnlockSram.s +++ /dev/null @@ -1,220 +0,0 @@ -lbl_803401FC: -/* 803401FC 7C 08 02 A6 */ mflr r0 -/* 80340200 2C 03 00 00 */ cmpwi r3, 0 -/* 80340204 90 01 00 04 */ stw r0, 4(r1) -/* 80340208 3C 60 80 45 */ lis r3, Scb@ha /* 0x8044BB20@ha */ -/* 8034020C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80340210 BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 80340214 3B E3 BB 20 */ addi r31, r3, Scb@l /* 0x8044BB20@l */ -/* 80340218 41 82 02 F8 */ beq lbl_80340510 -/* 8034021C 28 04 00 00 */ cmplwi r4, 0 -/* 80340220 40 82 01 B0 */ bne lbl_803403D0 -/* 80340224 88 7F 00 13 */ lbz r3, 0x13(r31) -/* 80340228 54 60 07 BE */ clrlwi r0, r3, 0x1e -/* 8034022C 28 00 00 02 */ cmplwi r0, 2 -/* 80340230 40 81 00 0C */ ble lbl_8034023C -/* 80340234 54 60 00 3A */ rlwinm r0, r3, 0, 0, 0x1d -/* 80340238 98 1F 00 13 */ stb r0, 0x13(r31) -lbl_8034023C: -/* 8034023C 38 00 00 00 */ li r0, 0 -/* 80340240 B0 1F 00 02 */ sth r0, 2(r31) -/* 80340244 38 BF 00 14 */ addi r5, r31, 0x14 -/* 80340248 38 DF 00 0C */ addi r6, r31, 0xc -/* 8034024C 38 65 00 01 */ addi r3, r5, 1 -/* 80340250 B0 1F 00 00 */ sth r0, 0(r31) -/* 80340254 7C 66 18 50 */ subf r3, r6, r3 -/* 80340258 7C 06 28 40 */ cmplw r6, r5 -/* 8034025C 54 63 F8 7E */ srwi r3, r3, 1 -/* 80340260 40 80 01 70 */ bge lbl_803403D0 -/* 80340264 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f -/* 80340268 7C 09 03 A6 */ mtctr r0 -/* 8034026C 41 82 01 34 */ beq lbl_803403A0 -lbl_80340270: -/* 80340270 A0 BF 00 00 */ lhz r5, 0(r31) -/* 80340274 A0 06 00 00 */ lhz r0, 0(r6) -/* 80340278 7C 05 02 14 */ add r0, r5, r0 -/* 8034027C B0 1F 00 00 */ sth r0, 0(r31) -/* 80340280 A0 06 00 00 */ lhz r0, 0(r6) -/* 80340284 A0 BF 00 02 */ lhz r5, 2(r31) -/* 80340288 7C 00 00 F8 */ nor r0, r0, r0 -/* 8034028C 7C 05 02 14 */ add r0, r5, r0 -/* 80340290 B0 1F 00 02 */ sth r0, 2(r31) -/* 80340294 A0 BF 00 00 */ lhz r5, 0(r31) -/* 80340298 A0 06 00 02 */ lhz r0, 2(r6) -/* 8034029C 7C 05 02 14 */ add r0, r5, r0 -/* 803402A0 B0 1F 00 00 */ sth r0, 0(r31) -/* 803402A4 A0 06 00 02 */ lhz r0, 2(r6) -/* 803402A8 A0 BF 00 02 */ lhz r5, 2(r31) -/* 803402AC 7C 00 00 F8 */ nor r0, r0, r0 -/* 803402B0 7C 05 02 14 */ add r0, r5, r0 -/* 803402B4 B0 1F 00 02 */ sth r0, 2(r31) -/* 803402B8 A0 BF 00 00 */ lhz r5, 0(r31) -/* 803402BC A0 06 00 04 */ lhz r0, 4(r6) -/* 803402C0 7C 05 02 14 */ add r0, r5, r0 -/* 803402C4 B0 1F 00 00 */ sth r0, 0(r31) -/* 803402C8 A0 06 00 04 */ lhz r0, 4(r6) -/* 803402CC A0 BF 00 02 */ lhz r5, 2(r31) -/* 803402D0 7C 00 00 F8 */ nor r0, r0, r0 -/* 803402D4 7C 05 02 14 */ add r0, r5, r0 -/* 803402D8 B0 1F 00 02 */ sth r0, 2(r31) -/* 803402DC A0 BF 00 00 */ lhz r5, 0(r31) -/* 803402E0 A0 06 00 06 */ lhz r0, 6(r6) -/* 803402E4 7C 05 02 14 */ add r0, r5, r0 -/* 803402E8 B0 1F 00 00 */ sth r0, 0(r31) -/* 803402EC A0 06 00 06 */ lhz r0, 6(r6) -/* 803402F0 A0 BF 00 02 */ lhz r5, 2(r31) -/* 803402F4 7C 00 00 F8 */ nor r0, r0, r0 -/* 803402F8 7C 05 02 14 */ add r0, r5, r0 -/* 803402FC B0 1F 00 02 */ sth r0, 2(r31) -/* 80340300 A0 BF 00 00 */ lhz r5, 0(r31) -/* 80340304 A0 06 00 08 */ lhz r0, 8(r6) -/* 80340308 7C 05 02 14 */ add r0, r5, r0 -/* 8034030C B0 1F 00 00 */ sth r0, 0(r31) -/* 80340310 A0 06 00 08 */ lhz r0, 8(r6) -/* 80340314 A0 BF 00 02 */ lhz r5, 2(r31) -/* 80340318 7C 00 00 F8 */ nor r0, r0, r0 -/* 8034031C 7C 05 02 14 */ add r0, r5, r0 -/* 80340320 B0 1F 00 02 */ sth r0, 2(r31) -/* 80340324 A0 BF 00 00 */ lhz r5, 0(r31) -/* 80340328 A0 06 00 0A */ lhz r0, 0xa(r6) -/* 8034032C 7C 05 02 14 */ add r0, r5, r0 -/* 80340330 B0 1F 00 00 */ sth r0, 0(r31) -/* 80340334 A0 06 00 0A */ lhz r0, 0xa(r6) -/* 80340338 A0 BF 00 02 */ lhz r5, 2(r31) -/* 8034033C 7C 00 00 F8 */ nor r0, r0, r0 -/* 80340340 7C 05 02 14 */ add r0, r5, r0 -/* 80340344 B0 1F 00 02 */ sth r0, 2(r31) -/* 80340348 A0 BF 00 00 */ lhz r5, 0(r31) -/* 8034034C A0 06 00 0C */ lhz r0, 0xc(r6) -/* 80340350 7C 05 02 14 */ add r0, r5, r0 -/* 80340354 B0 1F 00 00 */ sth r0, 0(r31) -/* 80340358 A0 06 00 0C */ lhz r0, 0xc(r6) -/* 8034035C A0 BF 00 02 */ lhz r5, 2(r31) -/* 80340360 7C 00 00 F8 */ nor r0, r0, r0 -/* 80340364 7C 05 02 14 */ add r0, r5, r0 -/* 80340368 B0 1F 00 02 */ sth r0, 2(r31) -/* 8034036C A0 BF 00 00 */ lhz r5, 0(r31) -/* 80340370 A0 06 00 0E */ lhz r0, 0xe(r6) -/* 80340374 7C 05 02 14 */ add r0, r5, r0 -/* 80340378 B0 1F 00 00 */ sth r0, 0(r31) -/* 8034037C A0 06 00 0E */ lhz r0, 0xe(r6) -/* 80340380 38 C6 00 10 */ addi r6, r6, 0x10 -/* 80340384 A0 BF 00 02 */ lhz r5, 2(r31) -/* 80340388 7C 00 00 F8 */ nor r0, r0, r0 -/* 8034038C 7C 05 02 14 */ add r0, r5, r0 -/* 80340390 B0 1F 00 02 */ sth r0, 2(r31) -/* 80340394 42 00 FE DC */ bdnz lbl_80340270 -/* 80340398 70 63 00 07 */ andi. r3, r3, 7 -/* 8034039C 41 82 00 34 */ beq lbl_803403D0 -lbl_803403A0: -/* 803403A0 7C 69 03 A6 */ mtctr r3 -lbl_803403A4: -/* 803403A4 A0 BF 00 00 */ lhz r5, 0(r31) -/* 803403A8 A0 06 00 00 */ lhz r0, 0(r6) -/* 803403AC 7C 05 02 14 */ add r0, r5, r0 -/* 803403B0 B0 1F 00 00 */ sth r0, 0(r31) -/* 803403B4 A0 06 00 00 */ lhz r0, 0(r6) -/* 803403B8 38 C6 00 02 */ addi r6, r6, 2 -/* 803403BC A0 BF 00 02 */ lhz r5, 2(r31) -/* 803403C0 7C 00 00 F8 */ nor r0, r0, r0 -/* 803403C4 7C 05 02 14 */ add r0, r5, r0 -/* 803403C8 B0 1F 00 02 */ sth r0, 2(r31) -/* 803403CC 42 00 FF D8 */ bdnz lbl_803403A4 -lbl_803403D0: -/* 803403D0 3B DF 00 40 */ addi r30, r31, 0x40 -/* 803403D4 80 1F 00 40 */ lwz r0, 0x40(r31) -/* 803403D8 7C 04 00 40 */ cmplw r4, r0 -/* 803403DC 40 80 00 08 */ bge lbl_803403E4 -/* 803403E0 90 9E 00 00 */ stw r4, 0(r30) -lbl_803403E4: -/* 803403E4 80 1E 00 00 */ lwz r0, 0(r30) -/* 803403E8 28 00 00 14 */ cmplwi r0, 0x14 -/* 803403EC 41 81 00 2C */ bgt lbl_80340418 -/* 803403F0 38 9F 00 14 */ addi r4, r31, 0x14 -/* 803403F4 A0 7F 00 3C */ lhz r3, 0x3c(r31) -/* 803403F8 54 60 04 6A */ rlwinm r0, r3, 0, 0x11, 0x15 -/* 803403FC 28 00 50 00 */ cmplwi r0, 0x5000 -/* 80340400 41 82 00 10 */ beq lbl_80340410 -/* 80340404 54 60 06 32 */ rlwinm r0, r3, 0, 0x18, 0x19 -/* 80340408 28 00 00 C0 */ cmplwi r0, 0xc0 -/* 8034040C 40 82 00 0C */ bne lbl_80340418 -lbl_80340410: -/* 80340410 38 00 00 00 */ li r0, 0 -/* 80340414 B0 04 00 28 */ sth r0, 0x28(r4) -lbl_80340418: -/* 80340418 83 BE 00 00 */ lwz r29, 0(r30) -/* 8034041C 3C 60 80 34 */ lis r3, WriteSramCallback@ha /* 0x8033FE90@ha */ -/* 80340420 38 A3 FE 90 */ addi r5, r3, WriteSramCallback@l /* 0x8033FE90@l */ -/* 80340424 23 7D 00 40 */ subfic r27, r29, 0x40 -/* 80340428 7F 9F EA 14 */ add r28, r31, r29 -/* 8034042C 38 60 00 00 */ li r3, 0 -/* 80340430 38 80 00 01 */ li r4, 1 -/* 80340434 48 00 3B F5 */ bl EXILock -/* 80340438 2C 03 00 00 */ cmpwi r3, 0 -/* 8034043C 40 82 00 0C */ bne lbl_80340448 -/* 80340440 38 00 00 00 */ li r0, 0 -/* 80340444 48 00 00 B4 */ b lbl_803404F8 -lbl_80340448: -/* 80340448 38 60 00 00 */ li r3, 0 -/* 8034044C 38 80 00 01 */ li r4, 1 -/* 80340450 38 A0 00 03 */ li r5, 3 -/* 80340454 48 00 34 15 */ bl EXISelect -/* 80340458 2C 03 00 00 */ cmpwi r3, 0 -/* 8034045C 40 82 00 14 */ bne lbl_80340470 -/* 80340460 38 60 00 00 */ li r3, 0 -/* 80340464 48 00 3C B9 */ bl EXIUnlock -/* 80340468 38 00 00 00 */ li r0, 0 -/* 8034046C 48 00 00 8C */ b lbl_803404F8 -lbl_80340470: -/* 80340470 57 A3 30 32 */ slwi r3, r29, 6 -/* 80340474 38 03 01 00 */ addi r0, r3, 0x100 -/* 80340478 64 00 A0 00 */ oris r0, r0, 0xa000 -/* 8034047C 90 01 00 10 */ stw r0, 0x10(r1) -/* 80340480 38 81 00 10 */ addi r4, r1, 0x10 -/* 80340484 38 60 00 00 */ li r3, 0 -/* 80340488 38 A0 00 04 */ li r5, 4 -/* 8034048C 38 C0 00 01 */ li r6, 1 -/* 80340490 38 E0 00 00 */ li r7, 0 -/* 80340494 48 00 28 6D */ bl EXIImm -/* 80340498 7C 60 00 34 */ cntlzw r0, r3 -/* 8034049C 54 1D D9 7E */ srwi r29, r0, 5 -/* 803404A0 38 60 00 00 */ li r3, 0 -/* 803404A4 48 00 2C 45 */ bl EXISync -/* 803404A8 7C 60 00 34 */ cntlzw r0, r3 -/* 803404AC 54 00 D9 7E */ srwi r0, r0, 5 -/* 803404B0 38 9C 00 00 */ addi r4, r28, 0 -/* 803404B4 38 BB 00 00 */ addi r5, r27, 0 -/* 803404B8 7F BD 03 78 */ or r29, r29, r0 -/* 803404BC 38 60 00 00 */ li r3, 0 -/* 803404C0 38 C0 00 01 */ li r6, 1 -/* 803404C4 48 00 2A 99 */ bl EXIImmEx -/* 803404C8 7C 60 00 34 */ cntlzw r0, r3 -/* 803404CC 54 00 D9 7E */ srwi r0, r0, 5 -/* 803404D0 7F BD 03 78 */ or r29, r29, r0 -/* 803404D4 38 60 00 00 */ li r3, 0 -/* 803404D8 48 00 34 BD */ bl EXIDeselect -/* 803404DC 7C 60 00 34 */ cntlzw r0, r3 -/* 803404E0 54 00 D9 7E */ srwi r0, r0, 5 -/* 803404E4 7F BD 03 78 */ or r29, r29, r0 -/* 803404E8 38 60 00 00 */ li r3, 0 -/* 803404EC 48 00 3C 31 */ bl EXIUnlock -/* 803404F0 7F A0 00 34 */ cntlzw r0, r29 -/* 803404F4 54 00 D9 7E */ srwi r0, r0, 5 -lbl_803404F8: -/* 803404F8 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 803404FC 80 1F 00 4C */ lwz r0, 0x4c(r31) -/* 80340500 2C 00 00 00 */ cmpwi r0, 0 -/* 80340504 41 82 00 0C */ beq lbl_80340510 -/* 80340508 38 00 00 40 */ li r0, 0x40 -/* 8034050C 90 1E 00 00 */ stw r0, 0(r30) -lbl_80340510: -/* 80340510 38 00 00 00 */ li r0, 0 -/* 80340514 90 1F 00 48 */ stw r0, 0x48(r31) -/* 80340518 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 8034051C 4B FF D2 01 */ bl OSRestoreInterrupts -/* 80340520 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 80340524 BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 80340528 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8034052C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80340530 7C 08 03 A6 */ mtlr r0 -/* 80340534 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/__OSLockSram.s b/asm/dolphin/os/OSRtc/__OSLockSram.s deleted file mode 100644 index 48feaed1b7b..00000000000 --- a/asm/dolphin/os/OSRtc/__OSLockSram.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80340144: -/* 80340144 7C 08 02 A6 */ mflr r0 -/* 80340148 3C 60 80 45 */ lis r3, Scb@ha /* 0x8044BB20@ha */ -/* 8034014C 90 01 00 04 */ stw r0, 4(r1) -/* 80340150 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80340154 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80340158 3B E3 BB 20 */ addi r31, r3, Scb@l /* 0x8044BB20@l */ -/* 8034015C 4B FF D5 99 */ bl OSDisableInterrupts -/* 80340160 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 80340164 38 9F 00 48 */ addi r4, r31, 0x48 -/* 80340168 2C 00 00 00 */ cmpwi r0, 0 -/* 8034016C 41 82 00 10 */ beq lbl_8034017C -/* 80340170 4B FF D5 AD */ bl OSRestoreInterrupts -/* 80340174 3B E0 00 00 */ li r31, 0 -/* 80340178 48 00 00 10 */ b lbl_80340188 -lbl_8034017C: -/* 8034017C 90 7F 00 44 */ stw r3, 0x44(r31) -/* 80340180 38 00 00 01 */ li r0, 1 -/* 80340184 90 04 00 00 */ stw r0, 0(r4) -lbl_80340188: -/* 80340188 7F E3 FB 78 */ mr r3, r31 -/* 8034018C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80340190 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80340194 38 21 00 10 */ addi r1, r1, 0x10 -/* 80340198 7C 08 03 A6 */ mtlr r0 -/* 8034019C 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/__OSLockSramEx.s b/asm/dolphin/os/OSRtc/__OSLockSramEx.s deleted file mode 100644 index 28d1b52b6ba..00000000000 --- a/asm/dolphin/os/OSRtc/__OSLockSramEx.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_803401A0: -/* 803401A0 7C 08 02 A6 */ mflr r0 -/* 803401A4 3C 60 80 45 */ lis r3, Scb@ha /* 0x8044BB20@ha */ -/* 803401A8 90 01 00 04 */ stw r0, 4(r1) -/* 803401AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803401B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803401B4 3B E3 BB 20 */ addi r31, r3, Scb@l /* 0x8044BB20@l */ -/* 803401B8 4B FF D5 3D */ bl OSDisableInterrupts -/* 803401BC 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 803401C0 38 9F 00 48 */ addi r4, r31, 0x48 -/* 803401C4 2C 00 00 00 */ cmpwi r0, 0 -/* 803401C8 41 82 00 10 */ beq lbl_803401D8 -/* 803401CC 4B FF D5 51 */ bl OSRestoreInterrupts -/* 803401D0 38 60 00 00 */ li r3, 0 -/* 803401D4 48 00 00 14 */ b lbl_803401E8 -lbl_803401D8: -/* 803401D8 90 7F 00 44 */ stw r3, 0x44(r31) -/* 803401DC 38 00 00 01 */ li r0, 1 -/* 803401E0 38 7F 00 14 */ addi r3, r31, 0x14 -/* 803401E4 90 04 00 00 */ stw r0, 0(r4) -lbl_803401E8: -/* 803401E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803401EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803401F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 803401F4 7C 08 03 A6 */ mtlr r0 -/* 803401F8 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/__OSUnlockSram.s b/asm/dolphin/os/OSRtc/__OSUnlockSram.s deleted file mode 100644 index ec114a8fbe3..00000000000 --- a/asm/dolphin/os/OSRtc/__OSUnlockSram.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80340538: -/* 80340538 7C 08 02 A6 */ mflr r0 -/* 8034053C 38 80 00 00 */ li r4, 0 -/* 80340540 90 01 00 04 */ stw r0, 4(r1) -/* 80340544 94 21 FF F8 */ stwu r1, -8(r1) -/* 80340548 4B FF FC B5 */ bl UnlockSram -/* 8034054C 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80340550 38 21 00 08 */ addi r1, r1, 8 -/* 80340554 7C 08 03 A6 */ mtlr r0 -/* 80340558 4E 80 00 20 */ blr diff --git a/asm/dolphin/os/OSRtc/__OSUnlockSramEx.s b/asm/dolphin/os/OSRtc/__OSUnlockSramEx.s deleted file mode 100644 index 9ff34001a6e..00000000000 --- a/asm/dolphin/os/OSRtc/__OSUnlockSramEx.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8034055C: -/* 8034055C 7C 08 02 A6 */ mflr r0 -/* 80340560 38 80 00 14 */ li r4, 0x14 -/* 80340564 90 01 00 04 */ stw r0, 4(r1) -/* 80340568 94 21 FF F8 */ stwu r1, -8(r1) -/* 8034056C 4B FF FC 91 */ bl UnlockSram -/* 80340570 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80340574 38 21 00 08 */ addi r1, r1, 8 -/* 80340578 7C 08 03 A6 */ mtlr r0 -/* 8034057C 4E 80 00 20 */ blr diff --git a/asm/dolphin/si/SIBios/GetTypeCallback.s b/asm/dolphin/si/SIBios/GetTypeCallback.s deleted file mode 100644 index bf9d9b5a7e2..00000000000 --- a/asm/dolphin/si/SIBios/GetTypeCallback.s +++ /dev/null @@ -1,179 +0,0 @@ -lbl_80345CF8: -/* 80345CF8 7C 08 02 A6 */ mflr r0 -/* 80345CFC 90 01 00 04 */ stw r0, 4(r1) -/* 80345D00 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80345D04 BF 41 00 18 */ stmw r26, 0x18(r1) -/* 80345D08 3B 63 00 00 */ addi r27, r3, 0 -/* 80345D0C 3C 60 80 3D */ lis r3, Type@ha /* 0x803D1210@ha */ -/* 80345D10 38 03 12 10 */ addi r0, r3, Type@l /* 0x803D1210@l */ -/* 80345D14 57 7D 10 3A */ slwi r29, r27, 2 -/* 80345D18 7F C0 EA 14 */ add r30, r0, r29 -/* 80345D1C 3C 60 80 45 */ lis r3, Packet@ha /* 0x8044C630@ha */ -/* 80345D20 3B 44 00 00 */ addi r26, r4, 0 -/* 80345D24 3B E3 C6 30 */ addi r31, r3, Packet@l /* 0x8044C630@l */ -/* 80345D28 80 1E 00 00 */ lwz r0, 0(r30) -/* 80345D2C 54 00 06 6E */ rlwinm r0, r0, 0, 0x19, 0x17 -/* 80345D30 90 1E 00 00 */ stw r0, 0(r30) -/* 80345D34 80 1E 00 00 */ lwz r0, 0(r30) -/* 80345D38 7C 00 D3 78 */ or r0, r0, r26 -/* 80345D3C 90 1E 00 00 */ stw r0, 0(r30) -/* 80345D40 4B FF C9 DD */ bl __OSGetSystemTime -/* 80345D44 57 60 18 38 */ slwi r0, r27, 3 -/* 80345D48 7C BF 02 14 */ add r5, r31, r0 -/* 80345D4C 90 85 01 24 */ stw r4, 0x124(r5) -/* 80345D50 3C 80 80 00 */ lis r4, 0x8000 -/* 80345D54 57 40 07 3F */ clrlwi. r0, r26, 0x1c -/* 80345D58 90 65 01 20 */ stw r3, 0x120(r5) -/* 80345D5C 7C 84 DC 30 */ srw r4, r4, r27 -/* 80345D60 80 6D 91 78 */ lwz r3, __PADFixBits(r13) -/* 80345D64 83 9E 00 00 */ lwz r28, 0(r30) -/* 80345D68 7C 60 20 78 */ andc r0, r3, r4 -/* 80345D6C 90 0D 91 78 */ stw r0, __PADFixBits(r13) -/* 80345D70 7C 7A 20 38 */ and r26, r3, r4 -/* 80345D74 40 82 00 24 */ bne lbl_80345D98 -/* 80345D78 57 83 00 C8 */ rlwinm r3, r28, 0, 3, 4 -/* 80345D7C 3C 03 F8 00 */ addis r0, r3, 0xf800 -/* 80345D80 28 00 00 00 */ cmplwi r0, 0 -/* 80345D84 40 82 00 14 */ bne lbl_80345D98 -/* 80345D88 57 80 00 01 */ rlwinm. r0, r28, 0, 0, 0 -/* 80345D8C 41 82 00 0C */ beq lbl_80345D98 -/* 80345D90 57 80 01 4B */ rlwinm. r0, r28, 0, 5, 5 -/* 80345D94 41 82 00 5C */ beq lbl_80345DF0 -lbl_80345D98: -/* 80345D98 38 7B 00 00 */ addi r3, r27, 0 -/* 80345D9C 38 80 00 00 */ li r4, 0 -/* 80345DA0 4B FF AA AD */ bl OSSetWirelessID -/* 80345DA4 57 60 20 36 */ slwi r0, r27, 4 -/* 80345DA8 83 DE 00 00 */ lwz r30, 0(r30) -/* 80345DAC 7F FF 02 14 */ add r31, r31, r0 -/* 80345DB0 3B A0 00 00 */ li r29, 0 -/* 80345DB4 3B 9D 00 00 */ addi r28, r29, 0 -/* 80345DB8 3B FF 01 60 */ addi r31, r31, 0x160 -lbl_80345DBC: -/* 80345DBC 81 9F 00 00 */ lwz r12, 0(r31) -/* 80345DC0 28 0C 00 00 */ cmplwi r12, 0 -/* 80345DC4 41 82 00 18 */ beq lbl_80345DDC -/* 80345DC8 93 9F 00 00 */ stw r28, 0(r31) -/* 80345DCC 7D 88 03 A6 */ mtlr r12 -/* 80345DD0 38 7B 00 00 */ addi r3, r27, 0 -/* 80345DD4 38 9E 00 00 */ addi r4, r30, 0 -/* 80345DD8 4E 80 00 21 */ blrl -lbl_80345DDC: -/* 80345DDC 3B BD 00 01 */ addi r29, r29, 1 -/* 80345DE0 2C 1D 00 04 */ cmpwi r29, 4 -/* 80345DE4 3B FF 00 04 */ addi r31, r31, 4 -/* 80345DE8 41 80 FF D4 */ blt lbl_80345DBC -/* 80345DEC 48 00 01 90 */ b lbl_80345F7C -lbl_80345DF0: -/* 80345DF0 7F 63 DB 78 */ mr r3, r27 -/* 80345DF4 4B FF A9 D5 */ bl OSGetWirelessID -/* 80345DF8 2C 1A 00 00 */ cmpwi r26, 0 -/* 80345DFC 54 7A 42 2E */ rlwinm r26, r3, 8, 8, 0x17 -/* 80345E00 41 82 00 54 */ beq lbl_80345E54 -/* 80345E04 57 40 02 D7 */ rlwinm. r0, r26, 0, 0xb, 0xb -/* 80345E08 41 82 00 4C */ beq lbl_80345E54 -/* 80345E0C 3C 60 00 D0 */ lis r3, 0x00D0 /* 0x00CFFF00@ha */ -/* 80345E10 38 03 FF 00 */ addi r0, r3, 0xFF00 /* 0x00CFFF00@l */ -/* 80345E14 7F 40 00 38 */ and r0, r26, r0 -/* 80345E18 64 00 4E 10 */ oris r0, r0, 0x4e10 -/* 80345E1C 7C 9F EA 14 */ add r4, r31, r29 -/* 80345E20 94 04 01 F0 */ stwu r0, 0x1f0(r4) -/* 80345E24 38 00 00 80 */ li r0, 0x80 -/* 80345E28 3C 60 80 34 */ lis r3, GetTypeCallback@ha /* 0x80345CF8@ha */ -/* 80345E2C 90 1E 00 00 */ stw r0, 0(r30) -/* 80345E30 39 03 5C F8 */ addi r8, r3, GetTypeCallback@l /* 0x80345CF8@l */ -/* 80345E34 38 7B 00 00 */ addi r3, r27, 0 -/* 80345E38 38 DE 00 00 */ addi r6, r30, 0 -/* 80345E3C 38 A0 00 03 */ li r5, 3 -/* 80345E40 38 E0 00 03 */ li r7, 3 -/* 80345E44 39 40 00 00 */ li r10, 0 -/* 80345E48 39 20 00 00 */ li r9, 0 -/* 80345E4C 4B FF FD 41 */ bl SITransfer -/* 80345E50 48 00 01 2C */ b lbl_80345F7C -lbl_80345E54: -/* 80345E54 57 80 02 D7 */ rlwinm. r0, r28, 0, 0xb, 0xb -/* 80345E58 41 82 00 70 */ beq lbl_80345EC8 -/* 80345E5C 3C 60 00 D0 */ lis r3, 0x00D0 /* 0x00CFFF00@ha */ -/* 80345E60 38 63 FF 00 */ addi r3, r3, 0xFF00 /* 0x00CFFF00@l */ -/* 80345E64 7F 40 18 38 */ and r0, r26, r3 -/* 80345E68 7F 83 18 38 */ and r3, r28, r3 -/* 80345E6C 7C 00 18 40 */ cmplw r0, r3 -/* 80345E70 41 82 00 C4 */ beq lbl_80345F34 -/* 80345E74 57 40 02 D7 */ rlwinm. r0, r26, 0, 0xb, 0xb -/* 80345E78 40 82 00 14 */ bne lbl_80345E8C -/* 80345E7C 64 7A 00 10 */ oris r26, r3, 0x10 -/* 80345E80 38 7B 00 00 */ addi r3, r27, 0 -/* 80345E84 57 44 C4 3E */ rlwinm r4, r26, 0x18, 0x10, 0x1f -/* 80345E88 4B FF A9 C5 */ bl OSSetWirelessID -lbl_80345E8C: -/* 80345E8C 67 40 4E 00 */ oris r0, r26, 0x4e00 -/* 80345E90 7C 9F EA 14 */ add r4, r31, r29 -/* 80345E94 94 04 01 F0 */ stwu r0, 0x1f0(r4) -/* 80345E98 38 00 00 80 */ li r0, 0x80 -/* 80345E9C 3C 60 80 34 */ lis r3, GetTypeCallback@ha /* 0x80345CF8@ha */ -/* 80345EA0 90 1E 00 00 */ stw r0, 0(r30) -/* 80345EA4 39 03 5C F8 */ addi r8, r3, GetTypeCallback@l /* 0x80345CF8@l */ -/* 80345EA8 38 7B 00 00 */ addi r3, r27, 0 -/* 80345EAC 38 DE 00 00 */ addi r6, r30, 0 -/* 80345EB0 38 A0 00 03 */ li r5, 3 -/* 80345EB4 38 E0 00 03 */ li r7, 3 -/* 80345EB8 39 40 00 00 */ li r10, 0 -/* 80345EBC 39 20 00 00 */ li r9, 0 -/* 80345EC0 4B FF FC CD */ bl SITransfer -/* 80345EC4 48 00 00 B8 */ b lbl_80345F7C -lbl_80345EC8: -/* 80345EC8 57 80 00 43 */ rlwinm. r0, r28, 0, 1, 1 -/* 80345ECC 41 82 00 5C */ beq lbl_80345F28 -/* 80345ED0 3C 60 00 D0 */ lis r3, 0x00D0 /* 0x00CFFF00@ha */ -/* 80345ED4 38 03 FF 00 */ addi r0, r3, 0xFF00 /* 0x00CFFF00@l */ -/* 80345ED8 7F 9C 00 38 */ and r28, r28, r0 -/* 80345EDC 67 9C 00 10 */ oris r28, r28, 0x10 -/* 80345EE0 38 7B 00 00 */ addi r3, r27, 0 -/* 80345EE4 57 84 C4 3E */ rlwinm r4, r28, 0x18, 0x10, 0x1f -/* 80345EE8 4B FF A9 65 */ bl OSSetWirelessID -/* 80345EEC 67 80 4E 00 */ oris r0, r28, 0x4e00 -/* 80345EF0 7C 9F EA 14 */ add r4, r31, r29 -/* 80345EF4 94 04 01 F0 */ stwu r0, 0x1f0(r4) -/* 80345EF8 38 00 00 80 */ li r0, 0x80 -/* 80345EFC 3C 60 80 34 */ lis r3, GetTypeCallback@ha /* 0x80345CF8@ha */ -/* 80345F00 90 1E 00 00 */ stw r0, 0(r30) -/* 80345F04 39 03 5C F8 */ addi r8, r3, GetTypeCallback@l /* 0x80345CF8@l */ -/* 80345F08 38 7B 00 00 */ addi r3, r27, 0 -/* 80345F0C 38 DE 00 00 */ addi r6, r30, 0 -/* 80345F10 38 A0 00 03 */ li r5, 3 -/* 80345F14 38 E0 00 03 */ li r7, 3 -/* 80345F18 39 40 00 00 */ li r10, 0 -/* 80345F1C 39 20 00 00 */ li r9, 0 -/* 80345F20 4B FF FC 6D */ bl SITransfer -/* 80345F24 48 00 00 58 */ b lbl_80345F7C -lbl_80345F28: -/* 80345F28 38 7B 00 00 */ addi r3, r27, 0 -/* 80345F2C 38 80 00 00 */ li r4, 0 -/* 80345F30 4B FF A9 1D */ bl OSSetWirelessID -lbl_80345F34: -/* 80345F34 57 60 20 36 */ slwi r0, r27, 4 -/* 80345F38 83 DE 00 00 */ lwz r30, 0(r30) -/* 80345F3C 7F FF 02 14 */ add r31, r31, r0 -/* 80345F40 3B A0 00 00 */ li r29, 0 -/* 80345F44 3B 9D 00 00 */ addi r28, r29, 0 -/* 80345F48 3B FF 01 60 */ addi r31, r31, 0x160 -lbl_80345F4C: -/* 80345F4C 81 9F 00 00 */ lwz r12, 0(r31) -/* 80345F50 28 0C 00 00 */ cmplwi r12, 0 -/* 80345F54 41 82 00 18 */ beq lbl_80345F6C -/* 80345F58 93 9F 00 00 */ stw r28, 0(r31) -/* 80345F5C 7D 88 03 A6 */ mtlr r12 -/* 80345F60 38 7B 00 00 */ addi r3, r27, 0 -/* 80345F64 38 9E 00 00 */ addi r4, r30, 0 -/* 80345F68 4E 80 00 21 */ blrl -lbl_80345F6C: -/* 80345F6C 3B BD 00 01 */ addi r29, r29, 1 -/* 80345F70 2C 1D 00 04 */ cmpwi r29, 4 -/* 80345F74 3B FF 00 04 */ addi r31, r31, 4 -/* 80345F78 41 80 FF D4 */ blt lbl_80345F4C -lbl_80345F7C: -/* 80345F7C BB 41 00 18 */ lmw r26, 0x18(r1) -/* 80345F80 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80345F84 38 21 00 30 */ addi r1, r1, 0x30 -/* 80345F88 7C 08 03 A6 */ mtlr r0 -/* 80345F8C 4E 80 00 20 */ blr diff --git a/include/dolphin/os/OSError.h b/include/dolphin/os/OSError.h index ec07c81632f..c2dcd5b9b86 100644 --- a/include/dolphin/os/OSError.h +++ b/include/dolphin/os/OSError.h @@ -51,6 +51,8 @@ typedef enum { typedef u8 __OSException; typedef void (*OSErrorHandler)(OSError error, OSContext* context, u32, u32); +// Using this type for the C++ handlers makes stuff not match +typedef void (*OSErrorHandlerEx)(OSError error, OSContext* context, u32, u32, ...); OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler); void __OSUnhandledException(__OSException exception, OSContext* context, u32 dsisr, u32 dar); diff --git a/include/dolphin/os/OSMutex.h b/include/dolphin/os/OSMutex.h index 7e42c91bc4e..0392c8dc5fd 100644 --- a/include/dolphin/os/OSMutex.h +++ b/include/dolphin/os/OSMutex.h @@ -21,13 +21,13 @@ typedef struct OSCond { void OSInitMutex(OSMutex* mutex); void OSLockMutex(OSMutex* mutex); void OSUnlockMutex(OSMutex* mutex); -s32 OSTryLockMutex(OSMutex* mutex); +BOOL OSTryLockMutex(OSMutex* mutex); void OSInitCond(OSCond* cond); void OSWaitCond(OSCond* cond, OSMutex* mutex); void OSSignalCond(OSCond* cond); void __OSUnlockAllMutex(OSThread* thread); -s32 __OSCheckMutex(OSThread* thread); +BOOL __OSCheckMutex(OSMutex* thread); BOOL __OSCheckDeadLock(OSThread* thread); BOOL __OSCheckMutexes(OSThread* thread); diff --git a/include/dolphin/os/OSThread.h b/include/dolphin/os/OSThread.h index 40b9e134c19..b7009c7f042 100644 --- a/include/dolphin/os/OSThread.h +++ b/include/dolphin/os/OSThread.h @@ -44,8 +44,8 @@ struct OSThreadQueue { }; struct OSMutexLink { - OSMutex* prev; OSMutex* next; + OSMutex* prev; }; struct OSMutexQueue { diff --git a/libs/dolphin/dvd/dvdlow.c b/libs/dolphin/dvd/dvdlow.c index 2421c98d7de..8dcef9b51c0 100644 --- a/libs/dolphin/dvd/dvdlow.c +++ b/libs/dolphin/dvd/dvdlow.c @@ -6,6 +6,7 @@ #include "dolphin/dvd/dvdlow.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "dolphin/os/OSAlarm.h" // // Forward References: @@ -46,13 +47,21 @@ void OSClearContext(); void OSDisableInterrupts(); void OSRestoreInterrupts(); void __OSMaskInterrupts(); -void __OSGetSystemTime(); +OSTime __OSGetSystemTime(); void DVDGetCurrentDiskID(); // // Declarations: // +typedef struct DVDCommand { + s32 _0; + u32 _4; + u32 _8; + u32 _c; + DVDLowCallback callback; +} DVDCommand; + /* ############################################################################################## */ /* 8044C830-8044C870 079550 003C+04 6/6 0/0 0/0 .bss CommandList */ static u8 CommandList[60 + 4 /* padding */]; @@ -106,7 +115,7 @@ static u8 data_8045174C[4]; static u8 LastCommandWasRead[4]; /* 80451754-80451758 000C54 0004+00 5/5 0/0 0/0 .sbss NextCommandNumber */ -static u8 NextCommandNumber[4]; +static u32 NextCommandNumber; /* 80347674-803476B4 341FB4 0040+00 0/0 1/1 0/0 .text __DVDInitWA */ #pragma push @@ -161,6 +170,20 @@ asm void __DVDInterruptHandler() { #pragma pop /* 80347994-80347A18 3422D4 0084+00 1/1 0/0 0/0 .text AlarmHandler */ +#ifdef NONMATCHING +static void AlarmHandler(OSAlarm* alarm, OSContext* context) { + DVDCommand* cmd; + cmd = &CommandList[NextCommandNumber]; + + if (cmd->_0 == 1) { + ++NextCommandNumber; + Read(cmd->_4, cmd->_8, cmd->_c, cmd->callback); + } else if (cmd->_0 == 2) { + ++NextCommandNumber; + DVDLowSeek(cmd->_c, cmd->callback); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -169,16 +192,23 @@ static asm void AlarmHandler() { #include "asm/dolphin/dvd/dvdlow/AlarmHandler.s" } #pragma pop +#endif /* 80347A18-80347A88 342358 0070+00 9/9 0/0 0/0 .text AlarmHandlerForTimeout */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void AlarmHandlerForTimeout() { - nofralloc -#include "asm/dolphin/dvd/dvdlow/AlarmHandlerForTimeout.s" +static void AlarmHandlerForTimeout(OSAlarm* alarm, OSContext* context) { + OSContext tmpContext; + DVDLowCallback callback; + __OSMaskInterrupts(0x400); + OSClearContext(&tmpContext); + OSSetCurrentContext(&tmpContext); + callback = Callback; + Callback = NULL; + if (callback != NULL) { + callback(0x10); + } + OSClearContext(&tmpContext); + OSSetCurrentContext(context); } -#pragma pop /* 80347A88-80347B98 3423C8 0110+00 3/3 0/0 0/0 .text Read */ #pragma push diff --git a/libs/dolphin/gx/GXGeometry.c b/libs/dolphin/gx/GXGeometry.c index 78efffbc1ef..fbfcfd36646 100644 --- a/libs/dolphin/gx/GXGeometry.c +++ b/libs/dolphin/gx/GXGeometry.c @@ -127,25 +127,18 @@ void GXEnableTexOffsets(GXTexCoordID coord, GXBool line, GXBool point) { } /* 8035C984-8035C9AC 3572C4 0028+00 0/0 33/33 5/5 .text GXSetCullMode */ -// extra mr -#ifdef NONMATCHING void GXSetCullMode(GXCullMode mode) { - GXData* data = __GXData; + GXData* data; + GXCullMode mode2; + data = __GXData; - mode = (mode << 1 & 2 | mode >> 1 & 1); - GX_BITFIELD_SET(data->field_0x204, 16, 2, mode); + // Useless set + mode2 = (mode >> 1) & 1; + GX_BITFIELD_SET(mode2, 30, 1, mode); + + GX_BITFIELD_SET(data->field_0x204, 16, 2, mode2); data->field_0x5ac |= 4; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void GXSetCullMode(GXCullMode mode) { - nofralloc -#include "asm/dolphin/gx/GXGeometry/GXSetCullMode.s" -} -#pragma pop -#endif /* 8035C9AC-8035C9E0 3572EC 0034+00 0/0 6/6 0/0 .text GXSetCoPlanar */ void GXSetCoPlanar(GXBool enable) { diff --git a/libs/dolphin/os/OS.c b/libs/dolphin/os/OS.c index 9d57618ba60..078cbb39f15 100644 --- a/libs/dolphin/os/OS.c +++ b/libs/dolphin/os/OS.c @@ -199,14 +199,13 @@ extern u32 BOOT_REGION_START : 0x812FDFF0; //(*(u32 *)0x812fdff0) extern u32 BOOT_REGION_END : 0x812FDFEC; //(*(u32 *)0x812fdfec) inline void ClearArena(void) { - if ((u32)(OSGetResetCode() + 0x80000000) != 0U) { - __OSSavedRegionStart = 0U; - __OSSavedRegionEnd = 0U; + u32 resetCode = OSGetResetCode(); + BOOL val = resetCode != 0U ? TRUE : FALSE; + if (val) { memset(OSGetArenaLo(), 0U, (u32)OSGetArenaHi() - (u32)OSGetArenaLo()); return; } - __OSSavedRegionStart = (void*)BOOT_REGION_START; - __OSSavedRegionEnd = (void*)BOOT_REGION_END; + if (BOOT_REGION_START == 0U) { memset(OSGetArenaLo(), 0U, (u32)OSGetArenaHi() - (u32)OSGetArenaLo()); return; @@ -404,7 +403,7 @@ void OSInit(void) { // HEAP // // set up bottom of heap (ArenaLo) // grab address from BootInfo if it exists, otherwise use default __ArenaLo - OSSetArenaLo((BootInfo->arena_lo == NULL) ? /* __ArenaLo */ 0 : BootInfo->arena_lo); + OSSetArenaLo((BootInfo->arena_lo == NULL) ? /* __ArenaLo */ _stack_end : BootInfo->arena_lo); // if the input arenaLo is null, and debug flag location exists (and flag is < 2), // set arenaLo to just past the end of the db stack @@ -415,7 +414,7 @@ void OSInit(void) { // set up top of heap (ArenaHi) // grab address from BootInfo if it exists, otherwise use default __ArenaHi - OSSetArenaHi((BootInfo->arena_hi == NULL) ? /* __ArenaHi */ 0 : BootInfo->arena_hi); + OSSetArenaHi((BootInfo->arena_hi == NULL) ? __ArenaHi : BootInfo->arena_hi); // OS INIT AND REPORT // // initialise a whole bunch of OS stuff @@ -455,12 +454,13 @@ void OSInit(void) { // work out what console type this corresponds to and report it // consoleTypeSwitchHi = inputConsoleType & 0xF0000000; - switch (inputConsoleType & 0xffff0000) { // check "first" byte + switch (inputConsoleType & 0xf0000000) { // check "first" byte case OS_CONSOLE_RETAIL: OSReport("Retail %d\n", inputConsoleType); break; - default: - switch (inputConsoleType & 0x0000ffff) { // if "first" byte is 2, check "the rest" + case OS_CONSOLE_DEVELOPMENT: + case OS_CONSOLE_TDEV: + switch (inputConsoleType & 0x0fffffff) { // if "first" byte is 2, check "the rest" case OS_CONSOLE_EMULATOR: OSReport("Mac Emulator\n"); break; @@ -474,11 +474,14 @@ void OSInit(void) { OSReport("EPPC Minnow\n"); break; default: - tdev = ((u32)inputConsoleType & 0x0000ffff); + tdev = ((u32)inputConsoleType & 0x0fffffff); OSReport("Development HW%d (%08x)\n", tdev - 3, inputConsoleType); break; } break; + default: + OSReport("%08x\n", inputConsoleType); + break; } // report memory size diff --git a/libs/dolphin/os/OSError.c b/libs/dolphin/os/OSError.c index b70dc7ee24d..f1727432fc1 100644 --- a/libs/dolphin/os/OSError.c +++ b/libs/dolphin/os/OSError.c @@ -28,8 +28,8 @@ extern OSTime __OSLastInterruptTime; /* ############################################################################################## */ /* 8044BAD0-8044BB20 0787F0 0044+0C 2/2 2/2 0/0 .bss __OSErrorTable */ -extern OSErrorHandler __OSErrorTable[17]; -OSErrorHandler __OSErrorTable[17]; +extern OSErrorHandlerEx __OSErrorTable[17]; +OSErrorHandlerEx __OSErrorTable[17]; /* 804509A0-804509A4 000420 0004+00 1/1 2/2 0/0 .sdata __OSFpscrEnableBits */ #define FPSCR_ENABLE (FPSCR_VE | FPSCR_OE | FPSCR_UE | FPSCR_ZE | FPSCR_XE) @@ -37,12 +37,12 @@ SECTION_SDATA extern u32 __OSFpscrEnableBits = FPSCR_ENABLE; /* 8033C580-8033C798 336EC0 0218+00 0/0 4/4 0/0 .text OSSetErrorHandler */ OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) { - OSErrorHandler oldHandler; + OSErrorHandlerEx oldHandler; BOOL enabled; enabled = OSDisableInterrupts(); oldHandler = __OSErrorTable[error]; - __OSErrorTable[error] = handler; + __OSErrorTable[error] = (OSErrorHandlerEx) handler; if (error == EXCEPTION_FLOATING_POINT_EXCEPTION) { u32 msr; diff --git a/libs/dolphin/os/OSMemory.c b/libs/dolphin/os/OSMemory.c index 1ffd8a4ccbf..10bf3561144 100644 --- a/libs/dolphin/os/OSMemory.c +++ b/libs/dolphin/os/OSMemory.c @@ -17,7 +17,7 @@ vu16 __MEMRegs[64] : 0xCC004000; // External References: // -extern OSErrorHandler __OSErrorTable[16]; +extern OSErrorHandlerEx __OSErrorTable[16]; // // Declarations: @@ -34,7 +34,6 @@ static asm s32 OnReset(s32 param_0) { #pragma pop /* 8033ECA8-8033ED14 3395E8 006C+00 1/1 0/0 0/0 .text MEMIntrruptHandler */ -#ifdef NONMATCHING static void MEMIntrruptHandler(OSInterrupt interrupt, OSContext* context) { u32 addr; u32 cause; @@ -51,16 +50,6 @@ static void MEMIntrruptHandler(OSInterrupt interrupt, OSContext* context) { __OSUnhandledException(EXCEPTION_MEMORY_PROTECTION, context, cause, addr); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void MEMIntrruptHandler(OSInterrupt interrupt, struct OSContext* context) { - nofralloc -#include "asm/dolphin/os/OSMemory/MEMIntrruptHandler.s" -} -#pragma pop -#endif /* 8033ED14-8033EDD8 339654 00C4+00 0/0 1/1 0/0 .text OSProtectRange */ void OSProtectRange(u32 chan, void* addr, u32 nBytes, u32 control) { diff --git a/libs/dolphin/os/OSMutex.c b/libs/dolphin/os/OSMutex.c index ad538a75d87..664e45886c5 100644 --- a/libs/dolphin/os/OSMutex.c +++ b/libs/dolphin/os/OSMutex.c @@ -65,8 +65,6 @@ void OSInitMutex(OSMutex* mutex) { } /* 8033F040-8033F11C 339980 00DC+00 1/1 62/62 0/0 .text OSLockMutex */ -// needs compiler epilogue patch -#ifdef NONMATCHING void OSLockMutex(OSMutex* mutex) { BOOL enabled = OSDisableInterrupts(); OSThread* currentThread = OSGetCurrentThread(); @@ -91,19 +89,8 @@ void OSLockMutex(OSMutex* mutex) { } OSRestoreInterrupts(enabled); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSLockMutex(OSMutex* mutex) { - nofralloc -#include "asm/dolphin/os/OSMutex/OSLockMutex.s" -} -#pragma pop -#endif /* 8033F11C-8033F1E4 339A5C 00C8+00 0/0 71/71 0/0 .text OSUnlockMutex */ -#ifdef NONMATCHING void OSUnlockMutex(OSMutex* mutex) { BOOL enabled = OSDisableInterrupts(); OSThread* currentThread = OSGetCurrentThread(); @@ -111,7 +98,7 @@ void OSUnlockMutex(OSMutex* mutex) { if (mutex->thread == currentThread && --mutex->count == 0) { PopItem(¤tThread->owned_mutexes, mutex, link); mutex->thread = NULL; - if (currentThread->effective_priority < currentThread->base_priority) { + if ((s32)currentThread->effective_priority < (s32)currentThread->base_priority) { currentThread->effective_priority = __OSGetEffectivePriority(currentThread); } @@ -119,93 +106,143 @@ void OSUnlockMutex(OSMutex* mutex) { } OSRestoreInterrupts(enabled); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSUnlockMutex(OSMutex* mutex) { - nofralloc -#include "asm/dolphin/os/OSMutex/OSUnlockMutex.s" -} -#pragma pop -#endif /* 8033F1E4-8033F254 339B24 0070+00 0/0 2/2 0/0 .text __OSUnlockAllMutex */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __OSUnlockAllMutex(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSMutex/__OSUnlockAllMutex.s" +void __OSUnlockAllMutex(OSThread* thread) { + OSMutex* mutex; + + while (thread->owned_mutexes.head) { + PopHead(&thread->owned_mutexes, mutex, link); + mutex->count = 0; + mutex->thread = NULL; + OSWakeupThread(&mutex->queue); + } } -#pragma pop /* 8033F254-8033F310 339B94 00BC+00 0/0 9/9 0/0 .text OSTryLockMutex */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 OSTryLockMutex(OSMutex* mutex) { - nofralloc -#include "asm/dolphin/os/OSMutex/OSTryLockMutex.s" + +BOOL OSTryLockMutex(OSMutex* mutex) { + BOOL enabled = OSDisableInterrupts(); + OSThread* currentThread = OSGetCurrentThread(); + BOOL locked; + if (mutex->thread == 0) { + mutex->thread = currentThread; + mutex->count++; + PushTail(¤tThread->owned_mutexes, mutex, link); + locked = TRUE; + } else if (mutex->thread == currentThread) { + mutex->count++; + locked = TRUE; + } else { + locked = FALSE; + } + OSRestoreInterrupts(enabled); + return locked; } -#pragma pop /* 8033F310-8033F330 339C50 0020+00 0/0 1/1 0/0 .text OSInitCond */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSInitCond(OSCond* cond) { - nofralloc -#include "asm/dolphin/os/OSMutex/OSInitCond.s" -} -#pragma pop +void OSInitCond(OSCond* cond) { OSInitThreadQueue(&cond->queue); } /* 8033F330-8033F404 339C70 00D4+00 0/0 1/1 0/0 .text OSWaitCond */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSWaitCond(OSCond* cond, OSMutex* mutex) { - nofralloc -#include "asm/dolphin/os/OSMutex/OSWaitCond.s" +void OSWaitCond(OSCond* cond, OSMutex* mutex) { + BOOL enabled = OSDisableInterrupts(); + OSThread* currentThread = OSGetCurrentThread(); + s32 count; + + if (mutex->thread == currentThread) { + count = mutex->count; + mutex->count = 0; + PopItem(¤tThread->owned_mutexes, mutex, link); + mutex->thread = NULL; + + if (currentThread->effective_priority < (s32)currentThread->base_priority) { + currentThread->effective_priority = __OSGetEffectivePriority(currentThread); + } + + OSDisableScheduler(); + OSWakeupThread(&mutex->queue); + OSEnableScheduler(); + OSSleepThread(&cond->queue); + OSLockMutex(mutex); + mutex->count = count; + } + + OSRestoreInterrupts(enabled); } -#pragma pop /* 8033F404-8033F424 339D44 0020+00 0/0 5/5 0/0 .text OSSignalCond */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSignalCond(OSCond* con) { - nofralloc -#include "asm/dolphin/os/OSMutex/OSSignalCond.s" +void OSSignalCond(OSCond* cond) { + OSWakeupThread(&cond->queue); +} + +static BOOL IsMember(OSMutexQueue* queue, OSMutex* mutex) { + OSMutex* member; + + for (member = queue->head; member; member = member->link.next) { + if (mutex == member) + return TRUE; + } + return FALSE; } -#pragma pop /* 8033F424-8033F524 339D64 0100+00 1/1 0/0 0/0 .text __OSCheckMutex */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 __OSCheckMutex(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSMutex/__OSCheckMutex.s" +BOOL __OSCheckMutex(OSMutex* mutex) { + OSThread* thread; + OSThreadQueue* queue; + OSPriority priority = 0; + + queue = &mutex->queue; + if (!(queue->head == NULL || queue->head->link.prev == NULL)) + return FALSE; + if (!(queue->tail == NULL || queue->tail->link.next == NULL)) + return FALSE; + for (thread = queue->head; thread; thread = thread->link.next) { + if (!(thread->link.next == NULL || thread == thread->link.next->link.prev)) + return FALSE; + if (!(thread->link.prev == NULL || thread == thread->link.prev->link.next)) + return FALSE; + + if (thread->state != OS_THREAD_STATE_WAITING) + return FALSE; + + if (thread->effective_priority < priority) + return FALSE; + priority = thread->effective_priority; + } + + if (mutex->thread) { + if (mutex->count <= 0) + return FALSE; + } else { + if (0 != mutex->count) + return FALSE; + } + + return TRUE; } -#pragma pop /* 8033F524-8033F55C 339E64 0038+00 0/0 1/1 0/0 .text __OSCheckDeadLock */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL __OSCheckDeadLock(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSMutex/__OSCheckDeadLock.s" +BOOL __OSCheckDeadLock(OSThread* thread) { + OSMutex* mutex; + + mutex = thread->mutex; + while (mutex && mutex->thread) { + if (mutex->thread == thread) + return TRUE; + mutex = mutex->thread->mutex; + } + return FALSE; } -#pragma pop /* 8033F55C-8033F5D0 339E9C 0074+00 0/0 1/1 0/0 .text __OSCheckMutexes */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL __OSCheckMutexes(OSThread* thread) { - nofralloc -#include "asm/dolphin/os/OSMutex/__OSCheckMutexes.s" +BOOL __OSCheckMutexes(OSThread* thread) { + OSMutex* mutex; + + for (mutex = thread->owned_mutexes.head; mutex; mutex = mutex->link.next) { + if (mutex->thread != thread) + return FALSE; + if (!__OSCheckMutex(mutex)) + return FALSE; + } + return TRUE; } -#pragma pop diff --git a/libs/dolphin/os/OSRtc.c b/libs/dolphin/os/OSRtc.c index 6e2195bd55a..cda2d31b28e 100644 --- a/libs/dolphin/os/OSRtc.c +++ b/libs/dolphin/os/OSRtc.c @@ -87,55 +87,73 @@ void __OSInitSram(void) { OSSetGbsMode(OSGetGbsMode()); } -/* 80340144-803401A0 33AA84 005C+00 0/0 3/3 0/0 .text __OSLockSram */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSSram* __OSLockSram(void) { - nofralloc -#include "asm/dolphin/os/OSRtc/__OSLockSram.s" +static void* LockSram(u32 offset) { + BOOL enabled; + enabled = OSDisableInterrupts(); + + if (Scb.locked != FALSE) { + OSRestoreInterrupts(enabled); + return NULL; + } + + Scb.enabled = enabled; + Scb.locked = TRUE; + + return Scb.sram + offset; } -#pragma pop + +/* 80340144-803401A0 33AA84 005C+00 0/0 3/3 0/0 .text __OSLockSram */ +OSSram* __OSLockSram() { return LockSram(0); } /* 803401A0-803401FC 33AAE0 005C+00 0/0 4/4 0/0 .text __OSLockSramEx */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm OSSramEx* __OSLockSramEx(void) { - nofralloc -#include "asm/dolphin/os/OSRtc/__OSLockSramEx.s" -} -#pragma pop +OSSramEx* __OSLockSramEx() { return LockSram(sizeof(OSSram)); } /* 803401FC-80340538 33AB3C 033C+00 10/10 0/0 0/0 .text UnlockSram */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm BOOL UnlockSram(BOOL commit, u32 offset) { - nofralloc -#include "asm/dolphin/os/OSRtc/UnlockSram.s" +static BOOL UnlockSram(BOOL commit, u32 offset) { + u16* p; + + if (commit) { + if (offset == 0) { + OSSram* sram = (OSSram*)Scb.sram; + + if (2u < (sram->flags & 3)) { + sram->flags &= ~3; + } + + sram->checkSum = sram->checkSumInv = 0; + for (p = (u16*)&sram->counterBias; p < (u16*)(Scb.sram + sizeof(OSSram)); p++) { + sram->checkSum += *p; + sram->checkSumInv += ~*p; + } + } + + if (offset < Scb.offset) { + Scb.offset = offset; + } + + if (Scb.offset <= 0x14) { + OSSramEx* sram = (OSSramEx*)(Scb.sram + sizeof(OSSram)); + if (((u32)sram->gbs & 0x7c00) == 0x5000 || ((u32)sram->gbs & 0xc0) == 0xc0) { + sram->gbs = 0; + } + } + + Scb.sync = WriteSram(Scb.sram + Scb.offset, Scb.offset, RTC_SRAM_SIZE - Scb.offset); + if (Scb.sync) { + Scb.offset = RTC_SRAM_SIZE; + } + } + Scb.locked = FALSE; + OSRestoreInterrupts(Scb.enabled); + return Scb.sync; } -#pragma pop + /* 80340538-8034055C 33AE78 0024+00 0/0 3/3 0/0 .text __OSUnlockSram */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL __OSUnlockSram(BOOL commit) { - nofralloc -#include "asm/dolphin/os/OSRtc/__OSUnlockSram.s" -} -#pragma pop +BOOL __OSUnlockSram(BOOL commit) { return UnlockSram(commit, 0); } /* 8034055C-80340580 33AE9C 0024+00 0/0 4/4 0/0 .text __OSUnlockSramEx */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL __OSUnlockSramEx(BOOL commit) { - nofralloc -#include "asm/dolphin/os/OSRtc/__OSUnlockSramEx.s" -} -#pragma pop +BOOL __OSUnlockSramEx(BOOL commit) { return UnlockSram(commit, sizeof(OSSram)); } /* 80340580-80340590 33AEC0 0010+00 0/0 2/2 0/0 .text __OSSyncSram */ BOOL __OSSyncSram(void) { @@ -143,57 +161,74 @@ BOOL __OSSyncSram(void) { } /* 80340590-80340610 33AED0 0080+00 0/0 4/4 0/0 .text OSGetSoundMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 OSGetSoundMode(void) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSGetSoundMode.s" +u32 OSGetSoundMode() { + OSSram* sram; + u32 mode; + + sram = __OSLockSram(); + mode = (sram->flags & 0x4) ? OS_SOUND_MODE_STEREO : OS_SOUND_MODE_MONO; + __OSUnlockSram(FALSE); + return mode; } -#pragma pop /* 80340610-803406B4 33AF50 00A4+00 0/0 1/1 0/0 .text OSSetSoundMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetSoundMode(OSSoundMode mode) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSSetSoundMode.s" +void OSSetSoundMode(u32 mode) { + OSSram* sram; + mode <<= 2; + mode &= 4; + + sram = __OSLockSram(); + if (mode == (sram->flags & 4)) { + __OSUnlockSram(FALSE); + return; + } + + sram->flags &= ~4; + sram->flags |= mode; + __OSUnlockSram(TRUE); } -#pragma pop /* 803406B4-80340724 33AFF4 0070+00 0/0 3/3 0/0 .text OSGetProgressiveMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 OSGetProgressiveMode(void) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSGetProgressiveMode.s" +u32 OSGetProgressiveMode() { + OSSram* sram; + u32 mode; + + sram = __OSLockSram(); + mode = (sram->flags & 0x80) >> 7; + __OSUnlockSram(FALSE); + return mode; } -#pragma pop /* 80340724-803407C8 33B064 00A4+00 0/0 2/2 0/0 .text OSSetProgressiveMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetProgressiveMode(u32 mode) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSSetProgressiveMode.s" + +void OSSetProgressiveMode(u32 mode) { + OSSram* sram; + mode <<= 7; + mode &= 0x80; + + sram = __OSLockSram(); + if (mode == (sram->flags & 0x80)) { + __OSUnlockSram(FALSE); + return; + } + + sram->flags &= ~0x80; + sram->flags |= mode; + __OSUnlockSram(TRUE); } -#pragma pop /* 803407C8-8034084C 33B108 0084+00 0/0 1/1 0/0 .text OSGetWirelessID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 OSGetWirelessID(s32 channel) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSGetWirelessID.s" +u16 OSGetWirelessID(s32 channel) { + OSSramEx* sram; + u16 id; + + sram = __OSLockSramEx(); + id = sram->wirelessPadID[channel]; + __OSUnlockSramEx(FALSE); + return id; } -#pragma pop /* 8034084C-803408F8 33B18C 00AC+00 0/0 4/4 0/0 .text OSSetWirelessID */ -#ifdef NONMATCHING void OSSetWirelessID(s32 channel, u16 id) { OSSramEx* sram; @@ -206,33 +241,33 @@ void OSSetWirelessID(s32 channel, u16 id) { __OSUnlockSramEx(FALSE); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSSetWirelessID(s32 channel, u16 id) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSSetWirelessID.s" -} -#pragma pop -#endif /* 803408F8-80340968 33B238 0070+00 1/1 0/0 0/0 .text OSGetGbsMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm u16 OSGetGbsMode(void) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSGetGbsMode.s" +u16 OSGetGbsMode() { + OSSramEx* sram; + u16 gbs; + + sram = __OSLockSramEx(); + gbs = sram->gbs; + __OSUnlockSramEx(FALSE); + return gbs; } -#pragma pop /* 80340968-80340A20 33B2A8 00B8+00 1/1 0/0 0/0 .text OSSetGbsMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSSetGbsMode(u16 mode) { - nofralloc -#include "asm/dolphin/os/OSRtc/OSSetGbsMode.s" +void OSSetGbsMode(u16 mode) { + OSSramEx* sram; + + if (((u32)mode & 0x7c00) == 0x5000 || ((u32)mode & 0xc0) == 0xc0) { + mode = 0; + } + + sram = __OSLockSramEx(); + + if (mode == sram->gbs) { + __OSUnlockSramEx(FALSE); + return; + } + sram->gbs = mode; + + __OSUnlockSramEx(TRUE); } -#pragma pop diff --git a/libs/dolphin/os/OSThread.c b/libs/dolphin/os/OSThread.c index 3519272ce2e..1bd8360ce02 100644 --- a/libs/dolphin/os/OSThread.c +++ b/libs/dolphin/os/OSThread.c @@ -273,7 +273,7 @@ s32 __OSGetEffectivePriority(OSThread* thread) { s32 prio = thread->base_priority; OSMutex* mutex; - for (mutex = thread->owned_mutexes.head; mutex != NULL; mutex = mutex->link.prev) { + for (mutex = thread->owned_mutexes.head; mutex != NULL; mutex = mutex->link.next) { OSThread* mutexThread = mutex->queue.head; if (mutexThread != NULL && mutexThread->effective_priority < prio) { prio = mutexThread->effective_priority; diff --git a/libs/dolphin/os/OSTime.c b/libs/dolphin/os/OSTime.c index 3e2abdf929e..921121a566c 100644 --- a/libs/dolphin/os/OSTime.c +++ b/libs/dolphin/os/OSTime.c @@ -135,6 +135,8 @@ static void GetDates(s32 days, OSCalendarTime* cal) { /* 80342974-80342B78 33D2B4 0204+00 0/0 4/4 0/0 .text OSTicksToCalendarTime */ #ifdef NONMATCHING +#pragma push +#pragma dont_inline on void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* td) { int days; int secs; @@ -161,6 +163,7 @@ void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* td) { td->minutes = (secs / 60) % 60; td->seconds = secs % 60; } +#pragma pop #else #pragma push #pragma optimization_level 0 diff --git a/tools/tp.py b/tools/tp.py index a38726f3255..35ca7bb12a1 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -803,7 +803,7 @@ def remove_unused_asm(check: bool): @click.option("--debug/--no-debug") @click.option( "--rels", - default=False, + default=True, is_flag=True, help="RELs will also be build and checked", )