diff --git a/asm/JUtility/JUTXfb.s b/asm/JUtility/JUTXfb.s index 5431f2aad1d..b901fc9748c 100644 --- a/asm/JUtility/JUTXfb.s +++ b/asm/JUtility/JUTXfb.s @@ -2,15 +2,6 @@ .section .text, "ax" # 802e5214 - -.global JUTXfb_NS_clearIndex -JUTXfb_NS_clearIndex: -/* 802E5214 002E2154 38 00 FF FF */ li r0, -1 -/* 802E5218 002E2158 B0 03 00 14 */ sth r0, 0x14(r3) -/* 802E521C 002E215C B0 03 00 16 */ sth r0, 0x16(r3) -/* 802E5220 002E2160 B0 03 00 18 */ sth r0, 0x18(r3) -/* 802E5224 002E2164 4E 80 00 20 */ blr - .global JUTXfb_NS_common_init JUTXfb_NS_common_init: /* 802E5228 002E2168 94 21 FF F0 */ stwu r1, -0x10(r1) @@ -19,7 +10,7 @@ JUTXfb_NS_common_init: /* 802E5234 002E2174 93 E1 00 0C */ stw r31, 0xc(r1) /* 802E5238 002E2178 7C 7F 1B 78 */ mr r31, r3 /* 802E523C 002E217C 90 83 00 10 */ stw r4, 0x10(r3) -/* 802E5240 002E2180 4B FF FF D5 */ bl JUTXfb_NS_clearIndex +/* 802E5240 002E2180 4B FF FF D5 */ bl clearIndex__6JUTXfbFv /* 802E5244 002E2184 38 00 00 63 */ li r0, 0x63 /* 802E5248 002E2188 90 1F 00 1C */ stw r0, 0x1c(r31) /* 802E524C 002E218C 83 E1 00 0C */ lwz r31, 0xc(r1) diff --git a/asm/d/com/inf/d_com_inf_game.s b/asm/d/com/inf/d_com_inf_game.s index 6b66ad25930..86dabb18bb4 100644 --- a/asm/d/com/inf/d_com_inf_game.s +++ b/asm/d/com/inf/d_com_inf_game.s @@ -1911,7 +1911,7 @@ dComIfG_resetToOpening: /* 8002CD44 00029C84 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8002CD48 00029C88 7C 08 02 A6 */ mflr r0 /* 8002CD4C 00029C8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8002CD50 00029C90 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13) +/* 8002CD50 00029C90 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8002CD54 00029C94 88 04 00 11 */ lbz r0, 0x11(r4) /* 8002CD58 00029C98 2C 00 00 00 */ cmpwi r0, 0 /* 8002CD5C 00029C9C 40 82 00 20 */ bne lbl_8002CD7C diff --git a/asm/d/d_gameover.s b/asm/d/d_gameover.s index 0e7bef6651c..51b13c4ca25 100644 --- a/asm/d/d_gameover.s +++ b/asm/d/d_gameover.s @@ -629,7 +629,7 @@ lbl_8019B5DC: /* 8019B62C 0019856C 38 00 00 00 */ li r0, 0 /* 8019B630 00198570 98 03 5E B5 */ stb r0, 0x5eb5(r3) /* 8019B634 00198574 38 00 00 01 */ li r0, 1 -/* 8019B638 00198578 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8019B638 00198578 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8019B63C 0019857C 90 03 00 00 */ stw r0, 0(r3) /* 8019B640 00198580 48 00 01 20 */ b lbl_8019B760 lbl_8019B644: diff --git a/asm/d/d_stage.s b/asm/d/d_stage.s index 6438011ab01..7dbdb8ff78f 100644 --- a/asm/d/d_stage.s +++ b/asm/d/d_stage.s @@ -25,7 +25,7 @@ dStage_nextStage_c_NS_set: /* 80023E6C 00020DAC 2C 03 00 00 */ cmpwi r3, 0 /* 80023E70 00020DB0 40 82 00 10 */ bne lbl_80023E80 /* 80023E74 00020DB4 38 00 00 01 */ li r0, 1 -/* 80023E78 00020DB8 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80023E78 00020DB8 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80023E7C 00020DBC 90 03 00 00 */ stw r0, 0(r3) lbl_80023E80: /* 80023E80 00020DC0 83 E1 00 0C */ lwz r31, 0xc(r1) @@ -3441,7 +3441,7 @@ lbl_80026E34: /* 80026E64 00023DA4 48 00 E2 8D */ bl putSave__10dSv_info_cFi /* 80026E68 00023DA8 38 6D 87 F4 */ addi r3, r13, lbl_80450D74-_SDA_BASE_ /* 80026E6C 00023DAC 4B FF DC 51 */ bl dStage_roomControl_c_NS_roomDzs_c_NS_remove -/* 80026E70 00023DB0 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80026E70 00023DB0 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80026E74 00023DB4 80 03 00 00 */ lwz r0, 0(r3) /* 80026E78 00023DB8 2C 00 00 00 */ cmpwi r0, 0 /* 80026E7C 00023DBC 40 82 00 2C */ bne lbl_80026EA8 diff --git a/asm/d/error/d_error_msg.s b/asm/d/error/d_error_msg.s index 8f134610781..fcf56d51382 100644 --- a/asm/d/error/d_error_msg.s +++ b/asm/d/error/d_error_msg.s @@ -565,7 +565,7 @@ lbl_8009D38C: /* 8009D3B8 0009A2F8 98 0D 8A 30 */ stb r0, lbl_80450FB0-_SDA_BASE_(r13) /* 8009D3BC 0009A2FC 48 00 00 3C */ b lbl_8009D3F8 lbl_8009D3C0: -/* 8009D3C0 0009A300 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8009D3C0 0009A300 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8009D3C4 0009A304 80 03 00 00 */ lwz r0, 0(r3) /* 8009D3C8 0009A308 2C 00 00 00 */ cmpwi r0, 0 /* 8009D3CC 0009A30C 41 82 00 24 */ beq lbl_8009D3F0 @@ -823,7 +823,7 @@ dShutdownErrorMsg_c_NS_execute: /* 8009D790 0009A6D0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8009D794 0009A6D4 7C 08 02 A6 */ mflr r0 /* 8009D798 0009A6D8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8009D79C 0009A6DC 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8009D79C 0009A6DC 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8009D7A0 0009A6E0 88 03 00 10 */ lbz r0, 0x10(r3) /* 8009D7A4 0009A6E4 2C 00 00 00 */ cmpwi r0, 0 /* 8009D7A8 0009A6E8 40 82 00 18 */ bne lbl_8009D7C0 @@ -864,20 +864,20 @@ lbl_8009D814: /* 8009D828 0009A768 48 1D 2E 35 */ bl cLib_chaseUC /* 8009D82C 0009A76C 2C 03 00 00 */ cmpwi r3, 0 /* 8009D830 0009A770 41 82 00 38 */ beq lbl_8009D868 -/* 8009D834 0009A774 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8009D834 0009A774 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8009D838 0009A778 88 03 00 11 */ lbz r0, 0x11(r3) /* 8009D83C 0009A77C 2C 00 00 00 */ cmpwi r0, 0 /* 8009D840 0009A780 41 82 00 18 */ beq lbl_8009D858 /* 8009D844 0009A784 38 60 00 01 */ li r3, 1 /* 8009D848 0009A788 3C 80 80 00 */ lis r4, 0x8000 /* 8009D84C 0009A78C 38 A0 00 00 */ li r5, 0 -/* 8009D850 0009A790 4B F7 7D C5 */ bl mDoRst_reset +/* 8009D850 0009A790 4B F7 7D C5 */ bl reset__6mDoRstFlUll /* 8009D854 0009A794 48 00 00 14 */ b lbl_8009D868 lbl_8009D858: /* 8009D858 0009A798 38 60 00 01 */ li r3, 1 /* 8009D85C 0009A79C 38 80 00 01 */ li r4, 1 /* 8009D860 0009A7A0 38 A0 00 01 */ li r5, 1 -/* 8009D864 0009A7A4 4B F7 7D B1 */ bl mDoRst_reset +/* 8009D864 0009A7A4 4B F7 7D B1 */ bl reset__6mDoRstFlUll lbl_8009D868: /* 8009D868 0009A7A8 38 60 00 01 */ li r3, 1 lbl_8009D86C: diff --git a/asm/d/file/d_file_select.s b/asm/d/file/d_file_select.s index 0c5005965fb..25ef83b0182 100644 --- a/asm/d/file/d_file_select.s +++ b/asm/d/file/d_file_select.s @@ -1098,7 +1098,7 @@ lbl_80184548: /* 8018455C 0018149C 28 00 00 01 */ cmplwi r0, 1 /* 80184560 001814A0 40 82 00 50 */ bne lbl_801845B0 lbl_80184564: -/* 80184564 001814A4 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80184564 001814A4 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80184568 001814A8 80 03 00 00 */ lwz r0, 0(r3) /* 8018456C 001814AC 2C 00 00 00 */ cmpwi r0, 0 /* 80184570 001814B0 40 82 00 40 */ bne lbl_801845B0 @@ -4451,7 +4451,7 @@ lbl_80187688: /* 801876A8 001845E8 90 01 00 24 */ stw r0, 0x24(r1) /* 801876AC 001845EC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801876B0 001845F0 7C 7F 1B 78 */ mr r31, r3 -/* 801876B4 001845F4 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801876B4 001845F4 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801876B8 001845F8 80 03 00 00 */ lwz r0, 0(r3) /* 801876BC 001845FC 2C 00 00 00 */ cmpwi r0, 0 /* 801876C0 00184600 40 82 00 78 */ bne lbl_80187738 @@ -4612,7 +4612,7 @@ lbl_801878F4: /* 80187910 00184850 90 01 00 24 */ stw r0, 0x24(r1) /* 80187914 00184854 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80187918 00184858 7C 7F 1B 78 */ mr r31, r3 -/* 8018791C 0018485C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8018791C 0018485C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80187920 00184860 80 03 00 00 */ lwz r0, 0(r3) /* 80187924 00184864 2C 00 00 00 */ cmpwi r0, 0 /* 80187928 00184868 40 82 00 7C */ bne lbl_801879A4 @@ -12372,7 +12372,7 @@ lbl_8018EC24: /* 8018EC24 0018BB64 38 00 00 00 */ li r0, 0 /* 8018EC28 0018BB68 98 1F 23 74 */ stb r0, 0x2374(r31) /* 8018EC2C 0018BB6C 38 00 00 01 */ li r0, 1 -/* 8018EC30 0018BB70 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8018EC30 0018BB70 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8018EC34 0018BB74 98 03 00 10 */ stb r0, 0x10(r3) lbl_8018EC38: /* 8018EC38 0018BB78 83 E1 00 0C */ lwz r31, 0xc(r1) diff --git a/asm/d/menu/d_menu_save.s b/asm/d/menu/d_menu_save.s index 12402b76475..3c44a6dfa8c 100644 --- a/asm/d/menu/d_menu_save.s +++ b/asm/d/menu/d_menu_save.s @@ -1792,7 +1792,7 @@ dMenu_save_c_NS__move: /* 801F1050 001EDF90 90 01 00 14 */ stw r0, 0x14(r1) /* 801F1054 001EDF94 93 E1 00 0C */ stw r31, 0xc(r1) /* 801F1058 001EDF98 7C 7F 1B 78 */ mr r31, r3 -/* 801F105C 001EDF9C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801F105C 001EDF9C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F1060 001EDFA0 80 03 00 00 */ lwz r0, 0(r3) /* 801F1064 001EDFA4 2C 00 00 00 */ cmpwi r0, 0 /* 801F1068 001EDFA8 41 82 00 10 */ beq lbl_801F1078 @@ -1989,7 +1989,7 @@ dMenu_save_c_NS_memCardWatch: /* 801F1310 001EE250 28 00 00 01 */ cmplwi r0, 1 /* 801F1314 001EE254 4C 82 00 20 */ bnelr lbl_801F1318: -/* 801F1318 001EE258 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13) +/* 801F1318 001EE258 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F131C 001EE25C 80 04 00 00 */ lwz r0, 0(r4) /* 801F1320 001EE260 2C 00 00 00 */ cmpwi r0, 0 /* 801F1324 001EE264 4C 82 00 20 */ bnelr @@ -2234,7 +2234,7 @@ lbl_801F1694: /* 801F16AC 001EE5EC 7C 08 03 A6 */ mtlr r0 /* 801F16B0 001EE5F0 38 21 00 10 */ addi r1, r1, 0x10 /* 801F16B4 001EE5F4 4E 80 00 20 */ blr -/* 801F16B8 001EE5F8 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13) +/* 801F16B8 001EE5F8 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F16BC 001EE5FC 80 04 00 00 */ lwz r0, 0(r4) /* 801F16C0 001EE600 2C 00 00 00 */ cmpwi r0, 0 /* 801F16C4 001EE604 4C 82 00 20 */ bnelr @@ -2857,7 +2857,7 @@ lbl_801F1FD8: /* 801F1FD8 001EEF18 38 00 00 00 */ li r0, 0 /* 801F1FDC 001EEF1C 98 1F 21 A0 */ stb r0, 0x21a0(r31) /* 801F1FE0 001EEF20 38 00 00 01 */ li r0, 1 -/* 801F1FE4 001EEF24 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801F1FE4 001EEF24 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F1FE8 001EEF28 98 03 00 10 */ stb r0, 0x10(r3) lbl_801F1FEC: /* 801F1FEC 001EEF2C 83 E1 00 0C */ lwz r31, 0xc(r1) @@ -3782,7 +3782,7 @@ lbl_801F2D64: /* 801F2D8C 001EFCCC 4E 80 00 20 */ blr lbl_801F2D90: /* 801F2D90 001EFCD0 38 00 00 01 */ li r0, 1 -/* 801F2D94 001EFCD4 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801F2D94 001EFCD4 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F2D98 001EFCD8 90 03 00 00 */ stw r0, 0(r3) /* 801F2D9C 001EFCDC 4E 80 00 20 */ blr /* 801F2DA0 001EFCE0 88 83 01 BD */ lbz r4, 0x1bd(r3) @@ -4133,7 +4133,7 @@ dMenu_save_c_NS_YesNoSelect: /* 801F329C 001F01DC 93 C1 00 28 */ stw r30, 0x28(r1) /* 801F32A0 001F01E0 7C 7F 1B 78 */ mr r31, r3 /* 801F32A4 001F01E4 3B C0 00 00 */ li r30, 0 -/* 801F32A8 001F01E8 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801F32A8 001F01E8 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F32AC 001F01EC 80 03 00 00 */ lwz r0, 0(r3) /* 801F32B0 001F01F0 2C 00 00 00 */ cmpwi r0, 0 /* 801F32B4 001F01F4 41 82 00 0C */ beq lbl_801F32C0 @@ -4592,7 +4592,7 @@ lbl_801F391C: /* 801F393C 001F087C 90 01 00 24 */ stw r0, 0x24(r1) /* 801F3940 001F0880 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801F3944 001F0884 7C 7F 1B 78 */ mr r31, r3 -/* 801F3948 001F0888 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801F3948 001F0888 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F394C 001F088C 80 03 00 00 */ lwz r0, 0(r3) /* 801F3950 001F0890 2C 00 00 00 */ cmpwi r0, 0 /* 801F3954 001F0894 40 82 01 2C */ bne lbl_801F3A80 @@ -5104,7 +5104,7 @@ lbl_801F40C0: /* 801F40E0 001F1020 90 01 00 24 */ stw r0, 0x24(r1) /* 801F40E4 001F1024 93 E1 00 1C */ stw r31, 0x1c(r1) /* 801F40E8 001F1028 7C 7F 1B 78 */ mr r31, r3 -/* 801F40EC 001F102C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801F40EC 001F102C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F40F0 001F1030 80 03 00 00 */ lwz r0, 0(r3) /* 801F40F4 001F1034 2C 00 00 00 */ cmpwi r0, 0 /* 801F40F8 001F1038 40 82 01 2C */ bne lbl_801F4224 @@ -6028,7 +6028,7 @@ dMenu_save_c_NS_errYesNoSelect: /* 801F4E60 001F1DA0 7C 9C 23 78 */ mr r28, r4 /* 801F4E64 001F1DA4 7C BD 2B 78 */ mr r29, r5 /* 801F4E68 001F1DA8 3B C0 00 00 */ li r30, 0 -/* 801F4E6C 001F1DAC 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 801F4E6C 001F1DAC 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 801F4E70 001F1DB0 80 03 00 00 */ lwz r0, 0(r3) /* 801F4E74 001F1DB4 2C 00 00 00 */ cmpwi r0, 0 /* 801F4E78 001F1DB8 41 82 00 0C */ beq lbl_801F4E84 diff --git a/asm/d/s/d_s_logo.s b/asm/d/s/d_s_logo.s index 3a706b52aa9..ecb8e0a4df9 100644 --- a/asm/d/s/d_s_logo.s +++ b/asm/d/s/d_s_logo.s @@ -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 diff --git a/asm/d/s/d_s_name.s b/asm/d/s/d_s_name.s index 13aeb6c7fcf..2c6ad84615c 100644 --- a/asm/d/s/d_s_name.s +++ b/asm/d/s/d_s_name.s @@ -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 diff --git a/asm/d/s/d_s_play.s b/asm/d/s/d_s_play.s index e6e8308f8e8..00cce8326a6 100644 --- a/asm/d/s/d_s_play.s +++ b/asm/d/s/d_s_play.s @@ -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) diff --git a/asm/d/s/d_s_room.s b/asm/d/s/d_s_room.s index 8174b40844e..1dae7ab88fe 100644 --- a/asm/d/s/d_s_room.s +++ b/asm/d/s/d_s_room.s @@ -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 diff --git a/asm/m/Do/controller/m_Do_controller_pad.s b/asm/m/Do/controller/m_Do_controller_pad.s index d22d967e53d..fa07caf895d 100644 --- a/asm/m/Do/controller/m_Do_controller_pad.s +++ b/asm/m/Do/controller/m_Do_controller_pad.s @@ -61,16 +61,16 @@ lbl_80007A0C: /* 80007A14 00004954 90 03 00 08 */ stw r0, 8(r3) /* 80007A18 00004958 90 03 00 0C */ stw r0, 0xc(r3) lbl_80007A1C: -/* 80007A1C 0000495C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80007A1C 0000495C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80007A20 00004960 80 03 00 00 */ lwz r0, 0(r3) /* 80007A24 00004964 2C 00 00 00 */ cmpwi r0, 0 /* 80007A28 00004968 40 82 00 1C */ bne lbl_80007A44 /* 80007A2C 0000496C 38 80 00 00 */ li r4, 0 /* 80007A30 00004970 98 8D 8F 81 */ stb r4, lbl_80451501-_SDA_BASE_(r13) -.global mDoRst_resetCallBack -/* 80007A34 00004974 3C 60 80 01 */ lis r3, mDoRst_resetCallBack@ha -.global mDoRst_resetCallBack -/* 80007A38 00004978 38 03 57 4C */ addi r0, r3, mDoRst_resetCallBack@l +.global resetCallBack__6mDoRstFiPv +/* 80007A34 00004974 3C 60 80 01 */ lis r3, resetCallBack__6mDoRstFiPv@ha +.global resetCallBack__6mDoRstFiPv +/* 80007A38 00004978 38 03 57 4C */ addi r0, r3, resetCallBack__6mDoRstFiPv@l /* 80007A3C 0000497C 90 0D 8F 6C */ stw r0, lbl_804514EC-_SDA_BASE_(r13) /* 80007A40 00004980 90 8D 8F 70 */ stw r4, lbl_804514F0-_SDA_BASE_(r13) lbl_80007A44: @@ -104,7 +104,7 @@ mDoCPd_c_NS_read: /* 80007AA0 000049E0 39 61 00 20 */ addi r11, r1, 0x20 /* 80007AA4 000049E4 48 35 A7 39 */ bl _savegpr_29 /* 80007AA8 000049E8 48 2D 8E 3D */ bl JUTGamePad_NS_read -/* 80007AAC 000049EC 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80007AAC 000049EC 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80007AB0 000049F0 80 03 00 00 */ lwz r0, 0(r3) /* 80007AB4 000049F4 2C 00 00 00 */ cmpwi r0, 0 /* 80007AB8 000049F8 40 82 00 4C */ bne lbl_80007B04 @@ -125,7 +125,7 @@ lbl_80007AF0: /* 80007AF0 00004A30 54 80 06 3F */ clrlwi. r0, r4, 0x18 /* 80007AF4 00004A34 40 82 00 10 */ bne lbl_80007B04 /* 80007AF8 00004A38 38 00 00 00 */ li r0, 0 -/* 80007AFC 00004A3C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80007AFC 00004A3C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80007B00 00004A40 90 03 00 08 */ stw r0, 8(r3) lbl_80007B04: /* 80007B04 00004A44 3C 60 80 3E */ lis r3, lbl_803DD2D8@ha diff --git a/asm/m/Do/m_Do_MemCard.s b/asm/m/Do/m_Do_MemCard.s index d8aa79694d6..240325c6bf8 100644 --- a/asm/m/Do/m_Do_MemCard.s +++ b/asm/m/Do/m_Do_MemCard.s @@ -121,7 +121,7 @@ mDoMemCd_Ctrl_c_NS_update: /* 8001689C 000137DC 90 01 00 14 */ stw r0, 0x14(r1) /* 800168A0 000137E0 93 E1 00 0C */ stw r31, 0xc(r1) /* 800168A4 000137E4 7C 7F 1B 78 */ mr r31, r3 -/* 800168A8 000137E8 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13) +/* 800168A8 000137E8 80 8D 86 F8 */ lwz r4, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800168AC 000137EC 80 04 00 00 */ lwz r0, 0(r4) /* 800168B0 000137F0 2C 00 00 00 */ cmpwi r0, 0 /* 800168B4 000137F4 41 82 00 30 */ beq lbl_800168E4 diff --git a/asm/m/Do/m_Do_Reset.s b/asm/m/Do/m_Do_Reset.s deleted file mode 100644 index 6c5c0b1bedd..00000000000 --- a/asm/m/Do/m_Do_Reset.s +++ /dev/null @@ -1,171 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 800155d8 - - -.global my_OSCancelAlarmAll -my_OSCancelAlarmAll: -/* 800155D8 00012518 4E 80 00 20 */ blr - -.global destroyVideo -destroyVideo: -/* 800155DC 0001251C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800155E0 00012520 7C 08 02 A6 */ mflr r0 -/* 800155E4 00012524 90 01 00 14 */ stw r0, 0x14(r1) -/* 800155E8 00012528 48 2C F6 C5 */ bl JUTVideo_NS_destroyManager -/* 800155EC 0001252C 38 60 00 00 */ li r3, 0 -/* 800155F0 00012530 48 34 6F BD */ bl GXSetDrawDoneCallback -/* 800155F4 00012534 38 60 00 01 */ li r3, 1 -/* 800155F8 00012538 48 33 82 49 */ bl VISetBlack -/* 800155FC 0001253C 48 33 80 99 */ bl VIFlush -/* 80015600 00012540 48 33 73 C5 */ bl VIWaitForRetrace -/* 80015604 00012544 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80015608 00012548 7C 08 03 A6 */ mtlr r0 -/* 8001560C 0001254C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80015610 00012550 4E 80 00 20 */ blr - -.global mDoRst_reset -mDoRst_reset: -/* 80015614 00012554 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80015618 00012558 7C 08 02 A6 */ mflr r0 -/* 8001561C 0001255C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80015620 00012560 39 61 00 20 */ addi r11, r1, 0x20 -/* 80015624 00012564 48 34 CB B1 */ bl _savegpr_27 -/* 80015628 00012568 7C 7B 1B 78 */ mr r27, r3 -/* 8001562C 0001256C 7C 9C 23 78 */ mr r28, r4 -/* 80015630 00012570 7C BD 2B 78 */ mr r29, r5 -/* 80015634 00012574 80 6D 8F D0 */ lwz r3, lbl_80451550-_SDA_BASE_(r13) -/* 80015638 00012578 48 2C FB DD */ bl JUTXfb_NS_clearIndex -/* 8001563C 0001257C 48 00 10 21 */ bl mDoDvdErr_ThdCleanup -/* 80015640 00012580 48 24 DC 4D */ bl cAPICPad_recalibrate -/* 80015644 00012584 88 0D 86 38 */ lbz r0, lbl_80450BB8-_SDA_BASE_(r13) -/* 80015648 00012588 28 00 00 00 */ cmplwi r0, 0 -/* 8001564C 0001258C 41 82 00 14 */ beq lbl_80015660 -lbl_80015650: -/* 80015650 00012590 80 6D 8D E8 */ lwz r3, lbl_80451368-_SDA_BASE_(r13) -/* 80015654 00012594 48 2B 84 19 */ bl Z2AudioMgr_NS_hasReset -/* 80015658 00012598 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8001565C 0001259C 41 82 FF F4 */ beq lbl_80015650 -lbl_80015660: -/* 80015660 000125A0 48 33 5B 69 */ bl DVDGetDriveStatus -/* 80015664 000125A4 2C 03 00 01 */ cmpwi r3, 1 -/* 80015668 000125A8 40 82 00 14 */ bne lbl_8001567C -/* 8001566C 000125AC 3C 60 80 37 */ lis r3, lbl_80374198@ha -/* 80015670 000125B0 38 63 41 98 */ addi r3, r3, lbl_80374198@l -/* 80015674 000125B4 4C C6 31 82 */ crclr 6 -/* 80015678 000125B8 4B FF 11 9D */ bl OSAttention -lbl_8001567C: -/* 8001567C 000125BC 48 27 A8 81 */ bl JASDvd_NS_getThreadPointer -/* 80015680 000125C0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80015684 000125C4 41 82 00 30 */ beq lbl_800156B4 -/* 80015688 000125C8 38 80 00 01 */ li r4, 1 -/* 8001568C 000125CC 48 27 A7 FD */ bl JASTaskThread_NS_pause -/* 80015690 000125D0 83 FF 00 2C */ lwz r31, 0x2c(r31) -/* 80015694 000125D4 28 1F 00 00 */ cmplwi r31, 0 -/* 80015698 000125D8 41 82 00 1C */ beq lbl_800156B4 -/* 8001569C 000125DC 7F E3 FB 78 */ mr r3, r31 -/* 800156A0 000125E0 48 32 C3 9D */ bl OSSuspendThread -/* 800156A4 000125E4 7F E3 FB 78 */ mr r3, r31 -/* 800156A8 000125E8 48 32 C0 6D */ bl OSDetachThread -/* 800156AC 000125EC 7F E3 FB 78 */ mr r3, r31 -/* 800156B0 000125F0 48 32 BE A9 */ bl OSCancelThread -lbl_800156B4: -/* 800156B4 000125F4 48 33 73 11 */ bl VIWaitForRetrace -/* 800156B8 000125F8 48 33 73 0D */ bl VIWaitForRetrace -/* 800156BC 000125FC 48 34 57 E5 */ bl GXGetCurrentGXThread -/* 800156C0 00012600 7C 7F 1B 78 */ mr r31, r3 -/* 800156C4 00012604 48 32 80 31 */ bl __RAS_OSDisableInterrupts_begin -/* 800156C8 00012608 7C 7E 1B 78 */ mr r30, r3 -/* 800156CC 0001260C 48 32 B5 B9 */ bl OSGetCurrentThread -/* 800156D0 00012610 7C 1F 18 40 */ cmplw r31, r3 -/* 800156D4 00012614 41 82 00 10 */ beq lbl_800156E4 -/* 800156D8 00012618 7F E3 FB 78 */ mr r3, r31 -/* 800156DC 0001261C 48 32 BE 7D */ bl OSCancelThread -/* 800156E0 00012620 48 34 57 75 */ bl GXSetCurrentGXThread -lbl_800156E4: -/* 800156E4 00012624 48 34 67 E9 */ bl GXFlush -/* 800156E8 00012628 48 34 69 AD */ bl GXAbortFrame -/* 800156EC 0001262C 48 34 6C 09 */ bl GXDrawDone -/* 800156F0 00012630 7F C3 F3 78 */ mr r3, r30 -/* 800156F4 00012634 48 32 80 29 */ bl OSRestoreInterrupts -/* 800156F8 00012638 4B FF FE E5 */ bl destroyVideo -/* 800156FC 0001263C 3C 60 80 3F */ lis r3, lbl_803EAF40@ha -/* 80015700 00012640 3B E3 AF 40 */ addi r31, r3, lbl_803EAF40@l -/* 80015704 00012644 48 00 00 08 */ b lbl_8001570C -lbl_80015708: -/* 80015708 00012648 48 33 72 BD */ bl VIWaitForRetrace -lbl_8001570C: -/* 8001570C 0001264C 80 1F 1F C0 */ lwz r0, 0x1fc0(r31) -/* 80015710 00012650 2C 00 00 00 */ cmpwi r0, 0 -/* 80015714 00012654 40 82 FF F4 */ bne lbl_80015708 -/* 80015718 00012658 4B FF FE C1 */ bl my_OSCancelAlarmAll -/* 8001571C 0001265C 48 32 60 D1 */ bl LCDisable -/* 80015720 00012660 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) -.global mDoRst_NS_getResetData -/* 80015724 00012664 3C 80 80 01 */ lis r4, mDoRst_NS_getResetData@ha -.global mDoRst_NS_getResetData -/* 80015728 00012668 38 84 57 F4 */ addi r4, r4, mDoRst_NS_getResetData@l -/* 8001572C 0001266C 38 84 00 18 */ addi r4, r4, 0x18 -/* 80015730 00012670 48 32 9F 11 */ bl OSSetSaveRegion -/* 80015734 00012674 7F 63 DB 78 */ mr r3, r27 -/* 80015738 00012678 7F 84 E3 78 */ mr r4, r28 -/* 8001573C 0001267C 7F A5 EB 78 */ mr r5, r29 -/* 80015740 00012680 48 32 A1 6D */ bl OSResetSystem -lbl_80015744: -/* 80015744 00012684 48 33 72 81 */ bl VIWaitForRetrace -/* 80015748 00012688 4B FF FF FC */ b lbl_80015744 -.global mDoRst_resetCallBack -mDoRst_resetCallBack: -/* 8001574C 0001268C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80015750 00012690 7C 08 02 A6 */ mflr r0 -/* 80015754 00012694 90 01 00 14 */ stw r0, 0x14(r1) -/* 80015758 00012698 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13) -/* 8001575C 0001269C 80 04 00 00 */ lwz r0, 0(r4) -/* 80015760 000126A0 2C 00 00 00 */ cmpwi r0, 0 -/* 80015764 000126A4 40 82 00 80 */ bne lbl_800157E4 -/* 80015768 000126A8 2C 03 FF FF */ cmpwi r3, -1 -/* 8001576C 000126AC 40 82 00 0C */ bne lbl_80015778 -/* 80015770 000126B0 48 24 DB 1D */ bl cAPICPad_recalibrate -/* 80015774 000126B4 48 00 00 40 */ b lbl_800157B4 -lbl_80015778: -/* 80015778 000126B8 80 04 00 08 */ lwz r0, 8(r4) -/* 8001577C 000126BC 2C 00 00 00 */ cmpwi r0, 0 -/* 80015780 000126C0 41 82 00 20 */ beq lbl_800157A0 -/* 80015784 000126C4 38 80 00 00 */ li r4, 0 -/* 80015788 000126C8 98 8D 8F 81 */ stb r4, lbl_80451501-_SDA_BASE_(r13) -.global mDoRst_resetCallBack -/* 8001578C 000126CC 3C 60 80 01 */ lis r3, mDoRst_resetCallBack@ha -.global mDoRst_resetCallBack -/* 80015790 000126D0 38 03 57 4C */ addi r0, r3, mDoRst_resetCallBack@l -/* 80015794 000126D4 90 0D 8F 6C */ stw r0, lbl_804514EC-_SDA_BASE_(r13) -/* 80015798 000126D8 90 8D 8F 70 */ stw r4, lbl_804514F0-_SDA_BASE_(r13) -/* 8001579C 000126DC 48 00 00 48 */ b lbl_800157E4 -lbl_800157A0: -/* 800157A0 000126E0 38 00 00 01 */ li r0, 1 -/* 800157A4 000126E4 90 04 00 08 */ stw r0, 8(r4) -/* 800157A8 000126E8 80 8D 86 F8 */ lwz r4, lbl_80450C78-_SDA_BASE_(r13) -/* 800157AC 000126EC 90 64 00 0C */ stw r3, 0xc(r4) -/* 800157B0 000126F0 48 24 DA DD */ bl cAPICPad_recalibrate -lbl_800157B4: -/* 800157B4 000126F4 48 33 5E 75 */ bl DVDCheckDisk -/* 800157B8 000126F8 2C 03 00 00 */ cmpwi r3, 0 -/* 800157BC 000126FC 40 82 00 1C */ bne lbl_800157D8 -/* 800157C0 00012700 48 33 5A 09 */ bl DVDGetDriveStatus -/* 800157C4 00012704 2C 03 FF FF */ cmpwi r3, -1 -/* 800157C8 00012708 41 82 00 10 */ beq lbl_800157D8 -/* 800157CC 0001270C 38 00 00 01 */ li r0, 1 -/* 800157D0 00012710 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) -/* 800157D4 00012714 98 03 00 11 */ stb r0, 0x11(r3) -lbl_800157D8: -/* 800157D8 00012718 38 00 00 01 */ li r0, 1 -/* 800157DC 0001271C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) -/* 800157E0 00012720 90 03 00 00 */ stw r0, 0(r3) -lbl_800157E4: -/* 800157E4 00012724 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800157E8 00012728 7C 08 03 A6 */ mtlr r0 -/* 800157EC 0001272C 38 21 00 10 */ addi r1, r1, 0x10 -/* 800157F0 00012730 4E 80 00 20 */ blr -.global mDoRst_NS_getResetData -mDoRst_NS_getResetData: -/* 800157F4 00012734 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) -/* 800157F8 00012738 4E 80 00 20 */ blr diff --git a/asm/m/Do/m_Do_audio.s b/asm/m/Do/m_Do_audio.s index c7fd0f8cbee..d0a61985a02 100644 --- a/asm/m/Do/m_Do_audio.s +++ b/asm/m/Do/m_Do_audio.s @@ -132,7 +132,7 @@ mDoAud_Execute: /* 80007170 000040B0 88 0D 86 38 */ lbz r0, lbl_80450BB8-_SDA_BASE_(r13) /* 80007174 000040B4 28 00 00 00 */ cmplwi r0, 0 /* 80007178 000040B8 40 82 00 28 */ bne lbl_800071A0 -/* 8000717C 000040BC 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8000717C 000040BC 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80007180 000040C0 88 03 00 10 */ lbz r0, 0x10(r3) /* 80007184 000040C4 2C 00 00 00 */ cmpwi r0, 0 /* 80007188 000040C8 40 82 00 24 */ bne lbl_800071AC diff --git a/asm/m/Do/m_Do_machine.s b/asm/m/Do/m_Do_machine.s index 85d01a18cd8..e048106051e 100644 --- a/asm/m/Do/m_Do_machine.s +++ b/asm/m/Do/m_Do_machine.s @@ -431,7 +431,7 @@ exceptionRestart: /* 8000B7A4 000086E4 38 60 00 00 */ li r3, 0 /* 8000B7A8 000086E8 38 80 00 00 */ li r4, 0 /* 8000B7AC 000086EC 38 A0 00 00 */ li r5, 0 -/* 8000B7B0 000086F0 48 00 9E 65 */ bl mDoRst_reset +/* 8000B7B0 000086F0 48 00 9E 65 */ bl reset__6mDoRstFlUll /* 8000B7B4 000086F4 38 60 00 00 */ li r3, 0 /* 8000B7B8 000086F8 38 80 00 00 */ li r4, 0 /* 8000B7BC 000086FC 38 A0 00 00 */ li r5, 0 @@ -908,7 +908,7 @@ lbl_8000BDF4: /* 8000BE48 00008D88 48 33 48 DD */ bl OSSetProgressiveMode /* 8000BE4C 00008D8C 48 00 00 38 */ b lbl_8000BE84 lbl_8000BE50: -/* 8000BE50 00008D90 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8000BE50 00008D90 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8000BE54 00008D94 88 03 00 13 */ lbz r0, 0x13(r3) /* 8000BE58 00008D98 28 00 00 00 */ cmplwi r0, 0 /* 8000BE5C 00008D9C 41 82 00 28 */ beq lbl_8000BE84 diff --git a/asm/os/OSInterrupt.s b/asm/os/OSInterrupt.s index bff637a0534..5f615384a9c 100644 --- a/asm/os/OSInterrupt.s +++ b/asm/os/OSInterrupt.s @@ -3,6 +3,8 @@ .section .text, "ax" # 8033d6f4 +.global OSDisableInterrupts +OSDisableInterrupts: .global __RAS_OSDisableInterrupts_begin __RAS_OSDisableInterrupts_begin : /* 8033D6F4 0033A634 7C 60 00 A6 */ mfmsr r3 diff --git a/asm/sbss.s b/asm/sbss.s index a96f40eb408..1af2f87906d 100644 --- a/asm/sbss.s +++ b/asm/sbss.s @@ -305,8 +305,8 @@ lbl_80450C70: .global lbl_80450C74 lbl_80450C74: .skip 0x4 -.global lbl_80450C78 -lbl_80450C78: +.global m_Do_Reset_NS_mDoRst_NS_mResetData +m_Do_Reset_NS_mDoRst_NS_mResetData: .skip 0x8 .global lbl_80450C80 lbl_80450C80: diff --git a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h index bca06b8e060..6d9b7384e3a 100644 --- a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h +++ b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h @@ -3,6 +3,7 @@ #include "dolphin/types.h" #include "JSystem/JKernel/JKRFile/JKRFile.h" +#include "dvd/dvd.h" #include "global.h" class DVDFileInfo; diff --git a/include/JSystem/JUtility/JUTXfb/JUTXfb.h b/include/JSystem/JUtility/JUTXfb/JUTXfb.h new file mode 100644 index 00000000000..3cf89bc4316 --- /dev/null +++ b/include/JSystem/JUtility/JUTXfb/JUTXfb.h @@ -0,0 +1,21 @@ +#ifndef __JUTILITY_JUTXFB_JUTXFB_H__ +#define __JUTILITY_JUTXFB_JUTXFB_H__ + +#include "dolphin/types.h" + +class JUTXfb { +public: + void clearIndex(); +private: + void * xfb_buffer[3]; + bool is_xfb_allocated[3]; + u8 padding_1; + s32 num_xfbs; + s16 active_xfb_index; + s16 last_drawn_xfb_index; + s16 next_xfb_buffer; + u8 padding_2[2]; + s32 field_0x1c; +}; + +#endif \ No newline at end of file diff --git a/include/dolphin/types.h b/include/dolphin/types.h index 57efce338f2..ab7eff70c64 100644 --- a/include/dolphin/types.h +++ b/include/dolphin/types.h @@ -31,4 +31,6 @@ typedef int BOOL; #define NULL (0) +#define INT32_MAX (0x7fffffff) + #endif \ No newline at end of file diff --git a/include/dvd/dvd.h b/include/dvd/dvd.h new file mode 100644 index 00000000000..f5563d54302 --- /dev/null +++ b/include/dvd/dvd.h @@ -0,0 +1,44 @@ +#ifndef __DVD_H__ +#define __DVD_H__ + +extern "C" { + +typedef enum DVDState { + DVD_STATE_END = 0x0, + DVD_STATE_BUSY = 0x1, + DVD_STATE_WAITING = 0x2, + DVD_STATE_COVER_CLOSED = 0x3, + DVD_STATE_NO_DISK = 0x4, + DVD_STATE_COVER_OPEN = 0x5, + DVD_STATE_WRONG_DISK = 0x6, + DVD_STATE_MOTOR_STOPPED = 0x7, + DVD_STATE_IGNORED = 0x8, + DVD_STATE_CANCELED = 0xa, // lmao they skipped 9 + DVD_STATE_RETRY = 0xb, + DVD_STATE_FATAL_ERROR = -1, + __DVD_STATE_ENUM_FORCE_S32 = INT32_MAX, +} DVDState; +} + +class DVDFileInfo; +extern "C" { + s32 DVDOpen(const char*, u8[48]); + s32 DVDClose(u8[48]); + void DVDReadPrio(void); + void DVDGetCurrentDiskID(void); + s32 DVDFastOpen(long, u8[48]); + int DVDGetCommandBlockStatus(u8[48]); + s32 DVDReadAsyncPrio(u8[48], void*, long, long, void(*)(long,DVDFileInfo*), long); + void DVDConvertPathToEntrynum(void); + DVDState DVDGetDriveStatus(void); + s32 DVDCheckDisk(void); + + void DVDChangeDir(void); + void DVDCloseDir(void); + void DVDOpenDir(void); + void DVDReadDir(void); + +} + + +#endif \ No newline at end of file diff --git a/include/functions.h b/include/functions.h index e32a1ae78a1..43109edd73a 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1,3 +1,5 @@ +#include "os/OS.h" + extern "C" { void J2DScreen_NS_draw(void); void PSMTXCopy(void); @@ -62,7 +64,8 @@ extern "C" { void setBombNum__24dSv_player_item_record_cFUcUc(void); void setItem__17dSv_player_item_cFiUc(void); void dMeter2Info_c_NS_getString(void); - void Z2AudioMgr_NS_setOutputMode(u32,unsigned long); + void Z2AudioMgr_NS_setOutputMode(void*,unsigned long); + u32 Z2AudioMgr_NS_hasReset(void*); void dComIfG_play_c_NS_getNowVibration(void); void setInitEventBit(void); void daObjCarry_c_NS_clrSaveFlag(void); @@ -169,7 +172,6 @@ extern "C" { void JUTWarningConsole_f(void); void func_803621CC(void); - void VIWaitForRetrace(void); void func_80361C24(void); void _restgpr_26(void); @@ -251,24 +253,14 @@ extern "C" { void DCStoreRangeNoSync(void); void __RAS_OSDisableInterrupts_begin(void); u8 dComIfGs_getBottleMax(void); + + + void mDoDvdErr_ThdCleanup(void); } -// DVD -class DVDFileInfo; +class mDoCPd_c; extern "C" { - s32 DVDOpen(const char*, u8[48]); - s32 DVDClose(u8[48]); - void DVDReadPrio(void); - void DVDGetCurrentDiskID(void); - s32 DVDFastOpen(long, u8[48]); - int DVDGetCommandBlockStatus(u8[48]); - s32 DVDReadAsyncPrio(u8[48], void*, long, long, void(*)(long,DVDFileInfo*), long); - void DVDConvertPathToEntrynum(void); - - void DVDChangeDir(void); - void DVDCloseDir(void); - void DVDOpenDir(void); - void DVDReadDir(void); + void cAPICPad_recalibrate(void); } // JSystem/JSupport/JSUList @@ -366,6 +358,19 @@ extern void GXSetBlendMode(u32, u32, u32, u32); extern void GXSetVtxAttrFmt(u32, u32, u32, u32, u32); extern void GXClearVtxDesc(); extern void GXSetVtxDesc(u32, u32); +typedef void (* GXDrawDoneCallback)(void); +extern void GXSetDrawDoneCallback(GXDrawDoneCallback); +extern void GXDrawDone(void); +extern void GXAbortFrame(void); +extern void GXFlush(void); +extern OSThread* GXSetCurrentGXThread(void); +extern OSThread* GXGetCurrentGXThread(void); +} + +extern "C" { +void VIWaitForRetrace(void); +void VISetBlack(s32); +void VIFlush(void); } extern "C" { @@ -894,4 +899,30 @@ extern "C" { void mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl(void); void nextSrcData__FPUc(void); void run__7JKRAramFv(void); -}; \ No newline at end of file +}; + +// JSystem/JUtility/JUTVideo +class JUTVideo; +extern "C" { + void JUTVideo_NS_destroyManager(void); +} + +// JSystem/JAudio2/JASTaskThread +struct JASTaskThread { + u8 unk0[0x2c]; + OSThread* thread; +}; +extern "C" { + s32 JASTaskThread_NS_pause(JASTaskThread*, bool); +} + +// JSystem/JAudio2/JASDvdThread +extern "C" { + JASTaskThread* JASDvd_NS_getThreadPointer(void); +} + +// m_Do_Rst +extern "C" { + void getResetData__6mDoRstFv(void); + void resetCallBack__6mDoRstFiPv(void); +} \ No newline at end of file diff --git a/include/m_Do/m_Do_Reset/m_Do_Reset.h b/include/m_Do/m_Do_Reset/m_Do_Reset.h new file mode 100644 index 00000000000..6603198b50d --- /dev/null +++ b/include/m_Do/m_Do_Reset/m_Do_Reset.h @@ -0,0 +1,32 @@ +#ifndef __M_DO_RESET_H__ +#define __M_DO_RESET_H__ + +#include "dolphin/types.h" + +extern "C" { +// void my_OSCancelAlarmAll(void); +} + +struct ResetData { + s32 field_0x0; + u32 field_0x4; + s32 field_0x8; + s32 pad_index; + u8 field_0x10; + u8 field_0x11; + u8 field_0x12; + u8 field_0x13; + u8 field_0x14; + u8 field_0x15; + u8 field_0x16; + u8 field_0x17; +}; +extern ResetData* m_Do_Reset_NS_mDoRst_NS_mResetData; + +struct mDoRst { + ResetData* getResetData(); + static void reset(s32 p1, u32 p2, s32 p3); + static void resetCallBack(int p1, void* p2); +}; + +#endif \ No newline at end of file diff --git a/include/m_Do/m_Do_main/asm/func_80006454.s b/include/m_Do/m_Do_main/asm/func_80006454.s index 8c188e8d071..a2418cd88ce 100644 --- a/include/m_Do/m_Do_main/asm/func_80006454.s +++ b/include/m_Do/m_Do_main/asm/func_80006454.s @@ -15,7 +15,7 @@ /* 8000648C 000033CC 38 60 00 18 */ li r3, 0x18 /* 80006490 000033D0 38 80 00 04 */ li r4, 4 /* 80006494 000033D4 48 33 4E 19 */ bl OSAllocFromArenaLo -/* 80006498 000033D8 90 6D 86 F8 */ stw r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80006498 000033D8 90 6D 86 F8 */ stw r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 8000649C 000033DC 28 03 00 00 */ cmplwi r3, 0 /* 800064A0 000033E0 40 82 00 08 */ bne lbl_800064A8 lbl_800064A4: @@ -25,28 +25,28 @@ lbl_800064A8: /* 800064AC 000033EC 54 60 0F FF */ rlwinm. r0, r3, 1, 0x1f, 0x1f /* 800064B0 000033F0 40 82 00 64 */ bne lbl_80006514 /* 800064B4 000033F4 38 80 00 00 */ li r4, 0 -/* 800064B8 000033F8 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064B8 000033F8 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064BC 000033FC 90 83 00 00 */ stw r4, 0(r3) -/* 800064C0 00003400 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064C0 00003400 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064C4 00003404 90 83 00 04 */ stw r4, 4(r3) -/* 800064C8 00003408 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064C8 00003408 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064CC 0000340C 90 83 00 04 */ stw r4, 4(r3) -/* 800064D0 00003410 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064D0 00003410 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064D4 00003414 90 83 00 08 */ stw r4, 8(r3) /* 800064D8 00003418 38 00 FF FF */ li r0, -1 -/* 800064DC 0000341C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064DC 0000341C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064E0 00003420 90 03 00 0C */ stw r0, 0xc(r3) -/* 800064E4 00003424 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064E4 00003424 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064E8 00003428 98 83 00 12 */ stb r4, 0x12(r3) -/* 800064EC 0000342C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064EC 0000342C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064F0 00003430 98 83 00 13 */ stb r4, 0x13(r3) -/* 800064F4 00003434 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064F4 00003434 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 800064F8 00003438 98 83 00 14 */ stb r4, 0x14(r3) -/* 800064FC 0000343C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 800064FC 0000343C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80006500 00003440 98 83 00 15 */ stb r4, 0x15(r3) -/* 80006504 00003444 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 80006504 00003444 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80006508 00003448 98 83 00 10 */ stb r4, 0x10(r3) -/* 8000650C 0000344C 80 6D 86 F8 */ lwz r3, lbl_80450C78-_SDA_BASE_(r13) +/* 8000650C 0000344C 80 6D 86 F8 */ lwz r3, m_Do_Reset_NS_mDoRst_NS_mResetData-_SDA_BASE_(r13) /* 80006510 00003450 98 83 00 11 */ stb r4, 0x11(r3) lbl_80006514: /* 80006514 00003454 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha diff --git a/include/os/OS.h b/include/os/OS.h index 02d0cb7ead2..b9e7db00a9a 100644 --- a/include/os/OS.h +++ b/include/os/OS.h @@ -107,7 +107,7 @@ extern "C" { void OSSetSoundMode(OSSoundMode mode); void OSReportInit(void); - void OSAttention(char *msg); + void OSAttention(char *msg, ...); void OSPanic(char *file, s32 line, char* fmt, ...); void OSReport(char *fmt, ...); void OSReport_Error(char* fmt, ...); @@ -143,6 +143,12 @@ extern "C" { s32 OSDisableInterrupts(); s32 OSEnableInterrupts(); s32 OSRestoreInterrupts(s32 level); + + void OSResetSystem(s32 param_1, u32 param_2, s32 param_3); + + void OSSetSaveRegion(void* start, void* end); + + void LCDisable(void); }; #endif \ No newline at end of file diff --git a/include/variables.h b/include/variables.h index f50ca994723..d1116950264 100644 --- a/include/variables.h +++ b/include/variables.h @@ -7,7 +7,7 @@ extern u8 lbl_803A7270[24]; extern u8 lbl_80430188[16]; extern u8 lbl_80379235[16]; extern char lbl_803739A0[0x310]; -extern u32 lbl_80451368; +extern void* lbl_80451368; extern u32 lbl_804514E0; extern u8 lbl_803C3384; extern u8 lbl_803DD2E8; @@ -52,7 +52,7 @@ extern u8 lbl_803DD2D8; extern u8 lbl_80450B18; extern u8 lbl_803D32E0; extern u8 lbl_80450BBC; -extern u8 lbl_803EAF40; +extern u8 lbl_803EAF40[]; extern u8 lbl_80450B34; extern u8 lbl_80450B00; extern u8 lbl_80450C80; @@ -61,7 +61,6 @@ extern u8 __ct__12dSv_memory_cFv; extern u8 __ct__13dSv_memory2_cFv; extern u8 lbl_803D3420; extern u8 lbl_80450B0C; -extern u8 lbl_80450C78; extern u8 lbl_80450B08; extern u8 lbl_803DB420; extern u8 main01__Fv; @@ -76,6 +75,7 @@ extern u8 lbl_804539FC; extern u8 lbl_803BB498; extern float lbl_804550E8; extern float lbl_804550EC; +extern u8 lbl_80450C90; #define _SDA_BASE_(dummy) 0 #define _SDA2_BASE_(dummy) 0 @@ -373,3 +373,15 @@ extern u8 lbl_804342DC; // JKRAram::sAramCommandList extern u8 lbl_804342E8; // JKernel::decompMutex (static?) extern u8 lbl_804508B8; // JKRAram::sSZSBufferSize extern u8 lbl_803CC128; // JKRAram::sMessageBuffer + +// m_Do_Reset +// func_80015614 +#include "JSystem/JUtility/JUTXfb/JUTXfb.h" +extern JUTXfb* lbl_80451550; +extern u8 lbl_80450BB8; +extern char lbl_80374198[16]; +// func_8001574C +extern bool lbl_80451501; +extern void* lbl_804514EC; // JUTGamePad::C3ButtonReset::sCallback +extern u32 lbl_804514F0; // JUTGamePad::C3ButtonReset::sCallbackArg +extern u32 lbl_803ECF00; \ No newline at end of file diff --git a/ldscript.lcf b/ldscript.lcf index 78ce49f6b47..7ef04761260 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -1304,6 +1304,7 @@ __sinit_JKRDvdAramRipper_cpp __dt__7JKRAramFv __sinit_JKRAram_cpp run__7JKRAramFv +getResetData__6mDoRstFv } /* .init 80003100 - 80005600 diff --git a/libs/JSystem/JKernel/JKRArchivePub.cpp b/libs/JSystem/JKernel/JKRArchivePub.cpp index 49b76ff1cf2..3d839dbe852 100644 --- a/libs/JSystem/JKernel/JKRArchivePub.cpp +++ b/libs/JSystem/JKernel/JKRArchivePub.cpp @@ -1,4 +1,5 @@ #include "JSystem/JKernel/JKRArchive/JKRArchive.h" +#include "dvd/dvd.h" #include "global.h" asm void JKRArchive::check_mount_already(long, JKRHeap*) { diff --git a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp index d6968b1b6f0..0e4ab3d0f28 100644 --- a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp @@ -1,4 +1,5 @@ #include "JSystem/JKernel/JKRDvdAramRipper/JKRDvdAramRipper.h" +#include "dvd/dvd.h" #include "global.h" asm void JKRDvdAramRipper::loadToAram(long, u32, JKRExpandSwitch, u32, u32, u32 *) { diff --git a/libs/JSystem/JKernel/JKRDvdRipper.cpp b/libs/JSystem/JKernel/JKRDvdRipper.cpp index 6634e9d3dc8..88b59348642 100644 --- a/libs/JSystem/JKernel/JKRDvdRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdRipper.cpp @@ -1,4 +1,5 @@ #include "JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h" +#include "dvd/dvd.h" #include "global.h" asm void JKRDvdRipper::loadToMainRAM(char const *, u8 *, JKRExpandSwitch, u32, JKRHeap *, JKRDvdRipper::EAllocDirection, u32, int *, u32 *) { diff --git a/libs/JSystem/JKernel/JKRFileCache.cpp b/libs/JSystem/JKernel/JKRFileCache.cpp index 70a6f04c9ae..1ef905bc176 100644 --- a/libs/JSystem/JKernel/JKRFileCache.cpp +++ b/libs/JSystem/JKernel/JKRFileCache.cpp @@ -1,4 +1,5 @@ #include "JSystem/JKernel/JKRFileCache/JKRFileCache.h" +#include "dvd/dvd.h" #include "global.h" asm void JKRFileCache::mount(char const*, JKRHeap*, char const*) { diff --git a/libs/JSystem/JKernel/JKRFileFinder.cpp b/libs/JSystem/JKernel/JKRFileFinder.cpp index dfba72ceecb..c239ba197cf 100644 --- a/libs/JSystem/JKernel/JKRFileFinder.cpp +++ b/libs/JSystem/JKernel/JKRFileFinder.cpp @@ -1,4 +1,5 @@ #include "JSystem/JKernel/JKRFileFinder/JKRFileFinder.h" +#include "dvd/dvd.h" #include "global.h" asm JKRArcFinder::JKRArcFinder(JKRArchive *, long, long) { diff --git a/libs/JSystem/JUtility/JUTXfb.cpp b/libs/JSystem/JUtility/JUTXfb.cpp index 4bf93c8658d..f80f7723ac3 100644 --- a/libs/JSystem/JUtility/JUTXfb.cpp +++ b/libs/JSystem/JUtility/JUTXfb.cpp @@ -1 +1,8 @@ -// ok +#include "JSystem/JUtility/JUTXfb/JUTXfb.h" + +void JUTXfb::clearIndex() { + this->active_xfb_index = -1; + this->last_drawn_xfb_index = -1; + this->next_xfb_buffer = -1; + return; +} \ No newline at end of file diff --git a/obj_files.mk b/obj_files.mk index 31b63427f50..ade8da4192b 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -19,7 +19,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/m/Do/m_Do_mtx.o \ $(BUILD_DIR)/asm/m/Do/m_Do_ext.o \ $(BUILD_DIR)/asm/m/Do/m_Do_lib.o \ - $(BUILD_DIR)/asm/m/Do/m_Do_Reset.o \ + $(BUILD_DIR)/src/m_Do/m_Do_Reset.o \ $(BUILD_DIR)/asm/m/Do/dvd/m_Do_dvd_thread.o \ $(BUILD_DIR)/asm/m/Do/m_Do_DVDError.o \ $(BUILD_DIR)/asm/m/Do/m_Do_MemCard.o \ @@ -485,6 +485,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/JUtility/JUTDirectPrint.o \ $(BUILD_DIR)/asm/JUtility/JUTAssert.o \ $(BUILD_DIR)/asm/JUtility/JUTVideo.o \ + $(BUILD_DIR)/libs/JSystem/JUtility/JUTXfb.o \ $(BUILD_DIR)/asm/JUtility/JUTXfb.o \ $(BUILD_DIR)/asm/JUtility/JUTFader.o \ $(BUILD_DIR)/asm/JUtility/JUTProcBar.o \ diff --git a/src/m_Do/m_Do_Reset.cpp b/src/m_Do/m_Do_Reset.cpp index 4bf93c8658d..2f3e0718ffd 100644 --- a/src/m_Do/m_Do_Reset.cpp +++ b/src/m_Do/m_Do_Reset.cpp @@ -1 +1,110 @@ -// ok +#include "m_Do/m_Do_reset/m_Do_reset.h" +#include "dvd/dvd.h" +#include "JSystem/JUtility/JUTXfb/JUTXfb.h" +#include "global.h" + +extern "C" { +void my_OSCancelAlarmAll(void) { + return; +} + +void destroyVideo() { + JUTVideo_NS_destroyManager(); + GXSetDrawDoneCallback(NULL); + VISetBlack(1); + VIFlush(); + VIWaitForRetrace(); + return; +} +} + +// TODO: cleanup +void mDoRst::reset(s32 p1, u32 p2, s32 p3) { + mDoCPd_c *pmVar1; + u32 uVar2; + DVDState DVar3; + OSThread *thread; + s32 enable; + /* sManager */ lbl_80451550->clearIndex(); + mDoDvdErr_ThdCleanup(); + cAPICPad_recalibrate(); + if (lbl_80450BB8 != 0) { + do { + // uVar2 = lbl_80451368->hasReset(); + uVar2 = Z2AudioMgr_NS_hasReset(lbl_80451368); + } while ((uVar2 & 0xff) == 0); + } + + if ((s32)DVDGetDriveStatus() == (s32)DVD_STATE_BUSY) { + OSAttention(lbl_80374198); + } + JASTaskThread *task_thread = JASDvd_NS_getThreadPointer(); + if (task_thread != NULL) { + JASTaskThread_NS_pause(task_thread, true); + thread = task_thread->thread; + if (thread != NULL) { + OSSuspendThread(thread); + OSDetachThread(thread); + OSCancelThread(thread); + } + } + + VIWaitForRetrace(); + VIWaitForRetrace(); + + thread = GXGetCurrentGXThread(); + enable = OSDisableInterrupts(); + OSThread* ourThread = OSGetCurrentThread(); + if (thread != ourThread) { + OSCancelThread(thread); + GXSetCurrentGXThread(); + } + GXFlush(); + GXAbortFrame(); + GXDrawDone(); + + OSRestoreInterrupts(enable); + + destroyVideo(); + + // nb: probably fake match (i am not sure that it's actually attached to this label lol) + while (((s32*)lbl_803EAF40)[0x7f0] != 0) { + VIWaitForRetrace(); + } + + my_OSCancelAlarmAll(); + LCDisable(); + // probably false match; check out 80015728 or thereabouts in Ghidra + OSSetSaveRegion(/* mResetData */ m_Do_Reset_NS_mDoRst_NS_mResetData, (u8*)(&getResetData__6mDoRstFv) + 0x18); + OSResetSystem(p1, p2, p3); + do { + VIWaitForRetrace(); + } while (true); +} + +void mDoRst::resetCallBack(int p1, void* p2) { + if (/* mResetData */ m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x0 == 0) { + if (p1 == -1) { + cAPICPad_recalibrate(); + } else { + if (m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x8 != 0) { + lbl_80451501 = false; + /* sCallback */ lbl_804514EC = &mDoRst::resetCallBack; + /* sCallbackArg */ lbl_804514F0 = 0; + return; + } + m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x8 = 1; + m_Do_Reset_NS_mDoRst_NS_mResetData->pad_index = p1; + cAPICPad_recalibrate(); + } + + if ((DVDCheckDisk() == 0) && (DVDGetDriveStatus() != DVD_STATE_FATAL_ERROR)) { + m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x11 = 1; + } + m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x0 = 1; + } +} + +ResetData* mDoRst::getResetData() { + return /* mResetData */ m_Do_Reset_NS_mDoRst_NS_mResetData; +} \ No newline at end of file diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index 89fde48972b..bdeab13d783 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -1,5 +1,7 @@ #include "m_Do/m_Do_main/m_Do_main.h" +#include "m_Do/m_Do_reset/m_Do_reset.h" #include "d/d_com/d_com_inf_game/d_com_inf_game.h" +#include "dvd/dvd.h" #include "global.h" void version_check(void) {