Loading [MathJax]/extensions/tex2jax.js
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
JUTException.h
Go to the documentation of this file.
1#ifndef JUTEXCEPTION_H
2#define JUTEXCEPTION_H
3
6#include "__va_arg.h"
7#include <dolphin/gx.h>
8#include <dolphin/os.h>
9#include "global.h"
10
12typedef struct OSContext OSContext;
13class JUTDirectPrint;
14
20public:
21 /* 802E40CC */ JUTExternalFB(_GXRenderModeObj*, GXGamma, void*, u32);
23private:
25 /* 0x04 */ u32 mSize;
26 /* 0x08 */ u32 field_0x08;
27 /* 0x0C */ u16 field_0x0C;
28 /* 0x0E */ u16 mGamma;
29 /* 0x10 */ bool field_0x10;
30 /* 0x11 */ u8 field_[3];
31};
32
34
35#define JUT_PRINT_GPR 1
36#define JUT_PRINT_GPR_MAP 2
37#define JUT_PRINT_SRR0_MAP 4
38#define JUT_PRINT_FLOAT 8
39#define JUT_PRINT_STACK 16
40
47
48class JUTException : public JKRThread {
49public:
57
59 public:
60 JUTExMapFile(char* path) : mLink(this) { mPath = path; }
61
62 public:
63 /* 0x00 */ char* mPath;
65 /* 0x14 */
66 };
67
68 /* 802E1D5C */ JUTException(JUTDirectPrint*);
69 /* 802E40EC */ virtual ~JUTException();
70
71 /* 802E22C4 */ void showFloatSub(int, f32);
72 /* 802E2454 */ void showFloat(OSContext*);
73 /* 802E26B0 */ void showStack(OSContext*);
74 /* 802E27B0 */ void showMainInfo(u16, OSContext*, u32, u32);
75 /* 802E2A84 */ void showGPR(OSContext*);
76 /* 802E2B44 */ bool showMapInfo_subroutine(u32, bool);
77 /* 802E2CA0 */ void showGPRMap(OSContext*);
78 /* 802E2DAC */ void showSRR0Map(OSContext*);
80 /* 802E2F18 */ bool isEnablePad() const;
81 /* 802E2F54 */ bool readPad(u32*, u32*);
82 /* 802E34C0 */ void printContext(u16, OSContext*, u32, u32);
83 /* 802E3A08 */ void createFB();
84
85 /* 802E1EA8 */ /* vt[03] */ virtual void* run();
86
87 /* 802E1E40 */ static JUTException* create(JUTDirectPrint*);
88 /* 802E1FCC */ static void errorHandler(OSError, OSContext*, u32, u32);
89 /* 802E20C0 */ static void panic_f_va(char const*, int, char const*, va_list);
90 /* 802E21FC */ static void panic_f(char const*, int, char const*, ...);
91 /* 802E227C */ static void setFPException(u32);
92 /* 802E2578 */ static bool searchPartialModule(u32, u32*, u32*, u32*, u32*);
95 /* 802E3B0C */ static void appendMapFile(char const*);
96 /* 802E3BA0 */ static bool queryMapAddress(char*, u32, s32, u32*, u32*, char*, u32, bool, bool);
97 /* 802E3C90 */ static bool queryMapAddress_single(char*, u32, s32, u32*, u32*, char*, u32, bool,
98 bool);
99 /* 802E3FEC */ static void createConsole(void*, u32);
100 /* 802E3980 */ static void waitTime(s32);
101
103 static JUTConsole* getConsole() { return sConsole; }
104
106
107 void setTraceSuppress(u32 param_0) { mTraceSuppress = param_0; }
108 void setGamePad(JUTGamePad* gamePad) {
109 mGamePad = gamePad;
111 }
112
113 static void setMapFile(const char* map) {
114 appendMapFile(map);
115 }
116 static void panic(const char* file, int line, const char* msg) {
117 panic_f(file, line, "%s", msg);
118 }
119
120private:
122 static const char* sCpuExpName[17];
124 static OSMessage sMessageBuffer[1];
128 static void* sConsoleBuffer;
131 static u32 msr;
132 static u32 fpscr;
133
134private:
137 /* 0x84 */ JUTGamePad* mGamePad;
141 /* 0x94 */ u32 mTraceSuppress;
142 /* 0x98 */ u32 field_0x98;
143 /* 0x9C */ u32 mPrintFlags;
144 /* 0xA0 */ u32 mStackPointer;
145};
146
148
153struct JUTWarn {
154 JUTWarn& operator<<(const char*) { return *this; }
155 JUTWarn& operator<<(long) { return *this; }
156};
157
158#endif /* JUTEXCEPTION_H */
enum _GXGamma GXGamma
STATIC_ASSERT(sizeof(JUTExternalFB)==0x14)
u16 OSError
Definition OSError.h:10
void * OSMessage
Definition OSMessage.h:10
Definition JKRThread.h:23
Definition JSUList.h:96
Definition JUTConsole.h:13
Definition JUTDirectPrint.h:11
Definition JUTException.h:58
JUTExMapFile(char *path)
Definition JUTException.h:60
JSULink< JUTExMapFile > mLink
Definition JUTException.h:64
char * mPath
Definition JUTException.h:63
Definition JUTException.h:48
static JUTExceptionUserCallback setPreUserCallback(JUTExceptionUserCallback)
Definition JUTException.cpp:851
JUTExternalFB * getFrameMemory() const
Definition JUTException.h:105
u32 field_0x98
Definition JUTException.h:142
void showFloat(OSContext *)
Definition JUTException.cpp:256
static void setMapFile(const char *map)
Definition JUTException.h:113
static const char * sCpuExpName[17]
Definition JUTException.h:22
void createFB()
Definition JUTException.cpp:821
void showGPR(OSContext *)
Definition JUTException.cpp:422
JUTGamePad::EPadPort mGamePadPort
Definition JUTException.h:138
static JUTExceptionUserCallback setPostUserCallback(JUTExceptionUserCallback)
Definition JUTException.cpp:859
bool showMapInfo_subroutine(u32, bool)
Definition JUTException.cpp:437
void showStack(OSContext *)
Definition JUTException.cpp:333
JUTDirectPrint * mDirectPrint
Definition JUTException.h:136
static JSUList< JUTException::JUTExMapFile > sMapFileList
Definition JUTException.h:123
static void errorHandler(OSError, OSContext *, u32, u32)
Definition JUTException.cpp:154
static bool queryMapAddress_single(char *, u32, s32, u32 *, u32 *, char *, u32, bool, bool)
Definition JUTException.cpp:912
void showGPRMap(OSContext *)
Definition JUTException.cpp:486
void setGamePad(JUTGamePad *gamePad)
Definition JUTException.h:108
void printContext(u16, OSContext *, u32, u32)
Definition JUTException.cpp:647
static void panic(const char *file, int line, const char *msg)
Definition JUTException.h:116
bool isEnablePad() const
Definition JUTException.cpp:554
static JUTException * sErrorManager
Definition JUTException.h:125
s32 mPrintWaitTime0
Definition JUTException.h:139
static void waitTime(s32)
Definition JUTException.cpp:808
static JUTException * getManager()
Definition JUTException.h:102
static void panic_f(char const *, int, char const *,...)
Definition JUTException.cpp:217
u32 mStackPointer
Definition JUTException.h:144
void printDebugInfo(JUTException::EInfoPage, OSError, OSContext *, u32, u32)
Definition JUTException.cpp:533
EInfoPage
Definition JUTException.h:50
@ EINFO_PAGE_GPR_MAP
Definition JUTException.h:54
@ EINFO_PAGE_GPR
Definition JUTException.h:51
@ EINFO_PAGE_SSR0_MAP
Definition JUTException.h:55
@ EINFO_PAGE_FLOAT
Definition JUTException.h:52
@ EINFO_PAGE_STACK
Definition JUTException.h:53
s32 mPrintWaitTime1
Definition JUTException.h:140
static u32 sConsoleBufferSize
Definition JUTException.h:129
JUTException(JUTDirectPrint *)
Definition JUTException.cpp:53
static OSMessage sMessageBuffer[1]
Definition JUTException.h:87
static JUTExceptionUserCallback sPreUserCallback
Definition JUTException.h:126
virtual ~JUTException()
Definition JUTException.cpp:1071
static bool searchPartialModule(u32, u32 *, u32 *, u32 *, u32 *)
Definition JUTException.cpp:278
void setTraceSuppress(u32 param_0)
Definition JUTException.h:107
static void * sConsoleBuffer
Definition JUTException.h:128
u32 mPrintFlags
Definition JUTException.h:143
JUTExternalFB * mFrameMemory
Definition JUTException.h:135
bool readPad(u32 *, u32 *)
Definition JUTException.cpp:565
static void appendMapFile(char const *)
Definition JUTException.cpp:867
static JUTConsole * getConsole()
Definition JUTException.h:103
static bool queryMapAddress(char *, u32, s32, u32 *, u32 *, char *, u32, bool, bool)
Definition JUTException.cpp:885
void showSRR0Map(OSContext *)
Definition JUTException.cpp:515
static OSMessageQueue sMessageQueue
Definition JUTException.h:16
static void setFPException(u32)
Definition JUTException.cpp:226
JUTGamePad * mGamePad
Definition JUTException.h:137
static JUTException * create(JUTDirectPrint *)
Definition JUTException.cpp:76
virtual void * run()
Definition JUTException.cpp:100
static void createConsole(void *, u32)
Definition JUTException.cpp:1038
u32 mTraceSuppress
Definition JUTException.h:141
void showFloatSub(int, f32)
Definition JUTException.cpp:239
void showMainInfo(u16, OSContext *, u32, u32)
Definition JUTException.cpp:360
static void panic_f_va(char const *, int, char const *, va_list)
Definition JUTException.cpp:185
static JUTExceptionUserCallback sPostUserCallback
Definition JUTException.h:127
static u32 msr
Definition JUTException.h:131
static JUTConsole * sConsole
Definition JUTException.h:130
static u32 fpscr
Definition JUTException.h:132
Definition JUTException.h:19
u32 mSize
Definition JUTException.h:25
u8 field_[3]
Definition JUTException.h:30
u16 mGamma
Definition JUTException.h:28
bool field_0x10
Definition JUTException.h:29
_GXRenderModeObj * mRenderMode
Definition JUTException.h:24
JUTExternalFB(_GXRenderModeObj *, GXGamma, void *, u32)
Definition JUTException.cpp:1062
u32 field_0x08
Definition JUTException.h:26
u16 field_0x0C
Definition JUTException.h:27
void(* JUTExceptionUserCallback)(u16, OSContext *, u32, u32)
Definition JUTException.h:46
int const char * msg
Definition os.h:193
int line
Definition os.h:193
Definition JUTGamePad.h:28
EPadPort
Definition JUTGamePad.h:39
@ EPortInvalid
Definition JUTGamePad.h:40
Definition JUTException.h:153
JUTWarn & operator<<(const char *)
Definition JUTException.h:154
JUTWarn & operator<<(long)
Definition JUTException.h:155
Definition OSContext.h:137
Definition OSMessage.h:15
Definition GXStruct.h:11
unsigned long u32
Definition types.h:9
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5