diff options
Diffstat (limited to 'src/m_Do/m_Do_main.cpp')
| -rw-r--r-- | src/m_Do/m_Do_main.cpp | 418 |
1 files changed, 150 insertions, 268 deletions
diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index 9e206cc8ca..86f291d94c 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -17,14 +17,8 @@ #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_dvd_thread.h" #include "m_Do/m_Do_graphic.h" - -// -// Types: -// - -struct DynamicModuleControlBase { - /* 80262470 */ void dump(); -}; +#include "m_Do/m_Do_machine.h" +#include "DynamicLink.h" // // Forward References: @@ -220,21 +214,21 @@ static HeapCheck CommandHeapCheck; /* 8000578C-80005848 0000CC 00BC+00 1/1 0/0 0/0 .text CheckHeap__FUl */ void CheckHeap(u32 i_padNo) { - mDoMch_HeapCheckAll__Fv(); + mDoMch_HeapCheckAll(); OSCheckActiveThreads(); bool comboCheck = false; - // if L + R + Z is pressed... + // if L + R + Z is pressed if ((mDoCPd_c::getHold(i_padNo) & ~CButton::Z) == (CButton::L + CButton::R) && mDoCPd_c::getTrig(i_padNo) & CButton::Z) { comboCheck = true; } - int unk2 = comboCheck; + int saveRel = comboCheck; for (int i = 0; i < 8; i++) { HeapCheckTable[i]->CheckHeap1(); - if (unk2) { + if (saveRel) { HeapCheckTable[i]->saveRelBase(); } } @@ -266,59 +260,24 @@ void HeapCheck::heapDisplay() const { s32 total_free_size = mHeap->getTotalFreeSize(); s32 heap_free_size = mHeap->getFreeSize(); - JUTReport(0x64, 0xd4, "[%sName]", mName); - JUTReport(0x64, 0xe3, "HeapSize %8ld", heap_size); - JUTReport(0x64, 0xf0, "TargetHeapSize %8ld", mTargetHeapSize); - JUTReport(0x64, 0xfd, "TotalFree %8ld", total_free_size - used_count); - JUTReport(0x64, 0x10a, "FreeSize %8ld", heap_free_size - used_count); - JUTReport(0x64, 0x117, "TotalUsedSize %8ld", total_used_size); - JUTReport(0x64, 0x124, "TotalUsedRate %3ld%%", + JUTReport(100, 212, "[%sName]", mName); + JUTReport(100, 227, "HeapSize %8ld", heap_size); + JUTReport(100, 240, "TargetHeapSize %8ld", mTargetHeapSize); + JUTReport(100, 253, "TotalFree %8ld", total_free_size - used_count); + JUTReport(100, 266, "FreeSize %8ld", heap_free_size - used_count); + JUTReport(100, 279, "TotalUsedSize %8ld", total_used_size); + JUTReport(100, 292, "TotalUsedRate %3ld%%", (int)(total_used_size * 0x64) / (int)mTargetHeapSize); - JUTReport(0x64, 0x131, "MaxTotalUsedSize %8ld", mMaxTotalUsedSize); - JUTReport(0x64, 0x13e, "MaxTotalUsedRate %3ld%%", + JUTReport(100, 305, "MaxTotalUsedSize %8ld", mMaxTotalUsedSize); + JUTReport(100, 318, "MaxTotalUsedRate %3ld%%", (mMaxTotalUsedSize * 0x64) / (int)mTargetHeapSize); - JUTReport(0x64, 0x14b, "MinFreeSize %8ld", mMaxTotalFreeSize - used_count); - JUTReport(0x64, 0x158, "MinFreeRate %3ld%%", + JUTReport(100, 331, "MinFreeSize %8ld", mMaxTotalFreeSize - used_count); + JUTReport(100, 344, "MinFreeRate %3ld%%", ((mMaxTotalFreeSize - used_count) * 0x64) / (int)mTargetHeapSize); used_count = countUsed(mHeap); - JUTReport(0x64, 0x165, "UsedCount %3ld%", used_count); + JUTReport(100, 357, "UsedCount %3ld%", used_count); } -/* ############################################################################################## */ -/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80373AEF = ""; -SECTION_DEAD static char const* const stringBase_80373AF0 = "TotalFree"; -SECTION_DEAD static char const* const stringBase_80373AFA = "MaxUsed "; -SECTION_DEAD static char const* const stringBase_80373B04 = "Used "; -SECTION_DEAD static char const* const stringBase_80373B0E = "RelUsed "; -SECTION_DEAD static char const* const stringBase_80373B18 = "/ MaxFree"; -SECTION_DEAD static char const* const stringBase_80373B22 = "/HeapSize"; -SECTION_DEAD static char const* const stringBase_80373B2C = "Blk/Bytes"; -SECTION_DEAD static char const* const stringBase_80373B36 = "ARAM Free"; -SECTION_DEAD static char const* const stringBase_80373B40 = "%d"; -SECTION_DEAD static char const* const stringBase_80373B43 = "%s"; -SECTION_DEAD static char const* const stringBase_80373B46 = " [%s]"; -SECTION_DEAD static char const* const stringBase_80373B4C = "%10d"; -#pragma pop - -/* 803A2F14-803A2F28 -00001 0014+00 0/1 0/0 0/0 .data desc1$3717 */ -#pragma push -#pragma force_active on -SECTION_DATA static char* desc1[5] = { - "", "TotalFree", "MaxUsed ", "Used ", "RelUsed ", -}; -#pragma pop - -/* 803A2F28-803A2F40 -00001 0014+04 0/1 0/0 0/0 .data desc2$3718 */ -#pragma push -#pragma force_active on -SECTION_DATA static char* desc2[5] = { - "", "/ MaxFree", "/HeapSize", "Blk/Bytes", "Blk/Bytes", -}; -#pragma pop - /* 80450580-80450584 000000 0004+00 3/3 6/6 0/0 .sdata None */ SECTION_SDATA s8 data_80450580 = 0xFF; @@ -326,10 +285,7 @@ SECTION_SDATA s8 data_80450580 = 0xFF; SECTION_SDATA u32 mDoMain::memMargin = 0xFFFFFFFF; /* 80450588-80450590 000008 0008+00 2/2 0/0 0/0 .sdata None */ -// 0x04 is mDoMain::mHeapBriefType -SECTION_SDATA static u8 data_80450588[8] = { - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +SECTION_SDATA u8 mDoMain::mHeapBriefType = 4; /* 80450B00-80450B08 000000 0008+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450B00; @@ -344,201 +300,135 @@ OSTime mDoMain::sHungUpTime; /* 80450B18 0001+00 data_80450B18 None */ /* 80450B19 0001+00 data_80450B19 None */ /* 80450B1A 0002+00 data_80450B1A None */ -static u8 struct_80450B18[2]; - -static u8 data_80450B1A; -static u8 data_80450B1B; +static bool struct_80450B18; // sDisplayHeapDebug +static u8 sDisplayHeap; +static bool sCheckHeap; /* 80005AD8-80005D4C 000418 0274+00 1/1 0/0 0/0 .text debugDisplay__Fv */ -#ifdef NONMATCHING -void debugDisplay(void) { - int tmp1; - int tmp2; +void debugDisplay() { + static char* desc1[5] = { + "", "TotalFree", "MaxUsed ", "Used ", "RelUsed ", + }; - if (struct_80450B18[1] >= 1 && struct_80450B18[1] <= 6) { - HeapCheckTable[struct_80450B18[1]]->heapDisplay(); + static char* desc2[5] = { + "", "/ MaxFree", "/HeapSize", "Blk/Bytes", "Blk/Bytes", + }; + + if (sDisplayHeap >= 1 && sDisplayHeap <= 6) { + HeapCheckTable[sDisplayHeap - 1]->heapDisplay(); } - if (data_80450588[0] == 5) { + if (mDoMain::mHeapBriefType == 5) { JKRAramHeap* heap = JKRAram::getAramHeap(); if (heap) { - JUTReport(0x1db, 100, "ARAM Free"); - JUTReport(0x1db, 0x72, "%d", heap->getFreeSize()); - JUTReport(0x1db, 0x80, "TotalFree"); - JUTReport(0x1db, 0x8e, "%d", heap->getTotalFreeSize()); + JUTReport(475, 100, "ARAM Free"); + JUTReport(475, 114, "%d", heap->getFreeSize()); + JUTReport(475, 128, "TotalFree"); + JUTReport(475, 142, "%d", heap->getTotalFreeSize()); + return; } - } else { - if (data_80450588[0] != 0) { - JUTReport(0x1db, 100, "%s", desc1[data_80450588[0]]); - JUTReport(0x1db, 0x72, "%s", lbl_803A2F28[data_80450588[0]]); - - int k = 0; - for (int i = 0; i < 8; i++, k += 0x2C) { - HeapCheck* heap_check = HeapCheckTable[i]; - - switch (data_80450588[0]) { - case 3: { - tmp1 = heap_check->getUsedCount(); - tmp2 = heap_check->getHeap()->getTotalUsedSize(); - break; - } - case 1: { - tmp1 = heap_check->getHeap()->getTotalFreeSize(); - tmp2 = heap_check->getHeap()->getFreeSize(); - break; - } - case 2: { - tmp1 = heap_check->getMaxTotalUsedSize(); - tmp2 = heap_check->getHeap()->getSize(); - break; - } - case 4: { - tmp1 = heap_check->getUsedCount() - heap_check->getUsedCountRef(); - tmp2 = heap_check->getHeap()->getTotalUsedSize() - - heap_check->getTotalUsedSizeRef(); - break; - } - - JUTReport(0x1db, k + 0x96, " [%s]", heap_check->getName()); - JUTReport(0x1db, k + 0xA4, "%10d", tmp1); - JUTReport(0x1db, k + 0xB2, "%10d", tmp2); - } + } else if (mDoMain::mHeapBriefType != 0) { + JUTReport(475, 100, "%s", desc1[mDoMain::mHeapBriefType]); + JUTReport(475, 114, "%s", desc2[mDoMain::mHeapBriefType]); + + for (int i = 0; i < 8; i++) { + HeapCheck* heap_check = HeapCheckTable[i]; + JKRExpHeap* expHeap = heap_check->getHeap(); + + s32 check1; + s32 check2; + switch (mDoMain::mHeapBriefType) { + case 1: + check1 = expHeap->getTotalFreeSize(); + check2 = expHeap->getFreeSize(); + break; + case 2: + check1 = heap_check->getMaxTotalUsedSize(); + check2 = expHeap->getHeapSize(); + break; + case 3: + check1 = heap_check->getUsedCount(); + check2 = expHeap->getTotalUsedSize(); + break; + case 4: + check1 = heap_check->getRelUsedCount(); + check2 = heap_check->getRelTotalUsedSize(); + break; } + + JUTReport(475, (i * 44) + 150, " [%s]", heap_check->getName()); + JUTReport(475, (i * 44) + 164, "%10d", check1); + JUTReport(475, (i * 44) + 178, "%10d", check2); } } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void debugDisplay() { - nofralloc -#include "asm/m_Do/m_Do_main/debugDisplay__Fv.s" -} -#pragma pop -#endif - -/* ############################################################################################## */ -/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80373B51 = "Press X+Y+START to CLEAR console."; -SECTION_DEAD static char const* const stringBase_80373B73 = "3DStick UP/Down to scroll"; -SECTION_DEAD static char const* const stringBase_80373B8D = - "Press A to output terminal from console."; -SECTION_DEAD static char const* const stringBase_80373BB6 = "SCROLL:%3d %3d %3d Output=%1x"; -SECTION_DEAD static char const* const stringBase_80373BD5 = "Press L+R trigger to control console."; -SECTION_DEAD static char const* const stringBase_80373BFB = - "Press [Z] trigger to close this window."; -#pragma pop - -/* 80450B1C-80450B20 00001C 0004+00 1/1 0/0 0/0 .sbss console_position_x$3776 */ -static f32 console_position_x; - -/* 80450B20-80450B24 000020 0004+00 1/1 0/0 0/0 .sbss None */ -static s8 data_80450B20; - -/* 80450B24-80450B28 000024 0004+00 1/1 0/0 0/0 .sbss console_position_y$3779 */ -static f32 console_position_y; - -/* 80450B28-80450B2C 000028 0004+00 1/1 0/0 0/0 .sbss None */ -static s8 data_80450B28; - -/* 80450B2C-80450B30 00002C 0004+00 1/1 0/0 0/0 .sbss console_scroll$3782 */ -static f32 console_scroll; - -/* 80450B30-80450B34 000030 0004+00 1/1 0/0 0/0 .sbss None */ -static s8 data_80450B30; - -/* 80451A00-80451A04 000000 0004+00 1/1 0/0 0/0 .sdata2 @3884 */ -SECTION_SDATA2 static f32 lit_3884 = 20.0f; - -/* 80451A04-80451A08 000004 0004+00 1/1 0/0 0/0 .sdata2 @3885 */ -SECTION_SDATA2 static f32 lit_3885 = 30.0f; - -/* 80451A08-80451A0C 000008 0004+00 1/1 0/0 0/0 .sdata2 @3886 */ -SECTION_SDATA2 static u8 lit_3886[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80451A0C-80451A10 00000C 0004+00 1/1 0/0 0/0 .sdata2 @3887 */ -SECTION_SDATA2 static f32 lit_3887 = 1.0f; - -/* 80451A10-80451A18 000010 0004+04 1/1 0/0 0/0 .sdata2 @3888 */ -SECTION_SDATA2 static f32 lit_3888[1 + 1 /* padding */] = { - -1.0f, - /* padding */ - 0.0f, -}; - -/* 80451A18-80451A20 000018 0008+00 1/1 0/0 0/0 .sdata2 @3890 */ -SECTION_SDATA2 static f64 lit_3890 = 4503601774854144.0 /* cast s32 to float */; /* 80005D4C-8000614C 00068C 0400+00 1/1 0/0 0/0 .text Debug_console__FUl */ -// middle section has lots of issues -#ifdef NONMATCHING bool Debug_console(u32 i_padNo) { - float tmp2; - float tmp3; - int tmp6; + static f32 console_position_x; + static s8 console_x_init; + + static f32 console_position_y; + static s8 console_y_init; + + static f32 console_scroll; + static s8 console_scroll_init; JUTConsole* console = JFWSystem::getSystemConsole(); if (console) { - if (!data_80450B20) { + if (!console_x_init) { console_position_x = 20.0f; - data_80450B20 = 1; + console_x_init = 1; } - if (!data_80450B28) { + if (!console_y_init) { console_position_y = 30.0f; - data_80450B28 = 1; + console_y_init = 1; } - if (!data_80450B30) { + if (!console_scroll_init) { console_scroll = 0.0f; - data_80450B30 = 1; + console_scroll_init = 1; } - if (mDoCPd_c::getTrig(i_padNo) & CButton::Z && - !(mDoCPd_c::getHold(i_padNo) & ~CButton::Z)) { - bool visible = console->isVisible() == false; - console->setVisible(visible); + if (mDoCPd_c::getTrig(i_padNo) & CButton::Z && !(mDoCPd_c::getHold(i_padNo) & ~CButton::Z)) { + console->setVisible(console->isVisible() == false); JUTAssertion::setMessageCount(0); } if (console->isVisible()) { - // if R and L are pressed - if ((mDoCPd_c::getHold(i_padNo) & CButton::L && - mDoCPd_c::getHold(i_padNo) & CButton::R) || - ((mDoCPd_c::getAnalogL(i_padNo) > 0.0f && - (0.0f > mDoCPd_c::getAnalogR(i_padNo))))) { - if (mDoCPd_c::getTrig(i_padNo) & (CButton::Y | CButton::X) && + u32 holdButtons = mDoCPd_c::getHold(i_padNo); + if ((holdButtons & CButton::L && holdButtons & CButton::R) || + ((mDoCPd_c::getAnalogL(i_padNo) > 0.0f && mDoCPd_c::getAnalogR(i_padNo) > 0.0f))) { + f32 stick_x = mDoCPd_c::getStickX(i_padNo); + f32 stick_y = mDoCPd_c::getStickY(i_padNo); + + if (holdButtons & (CButton::Y | CButton::X) && mDoCPd_c::getTrig(i_padNo) & CButton::START) { console->clear(); } if (!(mDoCPd_c::getHold(i_padNo) & (CButton::Y | CButton::X))) { - // subtract console scroll value from stick Y - console_scroll -= mDoCPd_c::getStickY(i_padNo); - int tmp; - if (1.0f <= console_scroll) { - -1.0f <= console_scroll ? tmp = 0 : tmp = -console_scroll; + console_scroll -= stick_y; + + int scrollAmount; + if (console_scroll > 1.0f) { + scrollAmount = console_scroll; + } else if (console_scroll < -1.0f) { + scrollAmount = -(int)-console_scroll; } else { - tmp = mDoCPd_c::getStickX(i_padNo) - mDoCPd_c::getStickY(i_padNo); + scrollAmount = 0; } - if (tmp) { - console_scroll -= tmp; - console->scroll(tmp); + if (scrollAmount != 0) { + console_scroll -= scrollAmount; + console->scroll(scrollAmount); } } else { if (mDoCPd_c::getHold(i_padNo) & CButton::X) { - console_position_x += mDoCPd_c::getStickX(i_padNo); + console_position_x += stick_x; } if (mDoCPd_c::getHold(i_padNo) & CButton::Y) { - console_position_y -= mDoCPd_c::getStickY(i_padNo); + console_position_y -= stick_y; } } @@ -547,54 +437,46 @@ bool Debug_console(u32 i_padNo) { console->setOutput(JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE); } - JUTReport(0x1E, 0x186, 1, "Press X+Y+START to CLEAR console."); - JUTReport(0x1E, 400, 1, "3DStick UP/Down to scroll"); - JUTReport(0x1E, 0x19A, 1, "Press A to output terminal from console."); - JUTReport(0x1E, 0x1A4, 1, "SCROLL:%3d %3d %3d Output=%1x", + JUTReport(30, 390, 1, "Press X+Y+START to CLEAR console."); + JUTReport(30, 400, 1, "3DStick UP/Down to scroll"); + JUTReport(30, 410, 1, "Press A to output terminal from console."); + JUTReport(30, 420, 1, "SCROLL:%3d %3d %3d Output=%1x", console->getLineOffset(), console->getPositionX(), console->getPositionY(), console->getOutput()); - } - } else { - if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_DOWN) { - g_HIO.mDisplayMeter ^= 1; - } + } else { + u32 pressButtons = mDoCPd_c::getTrig(i_padNo); - if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_LEFT) { - if (JKRAram::getAramHeap()) { - JKRAram::getAramHeap()->dump(); + if (pressButtons & CButton::DPAD_DOWN) { + g_HIO.mDisplayMeter ^= 1; } - dump__24DynamicModuleControlBaseFv(); - g_dComIfG_gameInfo.mResControl.dump(); - } + if (pressButtons & CButton::DPAD_LEFT) { + if (JKRAram::getAramHeap()) { + JKRAram::getAramHeap()->dump(); + } - if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_RIGHT) { - JKRHeap::getSystemHeap()->dump_sort(); - } + dump__24DynamicModuleControlBaseFv(); + g_dComIfG_gameInfo.mResControl.dump(); + } - if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_UP) { - zeldaHeap->dump_sort(); - gameHeap->dump_sort(); - archiveHeap->dump_sort(); + if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_RIGHT) { + JKRHeap::getSystemHeap()->dump_sort(); + } + + if (mDoCPd_c::getTrig(i_padNo) & CButton::DPAD_UP) { + zeldaHeap->dump_sort(); + gameHeap->dump_sort(); + archiveHeap->dump_sort(); + } + JUTReport(30, 440, 1, "Press L+R trigger to control console."); + JUTReport(30, 450, 1, "Press [Z] trigger to close this window."); } - JUTReport(0x1E, 0x1B8, 1, "Press L+R trigger to control console."); - JUTReport(0x1E, 0x1C2, 1, "Press [Z] trigger to close this window."); + console->setPosition(console_position_x, console_position_y); + return 1; } - console->setPosition(console_position_x, console_position_y); - return 1; } return 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void Debug_console(u32 param_0) { - nofralloc -#include "asm/m_Do/m_Do_main/Debug_console__FUl.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -633,25 +515,25 @@ asm void* LOAD_COPYDATE(void* param_0) { static void debug() { if (data_80450580) { - if (data_80450B1A) { - CheckHeap(2); + if (sCheckHeap) { + CheckHeap(PAD_3); } - if ((mDoCPd_c::getGamePad(2)->getButton() & ~CButton::Z) == CButton::R && - mDoCPd_c::getGamePad(2)->testTrigger(CButton::Z)) { - struct_80450B18[0] ^= 0x1; + if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::R && + mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) { + struct_80450B18 ^= 1; } - if (struct_80450B18[0]) { - if ((mDoCPd_c::getGamePad(2)->getButton() & ~CButton::Z) == CButton::L && - mDoCPd_c::getGamePad(2)->testTrigger(CButton::Z)) { - data_80450588[0] < 0x5 ? data_80450588[0]++ : data_80450588[0] = 0x1; + if (struct_80450B18) { + if ((mDoCPd_c::getGamePad(PAD_3)->getButton() & ~CButton::Z) == CButton::L && + mDoCPd_c::getGamePad(PAD_3)->testTrigger(CButton::Z)) { + mDoMain::mHeapBriefType < 5 ? mDoMain::mHeapBriefType++ : mDoMain::mHeapBriefType = 1; } debugDisplay(); } - Debug_console(2); + Debug_console(PAD_3); } } @@ -660,7 +542,7 @@ static void debug() { static u32 frame; /* 8000628C-80006454 000BCC 01C8+00 1/1 0/0 0/0 .text main01__Fv */ -// almost +// only issue is output check section with weird code gen #ifdef NONMATCHING void main01(void) { mDoMch_Create__Fv(); @@ -708,18 +590,18 @@ void main01(void) { } JUTConsole* console = JFWSystem::getSystemConsole(); - u32 output = JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE; + s32 output = 0; if (data_80450580 != 0) { - data_80450580 = JUTConsole::OUTPUT_NONE; + output = JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE; } - console->setOutput(output); + console->setOutput(output); console->setPosition(32, 42); mDoDvdThd_callback_c::create(LOAD_COPYDATE, NULL); fapGm_Create__Fv(); fopAcM_initManager__Fv(); - struct_80450B18[0] = 0; + struct_80450B18 = 0; cDyl_InitAsync__Fv(); g_mDoAud_audioHeap = JKRSolidHeap::create(0x14D800, JKRHeap::getCurrentHeap(), false); @@ -761,7 +643,7 @@ static OSThread mainThread; /* 80006454-800065D8 000D94 0184+00 0/0 1/1 0/0 .text main */ void main() { OSThread* current_thread = OSGetCurrentThread(); - u8* stack = &mainThreadStack[0]; + u8* stack = mainThreadStack; mDoMain::sPowerOnTime = OSGetTime(); OSReportInit(); version_check(); @@ -795,7 +677,7 @@ void main() { data_80450580 = 1; } else if (disk_id->game_version > 0x80) { u32 consoleType = OSGetConsoleType(); - data_80450580 = (consoleType >> 0x1c) & 1; + data_80450580 = (consoleType >> 0x1C) & 1; } else { data_80450580 = 0; } |
