summaryrefslogtreecommitdiff
path: root/src/m_Do/m_Do_machine_exception.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2021-09-24 08:11:10 -0700
committerGitHub <noreply@github.com>2021-09-24 11:11:10 -0400
commit7d271be857c95c4a6c28d4d185378fba5c762c16 (patch)
treef74ae846c613588585a07d81199a6495968b7257 /src/m_Do/m_Do_machine_exception.cpp
parentea42afb6f8a29f3a279b34efffcca365e308ca1e (diff)
m_Do cleanup, d_resource, drawlist stuff (#145)
* d_resource / some d_stage * setup dDlst_list_c / d_select_icon OK * JUTXfb / some JUTVideo + various * some J2D classes / JUTVideo/Fader attempts * bunch of m_Do cleanup + matches / f_ap_game OK * mDoLib_clipper::setup OK * most of d_meter_HIO OK * pane_class / kantera_icon_meter
Diffstat (limited to 'src/m_Do/m_Do_machine_exception.cpp')
-rw-r--r--src/m_Do/m_Do_machine_exception.cpp230
1 files changed, 70 insertions, 160 deletions
diff --git a/src/m_Do/m_Do_machine_exception.cpp b/src/m_Do/m_Do_machine_exception.cpp
index a225ce6e6d..f834ce3d57 100644
--- a/src/m_Do/m_Do_machine_exception.cpp
+++ b/src/m_Do/m_Do_machine_exception.cpp
@@ -4,98 +4,35 @@
//
#include "m_Do/m_Do_machine_exception.h"
+#include "JSystem/JFramework/JFWSystem.h"
+#include "JSystem/JKernel/JKRAram.h"
+#include "JSystem/JUtility/JUTConsole.h"
+#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
+#include "m_Do/m_Do_ext.h"
+#include "m_Do/m_Do_main.h"
//
// Types:
//
-struct mDoMain {
- static u8 COPYDATE_STRING[18 + 2 /* padding */];
- static u8 sPowerOnTime[4];
- static u8 sHungUpTime[4];
-};
-
-struct dRes_control_c {
- /* 8003C638 */ void dump();
-};
-
-struct JUTConsole {
- /* 802E7C38 */ void print(char const*);
- /* 802E7F7C */ void dumpToTerminal(unsigned int);
-};
-
-struct JKRHeap {
- /* 802CE72C */ void getFreeSize();
- /* 802CE784 */ void getTotalFreeSize();
-};
-
-struct JKRAramHeap {
- /* 802D3218 */ void dump();
-};
-
-struct JKRAram {
- static u8 sAramObject[4];
-};
-
-struct JFWSystem {
- static u8 systemConsole[4];
-};
-
struct DynamicModuleControlBase {
/* 80262470 */ void dump();
};
//
-// Forward References:
-//
-
-extern "C" static void print_f__FPCce();
-extern "C" static void print__FPCc();
-extern "C" static void dispHeapInfo__Fv();
-extern "C" static void dispGameInfo__Fv();
-extern "C" static void dispDateInfo__Fv();
-extern "C" static void dispConsoleToTerminal__Fv();
-extern "C" void exception_addition__FP10JUTConsole();
-extern "C" extern char const* const m_Do_m_Do_machine_exception__stringBase0;
-extern "C" extern u8 struct_80450C98[4];
-extern "C" extern u8 struct_80450C9C[4];
-
-//
// External References:
//
-extern "C" void dump__14dRes_control_cFv();
extern "C" void dump__24DynamicModuleControlBaseFv();
-extern "C" void getFreeSize__7JKRHeapFv();
-extern "C" void getTotalFreeSize__7JKRHeapFv();
-extern "C" void dump__11JKRAramHeapFv();
-extern "C" void print__10JUTConsoleFPCc();
extern "C" void JUTConsole_print_f_va_();
-extern "C" void dumpToTerminal__10JUTConsoleFUi();
-extern "C" void OSTicksToCalendarTime();
-extern "C" void _savegpr_23();
-extern "C" void _restgpr_23();
-extern "C" u8 COPYDATE_STRING__7mDoMain[18 + 2 /* padding */];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" u8 sPowerOnTime__7mDoMain[4];
-extern "C" extern u8 data_80450B0C[4];
-extern "C" u8 sHungUpTime__7mDoMain[4];
-extern "C" extern u8 data_80450B14[4];
-extern "C" extern u8 gameHeap[4];
-extern "C" extern u8 zeldaHeap[4];
-extern "C" extern u8 archiveHeap[4];
-extern "C" u8 systemConsole__9JFWSystem[4];
-extern "C" u8 sAramObject__7JKRAram[4];
//
// Declarations:
//
-/* ############################################################################################## */
-/* 80450C90-80450C98 000190 0004+04 3/3 0/0 0/0 .sbss sConsole */
-static u8 sConsole[4 + 4 /* padding */];
+static JUTConsole* sConsole;
/* 80017D7C-80017E08 0126BC 008C+00 3/3 0/0 0/0 .text print_f__FPCce */
#pragma push
@@ -107,107 +44,80 @@ static asm void print_f(char const* param_0, ...) {
}
#pragma pop
-/* 80017E08-80017E30 012748 0028+00 2/2 0/0 0/0 .text print__FPCc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void print(char const* param_0) {
- nofralloc
-#include "asm/m_Do/m_Do_machine_exception/print__FPCc.s"
+void print(char const* string) {
+ sConsole->print(string);
}
-#pragma pop
-/* ############################################################################################## */
-/* 80374460-80374460 000AC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80374460 =
- "--------------------------------------\n";
-SECTION_DEAD static char const* const stringBase_80374488 = "-- Heap Free / TotalFree (KB) --\n";
-SECTION_DEAD static char const* const stringBase_803744AA = " Zelda %5d / %5d\n";
-SECTION_DEAD static char const* const stringBase_803744BD = " Game %5d / %5d\n";
-SECTION_DEAD static char const* const stringBase_803744D0 = "Archive %5d / %5d\n";
-SECTION_DEAD static char const* const stringBase_803744E3 = "--------------------------------\n";
-#pragma pop
-
-/* 80017E30-80017F8C 012770 015C+00 1/1 0/0 0/0 .text dispHeapInfo__Fv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void dispHeapInfo() {
- nofralloc
-#include "asm/m_Do/m_Do_machine_exception/dispHeapInfo__Fv.s"
+const char* stringBase_80374460 = "--------------------------------------\n";
+
+void dispHeapInfo() {
+ JKRExpHeap* zelda = zeldaHeap;
+ JKRExpHeap* game = gameHeap;
+ JKRExpHeap* archive = archiveHeap;
+
+ u32 zeldaFree = zelda->getFreeSize();
+ u32 gameFree = game->getFreeSize();
+ u32 archiveFree = archive->getFreeSize();
+ u32 zeldaTotal = zelda->getTotalFreeSize();
+ u32 gameTotal = game->getTotalFreeSize();
+ u32 archiveTotal = archive->getTotalFreeSize();
+
+ print("-- Heap Free / TotalFree (KB) --\n");
+ print_f(" Zelda %5d / %5d\n", zeldaFree >> 10, zeldaTotal >> 10);
+ print_f(" Game %5d / %5d\n", gameFree >> 10, gameTotal >> 10);
+ print_f("Archive %5d / %5d\n", archiveFree >> 10, archiveTotal >> 10);
+ print("--------------------------------\n");
+
+ if (JKRAram::getAramHeap()) {
+ JKRAram::getAramHeap()->dump();
+ }
+ dump__24DynamicModuleControlBaseFv();
+ g_dComIfG_gameInfo.mResControl.dump();
+
+ zelda->dump_sort();
+ game->dump_sort();
+ archive->dump_sort();
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 80374460-80374460 000AC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80374505 = "Start StageName:RoomNo [%s:%d]\n";
-#pragma pop
-/* 80017F8C-80017FD0 0128CC 0044+00 1/1 0/0 0/0 .text dispGameInfo__Fv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void dispGameInfo() {
- nofralloc
-#include "asm/m_Do/m_Do_machine_exception/dispGameInfo__Fv.s"
+void dispGameInfo() {
+ print_f("Start StageName:RoomNo [%s:%d]\n", dComIfGp_getStartStageName(),
+ dComIfGp_getStartStageRoomNo());
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 80374460-80374460 000AC0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80374525 =
- "------------- Date Infomation ---------\n";
-SECTION_DEAD static char const* const stringBase_8037454E = " FINAL VERSION\n";
-SECTION_DEAD static char const* const stringBase_8037455E = "COMPILE USER: FINAL\n";
-SECTION_DEAD static char const* const stringBase_80374573 = "COPYDATE : %17s\n";
-SECTION_DEAD static char const* const stringBase_80374586 =
- "PowerOnTime: %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n";
-SECTION_DEAD static char const* const stringBase_803745B7 =
- "HungUpTime : %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n";
-SECTION_DEAD static char const* const stringBase_803745E8 =
- "PlayTime : %4d days, %2d:%2d:%2d`%03d\"%03d\n";
-SECTION_DEAD static char const* const stringBase_80374616 =
- "---------------------------------------\n";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8037463F = "";
-#pragma pop
-/* 80017FD0-80018124 012910 0154+00 1/1 0/0 0/0 .text dispDateInfo__Fv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void dispDateInfo() {
- nofralloc
-#include "asm/m_Do/m_Do_machine_exception/dispDateInfo__Fv.s"
+void dispDateInfo() {
+ print("------------- Date Infomation ---------\n");
+ print(" FINAL VERSION\n");
+ print("COMPILE USER: FINAL\n");
+ print_f("COPYDATE : %17s\n", mDoMain::COPYDATE_STRING);
+
+ OSCalendarTime time;
+ OSTicksToCalendarTime(mDoMain::sPowerOnTime, &time);
+ print_f("PowerOnTime: %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n", time.year, time.month,
+ time.day_of_month, time.hours, time.minutes, time.seconds, time.milliseconds,
+ time.microseconds);
+
+ OSTicksToCalendarTime(mDoMain::sHungUpTime, &time);
+ print_f("HungUpTime : %04d/%2d/%2d %2d:%2d:%2d`%03d\"%03d\n", time.year, time.month,
+ time.day_of_month, time.hours, time.minutes, time.seconds, time.milliseconds,
+ time.microseconds);
+
+ OSTicksToCalendarTime(mDoMain::sHungUpTime - mDoMain::sPowerOnTime, &time);
+ print_f("PlayTime : %4d days, %2d:%2d:%2d`%03d\"%03d\n", time.year_day, time.hours,
+ time.minutes, time.seconds, time.milliseconds, time.microseconds);
+ print("---------------------------------------\n");
}
-#pragma pop
-/* 80018124-8001814C 012A64 0028+00 1/1 0/0 0/0 .text dispConsoleToTerminal__Fv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void dispConsoleToTerminal() {
- nofralloc
-#include "asm/m_Do/m_Do_machine_exception/dispConsoleToTerminal__Fv.s"
+void dispConsoleToTerminal() {
+ JFWSystem::getSystemConsole()->dumpToTerminal(0xFFFFFFFF);
}
-#pragma pop
-/* 8001814C-8001817C 012A8C 0030+00 0/0 1/1 0/0 .text exception_addition__FP10JUTConsole
- */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void exception_addition(JUTConsole* param_0) {
- nofralloc
-#include "asm/m_Do/m_Do_machine_exception/exception_addition__FP10JUTConsole.s"
+void exception_addition(JUTConsole* pConsole) {
+ sConsole = pConsole;
+ dispHeapInfo();
+ dispDateInfo();
+ dispConsoleToTerminal();
+ dispGameInfo();
}
-#pragma pop
/* ############################################################################################## */
/* 80450C98-80450C9C -00001 0004+00 0/0 0/0 50/50 .sbss None */