m_Do_Reset: OK (#35)

* m_Do_Reset: split and (some) decomp

decompiles:
- my_OSCancelAlarmAll()
- destroyVideo()

* mDoRst::reset(): decompile, plus some supporting code

* split DVD* functions to dvd.h

* mDoRst::resetCallBack(): decompile
This commit is contained in:
Erin Moon
2020-12-25 19:59:52 -06:00
committed by GitHub
parent 22bda03652
commit 58fc83c4f8
37 changed files with 383 additions and 287 deletions
+22 -22
View File
@@ -85,7 +85,7 @@ dScnLogo_c_NS_checkProgSelect:
/* 802561A0 002530E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802561A4 002530E4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802561A8 002530E8 7C 7F 1B 78 */ mr r31, r3
/* 802561AC 002530EC 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 802561AC 002530EC 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 802561B0 002530F0 88 03 00 13 */ lbz r0, 0x13(r3)
/* 802561B4 002530F4 28 00 00 00 */ cmplwi r0, 0
/* 802561B8 002530F8 40 82 00 44 */ bne lbl_802561FC
@@ -302,7 +302,7 @@ lbl_802564AC:
/* 802564D8 00253418 38 80 00 01 */ li r4, 1
/* 802564DC 0025341C 48 00 1F FD */ bl dScnLogo_c_NS_setProgressiveMode
/* 802564E0 00253420 38 00 00 01 */ li r0, 1
/* 802564E4 00253424 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 802564E4 00253424 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 802564E8 00253428 98 03 00 14 */ stb r0, 0x14(r3)
/* 802564EC 0025342C 38 00 00 6D */ li r0, 0x6d
/* 802564F0 00253430 90 01 00 0C */ stw r0, 0xc(r1)
@@ -375,7 +375,7 @@ lbl_802565D8:
/* 802565EC 0025352C B0 1D 02 12 */ sth r0, 0x212(r29)
lbl_802565F0:
/* 802565F0 00253530 38 00 00 01 */ li r0, 1
/* 802565F4 00253534 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 802565F4 00253534 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 802565F8 00253538 98 03 00 13 */ stb r0, 0x13(r3)
/* 802565FC 0025353C 48 00 00 68 */ b lbl_80256664
lbl_80256600:
@@ -617,7 +617,7 @@ lbl_80256980:
/* 80256988 002538C8 88 1F 02 09 */ lbz r0, 0x209(r31)
/* 8025698C 002538CC 28 00 00 00 */ cmplwi r0, 0
/* 80256990 002538D0 41 82 00 60 */ beq lbl_802569F0
/* 80256994 002538D4 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80256994 002538D4 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80256998 002538D8 88 03 00 15 */ lbz r0, 0x15(r3)
/* 8025699C 002538DC 28 00 00 00 */ cmplwi r0, 0
/* 802569A0 002538E0 41 82 00 18 */ beq lbl_802569B8
@@ -751,7 +751,7 @@ lbl_80256B7C:
/* 80256B7C 00253ABC A0 1F 02 0C */ lhz r0, 0x20c(r31)
/* 80256B80 00253AC0 28 00 00 00 */ cmplwi r0, 0
/* 80256B84 00253AC4 40 82 00 5C */ bne lbl_80256BE0
/* 80256B88 00253AC8 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80256B88 00253AC8 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80256B8C 00253ACC 88 03 00 15 */ lbz r0, 0x15(r3)
/* 80256B90 00253AD0 28 00 00 00 */ cmplwi r0, 0
/* 80256B94 00253AD4 41 82 00 18 */ beq lbl_80256BAC
@@ -895,7 +895,7 @@ lbl_80256D6C:
/* 80256D9C 00253CDC 4E 80 04 21 */ bctrl
lbl_80256DA0:
/* 80256DA0 00253CE0 38 00 00 01 */ li r0, 1
/* 80256DA4 00253CE4 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80256DA4 00253CE4 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80256DA8 00253CE8 98 03 00 15 */ stb r0, 0x15(r3)
lbl_80256DAC:
/* 80256DAC 00253CEC 39 61 00 30 */ addi r11, r1, 0x30
@@ -1202,9 +1202,9 @@ lbl_80257044:
/* 8025724C 0025418C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80257250 00254190 41 82 00 20 */ beq lbl_80257270
/* 80257254 00254194 38 00 00 00 */ li r0, 0
/* 80257258 00254198 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257258 00254198 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 8025725C 0025419C 98 03 00 12 */ stb r0, 0x12(r3)
/* 80257260 002541A0 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257260 002541A0 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257264 002541A4 98 03 00 14 */ stb r0, 0x14(r3)
/* 80257268 002541A8 38 00 00 0F */ li r0, 0xf
/* 8025726C 002541AC 98 1F 02 08 */ stb r0, 0x208(r31)
@@ -1217,7 +1217,7 @@ lbl_80257270:
/* 80257284 002541C4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80257288 002541C8 7C 08 02 A6 */ mflr r0
/* 8025728C 002541CC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80257290 002541D0 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13)
/* 80257290 002541D0 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257294 002541D4 80 04 00 00 */ lwz r0, 0(r4)
/* 80257298 002541D8 2C 00 00 00 */ cmpwi r0, 0
/* 8025729C 002541DC 40 82 00 0C */ bne lbl_802572A8
@@ -1239,7 +1239,7 @@ dScnLogo_c_NS_dtor:
/* 802572CC 0025420C 7C 7F 1B 79 */ or. r31, r3, r3
/* 802572D0 00254210 7C 9D 23 78 */ mr r29, r4
/* 802572D4 00254214 41 82 06 20 */ beq lbl_802578F4
/* 802572D8 00254218 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 802572D8 00254218 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 802572DC 0025421C 80 03 00 00 */ lwz r0, 0(r3)
/* 802572E0 00254220 2C 00 00 00 */ cmpwi r0, 0
/* 802572E4 00254224 41 82 00 30 */ beq lbl_80257314
@@ -1254,7 +1254,7 @@ lbl_80257304:
/* 80257304 00254244 38 60 00 00 */ li r3, 0
/* 80257308 00254248 3C 80 80 00 */ lis r4, 0x8000
/* 8025730C 0025424C 38 A0 00 00 */ li r5, 0
/* 80257310 00254250 4B DB E3 05 */ bl mDoRst_reset
/* 80257310 00254250 4B DB E3 05 */ bl reset__6mDoRstFlUll
lbl_80257314:
/* 80257314 00254254 83 9F 01 E4 */ lwz r28, 0x1e4(r31)
/* 80257318 00254258 28 1C 00 00 */ cmplwi r28, 0
@@ -1748,7 +1748,7 @@ lbl_80257A0C:
/* 80257A30 00254970 38 84 C2 F8 */ addi r4, r4, -15624
/* 80257A34 00254974 4B DE 46 45 */ bl dRes_control_c_NS_setRes
/* 80257A38 00254978 38 00 00 01 */ li r0, 1
/* 80257A3C 0025497C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257A3C 0025497C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257A40 00254980 98 03 00 12 */ stb r0, 0x12(r3)
/* 80257A44 00254984 80 6D 86 B4 */ lwz r3, lbl_80450C34-_SDA_BASE_(r13)
/* 80257A48 00254988 81 83 00 00 */ lwz r12, 0(r3)
@@ -1861,7 +1861,7 @@ lbl_80257BA0:
/* 80257BD0 00254B10 90 1E 02 18 */ stw r0, 0x218(r30)
/* 80257BD4 00254B14 48 00 00 44 */ b lbl_80257C18
lbl_80257BD8:
/* 80257BD8 00254B18 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257BD8 00254B18 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257BDC 00254B1C 88 03 00 15 */ lbz r0, 0x15(r3)
/* 80257BE0 00254B20 28 00 00 00 */ cmplwi r0, 0
/* 80257BE4 00254B24 41 82 00 18 */ beq lbl_80257BFC
@@ -1877,22 +1877,22 @@ lbl_80257BFC:
/* 80257C08 00254B48 98 1E 02 08 */ stb r0, 0x208(r30)
lbl_80257C0C:
/* 80257C0C 00254B4C 38 00 00 01 */ li r0, 1
/* 80257C10 00254B50 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257C10 00254B50 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257C14 00254B54 98 03 00 13 */ stb r0, 0x13(r3)
lbl_80257C18:
/* 80257C18 00254B58 38 80 00 00 */ li r4, 0
/* 80257C1C 00254B5C 98 8D 8F 81 */ stb r4, lbl_80451501-_SDA_BASE_(r13)
.global mDoRst_resetCallBack
/* 80257C20 00254B60 3C 60 80 01 */ lis r3, mDoRst_resetCallBack@ha
.global mDoRst_resetCallBack
/* 80257C24 00254B64 38 03 57 4C */ addi r0, r3, mDoRst_resetCallBack@l
.global resetCallBack__6mDoRstFiPv
/* 80257C20 00254B60 3C 60 80 01 */ lis r3, resetCallBack__6mDoRstFiPv@ha
.global resetCallBack__6mDoRstFiPv
/* 80257C24 00254B64 38 03 57 4C */ addi r0, r3, resetCallBack__6mDoRstFiPv@l
/* 80257C28 00254B68 90 0D 8F 6C */ stw r0, lbl_804514EC-_SDA_BASE_(r13)
/* 80257C2C 00254B6C 90 8D 8F 70 */ stw r4, lbl_804514F0-_SDA_BASE_(r13)
/* 80257C30 00254B70 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257C30 00254B70 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257C34 00254B74 90 83 00 00 */ stw r4, 0(r3)
/* 80257C38 00254B78 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257C38 00254B78 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257C3C 00254B7C 90 83 00 04 */ stw r4, 4(r3)
/* 80257C40 00254B80 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80257C40 00254B80 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80257C44 00254B84 90 83 00 04 */ stw r4, 4(r3)
/* 80257C48 00254B88 7F E3 FB 78 */ mr r3, r31
lbl_80257C4C:
@@ -2423,7 +2423,7 @@ dScnLogo_c_NS_dvdDataLoad:
/* 80258444 00255384 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80258448 00255388 7C 08 02 A6 */ mflr r0
/* 8025844C 0025538C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80258450 00255390 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13)
/* 80258450 00255390 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80258454 00255394 80 04 00 00 */ lwz r0, 0(r4)
/* 80258458 00255398 2C 00 00 00 */ cmpwi r0, 0
/* 8025845C 0025539C 41 82 00 14 */ beq lbl_80258470
+3 -3
View File
@@ -306,7 +306,7 @@ dScnName_c_NS_execute:
/* 80258BE8 00255B28 7F E3 FB 78 */ mr r3, r31
/* 80258BEC 00255B2C 4B DD 41 59 */ bl dComIfG_resetToOpening
lbl_80258BF0:
/* 80258BF0 00255B30 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80258BF0 00255B30 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80258BF4 00255B34 80 03 00 00 */ lwz r0, 0(r3)
/* 80258BF8 00255B38 2C 00 00 00 */ cmpwi r0, 0
/* 80258BFC 00255B3C 41 82 00 28 */ beq lbl_80258C24
@@ -582,7 +582,7 @@ lbl_80258FC0:
/* 80258FC8 00255F08 7C 08 03 A6 */ mtlr r0
/* 80258FCC 00255F0C 38 21 00 20 */ addi r1, r1, 0x20
/* 80258FD0 00255F10 4E 80 00 20 */ blr
/* 80258FD4 00255F14 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13)
/* 80258FD4 00255F14 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80258FD8 00255F18 80 04 00 00 */ lwz r0, 0(r4)
/* 80258FDC 00255F1C 2C 00 00 00 */ cmpwi r0, 0
/* 80258FE0 00255F20 4C 82 00 20 */ bnelr
@@ -661,7 +661,7 @@ lbl_802590E4:
/* 80259100 00256040 90 01 00 14 */ stw r0, 0x14(r1)
/* 80259104 00256044 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80259108 00256048 7C 7F 1B 78 */ mr r31, r3
/* 8025910C 0025604C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 8025910C 0025604C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80259110 00256050 80 03 00 00 */ lwz r0, 0(r3)
/* 80259114 00256054 2C 00 00 00 */ cmpwi r0, 0
/* 80259118 00256058 40 82 00 94 */ bne lbl_802591AC
+8 -8
View File
@@ -497,7 +497,7 @@ lbl_80259AFC:
/* 80259B08 00256A48 38 60 00 00 */ li r3, 0
/* 80259B0C 00256A4C 48 00 00 DC */ b lbl_80259BE8
lbl_80259B10:
/* 80259B10 00256A50 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80259B10 00256A50 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80259B14 00256A54 80 03 00 00 */ lwz r0, 0(r3)
/* 80259B18 00256A58 2C 00 00 00 */ cmpwi r0, 0
/* 80259B1C 00256A5C 41 82 00 A8 */ beq lbl_80259BC4
@@ -575,17 +575,17 @@ dScnPly_c_NS_offReset:
/* 80259C20 00256B60 2C 03 00 00 */ cmpwi r3, 0
/* 80259C24 00256B64 40 82 00 38 */ bne lbl_80259C5C
/* 80259C28 00256B68 38 80 00 00 */ li r4, 0
/* 80259C2C 00256B6C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80259C2C 00256B6C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80259C30 00256B70 90 83 00 00 */ stw r4, 0(r3)
/* 80259C34 00256B74 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80259C34 00256B74 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80259C38 00256B78 90 83 00 04 */ stw r4, 4(r3)
/* 80259C3C 00256B7C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 80259C3C 00256B7C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 80259C40 00256B80 90 83 00 04 */ stw r4, 4(r3)
/* 80259C44 00256B84 98 8D 8F 81 */ stb r4, lbl_80451501-_SDA_BASE_(r13)
.global mDoRst_resetCallBack
/* 80259C48 00256B88 3C 60 80 01 */ lis r3, mDoRst_resetCallBack@ha
.global mDoRst_resetCallBack
/* 80259C4C 00256B8C 38 03 57 4C */ addi r0, r3, mDoRst_resetCallBack@l
.global resetCallBack__6mDoRstFiPv
/* 80259C48 00256B88 3C 60 80 01 */ lis r3, resetCallBack__6mDoRstFiPv@ha
.global resetCallBack__6mDoRstFiPv
/* 80259C4C 00256B8C 38 03 57 4C */ addi r0, r3, resetCallBack__6mDoRstFiPv@l
/* 80259C50 00256B90 90 0D 8F 6C */ stw r0, lbl_804514EC-_SDA_BASE_(r13)
/* 80259C54 00256B94 90 8D 8F 70 */ stw r4, lbl_804514F0-_SDA_BASE_(r13)
/* 80259C58 00256B98 98 9F 01 D4 */ stb r4, 0x1d4(r31)
+1 -1
View File
@@ -693,7 +693,7 @@ lbl_8025B728:
/* 8025B78C 002586CC 81 8C 00 08 */ lwz r12, 8(r12)
/* 8025B790 002586D0 7D 89 03 A6 */ mtctr r12
/* 8025B794 002586D4 4E 80 04 21 */ bctrl
/* 8025B798 002586D8 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13)
/* 8025B798 002586D8 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13)
/* 8025B79C 002586DC 80 03 00 00 */ lwz r0, 0(r3)
/* 8025B7A0 002586E0 2C 00 00 00 */ cmpwi r0, 0
/* 8025B7A4 002586E4 40 82 00 54 */ bne lbl_8025B7F8