summaryrefslogtreecommitdiff
path: root/src/JSystem/JFramework/JFWSystem.cpp
diff options
context:
space:
mode:
authorSuperDude88 <82904174+SuperDude88@users.noreply.github.com>2023-09-10 18:35:46 -0400
committerSuperDude88 <82904174+SuperDude88@users.noreply.github.com>2023-09-10 18:35:46 -0400
commit37e0ee5732d6c3b090f3c59038633a2e4c1de1f4 (patch)
tree5738b634be1fbf71098125f6ec310497c8977572 /src/JSystem/JFramework/JFWSystem.cpp
parentef45f47306641870607b73c29faf9f92a84eb62e (diff)
JFramework
Match most of JFramework
Diffstat (limited to 'src/JSystem/JFramework/JFWSystem.cpp')
-rw-r--r--src/JSystem/JFramework/JFWSystem.cpp92
1 files changed, 89 insertions, 3 deletions
diff --git a/src/JSystem/JFramework/JFWSystem.cpp b/src/JSystem/JFramework/JFWSystem.cpp
index 3528170a..4ba5d809 100644
--- a/src/JSystem/JFramework/JFWSystem.cpp
+++ b/src/JSystem/JFramework/JFWSystem.cpp
@@ -4,14 +4,100 @@
//
#include "JSystem/JFramework/JFWSystem.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/JKernel/JKRAram.h"
+#include "JSystem/JUtility/JUTAssert.h"
+#include "JSystem/JUtility/JUTVideo.h"
+#include "JSystem/JUtility/JUTGraphFifo.h"
+#include "JSystem/JUtility/JUTGamePad.h"
+#include "JSystem/JUtility/JUTDirectPrint.h"
+#include "JSystem/JUtility/JUTException.h"
+#include "JSystem/JUtility/JUTResFont.h"
+#include "JSystem/JUtility/JUTDbPrint.h"
+#include "JSystem/JUtility/JUTConsole.h"
+#include "dolphin/os/OS.h"
+#include "dolphin/dvd/dvd.h"
+#include "dolphin/gx/GXFrameBuf.h"
#include "dolphin/types.h"
-/* 80254DD0-80254E54 .text firstInit__9JFWSystemFv */
+s32 JFWSystem::CSetUpParam::maxStdHeaps = 2;
+u32 JFWSystem::CSetUpParam::sysHeapSize = 0x400000;
+u32 JFWSystem::CSetUpParam::fifoBufSize = 0x40000;
+u32 JFWSystem::CSetUpParam::aramAudioBufSize = 0x800000;
+u32 JFWSystem::CSetUpParam::aramGraphBufSize = 0x600000;
+u32 JFWSystem::CSetUpParam::streamPriority = 8;
+u32 JFWSystem::CSetUpParam::decompPriority = 7;
+u32 JFWSystem::CSetUpParam::aPiecePriority = 6;
+ResFONT* JFWSystem::CSetUpParam::systemFontRes = (ResFONT*)0x8036CA40; //using JUTResFONT_Ascfont_fix12 makes the pointer null
+GXRenderModeObj* JFWSystem::CSetUpParam::renderMode = (GXRenderModeObj*)0x803A1AB8; //using GXNtsc480IntDf makes the pointer null
+u32 JFWSystem::CSetUpParam::exConsoleBufferSize = 0x24F8;
+
+JKRExpHeap* JFWSystem::rootHeap = 0;
+JKRExpHeap* JFWSystem::systemHeap = 0;
+JKRThread* JFWSystem::mainThread = 0;
+JUTDbPrint* JFWSystem::debugPrint = 0;
+JUTResFont* JFWSystem::systemFont = 0;
+JUTConsoleManager* JFWSystem::systemConsoleManager = 0;
+JUTConsole* JFWSystem::systemConsole = 0;
+bool JFWSystem::sInitCalled = false;
+
void JFWSystem::firstInit() {
- /* Nonmatching */
+ JUT_ASSERT(80, rootHeap == 0);
+
+ OSInit();
+ DVDInit();
+ rootHeap = JKRExpHeap::createRoot(CSetUpParam::maxStdHeaps, false);
+ systemHeap = JKRExpHeap::create(CSetUpParam::sysHeapSize, rootHeap, false);
+
+ return;
}
-/* 80254E54-802551C0 .text init__9JFWSystemFv */
void JFWSystem::init() {
/* Nonmatching */
+ JUT_ASSERT(101, sInitCalled == false);
+
+ 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);
+ JUTCreateFifo(CSetUpParam::fifoBufSize);
+
+ JUTGamePad::init();
+
+ JUTDirectPrint* dirPrint = JUTDirectPrint::start();
+ JUTAssertion::create();
+ JUTException::create(dirPrint);
+
+ systemFont = new JUTResFont(CSetUpParam::systemFontRes, 0);
+
+ debugPrint = JUTDbPrint::start(0, 0);
+ debugPrint->changeFont(systemFont);
+
+ systemConsoleManager = JUTConsoleManager::createManager(0);
+ systemConsole = JUTConsole::create(0x3C, 200, 0);
+ systemConsole->setFont(systemFont);
+ if(CSetUpParam::renderMode->efb_height < 300) {
+ systemConsole->setFontSize(systemFont->getWidth() * 0.85f, systemFont->getHeight() * 0.5f);
+ systemConsole->setPosition(20, 25);
+ }
+ else {
+ systemConsole->setFontSize(systemFont->getWidth() * 0.85f, systemFont->getHeight());
+ systemConsole->setPosition(20, 50);
+ }
+ systemConsole->setHeight(25);
+ systemConsole->setVisible(false);
+ systemConsole->setOutput(3);
+ JUTSetReportConsole(systemConsole);
+ JUTSetWarningConsole(systemConsole);
+
+ void* buf = systemHeap->alloc(CSetUpParam::exConsoleBufferSize, 4);
+ JUTException::createConsole(buf, CSetUpParam::exConsoleBufferSize);
+
+ return;
}