2023-01-15 22:38:54 +01:00
|
|
|
#include "dolphin/dvd.h"
|
|
|
|
|
#include "dolphin/gx.h"
|
|
|
|
|
#include "dolphin/os.h"
|
2023-01-02 21:37:12 +01:00
|
|
|
#include "JSystem/JKernel/JKRAram.h"
|
|
|
|
|
#include "JSystem/JKernel/JKRHeap.h"
|
|
|
|
|
#include "JSystem/JKernel/JKRExpHeap.h"
|
|
|
|
|
#include "JSystem/JKernel/JKRThread.h"
|
|
|
|
|
#include "JSystem/JUtility/JUTConsole.h"
|
2023-01-19 16:44:46 +01:00
|
|
|
#include "JSystem/JUtility/JUTDbg.h"
|
2023-01-02 21:37:12 +01:00
|
|
|
#include "JSystem/JUtility/JUTDbPrint.h"
|
|
|
|
|
#include "JSystem/JUtility/JUTDirectPrint.h"
|
|
|
|
|
#include "JSystem/JUtility/JUTException.h"
|
|
|
|
|
#include "JSystem/JUtility/JUTFont.h"
|
|
|
|
|
#include "JSystem/JUtility/JUTGamePad.h"
|
|
|
|
|
#include "JSystem/JUtility/JUTGraphFifo.h"
|
|
|
|
|
#include "JSystem/JUtility/JUTVideo.h"
|
2023-01-15 22:38:54 +01:00
|
|
|
#include "JSystem/JFramework/JFWSystem.h"
|
2023-01-02 21:37:12 +01:00
|
|
|
|
2023-02-01 22:09:52 +01:00
|
|
|
int JFWSystem::CSetUpParam::maxStdHeaps = 2;
|
2023-01-02 21:37:12 +01:00
|
|
|
u32 JFWSystem::CSetUpParam::sysHeapSize = 0x400000;
|
|
|
|
|
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;
|
2023-11-02 23:39:09 +01:00
|
|
|
const ResFONT *JFWSystem::CSetUpParam::systemFontRes = &JUTResFONT_Ascfont_fix12;
|
2023-02-01 22:09:52 +01:00
|
|
|
const _GXRenderModeObj *JFWSystem::CSetUpParam::renderMode = &GXNtsc480IntDf;
|
2023-01-02 21:37:12 +01:00
|
|
|
u32 JFWSystem::CSetUpParam::exConsoleBufferSize = 0x24FC;
|
|
|
|
|
|
|
|
|
|
JKRHeap *JFWSystem::rootHeap;
|
|
|
|
|
JKRHeap *JFWSystem::systemHeap;
|
|
|
|
|
JKRThread *JFWSystem::mainThread;
|
|
|
|
|
JUTDbPrint *JFWSystem::debugPrint;
|
|
|
|
|
JUTFont *JFWSystem::systemFont;
|
|
|
|
|
JUTConsoleManager *JFWSystem::systemConsoleManager;
|
|
|
|
|
JUTConsole *JFWSystem::systemConsole;
|
|
|
|
|
bool JFWSystem::sInitCalled;
|
|
|
|
|
|
|
|
|
|
void JFWSystem::firstInit()
|
|
|
|
|
{
|
2023-06-02 15:10:16 +02:00
|
|
|
#line 80
|
|
|
|
|
JUT_ASSERT(rootHeap == 0);
|
2023-01-02 21:37:12 +01:00
|
|
|
OSInit();
|
|
|
|
|
DVDInit();
|
|
|
|
|
rootHeap = JKRExpHeap::createRoot(CSetUpParam::maxStdHeaps, false);
|
|
|
|
|
systemHeap = JKRExpHeap::create(CSetUpParam::sysHeapSize, rootHeap, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void JFWSystem::init()
|
|
|
|
|
{
|
2023-06-02 15:10:16 +02:00
|
|
|
#line 101
|
|
|
|
|
JUT_ASSERT(sInitCalled == false);
|
2023-01-15 17:31:31 +01:00
|
|
|
|
2023-01-02 21:37:12 +01:00
|
|
|
if (rootHeap == 0)
|
|
|
|
|
firstInit();
|
|
|
|
|
|
|
|
|
|
sInitCalled = true;
|
|
|
|
|
JKRAram::create(CSetUpParam::aramAudioBufSize, CSetUpParam::aramGraphBufSize, CSetUpParam::streamPriority, CSetUpParam::decompPriority,
|
|
|
|
|
CSetUpParam::aPiecePriority);
|
|
|
|
|
|
|
|
|
|
mainThread = new JKRThread(OSGetCurrentThread(), 4);
|
|
|
|
|
JUTVideo::createManager(CSetUpParam::renderMode);
|
2023-02-06 17:01:01 +01:00
|
|
|
JUTCreateFifo(CSetUpParam::fifoBufSize);
|
2023-01-02 21:37:12 +01:00
|
|
|
JUTGamePad::init();
|
|
|
|
|
JUTDirectPrint *directPrint = JUTDirectPrint::start();
|
|
|
|
|
JUTAssertion::create();
|
|
|
|
|
JUTException::create(directPrint);
|
|
|
|
|
systemFont = new JUTResFont(CSetUpParam::systemFontRes, nullptr);
|
|
|
|
|
debugPrint = JUTDbPrint::start(nullptr, nullptr);
|
|
|
|
|
debugPrint->changeFont(systemFont);
|
|
|
|
|
systemConsoleManager = JUTConsoleManager::createManager(nullptr);
|
|
|
|
|
systemConsole = JUTConsole::create(60, 200, nullptr);
|
|
|
|
|
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 *mem = systemHeap->alloc(CSetUpParam::exConsoleBufferSize, 4);
|
|
|
|
|
JUTException::createConsole(mem, CSetUpParam::exConsoleBufferSize);
|
|
|
|
|
}
|