summaryrefslogtreecommitdiff
path: root/asm/SDK/OS
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/OS')
-rw-r--r--asm/SDK/OS/OS.s2
-rw-r--r--asm/SDK/OS/OSNandbootInfo.s208
-rw-r--r--asm/SDK/OS/OSNet.s51
-rw-r--r--asm/SDK/OS/OSReset.s22
-rw-r--r--asm/SDK/OS/OSStateFlags.s148
5 files changed, 419 insertions, 12 deletions
diff --git a/asm/SDK/OS/OS.s b/asm/SDK/OS/OS.s
index 08f8c0b..94499e4 100644
--- a/asm/SDK/OS/OS.s
+++ b/asm/SDK/OS/OS.s
@@ -977,7 +977,7 @@ lbl_8026910C:
/* 8026910C 00264D6C 48 08 18 E1 */ bl func_802EA9EC
/* 80269110 00264D70 28 03 00 01 */ cmplwi r3, 1
/* 80269114 00264D74 41 82 FF F8 */ beq lbl_8026910C
-/* 80269118 00264D78 48 00 AF F9 */ bl func_80274110
+/* 80269118 00264D78 48 00 AF F9 */ bl __OSInitNet
lbl_8026911C:
/* 8026911C 00264D7C 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13)
/* 80269120 00264D80 2C 00 00 00 */ cmpwi r0, 0
diff --git a/asm/SDK/OS/OSNandbootInfo.s b/asm/SDK/OS/OSNandbootInfo.s
new file mode 100644
index 0000000..308da8c
--- /dev/null
+++ b/asm/SDK/OS/OSNandbootInfo.s
@@ -0,0 +1,208 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSWriteNandbootInfo
+__OSWriteNandbootInfo:
+/* 802741B4 0026FE14 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 802741B8 0026FE18 7C 08 02 A6 */ mflr r0
+/* 802741BC 0026FE1C 39 03 00 04 */ addi r8, r3, 4
+/* 802741C0 0026FE20 38 E0 00 00 */ li r7, 0
+/* 802741C4 0026FE24 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 802741C8 0026FE28 38 00 00 40 */ li r0, 0x40
+/* 802741CC 0026FE2C 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 802741D0 0026FE30 7C 7F 1B 78 */ mr r31, r3
+/* 802741D4 0026FE34 7C 09 03 A6 */ mtctr r0
+lbl_802741D8:
+/* 802741D8 0026FE38 80 88 00 00 */ lwz r4, 0(r8)
+/* 802741DC 0026FE3C 80 08 00 04 */ lwz r0, 4(r8)
+/* 802741E0 0026FE40 7C E7 22 14 */ add r7, r7, r4
+/* 802741E4 0026FE44 80 88 00 08 */ lwz r4, 8(r8)
+/* 802741E8 0026FE48 7C E7 02 14 */ add r7, r7, r0
+/* 802741EC 0026FE4C 80 08 00 0C */ lwz r0, 0xc(r8)
+/* 802741F0 0026FE50 7C E7 22 14 */ add r7, r7, r4
+/* 802741F4 0026FE54 80 88 00 10 */ lwz r4, 0x10(r8)
+/* 802741F8 0026FE58 7C E7 02 14 */ add r7, r7, r0
+/* 802741FC 0026FE5C 80 08 00 14 */ lwz r0, 0x14(r8)
+/* 80274200 0026FE60 7C E7 22 14 */ add r7, r7, r4
+/* 80274204 0026FE64 80 88 00 18 */ lwz r4, 0x18(r8)
+/* 80274208 0026FE68 7C E7 02 14 */ add r7, r7, r0
+/* 8027420C 0026FE6C 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 80274210 0026FE70 7C E7 22 14 */ add r7, r7, r4
+/* 80274214 0026FE74 80 88 00 20 */ lwz r4, 0x20(r8)
+/* 80274218 0026FE78 7C E7 02 14 */ add r7, r7, r0
+/* 8027421C 0026FE7C 80 08 00 24 */ lwz r0, 0x24(r8)
+/* 80274220 0026FE80 7C E7 22 14 */ add r7, r7, r4
+/* 80274224 0026FE84 80 88 00 28 */ lwz r4, 0x28(r8)
+/* 80274228 0026FE88 7C E7 02 14 */ add r7, r7, r0
+/* 8027422C 0026FE8C 80 08 00 2C */ lwz r0, 0x2c(r8)
+/* 80274230 0026FE90 7C E7 22 14 */ add r7, r7, r4
+/* 80274234 0026FE94 80 88 00 30 */ lwz r4, 0x30(r8)
+/* 80274238 0026FE98 7C E7 02 14 */ add r7, r7, r0
+/* 8027423C 0026FE9C 80 08 00 34 */ lwz r0, 0x34(r8)
+/* 80274240 0026FEA0 7C E7 22 14 */ add r7, r7, r4
+/* 80274244 0026FEA4 80 88 00 38 */ lwz r4, 0x38(r8)
+/* 80274248 0026FEA8 7C E7 02 14 */ add r7, r7, r0
+/* 8027424C 0026FEAC 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 80274250 0026FEB0 7C E7 22 14 */ add r7, r7, r4
+/* 80274254 0026FEB4 39 08 00 40 */ addi r8, r8, 0x40
+/* 80274258 0026FEB8 7C E7 02 14 */ add r7, r7, r0
+/* 8027425C 0026FEBC 42 00 FF 7C */ bdnz lbl_802741D8
+/* 80274260 0026FEC0 80 08 00 00 */ lwz r0, 0(r8)
+/* 80274264 0026FEC4 3C C0 80 43 */ lis r6, lbl_80433F08@ha
+/* 80274268 0026FEC8 80 A8 00 04 */ lwz r5, 4(r8)
+/* 8027426C 0026FECC 38 81 00 08 */ addi r4, r1, 8
+/* 80274270 0026FED0 7C E7 02 14 */ add r7, r7, r0
+/* 80274274 0026FED4 80 08 00 08 */ lwz r0, 8(r8)
+/* 80274278 0026FED8 7C E7 2A 14 */ add r7, r7, r5
+/* 8027427C 0026FEDC 80 A8 00 0C */ lwz r5, 0xc(r8)
+/* 80274280 0026FEE0 7C E7 02 14 */ add r7, r7, r0
+/* 80274284 0026FEE4 80 08 00 10 */ lwz r0, 0x10(r8)
+/* 80274288 0026FEE8 7C E7 2A 14 */ add r7, r7, r5
+/* 8027428C 0026FEEC 80 A8 00 14 */ lwz r5, 0x14(r8)
+/* 80274290 0026FEF0 7C E7 02 14 */ add r7, r7, r0
+/* 80274294 0026FEF4 80 08 00 18 */ lwz r0, 0x18(r8)
+/* 80274298 0026FEF8 7C E7 2A 14 */ add r7, r7, r5
+/* 8027429C 0026FEFC 38 A0 00 02 */ li r5, 2
+/* 802742A0 0026FF00 7C E7 02 14 */ add r7, r7, r0
+/* 802742A4 0026FF04 90 E3 00 00 */ stw r7, 0(r3)
+/* 802742A8 0026FF08 38 66 3F 08 */ addi r3, r6, lbl_80433F08@l
+/* 802742AC 0026FF0C 48 07 41 E9 */ bl func_802E8494
+/* 802742B0 0026FF10 2C 03 00 00 */ cmpwi r3, 0
+/* 802742B4 0026FF14 40 82 00 40 */ bne lbl_802742F4
+/* 802742B8 0026FF18 7F E4 FB 78 */ mr r4, r31
+/* 802742BC 0026FF1C 38 61 00 08 */ addi r3, r1, 8
+/* 802742C0 0026FF20 38 A0 10 20 */ li r5, 0x1020
+/* 802742C4 0026FF24 48 07 36 DD */ bl func_802E79A0
+/* 802742C8 0026FF28 28 03 10 20 */ cmplwi r3, 0x1020
+/* 802742CC 0026FF2C 41 82 00 14 */ beq lbl_802742E0
+/* 802742D0 0026FF30 38 61 00 08 */ addi r3, r1, 8
+/* 802742D4 0026FF34 48 07 43 B5 */ bl func_802E8688
+/* 802742D8 0026FF38 38 60 00 00 */ li r3, 0
+/* 802742DC 0026FF3C 48 00 00 1C */ b lbl_802742F8
+lbl_802742E0:
+/* 802742E0 0026FF40 38 61 00 08 */ addi r3, r1, 8
+/* 802742E4 0026FF44 48 07 43 A5 */ bl func_802E8688
+/* 802742E8 0026FF48 7C 60 00 34 */ cntlzw r0, r3
+/* 802742EC 0026FF4C 54 03 D9 7E */ srwi r3, r0, 5
+/* 802742F0 0026FF50 48 00 00 08 */ b lbl_802742F8
+lbl_802742F4:
+/* 802742F4 0026FF54 38 60 00 00 */ li r3, 0
+lbl_802742F8:
+/* 802742F8 0026FF58 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 802742FC 0026FF5C 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 80274300 0026FF60 7C 08 03 A6 */ mtlr r0
+/* 80274304 0026FF64 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 80274308 0026FF68 4E 80 00 20 */ blr
+
+# Still unsure of label for this function
+# (not mentioned in BBA map and not found in Brawl)
+.global func_8027430C
+func_8027430C:
+/* 8027430C 0026FF6C 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 80274310 0026FF70 7C 08 02 A6 */ mflr r0
+/* 80274314 0026FF74 3C 80 80 43 */ lis r4, lbl_80433F08@ha
+/* 80274318 0026FF78 38 A0 00 01 */ li r5, 1
+/* 8027431C 0026FF7C 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 80274320 0026FF80 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 80274324 0026FF84 7C 7F 1B 78 */ mr r31, r3
+/* 80274328 0026FF88 38 64 3F 08 */ addi r3, r4, lbl_80433F08@l
+/* 8027432C 0026FF8C 38 81 00 08 */ addi r4, r1, 8
+/* 80274330 0026FF90 93 C1 00 98 */ stw r30, 0x98(r1)
+/* 80274334 0026FF94 48 07 41 61 */ bl func_802E8494
+/* 80274338 0026FF98 2C 03 00 00 */ cmpwi r3, 0
+/* 8027433C 0026FF9C 40 82 00 40 */ bne lbl_8027437C
+/* 80274340 0026FFA0 7F E4 FB 78 */ mr r4, r31
+/* 80274344 0026FFA4 38 61 00 08 */ addi r3, r1, 8
+/* 80274348 0026FFA8 38 A0 10 20 */ li r5, 0x1020
+/* 8027434C 0026FFAC 48 07 35 75 */ bl func_802E78C0
+/* 80274350 0026FFB0 7C 7E 1B 78 */ mr r30, r3
+/* 80274354 0026FFB4 38 61 00 08 */ addi r3, r1, 8
+/* 80274358 0026FFB8 48 07 43 31 */ bl func_802E8688
+/* 8027435C 0026FFBC 28 1E 10 20 */ cmplwi r30, 0x1020
+/* 80274360 0026FFC0 41 82 00 34 */ beq lbl_80274394
+/* 80274364 0026FFC4 7F E3 FB 78 */ mr r3, r31
+/* 80274368 0026FFC8 38 80 00 00 */ li r4, 0
+/* 8027436C 0026FFCC 38 A0 10 20 */ li r5, 0x1020
+/* 80274370 0026FFD0 4B D8 FD 95 */ bl memset
+/* 80274374 0026FFD4 38 60 00 00 */ li r3, 0
+/* 80274378 0026FFD8 48 00 01 14 */ b lbl_8027448C
+lbl_8027437C:
+/* 8027437C 0026FFDC 7F E3 FB 78 */ mr r3, r31
+/* 80274380 0026FFE0 38 80 00 00 */ li r4, 0
+/* 80274384 0026FFE4 38 A0 10 20 */ li r5, 0x1020
+/* 80274388 0026FFE8 4B D8 FD 7D */ bl memset
+/* 8027438C 0026FFEC 38 60 00 00 */ li r3, 0
+/* 80274390 0026FFF0 48 00 00 FC */ b lbl_8027448C
+lbl_80274394:
+/* 80274394 0026FFF4 38 00 00 40 */ li r0, 0x40
+/* 80274398 0026FFF8 38 BF 00 04 */ addi r5, r31, 4
+/* 8027439C 0026FFFC 38 80 00 00 */ li r4, 0
+/* 802743A0 00270000 7C 09 03 A6 */ mtctr r0
+lbl_802743A4:
+/* 802743A4 00270004 80 65 00 00 */ lwz r3, 0(r5)
+/* 802743A8 00270008 80 05 00 04 */ lwz r0, 4(r5)
+/* 802743AC 0027000C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743B0 00270010 80 65 00 08 */ lwz r3, 8(r5)
+/* 802743B4 00270014 7C 84 02 14 */ add r4, r4, r0
+/* 802743B8 00270018 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 802743BC 0027001C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743C0 00270020 80 65 00 10 */ lwz r3, 0x10(r5)
+/* 802743C4 00270024 7C 84 02 14 */ add r4, r4, r0
+/* 802743C8 00270028 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 802743CC 0027002C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743D0 00270030 80 65 00 18 */ lwz r3, 0x18(r5)
+/* 802743D4 00270034 7C 84 02 14 */ add r4, r4, r0
+/* 802743D8 00270038 80 05 00 1C */ lwz r0, 0x1c(r5)
+/* 802743DC 0027003C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743E0 00270040 80 65 00 20 */ lwz r3, 0x20(r5)
+/* 802743E4 00270044 7C 84 02 14 */ add r4, r4, r0
+/* 802743E8 00270048 80 05 00 24 */ lwz r0, 0x24(r5)
+/* 802743EC 0027004C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743F0 00270050 80 65 00 28 */ lwz r3, 0x28(r5)
+/* 802743F4 00270054 7C 84 02 14 */ add r4, r4, r0
+/* 802743F8 00270058 80 05 00 2C */ lwz r0, 0x2c(r5)
+/* 802743FC 0027005C 7C 84 1A 14 */ add r4, r4, r3
+/* 80274400 00270060 80 65 00 30 */ lwz r3, 0x30(r5)
+/* 80274404 00270064 7C 84 02 14 */ add r4, r4, r0
+/* 80274408 00270068 80 05 00 34 */ lwz r0, 0x34(r5)
+/* 8027440C 0027006C 7C 84 1A 14 */ add r4, r4, r3
+/* 80274410 00270070 80 65 00 38 */ lwz r3, 0x38(r5)
+/* 80274414 00270074 7C 84 02 14 */ add r4, r4, r0
+/* 80274418 00270078 80 05 00 3C */ lwz r0, 0x3c(r5)
+/* 8027441C 0027007C 7C 84 1A 14 */ add r4, r4, r3
+/* 80274420 00270080 38 A5 00 40 */ addi r5, r5, 0x40
+/* 80274424 00270084 7C 84 02 14 */ add r4, r4, r0
+/* 80274428 00270088 42 00 FF 7C */ bdnz lbl_802743A4
+/* 8027442C 0027008C 80 65 00 00 */ lwz r3, 0(r5)
+/* 80274430 00270090 80 05 00 04 */ lwz r0, 4(r5)
+/* 80274434 00270094 7C 84 1A 14 */ add r4, r4, r3
+/* 80274438 00270098 80 65 00 08 */ lwz r3, 8(r5)
+/* 8027443C 0027009C 7C 84 02 14 */ add r4, r4, r0
+/* 80274440 002700A0 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 80274444 002700A4 7C 84 1A 14 */ add r4, r4, r3
+/* 80274448 002700A8 80 65 00 10 */ lwz r3, 0x10(r5)
+/* 8027444C 002700AC 7C 84 02 14 */ add r4, r4, r0
+/* 80274450 002700B0 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 80274454 002700B4 7C 84 1A 14 */ add r4, r4, r3
+/* 80274458 002700B8 80 65 00 18 */ lwz r3, 0x18(r5)
+/* 8027445C 002700BC 7C 84 02 14 */ add r4, r4, r0
+/* 80274460 002700C0 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80274464 002700C4 7C 84 1A 14 */ add r4, r4, r3
+/* 80274468 002700C8 7C 00 20 40 */ cmplw r0, r4
+/* 8027446C 002700CC 41 82 00 1C */ beq lbl_80274488
+/* 80274470 002700D0 7F E3 FB 78 */ mr r3, r31
+/* 80274474 002700D4 38 80 00 00 */ li r4, 0
+/* 80274478 002700D8 38 A0 10 20 */ li r5, 0x1020
+/* 8027447C 002700DC 4B D8 FC 89 */ bl memset
+/* 80274480 002700E0 38 60 00 00 */ li r3, 0
+/* 80274484 002700E4 48 00 00 08 */ b lbl_8027448C
+lbl_80274488:
+/* 80274488 002700E8 38 60 00 01 */ li r3, 1
+lbl_8027448C:
+/* 8027448C 002700EC 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 80274490 002700F0 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 80274494 002700F4 83 C1 00 98 */ lwz r30, 0x98(r1)
+/* 80274498 002700F8 7C 08 03 A6 */ mtlr r0
+/* 8027449C 002700FC 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 802744A0 00270100 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSNet.s b/asm/SDK/OS/OSNet.s
new file mode 100644
index 0000000..4ceeb0e
--- /dev/null
+++ b/asm/SDK/OS/OSNet.s
@@ -0,0 +1,51 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSInitNet
+__OSInitNet:
+/* 80274110 0026FD70 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80274114 0026FD74 7C 08 02 A6 */ mflr r0
+/* 80274118 0026FD78 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027411C 0026FD7C 38 61 00 08 */ addi r3, r1, 8
+/* 80274120 0026FD80 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80274124 0026FD84 3F E0 80 43 */ lis r31, lbl_80433DA0@ha
+/* 80274128 0026FD88 3B FF 3D A0 */ addi r31, r31, lbl_80433DA0@l
+/* 8027412C 0026FD8C 4B FF 43 95 */ bl __OSGetIOSRev
+/* 80274130 0026FD90 88 01 00 09 */ lbz r0, 9(r1)
+/* 80274134 0026FD94 28 00 00 04 */ cmplwi r0, 4
+/* 80274138 0026FD98 40 81 00 68 */ ble lbl_802741A0
+/* 8027413C 0026FD9C 28 00 00 09 */ cmplwi r0, 9
+/* 80274140 0026FDA0 40 82 00 08 */ bne lbl_80274148
+/* 80274144 0026FDA4 48 00 00 5C */ b lbl_802741A0
+lbl_80274148:
+/* 80274148 0026FDA8 48 09 0B D5 */ bl func_80304D1C
+/* 8027414C 0026FDAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80274150 0026FDB0 41 82 00 34 */ beq lbl_80274184
+/* 80274154 0026FDB4 40 80 00 14 */ bge lbl_80274168
+/* 80274158 0026FDB8 7C 64 1B 78 */ mr r4, r3
+/* 8027415C 0026FDBC 38 7F 00 00 */ addi r3, r31, 0
+/* 80274160 0026FDC0 4C C6 31 82 */ crclr 6
+/* 80274164 0026FDC4 4B D9 39 61 */ bl func_80007AC4
+lbl_80274168:
+/* 80274168 0026FDC8 48 08 F8 8D */ bl func_803039F4
+/* 8027416C 0026FDCC 2C 03 00 00 */ cmpwi r3, 0
+/* 80274170 0026FDD0 40 80 00 14 */ bge lbl_80274184
+/* 80274174 0026FDD4 7C 64 1B 78 */ mr r4, r3
+/* 80274178 0026FDD8 38 7F 00 34 */ addi r3, r31, 0x34
+/* 8027417C 0026FDDC 4C C6 31 82 */ crclr 6
+/* 80274180 0026FDE0 4B D9 39 45 */ bl func_80007AC4
+lbl_80274184:
+/* 80274184 0026FDE4 48 09 04 65 */ bl func_803045E8
+/* 80274188 0026FDE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8027418C 0026FDEC 41 82 00 14 */ beq lbl_802741A0
+/* 80274190 0026FDF0 7C 64 1B 78 */ mr r4, r3
+/* 80274194 0026FDF4 38 7F 00 68 */ addi r3, r31, 0x68
+/* 80274198 0026FDF8 4C C6 31 82 */ crclr 6
+/* 8027419C 0026FDFC 4B D9 39 29 */ bl func_80007AC4
+lbl_802741A0:
+/* 802741A0 0026FE00 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802741A4 0026FE04 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802741A8 0026FE08 7C 08 03 A6 */ mtlr r0
+/* 802741AC 0026FE0C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802741B0 0026FE10 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSReset.s b/asm/SDK/OS/OSReset.s
index 3c8e773..1c45e21 100644
--- a/asm/SDK/OS/OSReset.s
+++ b/asm/SDK/OS/OSReset.s
@@ -228,7 +228,7 @@ OSRebootSystem:
/* 8026FF68 0026BBC8 48 00 36 C5 */ bl __OSUnRegisterStateEvent
/* 8026FF6C 0026BBCC 48 01 C8 C1 */ bl func_8028C82C
/* 8026FF70 0026BBD0 38 61 00 10 */ addi r3, r1, 0x10
-/* 8026FF74 0026BBD4 48 00 40 75 */ bl func_80273FE8
+/* 8026FF74 0026BBD4 48 00 40 75 */ bl __OSReadStateFlags
/* 8026FF78 0026BBD8 48 01 C4 89 */ bl func_8028C400
/* 8026FF7C 0026BBDC 28 03 00 02 */ cmplwi r3, 2
/* 8026FF80 0026BBE0 41 82 00 10 */ beq lbl_8026FF90
@@ -258,7 +258,7 @@ lbl_8026FFCC:
/* 8026FFD0 0026BC30 98 01 00 15 */ stb r0, 0x15(r1)
/* 8026FFD4 0026BC34 48 00 0D 85 */ bl __OSClearRTCFlags
/* 8026FFD8 0026BC38 38 61 00 10 */ addi r3, r1, 0x10
-/* 8026FFDC 0026BC3C 48 00 3F 29 */ bl func_80273F04
+/* 8026FFDC 0026BC3C 48 00 3F 29 */ bl __OSWriteStateFlags
/* 8026FFE0 0026BC40 48 00 13 65 */ bl OSDisableScheduler
/* 8026FFE4 0026BC44 38 60 00 01 */ li r3, 1
/* 8026FFE8 0026BC48 4B FF FD E1 */ bl __OSShutdownDevices
@@ -288,7 +288,7 @@ lbl_80270020:
/* 80270038 0026BC98 48 00 35 F5 */ bl __OSUnRegisterStateEvent
/* 8027003C 0026BC9C 48 01 C7 F1 */ bl func_8028C82C
/* 80270040 0026BCA0 38 61 00 18 */ addi r3, r1, 0x18
-/* 80270044 0026BCA4 48 00 3F A5 */ bl func_80273FE8
+/* 80270044 0026BCA4 48 00 3F A5 */ bl __OSReadStateFlags
/* 80270048 0026BCA8 48 01 C3 B9 */ bl func_8028C400
/* 8027004C 0026BCAC 28 03 00 02 */ cmplwi r3, 2
/* 80270050 0026BCB0 41 82 00 10 */ beq lbl_80270060
@@ -326,7 +326,7 @@ lbl_802700B4:
lbl_802700BC:
/* 802700BC 0026BD1C 48 00 0C 9D */ bl __OSClearRTCFlags
/* 802700C0 0026BD20 38 61 00 18 */ addi r3, r1, 0x18
-/* 802700C4 0026BD24 48 00 3E 41 */ bl func_80273F04
+/* 802700C4 0026BD24 48 00 3E 41 */ bl __OSWriteStateFlags
/* 802700C8 0026BD28 38 61 00 10 */ addi r3, r1, 0x10
/* 802700CC 0026BD2C 4B FF 83 F5 */ bl __OSGetIOSRev
/* 802700D0 0026BD30 88 01 00 08 */ lbz r0, 8(r1)
@@ -375,15 +375,15 @@ __OSRebootForNANDAPP:
/* 80270168 0026BDC8 90 7F 00 08 */ stw r3, 8(r31)
/* 8027016C 0026BDCC 7F E3 FB 78 */ mr r3, r31
/* 80270170 0026BDD0 90 1F 00 0C */ stw r0, 0xc(r31)
-/* 80270174 0026BDD4 48 00 40 41 */ bl func_802741B4
+/* 80270174 0026BDD4 48 00 40 41 */ bl __OSWriteNandbootInfo
/* 80270178 0026BDD8 38 61 00 08 */ addi r3, r1, 8
-/* 8027017C 0026BDDC 48 00 3E 6D */ bl func_80273FE8
+/* 8027017C 0026BDDC 48 00 3E 6D */ bl __OSReadStateFlags
/* 80270180 0026BDE0 2C 03 00 00 */ cmpwi r3, 0
/* 80270184 0026BDE4 41 82 00 14 */ beq lbl_80270198
/* 80270188 0026BDE8 38 00 00 03 */ li r0, 3
/* 8027018C 0026BDEC 38 61 00 08 */ addi r3, r1, 8
/* 80270190 0026BDF0 98 01 00 0D */ stb r0, 0xd(r1)
-/* 80270194 0026BDF4 48 00 3D 71 */ bl func_80273F04
+/* 80270194 0026BDF4 48 00 3D 71 */ bl __OSWriteStateFlags
lbl_80270198:
/* 80270198 0026BDF8 48 00 11 AD */ bl OSDisableScheduler
/* 8027019C 0026BDFC 38 60 00 04 */ li r3, 4
@@ -446,7 +446,7 @@ OSReturnToMenu:
/* 80270260 0026BEC0 48 00 33 CD */ bl __OSUnRegisterStateEvent
/* 80270264 0026BEC4 48 01 C5 C9 */ bl func_8028C82C
/* 80270268 0026BEC8 38 61 00 10 */ addi r3, r1, 0x10
-/* 8027026C 0026BECC 48 00 3D 7D */ bl func_80273FE8
+/* 8027026C 0026BECC 48 00 3D 7D */ bl __OSReadStateFlags
/* 80270270 0026BED0 48 01 C1 91 */ bl func_8028C400
/* 80270274 0026BED4 28 03 00 02 */ cmplwi r3, 2
/* 80270278 0026BED8 41 82 00 10 */ beq lbl_80270288
@@ -476,7 +476,7 @@ lbl_802702C4:
/* 802702C8 0026BF28 98 01 00 15 */ stb r0, 0x15(r1)
/* 802702CC 0026BF2C 48 00 0A 8D */ bl __OSClearRTCFlags
/* 802702D0 0026BF30 38 61 00 10 */ addi r3, r1, 0x10
-/* 802702D4 0026BF34 48 00 3C 31 */ bl func_80273F04
+/* 802702D4 0026BF34 48 00 3C 31 */ bl __OSWriteStateFlags
/* 802702D8 0026BF38 48 00 10 6D */ bl OSDisableScheduler
/* 802702DC 0026BF3C 38 60 00 05 */ li r3, 5
/* 802702E0 0026BF40 4B FF FA E9 */ bl __OSShutdownDevices
@@ -503,14 +503,14 @@ __OSReturnToMenuForError:
/* 80270328 0026BF88 7C 08 02 A6 */ mflr r0
/* 8027032C 0026BF8C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80270330 0026BF90 38 61 00 08 */ addi r3, r1, 8
-/* 80270334 0026BF94 48 00 3C B5 */ bl func_80273FE8
+/* 80270334 0026BF94 48 00 3C B5 */ bl __OSReadStateFlags
/* 80270338 0026BF98 38 60 00 02 */ li r3, 2
/* 8027033C 0026BF9C 38 00 00 03 */ li r0, 3
/* 80270340 0026BFA0 98 61 00 0E */ stb r3, 0xe(r1)
/* 80270344 0026BFA4 98 01 00 0D */ stb r0, 0xd(r1)
/* 80270348 0026BFA8 48 00 0A 11 */ bl __OSClearRTCFlags
/* 8027034C 0026BFAC 38 61 00 08 */ addi r3, r1, 8
-/* 80270350 0026BFB0 48 00 3B B5 */ bl func_80273F04
+/* 80270350 0026BFB0 48 00 3B B5 */ bl __OSWriteStateFlags
/* 80270354 0026BFB4 4B FF BE D9 */ bl __OSLaunchMenu
/* 80270358 0026BFB8 48 00 0F ED */ bl OSDisableScheduler
/* 8027035C 0026BFBC 48 00 B7 5D */ bl func_8027BAB8
diff --git a/asm/SDK/OS/OSStateFlags.s b/asm/SDK/OS/OSStateFlags.s
new file mode 100644
index 0000000..7be7ba6
--- /dev/null
+++ b/asm/SDK/OS/OSStateFlags.s
@@ -0,0 +1,148 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSWriteStateFlags
+__OSWriteStateFlags:
+/* 80273F04 0026FB64 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 80273F08 0026FB68 7C 08 02 A6 */ mflr r0
+/* 80273F0C 0026FB6C 7C 64 1B 78 */ mr r4, r3
+/* 80273F10 0026FB70 38 A0 00 20 */ li r5, 0x20
+/* 80273F14 0026FB74 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 80273F18 0026FB78 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 80273F1C 0026FB7C 93 C1 00 98 */ stw r30, 0x98(r1)
+/* 80273F20 0026FB80 3F C0 80 51 */ lis r30, lbl_805154A0@ha
+/* 80273F24 0026FB84 38 7E 54 A0 */ addi r3, r30, lbl_805154A0@l
+/* 80273F28 0026FB88 4B D9 00 D9 */ bl memcpy
+/* 80273F2C 0026FB8C 3B FE 54 A0 */ addi r31, r30, 0x54a0
+/* 80273F30 0026FB90 3C 60 80 43 */ lis r3, lbl_80433D78@ha
+/* 80273F34 0026FB94 80 DF 00 04 */ lwz r6, 4(r31)
+/* 80273F38 0026FB98 38 63 3D 78 */ addi r3, r3, lbl_80433D78@l
+/* 80273F3C 0026FB9C 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80273F40 0026FBA0 38 81 00 08 */ addi r4, r1, 8
+/* 80273F44 0026FBA4 38 A0 00 02 */ li r5, 2
+/* 80273F48 0026FBA8 7C C6 02 14 */ add r6, r6, r0
+/* 80273F4C 0026FBAC 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80273F50 0026FBB0 7C C6 02 14 */ add r6, r6, r0
+/* 80273F54 0026FBB4 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80273F58 0026FBB8 7C C6 02 14 */ add r6, r6, r0
+/* 80273F5C 0026FBBC 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 80273F60 0026FBC0 7C C6 02 14 */ add r6, r6, r0
+/* 80273F64 0026FBC4 80 1F 00 18 */ lwz r0, 0x18(r31)
+/* 80273F68 0026FBC8 7C C6 02 14 */ add r6, r6, r0
+/* 80273F6C 0026FBCC 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80273F70 0026FBD0 7C C6 02 14 */ add r6, r6, r0
+/* 80273F74 0026FBD4 90 DE 54 A0 */ stw r6, 0x54a0(r30)
+/* 80273F78 0026FBD8 48 07 44 91 */ bl func_802E8408
+/* 80273F7C 0026FBDC 2C 03 00 00 */ cmpwi r3, 0
+/* 80273F80 0026FBE0 40 82 00 44 */ bne lbl_80273FC4
+/* 80273F84 0026FBE4 7F E4 FB 78 */ mr r4, r31
+/* 80273F88 0026FBE8 38 61 00 08 */ addi r3, r1, 8
+/* 80273F8C 0026FBEC 38 A0 00 20 */ li r5, 0x20
+/* 80273F90 0026FBF0 48 07 3A 11 */ bl func_802E79A0
+/* 80273F94 0026FBF4 28 03 00 20 */ cmplwi r3, 0x20
+/* 80273F98 0026FBF8 41 82 00 14 */ beq lbl_80273FAC
+/* 80273F9C 0026FBFC 38 61 00 08 */ addi r3, r1, 8
+/* 80273FA0 0026FC00 48 07 46 E9 */ bl func_802E8688
+/* 80273FA4 0026FC04 38 60 00 00 */ li r3, 0
+/* 80273FA8 0026FC08 48 00 00 28 */ b lbl_80273FD0
+lbl_80273FAC:
+/* 80273FAC 0026FC0C 38 61 00 08 */ addi r3, r1, 8
+/* 80273FB0 0026FC10 48 07 46 D9 */ bl func_802E8688
+/* 80273FB4 0026FC14 2C 03 00 00 */ cmpwi r3, 0
+/* 80273FB8 0026FC18 41 82 00 14 */ beq lbl_80273FCC
+/* 80273FBC 0026FC1C 38 60 00 00 */ li r3, 0
+/* 80273FC0 0026FC20 48 00 00 10 */ b lbl_80273FD0
+lbl_80273FC4:
+/* 80273FC4 0026FC24 38 60 00 00 */ li r3, 0
+/* 80273FC8 0026FC28 48 00 00 08 */ b lbl_80273FD0
+lbl_80273FCC:
+/* 80273FCC 0026FC2C 38 60 00 01 */ li r3, 1
+lbl_80273FD0:
+/* 80273FD0 0026FC30 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 80273FD4 0026FC34 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 80273FD8 0026FC38 83 C1 00 98 */ lwz r30, 0x98(r1)
+/* 80273FDC 0026FC3C 7C 08 03 A6 */ mtlr r0
+/* 80273FE0 0026FC40 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 80273FE4 0026FC44 4E 80 00 20 */ blr
+
+.global __OSReadStateFlags
+__OSReadStateFlags:
+/* 80273FE8 0026FC48 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 80273FEC 0026FC4C 7C 08 02 A6 */ mflr r0
+/* 80273FF0 0026FC50 38 A0 00 01 */ li r5, 1
+/* 80273FF4 0026FC54 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 80273FF8 0026FC58 38 81 00 08 */ addi r4, r1, 8
+/* 80273FFC 0026FC5C 93 E1 00 AC */ stw r31, 0xac(r1)
+/* 80274000 0026FC60 93 C1 00 A8 */ stw r30, 0xa8(r1)
+/* 80274004 0026FC64 93 A1 00 A4 */ stw r29, 0xa4(r1)
+/* 80274008 0026FC68 3F A0 80 43 */ lis r29, lbl_80433D78@ha
+/* 8027400C 0026FC6C 93 81 00 A0 */ stw r28, 0xa0(r1)
+/* 80274010 0026FC70 7C 7C 1B 78 */ mr r28, r3
+/* 80274014 0026FC74 38 7D 3D 78 */ addi r3, r29, lbl_80433D78@l
+/* 80274018 0026FC78 48 07 43 F1 */ bl func_802E8408
+/* 8027401C 0026FC7C 2C 03 00 00 */ cmpwi r3, 0
+/* 80274020 0026FC80 40 82 00 4C */ bne lbl_8027406C
+/* 80274024 0026FC84 3F C0 80 51 */ lis r30, lbl_805154A0@ha
+/* 80274028 0026FC88 38 61 00 08 */ addi r3, r1, 8
+/* 8027402C 0026FC8C 38 9E 54 A0 */ addi r4, r30, lbl_805154A0@l
+/* 80274030 0026FC90 38 A0 00 20 */ li r5, 0x20
+/* 80274034 0026FC94 48 07 38 8D */ bl func_802E78C0
+/* 80274038 0026FC98 7C 7F 1B 78 */ mr r31, r3
+/* 8027403C 0026FC9C 38 61 00 08 */ addi r3, r1, 8
+/* 80274040 0026FCA0 48 07 46 49 */ bl func_802E8688
+/* 80274044 0026FCA4 28 1F 00 20 */ cmplwi r31, 0x20
+/* 80274048 0026FCA8 41 82 00 3C */ beq lbl_80274084
+/* 8027404C 0026FCAC 38 7D 3D 78 */ addi r3, r29, 0x3d78
+/* 80274050 0026FCB0 48 07 37 01 */ bl func_802E7750
+/* 80274054 0026FCB4 7F 83 E3 78 */ mr r3, r28
+/* 80274058 0026FCB8 38 80 00 00 */ li r4, 0
+/* 8027405C 0026FCBC 38 A0 00 20 */ li r5, 0x20
+/* 80274060 0026FCC0 4B D9 00 A5 */ bl memset
+/* 80274064 0026FCC4 38 60 00 00 */ li r3, 0
+/* 80274068 0026FCC8 48 00 00 88 */ b lbl_802740F0
+lbl_8027406C:
+/* 8027406C 0026FCCC 7F 83 E3 78 */ mr r3, r28
+/* 80274070 0026FCD0 38 80 00 00 */ li r4, 0
+/* 80274074 0026FCD4 38 A0 00 20 */ li r5, 0x20
+/* 80274078 0026FCD8 4B D9 00 8D */ bl memset
+/* 8027407C 0026FCDC 38 60 00 00 */ li r3, 0
+/* 80274080 0026FCE0 48 00 00 70 */ b lbl_802740F0
+lbl_80274084:
+/* 80274084 0026FCE4 38 9E 54 A0 */ addi r4, r30, 0x54a0
+/* 80274088 0026FCE8 80 1E 54 A0 */ lwz r0, 0x54a0(r30)
+/* 8027408C 0026FCEC 80 A4 00 04 */ lwz r5, 4(r4)
+/* 80274090 0026FCF0 80 64 00 08 */ lwz r3, 8(r4)
+/* 80274094 0026FCF4 7C A5 1A 14 */ add r5, r5, r3
+/* 80274098 0026FCF8 80 64 00 0C */ lwz r3, 0xc(r4)
+/* 8027409C 0026FCFC 7C A5 1A 14 */ add r5, r5, r3
+/* 802740A0 0026FD00 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 802740A4 0026FD04 7C A5 1A 14 */ add r5, r5, r3
+/* 802740A8 0026FD08 80 64 00 14 */ lwz r3, 0x14(r4)
+/* 802740AC 0026FD0C 7C A5 1A 14 */ add r5, r5, r3
+/* 802740B0 0026FD10 80 64 00 18 */ lwz r3, 0x18(r4)
+/* 802740B4 0026FD14 7C A5 1A 14 */ add r5, r5, r3
+/* 802740B8 0026FD18 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 802740BC 0026FD1C 7C A5 1A 14 */ add r5, r5, r3
+/* 802740C0 0026FD20 7C 00 28 40 */ cmplw r0, r5
+/* 802740C4 0026FD24 41 82 00 1C */ beq lbl_802740E0
+/* 802740C8 0026FD28 7F 83 E3 78 */ mr r3, r28
+/* 802740CC 0026FD2C 38 80 00 00 */ li r4, 0
+/* 802740D0 0026FD30 38 A0 00 20 */ li r5, 0x20
+/* 802740D4 0026FD34 4B D9 00 31 */ bl memset
+/* 802740D8 0026FD38 38 60 00 00 */ li r3, 0
+/* 802740DC 0026FD3C 48 00 00 14 */ b lbl_802740F0
+lbl_802740E0:
+/* 802740E0 0026FD40 7F 83 E3 78 */ mr r3, r28
+/* 802740E4 0026FD44 38 A0 00 20 */ li r5, 0x20
+/* 802740E8 0026FD48 4B D8 FF 19 */ bl memcpy
+/* 802740EC 0026FD4C 38 60 00 01 */ li r3, 1
+lbl_802740F0:
+/* 802740F0 0026FD50 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 802740F4 0026FD54 83 E1 00 AC */ lwz r31, 0xac(r1)
+/* 802740F8 0026FD58 83 C1 00 A8 */ lwz r30, 0xa8(r1)
+/* 802740FC 0026FD5C 83 A1 00 A4 */ lwz r29, 0xa4(r1)
+/* 80274100 0026FD60 83 81 00 A0 */ lwz r28, 0xa0(r1)
+/* 80274104 0026FD64 7C 08 03 A6 */ mtlr r0
+/* 80274108 0026FD68 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 8027410C 0026FD6C 4E 80 00 20 */ blr