diff --git a/config/RSBE01_02/splits.txt b/config/RSBE01_02/splits.txt index 1db3c0c4c..18e911d5e 100644 --- a/config/RSBE01_02/splits.txt +++ b/config/RSBE01_02/splits.txt @@ -288,6 +288,13 @@ sora/ft/ft_system.cpp: .bss start:0x8049EA20 end:0x8049EA30 .sbss start:0x805A0380 end:0x805A0388 +sora/nt/nt_report.cpp: + .text start:0x8013D078 end:0x8013D490 + .ctors start:0x8040655C end:0x80406560 + .data start:0x8045DFD0 end:0x8045E000 + .bss start:0x8049EA30 end:0x8049EBA8 + .sdata2 start:0x805A2AC0 end:0x805A2AC4 + sora/nt/nt_offline.cpp: .text start:0x8014C004 end:0x8014C180 .data start:0x80460D40 end:0x80460D4C diff --git a/config/RSBE01_02/symbols.txt b/config/RSBE01_02/symbols.txt index c1dc6061a..6ba34e734 100644 --- a/config/RSBE01_02/symbols.txt +++ b/config/RSBE01_02/symbols.txt @@ -6027,18 +6027,18 @@ __sinit_\ac_null_cpp = .text:0x8013CFB8; // type:function size:0x4C scope:local __dt__8ftSystemFv = .text:0x8013D004; // type:function size:0x40 setCommonResourceData__8ftSystemFUlUl = .text:0x8013D044; // type:function size:0xC __sinit_\ft_system_cpp = .text:0x8013D050; // type:function size:0x28 scope:local -fn_8013D078 = .text:0x8013D078; // type:function size:0x24 -fn_8013D09C = .text:0x8013D09C; // type:function size:0x4 -fn_8013D0A0 = .text:0x8013D0A0; // type:function size:0x50 -fn_8013D0F0 = .text:0x8013D0F0; // type:function size:0x28 -fn_8013D118 = .text:0x8013D118; // type:function size:0x4 -fn_8013D11C = .text:0x8013D11C; // type:function size:0xC0 -fn_8013D1DC = .text:0x8013D1DC; // type:function size:0x68 -fn_8013D244 = .text:0x8013D244; // type:function size:0x54 -fn_8013D298 = .text:0x8013D298; // type:function size:0x40 -fn_8013D2D8 = .text:0x8013D2D8; // type:function size:0x4C -fn_8013D324 = .text:0x8013D324; // type:function size:0x15C -fn_8013D480 = .text:0x8013D480; // type:function size:0x10 +isMatchStatusOnline__6NtBaseFv = .text:0x8013D078; // type:function size:0x24 +flushLogToSDCard__Fv = .text:0x8013D09C; // type:function size:0x4 +report__8NtReportFPCce = .text:0x8013D0A0; // type:function size:0x50 +createWork__8NtReportFv = .text:0x8013D0F0; // type:function size:0x28 +destroyWork__8NtReportFv = .text:0x8013D118; // type:function size:0x4 +__dt__8NtReportFv = .text:0x8013D11C; // type:function size:0xC0 +__dt__8NtBufferFv = .text:0x8013D1DC; // type:function size:0x68 +freeBuffer__8NtBufferFv = .text:0x8013D244; // type:function size:0x54 +__dt__6NtBaseFv = .text:0x8013D298; // type:function size:0x40 +allocBuffer__8NtBufferFUlQ25Heaps8HeapType = .text:0x8013D2D8; // type:function size:0x4C +__sinit_\nt_report_cpp = .text:0x8013D324; // type:function size:0x15C scope:local +__ct__7NtBlockFv = .text:0x8013D480; // type:function size:0x10 fn_8013D490 = .text:0x8013D490; // type:function size:0x1BC fn_8013D64C = .text:0x8013D64C; // type:function size:0x64 fn_8013D6B0 = .text:0x8013D6B0; // type:function size:0x10 @@ -26082,9 +26082,9 @@ __vt__41soArrayContractibleTable = .data:0x8045DE48; // type:ob __vt__13acAnimCmdNull = .data:0x8045DF78; // type:object size:0x34 @879 = .data:0x8045DFAC; // type:object size:0xE scope:local data:string @880 = .data:0x8045DFBC; // type:object size:0x14 scope:local -lbl_8045DFD0 = .data:0x8045DFD0; // type:object size:0xC -lbl_8045DFDC = .data:0x8045DFDC; // type:object size:0xC -lbl_8045DFE8 = .data:0x8045DFE8; // type:object size:0x18 +__vt__8NtReport = .data:0x8045DFD0; // type:object size:0xC +__vt__6NtBase = .data:0x8045DFDC; // type:object size:0xC +__vt__8NtBuffer = .data:0x8045DFE8; // type:object size:0x14 lbl_8045E000 = .data:0x8045E000; // type:object size:0x17 data:string lbl_8045E018 = .data:0x8045E018; // type:object size:0x2C lbl_8045E044 = .data:0x8045E044; // type:object size:0x144 @@ -27943,8 +27943,13 @@ lbl_8049E5A0 = .bss:0x8049E5A0; // type:object size:0x118 lbl_8049E6B8 = .bss:0x8049E6B8; // type:object size:0x358 @830 = .bss:0x8049EA10; // type:object size:0xC scope:local @17 = .bss:0x8049EA20; // type:object size:0xC scope:local -lbl_8049EA30 = .bss:0x8049EA30; // type:object size:0x120 -lbl_8049EB50 = .bss:0x8049EB50; // type:object size:0x80 +lbl_8049EA30 = .bss:0x8049EA30; // type:object size:0xC +g_NtReport = .bss:0x8049EA40; // type:object size:0x110 +s_ReportMutex__8NtReport = .bss:0x8049EB50; // type:object size:0x18 +g_NtBlockArray = .bss:0x8049EB68; // type:object size:0x20 +lbl_8049EB88 = .bss:0x8049EB88; // type:object size:0xC +g_NtBuffer = .bss:0x8049EB94; // type:object size:0x14 +lbl_8049EBA8 = .bss:0x8049EBA8; // type:object size:0x14 lbl_8049EBD0 = .bss:0x8049EBD0; // type:object size:0x10 g_Network = .bss:0x8049EBE0; // type:object size:0x50 data:4byte lbl_8049EC30 = .bss:0x8049EC30; // type:object size:0x18 @@ -30821,8 +30826,8 @@ lbl_805A03C0 = .sbss:0x805A03C0; // type:object size:0x8 data:4byte lbl_805A03C8 = .sbss:0x805A03C8; // type:object size:0x8 lbl_805A03D0 = .sbss:0x805A03D0; // type:object size:0x1 data:byte lbl_805A03D4 = .sbss:0x805A03D4; // type:object size:0x4 data:4byte -lbl_805A03D8 = .sbss:0x805A03D8; // type:object size:0x4 data:4byte -lbl_805A03DC = .sbss:0x805A03DC; // type:object size:0x4 data:4byte +gUnk805a03d8 = .sbss:0x805A03D8; // type:object size:0x4 data:4byte +g_NtMatchingStatus = .sbss:0x805A03DC; // type:object size:0x4 data:4byte lbl_805A03E0 = .sbss:0x805A03E0; // type:object size:0x4 data:4byte lbl_805A03E4 = .sbss:0x805A03E4; // type:object size:0x1 data:byte lbl_805A03E8 = .sbss:0x805A03E8; // type:object size:0x4 data:4byte @@ -32936,7 +32941,7 @@ lbl_805A2AA8 = .sdata2:0x805A2AA8; // type:object size:0x4 align:4 data:float lbl_805A2AAC = .sdata2:0x805A2AAC; // type:object size:0x4 align:4 data:float lbl_805A2AB0 = .sdata2:0x805A2AB0; // type:object size:0x4 align:4 data:float lbl_805A2AB8 = .sdata2:0x805A2AB8; // type:object size:0x8 align:8 data:double -lbl_805A2AC0 = .sdata2:0x805A2AC0; // type:object size:0x8 align:4 data:float +lbl_805A2AC0 = .sdata2:0x805A2AC0; // type:object size:0x4 align:4 data:float lbl_805A2AC8 = .sdata2:0x805A2AC8; // type:object size:0x4 align:4 data:float lbl_805A2ACC = .sdata2:0x805A2ACC; // type:object size:0x4 align:4 data:float lbl_805A2AD0 = .sdata2:0x805A2AD0; // type:object size:0x4 align:4 data:float diff --git a/configure.py b/configure.py index e92af7a61..55614c1fa 100755 --- a/configure.py +++ b/configure.py @@ -351,6 +351,7 @@ def MatchingFor(*versions): Object(Matching, "sora/ac/ac_anim_cmd_impl.cpp"), Object(Matching, "sora/ac/ac_null.cpp"), Object(Matching, "sora/ft/ft_system.cpp"), + Object(NonMatching, "sora/nt/nt_report.cpp", extra_cflags=["-RTTI off"]), Object(Matching, "sora/nt/nt_offline.cpp", extra_cflags=["-RTTI off"]), Object(Matching, "sora/nt/d_net_connect.cpp"), Object(Matching, "sora/nt/nt_etc_dwc.cpp", extra_cflags=["-RTTI off"]), diff --git a/include/lib/BrawlHeaders b/include/lib/BrawlHeaders index 83e136db2..289e8f461 160000 --- a/include/lib/BrawlHeaders +++ b/include/lib/BrawlHeaders @@ -1 +1 @@ -Subproject commit 83e136db2c55d2ccd424cd0f042a56ac18194866 +Subproject commit 289e8f461e3b28b0819c7cea2ad494d2b38ba5f8 diff --git a/src/sora/nt/nt_report.cpp b/src/sora/nt/nt_report.cpp new file mode 100644 index 000000000..ba6371011 --- /dev/null +++ b/src/sora/nt/nt_report.cpp @@ -0,0 +1,27 @@ +#include +#include + +static NtReport g_NtReport; +OSMutex NtReport::s_ReportMutex; +static NtBlock g_NtBlockArray[4]; +static NtBuffer g_NtBuffer; + +bool NtBase::isMatchStatusOnline() { + return g_NtMatchingStatus >= 5 && gUnk805a03d8 <= 10; +} + +void flushLogToSDCard() { } + +void NtReport::report(const char* fmt, ...) { } + +void NtReport::createWork() { + unk14 = 0; + unk18 = 0; + unkB0 = 0; + unk10C = 0; + unkBC = 0; + unkC2 = 0; + OSInitMutex(&s_ReportMutex); +} + +void NtReport::destroyWork() { }