mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-04 00:38:59 -04:00
various matches / cleanup (#2271)
* cleanup various TUs * checkpoint * d_attention doc
This commit is contained in:
@@ -9,6 +9,9 @@
|
||||
#include "JSystem/JUtility/JUTDirectPrint.h"
|
||||
#include "stdio.h"
|
||||
|
||||
/* 804508F8-80450900 000378 0008+00 0/0 3/3 0/0 .sdata None */
|
||||
bool sAssertVisible = true;
|
||||
|
||||
namespace JUTAssertion {
|
||||
|
||||
/* 802E495C-802E4960 2DF29C 0004+00 0/0 1/1 0/0 .text create__12JUTAssertionFv */
|
||||
@@ -222,4 +225,4 @@ void setMessageCount(int msg_count) {
|
||||
sMessageLife = msg_count <= 0 ? 0 : msg_count;
|
||||
}
|
||||
|
||||
}; // namespace JUTAssertion
|
||||
}; // namespace JUTAssertion
|
||||
|
||||
@@ -1,118 +1,44 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: JUTConsole
|
||||
//
|
||||
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "JSystem/J2DGraph/J2DOrthoGraph.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "JSystem/JUtility/JUTDirectPrint.h"
|
||||
#include "JSystem/JUtility/JUTVideo.h"
|
||||
#include "dol2asm.h"
|
||||
#include "stdio.h"
|
||||
#include <stdio.h>
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void create__10JUTConsoleFUiUiP7JKRHeap();
|
||||
extern "C" void create__10JUTConsoleFUiPvUl();
|
||||
extern "C" void __ct__10JUTConsoleFUiUib();
|
||||
extern "C" void __dt__10JUTConsoleFv();
|
||||
extern "C" void getObjectSizeFromBufferSize__10JUTConsoleFUiUi();
|
||||
extern "C" void getLineFromObjectSize__10JUTConsoleFUlUi();
|
||||
extern "C" void clear__10JUTConsoleFv();
|
||||
extern "C" void doDraw__10JUTConsoleCFQ210JUTConsole12EConsoleType();
|
||||
extern "C" void print_f__10JUTConsoleFPCce();
|
||||
extern "C" void print__10JUTConsoleFPCc();
|
||||
extern "C" void dumpToTerminal__10JUTConsoleFUi();
|
||||
extern "C" void scroll__10JUTConsoleFi();
|
||||
extern "C" void getUsedLine__10JUTConsoleCFv();
|
||||
extern "C" void getLineOffset__10JUTConsoleCFv();
|
||||
extern "C" void __ct__17JUTConsoleManagerFv();
|
||||
extern "C" void createManager__17JUTConsoleManagerFP7JKRHeap();
|
||||
extern "C" void appendConsole__17JUTConsoleManagerFP10JUTConsole();
|
||||
extern "C" void removeConsole__17JUTConsoleManagerFP10JUTConsole();
|
||||
extern "C" void draw__17JUTConsoleManagerCFv();
|
||||
extern "C" void drawDirect__17JUTConsoleManagerCFb();
|
||||
extern "C" void setDirectConsole__17JUTConsoleManagerFP10JUTConsole();
|
||||
extern "C" void JUTReportConsole(const char* message);
|
||||
extern "C" void JUTWarningConsole_f(const char* fmt, ...);
|
||||
extern "C" void JUTWarningConsole(const char*);
|
||||
extern "C" extern char const* const JUTConsole__stringBase0;
|
||||
extern "C" u8 sManager__17JUTConsoleManager[4];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void alloc__7JKRHeapFUliP7JKRHeap();
|
||||
extern "C" void* __nw__FUlP7JKRHeapi();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __ct__11JKRDisposerFv();
|
||||
extern "C" void __dt__11JKRDisposerFv();
|
||||
extern "C" void
|
||||
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
|
||||
extern "C" void Remove__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode();
|
||||
extern "C" void setCharColor__7JUTFontFQ28JUtility6TColor();
|
||||
extern "C" void drawString_size_scale__7JUTFontFffffPCcUlb();
|
||||
extern "C" void erase__14JUTDirectPrintFiiii();
|
||||
extern "C" void drawString__14JUTDirectPrintFUsUsPc();
|
||||
extern "C" void setCharColor__14JUTDirectPrintFQ28JUtility6TColor();
|
||||
extern "C" void __ct__13J2DOrthoGraphFffffff();
|
||||
extern "C" void setPort__13J2DOrthoGraphFv();
|
||||
extern "C" void J2DFillBox__FffffQ28JUtility6TColor();
|
||||
extern "C" u32 VIGetRetraceCount();
|
||||
extern "C" void _savegpr_20();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_20();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* __vt__14J2DGrafContext[10];
|
||||
extern "C" extern void* __vt__13J2DOrthoGraph[10];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
extern "C" u8 sDirectPrint__14JUTDirectPrint[4 + 4 /* padding */];
|
||||
extern "C" u8 sManager__8JUTVideo[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451570-80451574 000A70 0004+00 4/4 7/7 0/0 .sbss sManager__17JUTConsoleManager */
|
||||
JUTConsoleManager* JUTConsoleManager::sManager;
|
||||
|
||||
/* 802E7354-802E73E4 2E1C94 0090+00 0/0 1/1 0/0 .text create__10JUTConsoleFUiUiP7JKRHeap
|
||||
*/
|
||||
JUTConsole* JUTConsole::create(unsigned int param_0, unsigned int maxLines, JKRHeap* p_heap) {
|
||||
JUTConsoleManager* pManager = JUTConsoleManager::sManager;
|
||||
JUTConsole* JUTConsole::create(unsigned int param_0, unsigned int maxLines, JKRHeap* pHeap) {
|
||||
JUTConsoleManager* pManager = JUTConsoleManager::getManager();
|
||||
JUT_ASSERT(33, pManager != 0);
|
||||
|
||||
void* buffer = JKRHeap::alloc(getObjectSizeFromBufferSize(param_0, maxLines), 0, p_heap);
|
||||
u8* tmpBuf = (u8*)buffer;
|
||||
u8* buffer = (u8*)JKRAllocFromHeap(pHeap, getObjectSizeFromBufferSize(param_0, maxLines), 0);
|
||||
|
||||
JUTConsole* newConsole = new (tmpBuf) JUTConsole(param_0, maxLines, true);
|
||||
newConsole->mBuf = tmpBuf + sizeof(JUTConsole);
|
||||
newConsole->clear();
|
||||
JUTConsole* console = new (buffer) JUTConsole(param_0, maxLines, true);
|
||||
console->mBuf = buffer + sizeof(JUTConsole);
|
||||
console->clear();
|
||||
|
||||
pManager->appendConsole(newConsole);
|
||||
return newConsole;
|
||||
pManager->appendConsole(console);
|
||||
return console;
|
||||
}
|
||||
|
||||
/* 802E73E4-802E746C 2E1D24 0088+00 0/0 1/1 0/0 .text create__10JUTConsoleFUiPvUl */
|
||||
JUTConsole* JUTConsole::create(unsigned int param_0, void* buffer, u32 bufferSize) {
|
||||
JUTConsoleManager* pManager = JUTConsoleManager::sManager;
|
||||
JUTConsoleManager* pManager = JUTConsoleManager::getManager();
|
||||
JUT_ASSERT(59, pManager != 0);
|
||||
|
||||
JUT_ASSERT(62, ( (u32)buffer & 0x3 ) == 0);
|
||||
u32 maxLines = getLineFromObjectSize(bufferSize, param_0);
|
||||
|
||||
JUTConsole* newConsole = new (buffer) JUTConsole(param_0, maxLines, false);
|
||||
newConsole->mBuf = (u8*)buffer + sizeof(JUTConsole);
|
||||
newConsole->clear();
|
||||
JUTConsole* console = new (buffer) JUTConsole(param_0, maxLines, false);
|
||||
console->mBuf = (u8*)buffer + sizeof(JUTConsole);
|
||||
console->clear();
|
||||
|
||||
pManager->appendConsole(newConsole);
|
||||
return newConsole;
|
||||
pManager->appendConsole(console);
|
||||
return console;
|
||||
}
|
||||
|
||||
/* 802E746C-802E755C 2E1DAC 00F0+00 2/2 0/0 0/0 .text __ct__10JUTConsoleFUiUib */
|
||||
@@ -143,6 +69,7 @@ JUTConsole::JUTConsole(unsigned int param_0, unsigned int maxLines, bool param_2
|
||||
|
||||
/* 802E755C-802E75CC 2E1E9C 0070+00 1/0 0/0 0/0 .text __dt__10JUTConsoleFv */
|
||||
JUTConsole::~JUTConsole() {
|
||||
JUT_ASSERT(154, JUTConsoleManager::getManager());
|
||||
JUTConsoleManager::getManager()->removeConsole(this);
|
||||
}
|
||||
|
||||
@@ -167,6 +94,7 @@ void JUTConsole::clear() {
|
||||
for (u32 i = 0; i < mMaxLines; i++) {
|
||||
setLineAttr(i, 0);
|
||||
}
|
||||
|
||||
setLineAttr(0, -1);
|
||||
*getLinePtr(0) = 0;
|
||||
}
|
||||
@@ -330,6 +258,8 @@ void JUTConsole::print(char const* str) {
|
||||
|
||||
/* 802E7F30-802E7F7C 2E2870 004C+00 1/1 1/1 0/0 .text JUTConsole_print_f_va_ */
|
||||
extern "C" void JUTConsole_print_f_va_(JUTConsole* console, const char* fmt, va_list args) {
|
||||
JUT_ASSERT(563, console!=0);
|
||||
|
||||
char buf[1024];
|
||||
vsnprintf(buf, sizeof(buf), fmt, args);
|
||||
console->print(buf);
|
||||
@@ -427,8 +357,10 @@ JUTConsoleManager::JUTConsoleManager() {
|
||||
/* 802E81F4-802E8240 2E2B34 004C+00 0/0 1/1 0/0 .text createManager__17JUTConsoleManagerFP7JKRHeap
|
||||
*/
|
||||
JUTConsoleManager* JUTConsoleManager::createManager(JKRHeap* pHeap) {
|
||||
JUT_ASSERT(0x39c, sManager == 0);
|
||||
|
||||
if (pHeap == NULL) {
|
||||
pHeap = JKRHeap::sCurrentHeap;
|
||||
pHeap = JKRGetCurrentHeap();
|
||||
}
|
||||
|
||||
JUTConsoleManager* manager = new (pHeap, 0) JUTConsoleManager();
|
||||
@@ -440,6 +372,8 @@ JUTConsoleManager* JUTConsoleManager::createManager(JKRHeap* pHeap) {
|
||||
* appendConsole__17JUTConsoleManagerFP10JUTConsole */
|
||||
void JUTConsoleManager::appendConsole(JUTConsole* console) {
|
||||
JUT_ASSERT(961, sManager != 0 && console != 0);
|
||||
|
||||
JUT_ASSERT(964, soLink_.Find( console ) == soLink_.end());
|
||||
soLink_.Push_back(console);
|
||||
|
||||
if (mActiveConsole == NULL) {
|
||||
@@ -470,8 +404,6 @@ void JUTConsoleManager::removeConsole(JUTConsole* console) {
|
||||
}
|
||||
|
||||
/* 802E8384-802E8450 2E2CC4 00CC+00 0/0 1/1 0/0 .text draw__17JUTConsoleManagerCFv */
|
||||
// missing stack var, different from tww/pik2
|
||||
#ifdef NONMATCHING
|
||||
void JUTConsoleManager::draw() const {
|
||||
ConsoleList::const_iterator iter = soLink_.begin();
|
||||
ConsoleList::const_iterator end = soLink_.end();
|
||||
@@ -485,11 +417,6 @@ void JUTConsoleManager::draw() const {
|
||||
if (mActiveConsole != NULL)
|
||||
mActiveConsole->doDraw(JUTConsole::CONSOLE_TYPE_0);
|
||||
}
|
||||
#else
|
||||
void JUTConsoleManager::draw() const {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 802E8450-802E84C4 2E2D90 0074+00 0/0 5/5 0/0 .text drawDirect__17JUTConsoleManagerCFb
|
||||
*/
|
||||
@@ -510,24 +437,23 @@ void JUTConsoleManager::drawDirect(bool waitRetrace) const {
|
||||
|
||||
/* 802E84C4-802E8520 2E2E04 005C+00 0/0 2/2 0/0 .text
|
||||
* setDirectConsole__17JUTConsoleManagerFP10JUTConsole */
|
||||
void JUTConsoleManager::setDirectConsole(JUTConsole* p_console) {
|
||||
void JUTConsoleManager::setDirectConsole(JUTConsole* console) {
|
||||
if (mDirectConsole != NULL) {
|
||||
appendConsole(mDirectConsole);
|
||||
}
|
||||
|
||||
if (p_console != NULL) {
|
||||
removeConsole(p_console);
|
||||
if (console != NULL) {
|
||||
removeConsole(console);
|
||||
}
|
||||
mDirectConsole = p_console;
|
||||
mDirectConsole = console;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451574-80451578 000A74 0004+00 2/1 0/0 0/0 .sbss sReportConsole */
|
||||
static JUTConsole* sReportConsole;
|
||||
|
||||
/* 802E8520-802E8528 2E2E60 0008+00 1/1 1/1 0/0 .text JUTSetReportConsole */
|
||||
extern "C" void JUTSetReportConsole(JUTConsole* p_console) {
|
||||
sReportConsole = p_console;
|
||||
extern "C" void JUTSetReportConsole(JUTConsole* console) {
|
||||
sReportConsole = console;
|
||||
}
|
||||
|
||||
/* 802E8528-802E8530 -00001 0008+00 0/0 0/0 0/0 .text JUTGetReportConsole */
|
||||
@@ -535,13 +461,12 @@ extern "C" JUTConsole* JUTGetReportConsole() {
|
||||
return sReportConsole;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451578-80451580 000A78 0004+04 2/1 0/0 0/0 .sbss sWarningConsole */
|
||||
static JUTConsole* sWarningConsole;
|
||||
|
||||
/* 802E8530-802E8538 2E2E70 0008+00 1/1 1/1 0/0 .text JUTSetWarningConsole */
|
||||
extern "C" void JUTSetWarningConsole(JUTConsole* p_console) {
|
||||
sWarningConsole = p_console;
|
||||
extern "C" void JUTSetWarningConsole(JUTConsole* console) {
|
||||
sWarningConsole = console;
|
||||
}
|
||||
|
||||
/* 802E8538-802E8540 -00001 0008+00 0/0 0/0 0/0 .text JUTGetWarningConsole */
|
||||
@@ -571,18 +496,10 @@ extern "C" void JUTReportConsole_f(const char* fmt, ...) {
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039D9A8-8039D9A8 02A008 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039D9B7 =
|
||||
"\n:::dump of console[%x]----------------\n";
|
||||
SECTION_DEAD static char const* const stringBase_8039D9E0 =
|
||||
":::dump of console[%x] END------------\n";
|
||||
SECTION_DEAD static char const* const stringBase_8039DA08 = "%s";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8039DA0B = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
|
||||
#pragma pop
|
||||
static void dummyString() {
|
||||
DEAD_STRING("\n:::dump of console[%x]----------------\n");
|
||||
DEAD_STRING(":::dump of console[%x] END------------\n");
|
||||
}
|
||||
|
||||
/* 802E8648-802E867C 2E2F88 0034+00 0/0 6/6 0/0 .text JUTReportConsole */
|
||||
void JUTReportConsole(const char* message) {
|
||||
@@ -614,4 +531,4 @@ void JUTWarningConsole_f(const char* fmt, ...) {
|
||||
/* 802E86FC-802E8730 2E303C 0034+00 0/0 2/2 0/0 .text JUTWarningConsole */
|
||||
void JUTWarningConsole(const char* message) {
|
||||
JUTReportConsole_f("%s", message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,69 +6,20 @@
|
||||
#include "JSystem/JUtility/JUTException.h"
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "JSystem/JUtility/JUTDirectPrint.h"
|
||||
#include "math.h"
|
||||
#include "stdio.h"
|
||||
#include "stdlib.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/base/PPCArch.h"
|
||||
#include "dolphin/os.h"
|
||||
#include "global.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void run__12JUTExceptionFv();
|
||||
extern "C" void __dt__12JUTExceptionFv();
|
||||
extern "C" void printContext__12JUTExceptionFUsP9OSContextUlUl();
|
||||
extern "C" void createFB__12JUTExceptionFv();
|
||||
extern "C" void panic_f_va__12JUTExceptionFPCciPCcP16__va_list_struct();
|
||||
|
||||
extern "C" extern char const* const JUTException__stringBase0;
|
||||
extern "C" u8 sMessageQueue__12JUTException[32];
|
||||
extern "C" u8 sMessageBuffer__12JUTException[4 + 4 /* padding */];
|
||||
extern "C" u8 sErrorManager__12JUTException[4];
|
||||
|
||||
extern "C" u8 msr__12JUTException[4];
|
||||
extern "C" u8 fpscr__12JUTException[4];
|
||||
extern "C" u8 sPreUserCallback__12JUTException[4];
|
||||
extern "C" u8 sConsole__12JUTException[4];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void changeFrameBuffer__14JUTDirectPrintFPvUsUs();
|
||||
extern "C" void _savegpr_25();
|
||||
extern "C" void _restgpr_25();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void OSYieldThread();
|
||||
extern "C" void OSFillFPUContext(OSContext*);
|
||||
extern "C" void print_f__10JUTConsoleFPCce();
|
||||
extern "C" OSContext* OSGetCurrentContext();
|
||||
extern "C" extern _GXRenderModeObj GXNtsc480Int;
|
||||
extern "C" void _restgpr_16();
|
||||
extern "C" void fopen__13JUTDirectFileFPCc();
|
||||
extern "C" void fclose__13JUTDirectFileFv();
|
||||
extern "C" void fgets__13JUTDirectFileFPvi();
|
||||
extern "C" void print__10JUTConsoleFPCc();
|
||||
extern "C" void __ct__13JUTDirectFileFv();
|
||||
extern "C" void __dt__13JUTDirectFileFv();
|
||||
extern "C" void _savegpr_16();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#include "JSystem/JUtility/JUTDirectFile.h"
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <dolphin.h>
|
||||
|
||||
/* 803CC620-803CC640 029740 0020+00 3/3 0/0 0/0 .data sMessageQueue__12JUTException */
|
||||
SECTION_DATA OSMessageQueue JUTException::sMessageQueue = {0};
|
||||
OSMessageQueue JUTException::sMessageQueue = {0};
|
||||
|
||||
/* 803CC640-803CC660 029760 0020+00 1/1 0/0 0/0 .data c3bcnt */
|
||||
SECTION_DATA static OSTime c3bcnt[4] = {0, 0, 0, 0};
|
||||
static OSTime c3bcnt[4] = {0, 0, 0, 0};
|
||||
|
||||
/* 803CC660-803CC6A4 -00001 0044+00 1/1 0/0 0/0 .data sCpuExpName__12JUTException */
|
||||
SECTION_DATA const char* JUTException::sCpuExpName[17] = {
|
||||
const char* JUTException::sCpuExpName[17] = {
|
||||
"SYSTEM RESET",
|
||||
"MACHINE CHECK",
|
||||
"DSI",
|
||||
@@ -132,9 +83,8 @@ JUTException* JUTException::create(JUTDirectPrint* directPrint) {
|
||||
return sErrorManager;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804508F0-804508F8 000370 0004+04 1/1 0/0 0/0 .sdata sMessageBuffer__12JUTException */
|
||||
SECTION_SDATA OSMessage JUTException::sMessageBuffer[1 + 1 /* padding */] = {0};
|
||||
OSMessage JUTException::sMessageBuffer[1] = {0};
|
||||
|
||||
struct CallbackObject {
|
||||
/* 0x00 */ OSErrorHandler callback;
|
||||
@@ -179,9 +129,7 @@ void* JUTException::run() {
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80434578-8043458C 061298 0014+00 2/2 0/0 0/0 .bss exCallbackObject */
|
||||
|
||||
STATIC_ASSERT(sizeof(CallbackObject) == 0x14);
|
||||
static CallbackObject exCallbackObject;
|
||||
|
||||
@@ -304,16 +252,6 @@ void JUTException::showFloatSub(int index, f32 value) {
|
||||
}
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039D490-8039D490 029AF0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039D5B7 =
|
||||
"-------------------------------- FPR\n";
|
||||
SECTION_DEAD static char const* const stringBase_8039D5DD = " ";
|
||||
SECTION_DEAD static char const* const stringBase_8039D5DF = "\n";
|
||||
#pragma pop
|
||||
|
||||
/* 802E2454-802E2578 2DCD94 0124+00 1/1 0/0 0/0 .text showFloat__12JUTExceptionFP9OSContext */
|
||||
void JUTException::showFloat(OSContext* context) {
|
||||
if (!sConsole) {
|
||||
@@ -968,147 +906,132 @@ bool JUTException::queryMapAddress(char* mapPath, u32 address, s32 section_id, u
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039D490-8039D490 029AF0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039D97E = " [%08X]: .%s [%08X: %XH]\n %s\n";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8039D99E = "\0";
|
||||
#pragma pop
|
||||
|
||||
/* 802E3C90-802E3FEC 2DE5D0 035C+00 1/1 0/0 0/0 .text
|
||||
* queryMapAddress_single__12JUTExceptionFPcUllPUlPUlPcUlbb */
|
||||
// 2 additional instructions (addi r5,r1,8) related to section_name variable.
|
||||
#ifdef NONMATCHING
|
||||
bool JUTException::queryMapAddress_single(char* mapPath, u32 address, s32 section_id, u32* out_addr,
|
||||
u32* out_size, char* out_line, u32 line_length,
|
||||
bool print, bool begin_with_newline) {
|
||||
if (!mapPath) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
char section_name[16];
|
||||
char buffer[0x200];
|
||||
JUTDirectFile file;
|
||||
int i = 0;
|
||||
if (!file.fopen(mapPath)) {
|
||||
return false;
|
||||
}
|
||||
char section_name[16];
|
||||
char buffer[0x200];
|
||||
JUTDirectFile file;
|
||||
int section_idx = 0;
|
||||
if (!file.fopen(mapPath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool result = 0;
|
||||
do {
|
||||
char* src = buffer;
|
||||
int found_section = 0;
|
||||
do {
|
||||
i++;
|
||||
while (true) {
|
||||
while (true) {
|
||||
int length = file.fgets(buffer, ARRAY_SIZE(buffer));
|
||||
if (length < 0)
|
||||
goto next_section;
|
||||
if (buffer[0] == '.')
|
||||
break;
|
||||
}
|
||||
bool result = false;
|
||||
bool found_section;
|
||||
|
||||
int i = 0;
|
||||
char* src = buffer + 1;
|
||||
for (; *src != '\0'; i++, src++) {
|
||||
section_name[i] = *src;
|
||||
if (*src == ' ' || i == 0xf)
|
||||
break;
|
||||
}
|
||||
while (true) {
|
||||
section_idx++;
|
||||
found_section = false;
|
||||
while (true) {
|
||||
char* src;
|
||||
char* dst;
|
||||
|
||||
section_name[i] = 0;
|
||||
if (*src == 0)
|
||||
break;
|
||||
if (file.fgets(buffer, ARRAY_SIZE(buffer)) < 0)
|
||||
break;
|
||||
if (buffer[0] != '.')
|
||||
continue;
|
||||
|
||||
if (src[1] == 's' && src[2] == 'e' && src[3] == 'c' && src[4] == 't') {
|
||||
found_section = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ((found_section & 0xFF) == 0)
|
||||
goto end;
|
||||
} while (section_id >= 0 && section_id != i);
|
||||
next_section:;
|
||||
int i = 0;
|
||||
src = buffer + 1;
|
||||
while (*src != '\0') {
|
||||
section_name[i] = *src;
|
||||
if (*src == ' ' || i == 0xf)
|
||||
break;
|
||||
i++;
|
||||
src++;
|
||||
}
|
||||
|
||||
u32 addr;
|
||||
int size;
|
||||
do {
|
||||
int length;
|
||||
do {
|
||||
length = file.fgets(buffer, ARRAY_SIZE(buffer));
|
||||
if (length <= 4)
|
||||
goto next_symbol;
|
||||
} while ((length < 28) || (buffer[28] != '4'));
|
||||
section_name[i] = 0;
|
||||
if (*src == 0)
|
||||
break;
|
||||
|
||||
addr = strtol(buffer + 19, NULL, 16);
|
||||
addr = ((buffer[18] - '0') << 28) | addr;
|
||||
size = strtol(buffer + 11, NULL, 16);
|
||||
} while (addr > address || address >= addr + size);
|
||||
if (src[1] == 's' && src[2] == 'e' && src[3] == 'c' && src[4] == 't') {
|
||||
found_section = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (out_addr)
|
||||
*out_addr = addr;
|
||||
if (!found_section)
|
||||
break;
|
||||
|
||||
if (out_size)
|
||||
*out_size = size;
|
||||
if (section_id >= 0 && section_id != section_idx)
|
||||
continue;
|
||||
|
||||
if (out_line) {
|
||||
src = buffer + 0x1e;
|
||||
char* dst = out_line;
|
||||
u32 length = 0;
|
||||
for (; length < line_length - 1; src++) {
|
||||
u32 ch = *(u8*)src;
|
||||
if (ch < ' ' && ch != '\t')
|
||||
break;
|
||||
if (((int)ch == ' ' || ch == '\t') && (length != 0)) {
|
||||
if (dst[-1] != ' ') {
|
||||
*dst = ' ';
|
||||
dst++;
|
||||
length++;
|
||||
}
|
||||
} else {
|
||||
*dst = ch;
|
||||
dst++;
|
||||
length++;
|
||||
}
|
||||
}
|
||||
if (length != 0 && dst[-1] == ' ') {
|
||||
dst--;
|
||||
}
|
||||
*dst = 0;
|
||||
if (print) {
|
||||
if (begin_with_newline) {
|
||||
sConsole->print("\n");
|
||||
}
|
||||
sConsole->print_f(" [%08X]: .%s [%08X: %XH]\n %s\n", address, section_name, addr,
|
||||
size, out_line);
|
||||
begin_with_newline = false;
|
||||
}
|
||||
}
|
||||
int length;
|
||||
|
||||
result = true;
|
||||
while (true) {
|
||||
if ((length = file.fgets(buffer, ARRAY_SIZE(buffer))) <= 4)
|
||||
break;
|
||||
if ((length < 28))
|
||||
continue;
|
||||
if (buffer[28] == '4') {
|
||||
u32 addr = ((buffer[18] - '0') << 28) | strtol(buffer + 19, NULL, 16);
|
||||
int size = strtol(buffer + 11, NULL, 16);
|
||||
if ((addr <= address && address < addr + size)) {
|
||||
if (out_addr)
|
||||
*out_addr = addr;
|
||||
|
||||
next_symbol:;
|
||||
} while ((result & 0xFF) == 0 && section_id >= 0 && section_id != i);
|
||||
if (out_size)
|
||||
*out_size = size;
|
||||
|
||||
if (print && begin_with_newline) {
|
||||
sConsole->print("\n");
|
||||
}
|
||||
if (out_line) {
|
||||
const u8* src = (const u8*)&buffer[0x1e];
|
||||
u8* dst = (u8*)out_line;
|
||||
u32 i = 0;
|
||||
|
||||
end:
|
||||
file.fclose();
|
||||
bool bresult = result != false;
|
||||
return bresult;
|
||||
for (i = 0; i < line_length - 1; ++src) {
|
||||
if ((u32)(*src) < ' ' && (u32)*src != '\t')
|
||||
break;
|
||||
if ((*src == ' ' || (u32)*src == '\t') && (i != 0)) {
|
||||
if (dst[-1] != ' ') {
|
||||
*dst = ' ';
|
||||
dst++;
|
||||
++i;
|
||||
}
|
||||
} else {
|
||||
*dst++ = *src;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if (i != 0 && dst[-1] == ' ') {
|
||||
dst--;
|
||||
i--;
|
||||
}
|
||||
*dst = 0;
|
||||
if (print) {
|
||||
if (begin_with_newline) {
|
||||
sConsole->print("\n");
|
||||
}
|
||||
sConsole->print_f(" [%08X]: .%s [%08X: %XH]\n %s\n", address, section_name, addr, size, out_line);
|
||||
begin_with_newline = false;
|
||||
}
|
||||
}
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!result && (section_id < 0 || section_id != section_idx)) {
|
||||
continue;
|
||||
}
|
||||
if (print && begin_with_newline) {
|
||||
sConsole->print("\n");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
file.fclose();
|
||||
return result ? true : false;
|
||||
}
|
||||
#else
|
||||
bool JUTException::queryMapAddress_single(char* param_0, u32 param_1, s32 param_2, u32* param_3,
|
||||
u32* param_4, char* param_5, u32 param_6,
|
||||
bool param_7, bool param_8) {
|
||||
// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 802E3FEC-802E40CC 2DE92C 00E0+00 0/0 1/1 0/0 .text createConsole__12JUTExceptionFPvUl
|
||||
*/
|
||||
@@ -1146,8 +1069,3 @@ JUTExternalFB::JUTExternalFB(_GXRenderModeObj* renderMode, GXGamma gamma, void*
|
||||
|
||||
/* 802E40EC-802E414C 2DEA2C 0060+00 1/0 0/0 0/0 .text __dt__12JUTExceptionFv */
|
||||
JUTException::~JUTException() {}
|
||||
|
||||
/* ##############################################################################################
|
||||
*/
|
||||
/* 804508F8-80450900 000378 0008+00 0/0 3/3 0/0 .sdata None */
|
||||
SECTION_SDATA extern bool sAssertVisible = true;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <dolphin.h>
|
||||
|
||||
/* 8039DA20-803A1B80 02A080 4160+00 0/0 1/0 0/0 .rodata JUTResFONT_Ascfont_fix12 */
|
||||
extern u8 const JUTResFONT_Ascfont_fix12[16736] = {
|
||||
extern u8 const JUTResFONT_Ascfont_fix12[16736] ALIGN_DECL(32) = {
|
||||
0x46, 0x4F, 0x4E, 0x54, 0x62, 0x66, 0x6E, 0x31, 0x00, 0x00, 0x41, 0x60, 0x00, 0x00, 0x00, 0x04,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x49, 0x4E, 0x46, 0x31, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0C,
|
||||
@@ -1048,4 +1048,4 @@ extern u8 const JUTResFONT_Ascfont_fix12[16736] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -55,27 +55,22 @@ void JUTXfb::common_init(int bufNum) {
|
||||
|
||||
/* 802E5260-802E5308 2DFBA0 00A8+00 1/1 0/0 0/0 .text
|
||||
* __ct__6JUTXfbFPC16_GXRenderModeObjP7JKRHeapQ26JUTXfb10EXfbNumber */
|
||||
#ifdef NONMATCHING
|
||||
JUTXfb::JUTXfb(_GXRenderModeObj const* pObj, JKRHeap* pHeap, JUTXfb::EXfbNumber xfbNum) {
|
||||
// NONMATCHING - regswap, equivalent
|
||||
JUTXfb::JUTXfb(GXRenderModeObj const* pObj, JKRHeap* pHeap, JUTXfb::EXfbNumber xfbNum) {
|
||||
common_init(xfbNum);
|
||||
|
||||
if (pObj) {
|
||||
initiate(pObj->fb_width, pObj->xfb_height, pHeap, xfbNum);
|
||||
} else {
|
||||
//_GXRenderModeObj* renderObj = JUTVideo::getManager()->getRenderMode();
|
||||
u16 fb_width = JUTVideo::getManager()->getRenderMode()->fb_width;
|
||||
u16 efb_height = JUTVideo::getManager()->getRenderMode()->efb_height;
|
||||
u16 xfb_height = JUTVideo::getManager()->getRenderMode()->xfb_height;
|
||||
f32 scale_factor = GXGetYScaleFactor(efb_height, xfb_height);
|
||||
u16 xfb_lines = GXGetNumXfbLines(efb_height, scale_factor);
|
||||
|
||||
initiate(fb_width, GXGetNumXfbLines(efb_height, scale_factor), pHeap, xfbNum);
|
||||
initiate(fb_width, xfb_lines, pHeap, xfbNum);
|
||||
}
|
||||
}
|
||||
#else
|
||||
JUTXfb::JUTXfb(_GXRenderModeObj const* param_0, JKRHeap* param_1,
|
||||
JUTXfb::EXfbNumber param_2){// NONMATCHING
|
||||
}
|
||||
#endif
|
||||
|
||||
JUTXfb* JUTXfb::sManager;
|
||||
|
||||
@@ -132,4 +127,4 @@ void JUTXfb::initiate(u16 width, u16 height, JKRHeap* pHeap, JUTXfb::EXfbNumber
|
||||
mBuffer[2] = NULL;
|
||||
mXfbAllocated[2] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user