d_kyeff, d_kyeff2, m_Do_printf, and m_Do_graphic (#109)

* Split d_kyeff

* Partially matched d_kyeff

* split d_kyeff2

* Match d_kyeff2

* split m_Do_printf

* m_Do_printf partially matched

* hotfix and clang-format

* split m_Do_graphic

* rename symbols in m_Do_graphic

* Match a few functions in m_Do_graphic

* Fix Merge Errors

* Delete sh.exe.stackdump

* Update OSReportInit
This commit is contained in:
jdflyer
2021-01-31 20:03:38 -05:00
committed by GitHub
parent 24d529f67b
commit f1924e91f4
108 changed files with 5134 additions and 4349 deletions
+27 -1
View File
@@ -1,6 +1,32 @@
#ifndef JSYSTEM_JUTILITY_TEXTURE_H
#define JSYSTEM_JUTILITY_TEXTURE_H
#include "global.h"
struct ResTIMG {};
struct ResTIMG { /* Acts as the header to image data. Usually texture data immediately follows it,
so any pointer arithmetic to go past the end of this structure is so that a
variable sized allocated buffer can be accessed. */
u8 texture_format;
bool is_alpha_enabled;
u16 texture_width;
u16 texture_height;
u8 wrap_s;
u8 wrap_t;
bool is_palettes_enabled;
u8 palette_format;
u16 palette_count;
u32 palette_offset;
bool is_mip_map_enabled;
bool do_edge_lod;
bool bias_clamp;
u8 max_anisotropy;
u8 min_filter;
u8 mag_filter;
u8 min_lod;
u8 max_lod;
u8 num_mipmaps;
u8 unknown;
u16 lod_bias;
u32 texture_data_offset;
};
#endif // JSYSTEM_JUTILITY_TEXTURE_H
+4
View File
@@ -38,4 +38,8 @@ void MtxPosition(cXyz*, cXyz*);
void MtxPush(void);
Mtx* MtxPull(void);
extern "C" {
int strcmp(const char*, const char*);
};
#endif
+5 -1
View File
@@ -18,7 +18,7 @@ extern u8 lbl_80430CE8;
class cXyz : public Vec {
public:
~cXyz(){};
~cXyz() {}
cXyz() {}
cXyz(f32 x, f32 y, f32 z) {
this->x = x;
@@ -106,4 +106,8 @@ extern cXyz lbl_80430CF4; // SComponent::cXyz::Zero
extern cXyz lbl_80430D0C; // SComponent::cXyz::BaseX
extern cXyz lbl_80430D24; // SComponent::cXyz::BaseY
extern "C" { // needed for inline asm
void cXyz_NS_dtor(void);
}
#endif
@@ -1,9 +1,18 @@
#ifndef Z2ENVSEMGR_H_
#define Z2ENVSEMGR_H_
#include "global.h"
struct Z2EnvSeMgr {
Z2EnvSeMgr();
void framework();
u8 unk_1[0x30C];
};
extern void* lbl_80450B3C; // Z2EnvSeMgr sInstance
extern "C" {
void __ct__10Z2EnvSeMgrFv(void);
void framework__10Z2EnvSeMgrFv(void);
void Z2EnvSeAutoPan(void);
void Z2EnvSeAutoPan_NS_calcPan(void);
void Z2EnvSeAutoPan_NS_dtor(void);
+1 -1
View File
@@ -3,7 +3,6 @@
#include "SComponent/c_bg_s_poly_info.h"
#include "SComponent/c_xyz.h"
#include "d/d_a/d_a_alink/d_a_alink.h"
#include "f/f_op/f_op_actor.h"
#include "global.h"
@@ -187,6 +186,7 @@ public:
int checkCopyRodTopUse(void);
int checkCopyRodEquip(void) const;
int checkCutJumpMode(void) const;
int getAtnActorID(void) const; // might not be int
private:
u8 unk[0x4e6];
+1 -1
View File
@@ -150,7 +150,7 @@ lbl_80180F40:
/* 80180F58 0017DE98 D8 01 00 58 */ stfd f0, 0x58(r1)
/* 80180F5C 0017DE9C 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 80180F60 0017DEA0 98 0D 86 65 */ stb r0, lbl_80450BE5-_SDA_BASE_(r13)
/* 80180F64 0017DEA4 4B E8 71 15 */ bl mDoGph_gInf_c_NS_onBlure
/* 80180F64 0017DEA4 4B E8 71 15 */ bl onBlure__13mDoGph_gInf_cFv
/* 80180F68 0017DEA8 48 00 00 70 */ b lbl_80180FD8
lbl_80180F6C:
/* 80180F6C 0017DEAC 38 61 00 1C */ addi r3, r1, 0x1c
+1 -1
View File
@@ -107,7 +107,7 @@ lbl_80181340:
/* 80181424 0017E364 4B E8 B9 79 */ bl mDoMtx_stack_c_NS_transM
/* 80181428 0017E368 3C 60 80 3E */ lis r3, lbl_803DD470@ha
/* 8018142C 0017E36C 38 63 D4 70 */ addi r3, r3, lbl_803DD470@l
/* 80181430 0017E370 4B E8 6C 71 */ bl mDoGph_gInf_c_NS_onBlure_X1_
/* 80181430 0017E370 4B E8 6C 71 */ bl onBlure__13mDoGph_gInf_cFPA4_Cf
/* 80181434 0017E374 C0 22 9F 18 */ lfs f1, lbl_80453918-_SDA2_BASE_(r2)
/* 80181438 0017E378 C0 1F 07 30 */ lfs f0, 0x730(r31)
/* 8018143C 0017E37C EC 01 00 32 */ fmuls f0, f1, f0
@@ -144,8 +144,9 @@ public:
void setMaxOxygen(long max) { give_item.max_oxygen = max; }
u8 getDoStatus(void) { return mDoStatus; }
u8 getRStatus(void) { return mRStatus; }
inline char* getStartStageName() { return mStartStage.getName(); }
private:
private: // NEEDS TO BE FIXED
/* 0x00000 */ dBgS dbgs;
/* 0x0143C */ u8 field_0x143c[0x2999];
/* 0x03EC8 */ dStage_startStage_c mStartStage;
@@ -234,6 +235,7 @@ public:
dSv_memory_c& getMemory() { return info.getMemory(); }
dSv_event_c& getEvent() { return info.getEvent(); }
dSv_info_c& getInfo() { return info; }
inline dDlst_list_c& getDrawlist() { return draw_list_list; }
private:
/* 0x00000 */ dSv_info_c info;
@@ -479,6 +481,12 @@ inline void dComIfGp_setItem(u8 slot, u8 i_no) {
inline u32 dComIfGp_getNowVibration(void) {
return g_dComIfG_gameInfo.getPlay().getNowVibration();
}
inline char* dComIfGp_getStartStageName(void) {
return g_dComIfG_gameInfo.getPlay().getStartStageName();
}
inline void dComIfGd_reset(void) {
g_dComIfG_gameInfo.getDrawlist().reset();
}
extern "C" {
void dComIfGs_staffroll_next_go(void);
+1
View File
@@ -21,6 +21,7 @@ class dDlst_peekZ_c {
class dDlst_list_c {
public:
dDlst_list_c(void);
void reset();
static u32 mWipeColor;
static u32 mWipeDlst;
static u32 mWipeRate;
+1 -1
View File
@@ -25,7 +25,7 @@
/* 801A5C7C 001A2BBC 41 82 00 10 */ beq lbl_801A5C8C
/* 801A5C80 001A2BC0 3C 60 80 3E */ lis r3, lbl_803DD428@ha
/* 801A5C84 001A2BC4 38 63 D4 28 */ addi r3, r3, lbl_803DD428@l
/* 801A5C88 001A2BC8 4B E6 38 BD */ bl mDoGph_gInf_c_NS_bloom_c_NS_create
/* 801A5C88 001A2BC8 4B E6 38 BD */ bl create__Q213mDoGph_gInf_c7bloom_cFv
lbl_801A5C8C:
/* 801A5C8C 001A2BCC 4B FF 90 0D */ bl envcolor_init
/* 801A5C90 001A2BD0 38 00 00 00 */ li r0, 0
+1 -1
View File
@@ -13,7 +13,7 @@
/* 801ADCCC 001AAC0C 38 BF 00 00 */ addi r5, r31, 0
/* 801ADCD0 001AAC10 48 1B 3F 55 */ bl func_80361C24
/* 801ADCD4 001AAC14 38 7F 13 28 */ addi r3, r31, 0x1328
/* 801ADCD8 001AAC18 48 11 84 45 */ bl Z2EnvSeMgr
/* 801ADCD8 001AAC18 48 11 84 45 */ bl __ct__10Z2EnvSeMgrFv
/*.global Z2EnvSeMgr_NS_dtor*/
/* 801ADCDC 001AAC1C 3C 80 80 2C */ lis r4, Z2EnvSeMgr_NS_dtor@ha
/*.global Z2EnvSeMgr_NS_dtor*/
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_KANKYO_H_
#define D_KANKYO_H_
#include "Z2AudioLib/Z2EnvSeMgr/Z2EnvSeMgr.h"
#include "d/d_kankyo/d_kankyo_wether/d_kankyo_wether.h"
class kankyo_class {};
extern Z2EnvSeMgr lbl_8042DD70; // g_mEnvSeMgr
struct env_light { // Most likely not actual struct name
// u8 unk_1[0x131C];
u8 unk_1[0xE48];
f32 field_0xe48;
f32 field_0xe4c;
f32 field_0xe50;
u8 unk_2[0x4];
f32 field_0xe58;
u8 unk_3[0x3E8];
f32 field_0x1244;
u8 unk_4[0xD8];
};
extern env_light lbl_8042CA54; // g_env_light
void dKy_FiveSenses_fullthrottle_dark();
#endif
@@ -0,0 +1,14 @@
#ifndef D_KANKYO_WETHER_H_
#define D_KANKYO_WETHER_H_
void dKyw_wether_draw(void);
void dKyw_wether_delete();
void dKyw_wether_move();
void dKyw_wether_move_draw(void);
void dKyw_wether_init(void);
void dKyw_wether_draw2(void);
void dKyw_wether_move_draw2(void);
void dKyw_wether_delete2(void);
void dKyw_wether_init2(void);
#endif
@@ -0,0 +1,23 @@
/* 801ADD5C 001AAC9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801ADD60 001AACA0 7C 08 02 A6 */ mflr r0
/* 801ADD64 001AACA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 801ADD68 001AACA8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 801ADD6C 001AACAC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 801ADD70 001AACB0 38 63 4E 00 */ addi r3, r3, 0x4e00
/* 801ADD74 001AACB4 3C 80 80 39 */ lis r4, lbl_80394F38@ha
/* 801ADD78 001AACB8 38 84 4F 38 */ addi r4, r4, lbl_80394F38@l
/* 801ADD7C 001AACBC 48 1B AC 19 */ bl strcmp
/* 801ADD80 001AACC0 2C 03 00 00 */ cmpwi r3, 0
/* 801ADD84 001AACC4 41 82 00 08 */ beq lbl_801ADD8C
/* 801ADD88 001AACC8 4B EA A5 71 */ bl dKyw_wether_move__Fv
lbl_801ADD8C:
/* 801ADD8C 001AACCC 4B EA C3 2D */ bl dKyw_wether_move_draw__Fv
/* 801ADD90 001AACD0 4B FE FF BD */ bl dKy_FiveSenses_fullthrottle_dark__Fv
/* 801ADD94 001AACD4 3C 60 80 43 */ lis r3, lbl_8042DD70@ha
/* 801ADD98 001AACD8 38 63 DD 70 */ addi r3, r3, lbl_8042DD70@l
/* 801ADD9C 001AACDC 48 11 89 15 */ bl framework__10Z2EnvSeMgrFv
/* 801ADDA0 001AACE0 38 60 00 01 */ li r3, 1
/* 801ADDA4 001AACE4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801ADDA8 001AACE8 7C 08 03 A6 */ mtlr r0
/* 801ADDAC 001AACEC 38 21 00 10 */ addi r1, r1, 0x10
/* 801ADDB0 001AACF0 4E 80 00 20 */ blr
@@ -0,0 +1,41 @@
/* 801ADE00 001AAD40 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801ADE04 001AAD44 7C 08 02 A6 */ mflr r0
/* 801ADE08 001AAD48 90 01 00 44 */ stw r0, 0x44(r1)
/* 801ADE0C 001AAD4C 4B EA 96 D5 */ bl dKyw_wether_init__Fv
/* 801ADE10 001AAD50 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 801ADE14 001AAD54 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 801ADE18 001AAD58 38 63 4E 00 */ addi r3, r3, 0x4e00
/* 801ADE1C 001AAD5C 3C 80 80 39 */ lis r4, lbl_80394F38@ha
/* 801ADE20 001AAD60 38 84 4F 38 */ addi r4, r4, lbl_80394F38@l
/* 801ADE24 001AAD64 48 1B AB 71 */ bl strcmp
/* 801ADE28 001AAD68 2C 03 00 00 */ cmpwi r3, 0
/* 801ADE2C 001AAD6C 40 82 00 60 */ bne lbl_801ADE8C
/* 801ADE30 001AAD70 48 19 48 CD */ bl OSGetTime
/* 801ADE34 001AAD74 38 A1 00 08 */ addi r5, r1, 8
/* 801ADE38 001AAD78 48 19 4B 3D */ bl OSTicksToCalendarTime
/* 801ADE3C 001AAD7C C0 02 A4 5C */ lfs f0, lbl_80453E5C-_SDA2_BASE_(r2)
/* 801ADE40 001AAD80 3C 60 80 43 */ lis r3, lbl_8042CA54@ha
/* 801ADE44 001AAD84 38 63 CA 54 */ addi r3, r3, lbl_8042CA54@l
/* 801ADE48 001AAD88 D0 03 0E 48 */ stfs f0, 0xe48(r3)
/* 801ADE4C 001AAD8C C0 02 A4 58 */ lfs f0, lbl_80453E58-_SDA2_BASE_(r2)
/* 801ADE50 001AAD90 D0 03 0E 4C */ stfs f0, 0xe4c(r3)
/* 801ADE54 001AAD94 D0 03 0E 50 */ stfs f0, 0xe50(r3)
/* 801ADE58 001AAD98 C0 02 A4 68 */ lfs f0, lbl_80453E68-_SDA2_BASE_(r2)
/* 801ADE5C 001AAD9C D0 03 0E 58 */ stfs f0, 0xe58(r3)
/* 801ADE60 001AADA0 C0 42 A4 6C */ lfs f2, lbl_80453E6C-_SDA2_BASE_(r2)
/* 801ADE64 001AADA4 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801ADE68 001AADA8 C8 22 A4 60 */ lfd f1, lbl_80453E60-_SDA2_BASE_(r2)
/* 801ADE6C 001AADAC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 801ADE70 001AADB0 90 01 00 34 */ stw r0, 0x34(r1)
/* 801ADE74 001AADB4 3C 00 43 30 */ lis r0, 0x4330
/* 801ADE78 001AADB8 90 01 00 30 */ stw r0, 0x30(r1)
/* 801ADE7C 001AADBC C8 01 00 30 */ lfd f0, 0x30(r1)
/* 801ADE80 001AADC0 EC 00 08 28 */ fsubs f0, f0, f1
/* 801ADE84 001AADC4 EC 02 00 32 */ fmuls f0, f2, f0
/* 801ADE88 001AADC8 D0 03 12 44 */ stfs f0, 0x1244(r3)
lbl_801ADE8C:
/* 801ADE8C 001AADCC 38 60 00 04 */ li r3, 4
/* 801ADE90 001AADD0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801ADE94 001AADD4 7C 08 03 A6 */ mtlr r0
/* 801ADE98 001AADD8 38 21 00 40 */ addi r1, r1, 0x40
/* 801ADE9C 001AADDC 4E 80 00 20 */ blr
+30
View File
@@ -0,0 +1,30 @@
#ifndef D_KYEFF_H_
#define D_KYEFF_H_
#include "d/d_kankyo/d_kankyo.h"
#include "global.h"
class dKyeff_c {
public:
bool execute();
};
bool dKyeff_Execute(dKyeff_c* dKyeff_c_ptr);
bool dKyeff_IsDelete();
bool dKyeff_Delete(dKyeff_c* dKyeff_c_ptr);
u32 dKyeff_Create(kankyo_class* kankyo_class_ptr);
extern u8 lbl_80394F38;
extern f32 lbl_80453E58; //@3804 0.0f
extern f32 lbl_80453E5C; //@3805 1.0f
extern f64 lbl_80453E60; //@3812 4.503601774854144E15f
extern f32 lbl_80453E68; //@3843 0.7f
extern f32 lbl_80453E6C; //@3844 15.0f
extern "C" {
void dKy_FiveSenses_fullthrottle_dark__Fv(void);
void dKyw_wether_move__Fv(void);
void dKyw_wether_move_draw__Fv(void);
void dKyw_wether_init__Fv(void);
}
#endif
+16
View File
@@ -0,0 +1,16 @@
#ifndef _D_KYEFF2_H
#define _D_KYEFF2_H
#include "d/d_kankyo/d_kankyo.h"
class dKyeff2_c {
public:
bool execute(void);
};
bool dKyeff2_Draw(dKyeff2_c* p_dKyeff2_c);
bool dKyeff2_Execute(dKyeff2_c* p_dKyeff2_c);
bool dKyeff2_IsDelete(dKyeff2_c* p_dKyeff2_c);
bool dKyeff2_Delete(dKyeff2_c* p_dKyeff2_c);
int dKyeff2_Create(kankyo_class* p_kankyo_class);
#endif
+1
View File
@@ -375,6 +375,7 @@ private:
class dStage_startStage_c {
public:
void set(const char*, s8, s16, s8);
inline char* getName() { return this->mStage; }
private:
/* 0x0 */ char mStage[8];
+88 -1
View File
@@ -54,6 +54,50 @@ struct GXRenderModeObj {
u8 vfilter[7];
};
typedef enum GXTexFmt8 { /* 8-bit version of GXTexFmt for use in structures */
GX_CTF_A8 = 39,
GX_CTF_B8 = 42,
GX_CTF_G8 = 41,
GX_CTF_GB8 = 44,
GX_CTF_R4 = 32,
GX_CTF_R8 = 40,
GX_CTF_RA4 = 34,
GX_CTF_RA8 = 35,
GX_CTF_RG8 = 43,
GX_CTF_YUVA8 = 38,
GX_CTF_Z16L = 60,
GX_CTF_Z4 = 48,
GX_CTF_Z8L = 58,
GX_CTF_Z8M = 57,
GX_TF_CMPR = 14,
GX_TF_I4 = 0,
GX_TF_I8 = 1,
GX_TF_IA4 = 2,
GX_TF_IA8 = 3,
GX_TF_RGB565 = 4,
GX_TF_RGB5A3 = 5,
GX_TF_RGBA8 = 6,
GX_TF_Z16 = 19,
GX_TF_Z24X8 = 22,
GX_TF_Z8 = 17
} GXTexFmt8;
typedef enum GXTexWrapMode8 { /* Same as GXTexWrapMode, but as 1 byte for use inside structures */
GX_CLAMP = 0,
GX_MIRROR = 2,
GX_REPEAT = 1
} GXTexWrapMode8;
typedef enum GXTexFilter8 { /* Same as GXTexFilter, but as 1 byte for use within structures that
store the value as a byte */
GX_LINEAR = 1,
GX_LIN_MIP_LIN = 5,
GX_LIN_MIP_NEAR = 3,
GX_NEAR = 0,
GX_NEAR_MIP_LIN = 4,
GX_NEAR_MIP_NEAR = 2
} GXTexFilter8;
extern "C" {
f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height);
u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale);
@@ -87,6 +131,49 @@ void GXFlush(void);
struct OSThread;
OSThread* GXSetCurrentGXThread(void);
OSThread* GXGetCurrentGXThread(void);
}
// Below needs proper symbols
void GXClearVtxDesc(void);
void GXCopyTex(void);
void GXGetProjectionv(void);
u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, s32 is_mip_map, u8 max_lod);
void GXGetViewportv(void);
void GXInitLightColor(void);
void GXInitLightDir(void);
void GXInitLightDistAttn(void);
void GXInitLightPos(void);
void GXInitLightSpot(void);
void GXInvalidateTexAll(void);
void GXLoadLightObjImm(void);
void GXLoadPosMtxImm(void);
void GXLoadTexMtxImm(void);
void GXPixModeSync(void);
void GXProject(void);
void GXSetAlphaCompare(void);
void GXSetAlphaUpdate(void);
void GXSetChanMatColor(void);
void GXSetClipMode(void);
void GXSetCoPlanar(void);
void GXSetCopyFilter(void);
void GXSetCullMode(void);
void GXSetCurrentMtx(void);
void GXSetDither(void);
void GXSetFog(void);
void GXSetFogRangeAdj(void);
void GXSetNumIndStages(void);
void GXSetProjection(void);
void GXSetScissor(void);
void GXSetTevColorS10(void);
void GXSetTevKAlphaSel(void);
void GXSetTevSwapMode(void);
void GXSetTevSwapModeTable(void);
void GXSetTexCoordGen2(void);
void GXSetTexCopyDst(void);
void GXSetTexCopySrc(void);
void GXSetViewport(void);
void GXSetZCompLoc(void);
void GXSetZMode(void);
void GXSetZTexture(void);
};
#endif
+7 -1
View File
@@ -1,8 +1,14 @@
#ifndef __M_DO_AUDIO_H_
#define __M_DO_AUDIO_H_
#include "Z2AudioLib/Z2AudioMgr/Z2AudioMgr.h"
#include "Z2AudioLib/Z2EnvSeMgr/Z2EnvSeMgr.h"
#include "d/d_kankyo/d_kankyo.h"
#include "global.h"
inline void mDoAud_mEnvse_framework(void) {
lbl_8042DD70.framework();
}
class mDoAud_zelAudio_c { // Seems to be based on Z2AudioMgr; more research is needed
public:
void reset(void);
@@ -84,4 +90,4 @@ void Z2AudioMgr_NS_setOutputMode__9JASDriverFUl(void);
void init__10Z2AudioMgrFP12JKRSolidHeapUlPvP10JKRArchive(void);
void mDoAud_resetProcess__Fv(void);
}
#endif
#endif

Some files were not shown because too many files have changed in this diff Show More