From 9649319ec4926457ef85e6094f8207474c977c2d Mon Sep 17 00:00:00 2001 From: Luke Street Date: Sun, 1 Mar 2026 15:35:36 -0700 Subject: Reorganize library code into `libs/` (#3119) * Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN} * Update configure.py and project.py for new libs structure * Refactor `#include ` -> `` * Remove `__REVOLUTION_SDK__` forwards from dolphin * Fix dolphin/ references in revolution * Wrap `#include ` in `!__REVOLUTION_SDK__` * Always build TRK against dolphin headers * Resolve revolution SDK header resolution issues --- libs/JSystem/src/JFramework/JFWSystem.cpp | 113 ++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 libs/JSystem/src/JFramework/JFWSystem.cpp (limited to 'libs/JSystem/src/JFramework/JFWSystem.cpp') diff --git a/libs/JSystem/src/JFramework/JFWSystem.cpp b/libs/JSystem/src/JFramework/JFWSystem.cpp new file mode 100644 index 0000000000..c41f7ffc8f --- /dev/null +++ b/libs/JSystem/src/JFramework/JFWSystem.cpp @@ -0,0 +1,113 @@ +#include "JSystem/JSystem.h" // IWYU pragma: keep + +#include "JSystem/JFramework/JFWSystem.h" +#include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/JUtility/JUTConsole.h" +#include "JSystem/JUtility/JUTGraphFifo.h" +#include "JSystem/JKernel/JKRAram.h" +#include "JSystem/JUtility/JUTVideo.h" +#include "JSystem/JUtility/JUTGamePad.h" +#include "JSystem/JUtility/JUTDirectPrint.h" +#include "JSystem/JUtility/JUTAssert.h" +#include "JSystem/JUtility/JUTException.h" +#include "JSystem/JUtility/JUTResFont.h" +#include "JSystem/JUtility/JUTDbPrint.h" + +s32 JFWSystem::CSetUpParam::maxStdHeaps = 2; + +u32 JFWSystem::CSetUpParam::sysHeapSize = 0x400000; + +JKRExpHeap* JFWSystem::rootHeap; + +JKRExpHeap* JFWSystem::systemHeap; + + +u32 JFWSystem::CSetUpParam::fifoBufSize = 0x40000; + +u32 JFWSystem::CSetUpParam::aramAudioBufSize = 0x800000; + +u32 JFWSystem::CSetUpParam::aramGraphBufSize = 0x600000; + +s32 JFWSystem::CSetUpParam::streamPriority = 8; + +s32 JFWSystem::CSetUpParam::decompPriority = 7; + +s32 JFWSystem::CSetUpParam::aPiecePriority = 6; + +ResFONT* JFWSystem::CSetUpParam::systemFontRes = (ResFONT*)&JUTResFONT_Ascfont_fix12; + +const GXRenderModeObj* JFWSystem::CSetUpParam::renderMode = &GXNtsc480IntDf; + +u32 JFWSystem::CSetUpParam::exConsoleBufferSize = 0x24FC; + +void JFWSystem::firstInit() { + JUT_ASSERT(80, rootHeap == NULL); + OSInit(); + DVDInit(); + rootHeap = JKRExpHeap::createRoot(CSetUpParam::maxStdHeaps, false); + systemHeap = JKRExpHeap::create(CSetUpParam::sysHeapSize, rootHeap, false); +} + +JKRThread* JFWSystem::mainThread; + +JUTDbPrint* JFWSystem::debugPrint; + +JUTResFont* JFWSystem::systemFont; + +JUTConsoleManager* JFWSystem::systemConsoleManager; + +JUTConsole* JFWSystem::systemConsole; + +bool JFWSystem::sInitCalled = false; + +void JFWSystem::init() { + JUT_ASSERT(101, sInitCalled == false); + + if (rootHeap == NULL) { + firstInit(); + } + sInitCalled = true; + + JKRAram::create(CSetUpParam::aramAudioBufSize, CSetUpParam::aramGraphBufSize, + CSetUpParam::streamPriority, CSetUpParam::decompPriority, + CSetUpParam::aPiecePriority); + mainThread = new JKRThread(OSGetCurrentThread(), 4); + + JUTVideo::createManager(CSetUpParam::renderMode); + JUTCreateFifo(CSetUpParam::fifoBufSize); + + JUTGamePad::init(); + + JUTDirectPrint* dbPrint = JUTDirectPrint::start(); + + JUTAssertion::create(); + + JUTException::create(dbPrint); + + systemFont = new JUTResFont(CSetUpParam::systemFontRes, NULL); + + debugPrint = JUTDbPrint::start(NULL, NULL); + debugPrint->changeFont(systemFont); + + systemConsoleManager = JUTConsoleManager::createManager(NULL); + + systemConsole = JUTConsole::create(60, 200, NULL); + systemConsole->setFont(systemFont); + + if (CSetUpParam::renderMode->efbHeight < 300) { + systemConsole->setFontSize(systemFont->getWidth() * 0.85f, systemFont->getHeight() * 0.5f); + systemConsole->setPosition(20, 25); + } else { + systemConsole->setFontSize(systemFont->getWidth(), systemFont->getHeight()); + systemConsole->setPosition(20, 50); + } + + systemConsole->setHeight(25); + systemConsole->setVisible(false); + systemConsole->setOutput(JUTConsole::OUTPUT_OSREPORT | JUTConsole::OUTPUT_CONSOLE); + JUTSetReportConsole(systemConsole); + JUTSetWarningConsole(systemConsole); + + void* buffer = systemHeap->alloc(CSetUpParam::exConsoleBufferSize, 4); + JUTException::createConsole(buffer, CSetUpParam::exConsoleBufferSize); +} -- cgit v1.2.3