Merge with upstream

This commit is contained in:
jdflyer 2023-01-24 21:41:59 -07:00
commit d4fdfdf1f6
47 changed files with 372 additions and 1750 deletions

View File

@ -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

View File

@ -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
@ -163,7 +163,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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -44,8 +44,8 @@ struct OSThreadQueue {
};
struct OSMutexLink {
OSMutex* prev;
OSMutex* next;
OSMutex* prev;
};
struct OSMutexQueue {

View File

@ -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

View File

@ -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) {

View File

@ -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

View File

@ -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;

View File

@ -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) {

View File

@ -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(&currentThread->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(&currentThread->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(&currentThread->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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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)

View File

@ -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:
@ -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",
)

View File

@ -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('\\', '/')))