diff --git a/Progress.md b/Progress.md index 55df8fa4bdc..534463b3074 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 27.333351% | 983056 | 3596544 +.text | 27.332573% | 983028 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 34.993951% | 1406992 | 4020672 +Total | 34.993255% | 1406964 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 34.993951% | 1406992 | 4020672 +main.dol | 34.993255% | 1406964 | 4020672 RELs | 33.600166% | 3864128 | 11500324 -Total | 33.961223% | 5271120 | 15520996 +Total | 33.961042% | 5271092 | 15520996 ## RELs diff --git a/asm/d/msg/d_msg_flow/func_8024DAB0.s b/asm/d/msg/d_msg_flow/func_8024DAB0.s new file mode 100644 index 00000000000..e0a6da14f8f --- /dev/null +++ b/asm/d/msg/d_msg_flow/func_8024DAB0.s @@ -0,0 +1,9 @@ +lbl_8024DAB0: +/* 8024DAB0 80 83 00 00 */ lwz r4, 0(r3) +/* 8024DAB4 2C 04 00 00 */ cmpwi r4, 0 +/* 8024DAB8 41 82 00 0C */ beq lbl_8024DAC4 +/* 8024DABC 38 04 FF FF */ addi r0, r4, -1 +/* 8024DAC0 90 03 00 00 */ stw r0, 0(r3) +lbl_8024DAC4: +/* 8024DAC4 80 63 00 00 */ lwz r3, 0(r3) +/* 8024DAC8 4E 80 00 20 */ blr diff --git a/src/d/msg/d_msg_flow.cpp b/src/d/msg/d_msg_flow.cpp index 0cc028b4e36..a3d75a80d5d 100644 --- a/src/d/msg/d_msg_flow.cpp +++ b/src/d/msg/d_msg_flow.cpp @@ -2118,7 +2118,7 @@ int dMsgFlow_c::event020(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { /* 8024CD84-8024CDAC 2476C4 0028+00 1/0 0/0 0/0 .text * event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -#ifndef NONMATCHING +#ifdef NONMATCHING int dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { cLib_calcTimer(&field_0x3c); return 1; @@ -2432,7 +2432,7 @@ SECTION_SDATA2 static f32 lit_6613 = 1.0f; /* 8024D5EC-8024D6BC 247F2C 00D0+00 1/0 0/0 0/0 .text * event032__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ #ifdef NONMATCHING -// Matches with literals +// Matches with literals and cLib_calcTimer implementation in the end int dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { u16 uVar1; u16 uVar2; @@ -2621,5 +2621,13 @@ int dMsgFlow_c::event042(mesg_flow_node_event*, fopAc_ac_c*) { } /* 8024DAB0-8024DACC 2483F0 001C+00 3/3 0/0 0/0 .text cLib_calcTimer__FPl */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +extern "C" asm void func_8024DAB0(void* _this, s32* param_0) { + nofralloc +#include "asm/d/msg/d_msg_flow/func_8024DAB0.s" +} +#pragma pop /* 80399CB0-80399CB0 026310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */