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 18:03:38 -07:00
committed by GitHub
parent 24d529f67b
commit f1924e91f4
108 changed files with 5134 additions and 4349 deletions
+2
View File
@@ -1,5 +1,6 @@
#include "d/d_a/d_a_alink/d_a_alink.h"
#include "SComponent/c_bg_w.h"
#include "SComponent/c_lib.h"
#include "SComponent/c_phase.h"
#include "Z2AudioLib/Z2Creature/Z2Creature.h"
#include "Z2AudioLib/Z2LinkMgr/Z2LinkMgr.h"
@@ -7,6 +8,7 @@
#include "Z2AudioLib/Z2SeqMgr/Z2SeqMgr.h"
#include "Z2AudioLib/Z2SoundObject/Z2SoundObject.h"
#include "d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h"
#include "d/d_kankyo/d_kankyo.h"
#include "f/f_pc/f_pc_manager.h"
#include "f/f_pc/f_pc_searcher.h"
#include "m_Do/m_Do_audio/m_Do_audio.h"
+1
View File
@@ -12,6 +12,7 @@
#include "f/f_pc/f_pc_searcher.h"
#include "m_Do/m_Do_audio/m_Do_audio.h"
#include "m_Do/m_Do_controller_pad/m_Do_controller_pad.h"
#include "m_Do/m_Do_graphic/m_Do_graphic.h"
extern "C" {
void __dt__8cM3dGLinFv(void);
+1
View File
@@ -3,6 +3,7 @@
#include "Z2AudioLib/Z2SeqMgr/Z2SeqMgr.h"
#include "d/d_bg/d_bg_s/d_bg_s.h"
#include "d/d_item/d_item/d_item.h"
#include "d/d_kankyo/d_kankyo.h"
#include "global.h"
#include "m_Do/m_Do_Reset/m_Do_Reset.h"
#include "m_Do/m_Do_audio/m_Do_audio.h"
+4 -2
View File
@@ -1,9 +1,11 @@
/* d_kankyo.cpp autogenerated by split.py v0.3 at 2021-01-01 22:51:09.344700 */
#include "d/d_kankyo/d_kankyo.h"
#include "Z2AudioLib/Z2SeMgr/Z2SeMgr.h"
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "global.h"
#include "m_Do/m_Do_audio/m_Do_audio.h"
#include "m_Do/m_Do_graphic/m_Do_graphic.h"
#include "os/OS.h"
extern "C" {
@@ -279,14 +281,14 @@ asm void dKy_FiveSenses_fullthrottle_dark_static1(void) {
nofralloc
#include "d/d_kankyo/asm/func_8019D8CC.s"
}
};
// dKy_FiveSenses_fullthrottle_dark__Fv
// dKy_FiveSenses_fullthrottle_dark(void)
asm void dKy_FiveSenses_fullthrottle_dark(void) {
nofralloc
#include "d/d_kankyo/asm/func_8019DD4C.s"
}
extern "C" {
// dKy_light_influence_id__F4cXyzi
// dKy_light_influence_id(cXyz, int)
asm void dKy_light_influence_id(void) {
+1
View File
@@ -1,5 +1,6 @@
/* d_kankyo_data.cpp autogenerated by split.py v0.3 at 2021-01-01 22:11:10.952715 */
#include "d/d_kankyo/d_kankyo.h"
#include "global.h"
extern "C" {
+1
View File
@@ -3,6 +3,7 @@
#include "SComponent/c_math.h"
#include "d/d_bg/d_bg_s/d_bg_s_poly_pass_chk.h"
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "d/d_kankyo/d_kankyo.h"
#include "global.h"
extern "C" {
+9 -9
View File
@@ -3,6 +3,7 @@
#include "SComponent/c_xyz.h"
#include "Z2AudioLib/Z2SeMgr/Z2SeMgr.h"
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "d/d_kankyo/d_kankyo.h"
#include "global.h"
#include "m_Do/m_Do_audio/m_Do_audio.h"
@@ -477,7 +478,7 @@ asm void dKyw_evil_Draw(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_800574BC.s"
}
};
// dKyw_wether_init__Fv
// dKyw_wether_init(void)
asm void dKyw_wether_init(void) {
@@ -498,7 +499,7 @@ asm void dKyw_wether_delete(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_80057A04.s"
}
extern "C" {
// __dt__19dKankyo_evil_PacketFv
// dKankyo_evil_Packet::~dKankyo_evil_Packet(void)
asm void func_80057C84(void) {
@@ -568,14 +569,14 @@ asm void func_80058128(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_80058128.s"
}
};
// dKyw_wether_delete2__Fv
// dKyw_wether_delete2(void)
asm void dKyw_wether_delete2(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_800581AC.s"
}
extern "C" {
// __dt__21dKankyo_vrkumo_PacketFv
// dKankyo_vrkumo_Packet::~dKankyo_vrkumo_Packet(void)
asm void func_8005820C(void) {
@@ -589,14 +590,14 @@ asm void wether_move_thunder(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_80058290.s"
}
};
// dKyw_wether_move__Fv
// dKyw_wether_move(void)
asm void dKyw_wether_move(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_800582F8.s"
}
extern "C" {
// wether_move_sun__Fv
// wether_move_sun(void)
asm void wether_move_sun(void) {
@@ -666,14 +667,13 @@ asm void wether_move_evil(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_80059F74.s"
}
};
// dKyw_wether_move_draw__Fv
// dKyw_wether_move_draw(void)
asm void dKyw_wether_move_draw(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_8005A0B8.s"
}
// dKyw_wether_move_draw2__Fv
// dKyw_wether_move_draw2(void)
asm void dKyw_wether_move_draw2(void) {
@@ -694,7 +694,7 @@ asm void dKyw_wether_draw2(void) {
nofralloc
#include "d/d_kankyo/d_kankyo_wether/asm/func_8005A304.s"
}
extern "C" {
// dKyw_wether_proc__Fv
// dKyw_wether_proc(void)
asm void dKyw_wether_proc(void) {
+81 -1
View File
@@ -1 +1,81 @@
// ok
#include "d/d_ky/d_kyeff/d_kyeff.h"
#include "SComponent/c_lib.h"
#include "Z2AudioLib/Z2EnvSeMgr/Z2EnvSeMgr.h"
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "d/d_kankyo/d_kankyo.h"
#include "m_Do/m_Do_audio/m_Do_audio.h"
#include "os/OS.h"
bool dKyeff_Draw(dKyeff_c* dKyeff_c_ptr) {
dKyw_wether_draw();
return true;
}
// const char* lbl_80394F38 = "Name";
#ifdef NONMATCHING // matching but gameinfoplay struct is messed up
bool dKyeff_c::execute(void) {
char* stageName = dComIfGp_getStartStageName();
int strcmp_result = strcmp(stageName, "Name"); // strcmp(stageName,"Name");
if (strcmp_result != 0) {
dKyw_wether_move();
}
dKyw_wether_move_draw();
dKy_FiveSenses_fullthrottle_dark();
mDoAud_mEnvse_framework();
return true;
}
#else
asm bool dKyeff_c::execute(void) {
nofralloc
#include "d/d_ky/d_kyeff/asm/func_801ADD5C.s"
}
#endif
bool dKyeff_Execute(dKyeff_c* dKyeff_c_ptr) {
return dKyeff_c_ptr->execute();
}
bool dKyeff_IsDelete(dKyeff_c* dKyeff_c_ptr) {
return true;
}
bool dKyeff_Delete(dKyeff_c* dKyeff_c_ptr) {
dKyw_wether_delete();
return true;
}
/*
const f32 lbl_80453E58 = 0.0f;
const f32 lbl_80453E5C = 1.0f;
const f64 lbl_80453E60 = 4.503601774854144E15; //int to float conversion thing
const f32 lbl_80453E68 = 0.7f;
const f32 lbl_80453E6C = 15.0f;
*/
#ifdef NONMATCHING // matching but gameinfoplay struct is messed up
u32 dKyeff_Create(kankyo_class* kankyo_class_ptr) {
int strcmp_result;
OSTime Time;
OSCalendarTime CalendarTime;
dKyw_wether_init();
strcmp_result = strcmp(dComIfGp_getStartStageName(), "Name");
if (strcmp_result == 0) {
Time = OSGetTime();
OSTicksToCalendarTime(
Time,
&CalendarTime); // CONCAT44(iVar1,(int)((ulonglong)OVar2 >> 0x20)),&CalendarTime);
lbl_8042CA54.field_0xe48 = 1.0f;
lbl_8042CA54.field_0xe4c = 0.0f;
lbl_8042CA54.field_0xe50 = 0.0f;
lbl_8042CA54.field_0xe58 = 0.7f;
lbl_8042CA54.field_0x1244 = CalendarTime.hours * 15.0f;
}
return 4;
}
#else
asm u32 dKyeff_Create(kankyo_class* kankyo_class_ptr) {
nofralloc
#include "d/d_ky/d_kyeff/asm/func_801ADE00.s"
}
#endif
+30 -1
View File
@@ -1 +1,30 @@
// ok
#include "d/d_ky/d_kyeff2/d_kyeff2.h"
#include "global.h"
bool dKyeff2_Draw(dKyeff2_c* p_dKyeff2_c) {
dKyw_wether_draw2();
return true;
}
bool dKyeff2_c::execute(void) {
dKyw_wether_move_draw2();
return true;
}
bool dKyeff2_Execute(dKyeff2_c* p_dKyeff2_c) {
return p_dKyeff2_c->execute();
}
bool dKyeff2_IsDelete(dKyeff2_c* p_dKyeff2_c) {
return true;
}
bool dKyeff2_Delete(dKyeff2_c* p_dKyeff2_c) {
dKyw_wether_delete2();
return true;
}
int dKyeff2_Create(kankyo_class* p_kankyo_class) {
dKyw_wether_init2();
return 4;
}
+3 -4
View File
@@ -244,7 +244,6 @@ void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive(void);
void mDoExt_3DlineMatSortPacket_NS_dtor(void);
void mDoExt_3Dline_c(void);
void mDoExt_3Dline_c_NS_init(void);
void mDoExt_GetCurrentRunningThread(void);
void mDoExt_J3DModel__create(void);
void mDoExt_McaMorf2_NS_ERROR_EXIT(void);
void mDoExt_McaMorf2_NS_create(void);
@@ -1841,14 +1840,14 @@ asm void mDoExt_setAraCacheSize(void) {
nofralloc
#include "m_Do/m_Do_ext/asm/func_80014D5C.s"
}
};
// mDoExt_GetCurrentRunningThread__Fv
// mDoExt_GetCurrentRunningThread(void)
asm void mDoExt_GetCurrentRunningThread(void) {
asm OSThread* mDoExt_GetCurrentRunningThread(void) {
nofralloc
#include "m_Do/m_Do_ext/asm/func_80014D64.s"
}
extern "C" {
// setGX__7JUTFontFQ28JUtility6TColorQ28JUtility6TColor
// JUTFont::setGX(JUtility::TColor, JUtility::TColor)
asm void func_80014D9C(void) {
+223 -1
View File
@@ -1 +1,223 @@
// ok
#include "m_Do/m_Do_graphic/m_Do_graphic.h"
#include "JSystem/J2DSys.h"
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
#include "JSystem/JUtility/JUTGamePad/JUTGamePad.h"
#include "SComponent/c_lib.h"
#include "d/d_a/d_a_player/d_a_player.h"
#include "d/d_com/d_com_inf_game/d_com_inf_game.h"
#include "d/d_drawlist/d_drawlist.h"
#include "d/d_kankyo/d_kankyo.h"
#include "f/f_pc/f_pc_searcher.h"
#include "global.h"
#include "gx/GX.h"
#include "m_Do/m_Do_main/m_Do_main.h"
#ifdef NONMATCHING // mr and addi swapped
ResTIMG* createTimg(u16 width, u16 height, u32 format) {
u32 data_offset = 32;
u32 texture_buffer_size = GXGetTexBufferSize(width, height, format, 0, 0);
u32 alloc_size = texture_buffer_size + data_offset;
void* ptr = JKRHeap::alloc(alloc_size, data_offset, NULL);
ResTIMG* timg_ptr = (ResTIMG*)ptr;
if (timg_ptr == NULL) {
return NULL;
}
cLib_memSet(timg_ptr, 0, texture_buffer_size);
timg_ptr->texture_format = format;
timg_ptr->is_alpha_enabled = false;
timg_ptr->texture_width = width;
timg_ptr->texture_height = height;
timg_ptr->min_filter = GX_LINEAR;
timg_ptr->mag_filter = GX_LINEAR;
timg_ptr->num_mipmaps = 1;
timg_ptr->texture_data_offset = data_offset;
return timg_ptr;
}
#else
asm ResTIMG* createTimg(u16 width, u16 height, u32 format) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80007D9C.s"
}
#endif
asm void mDoGph_gInf_c::create(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80007E44.s"
}
asm void mDoGph_gInf_c::beginRender(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80007F90.s"
}
#ifdef NONMATCHING // need to figure out float stuff
void mDoGph_gInf_c::fadeOut(f32 fadeSpeed, _GXColor& color) {
lbl_80450BE6 = true;
lbl_80450BDC = lbl_80451A38;
// lbl_80450594 = color;
lbl_80450594.r = color.r;
lbl_80450594.g = color.g;
lbl_80450594.b = color.b;
lbl_80450594.a = color.a;
// lbl_80450BE0 = fadeSpeed;
if (fadeSpeed < 0.0f) {
lbl_80450BDC = 1.0f;
}
}
#else
asm void mDoGph_gInf_c::fadeOut(f32 fadeSpeed, _GXColor& color) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80007FD8.s"
}
#endif
asm void mDoGph_gInf_c::fadeOut_f(f32 speed, _GXColor& color) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80008028.s"
}
void mDoGph_gInf_c::onBlure(void) {
onBlure(lbl_803A2FD8);
}
void mDoGph_gInf_c::onBlure(const Mtx InMtx) {
lbl_80450BE4 = true;
PSMTXCopy((Mtx*)InMtx, &lbl_803DD43C);
}
void mDoGph_gInf_c::fadeOut(f32 speed) {
fadeOut(speed, lbl_80450600);
}
asm void darwFilter(_GXColor color) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_800080F4.s"
}
asm void mDoGph_gInf_c::calcFade(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80008330.s"
}
void mDoGph_BlankingON(void) {
return;
}
void mDoGph_BlankingOFF(void) {
return;
}
#ifdef NONMATCHING // Matching but gameinfo is screwed up at the moment
void dScnPly_BeforeOfPaint(void) {
dComIfGd_reset();
}
#else
asm void dScnPly_BeforeOfPaint(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80008424.s"
}
#endif
bool mDoGph_BeforeOfDraw(void) {
dScnPly_BeforeOfPaint();
return true;
}
asm bool mDoGph_AfterOfDraw(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80008474.s"
}
asm void drawDepth2(view_class* view_class_ptr, view_port_class* view_port_class_ptr, int param_3) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80008630.s"
}
// __dt__4cXyzFv
// cXyz::~cXyz(void)
extern "C" { // everything gets shifted when this is an actual destructor??
asm void cXyz_NS_dtor(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80009184.s"
}
};
asm void trimming(view_class* view_class_ptr, view_port_class* view_port_class_ptr) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_800091C0.s"
}
asm void mDoGph_drawFilterQuad(s8 param_1, s8 param_2) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_800094B4.s"
}
asm void mDoGph_gInf_c::bloom_c::create(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80009544.s"
}
asm int mDoGph_gInf_c::bloom_c::remove(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_800095F8.s"
}
asm void mDoGph_gInf_c::bloom_c::draw(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_80009650.s"
}
asm void retry_captue_frame(view_class* view_class_ptr, view_port_class* view_port_class_ptr,
int param_3) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000A160.s"
}
asm void motionBlure(view_class* view_class_ptr) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000A290.s"
}
asm void setLight(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000A504.s"
}
asm void drawItem3D(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000A58C.s"
}
asm bool mDoGph_Painter(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000A604.s"
}
extern "C" {
// __dt__13J2DOrthoGraphFv
// J2DOrthoGraph::~J2DOrthoGraph(void)
asm void __dt__13J2DOrthoGraphFv(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000B118.s"
}
};
asm void mDoGph_Create(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000B174.s"
}
extern "C" {
asm void __sinit_m_Do_graphic_cpp(void) {
nofralloc
#include "m_Do/m_Do_graphic/asm/func_8000B1D0.s"
}
};
int daPy_py_c::getAtnActorID(void) const {
return -1;
}
+131 -1
View File
@@ -1 +1,131 @@
// ok
#include "m_Do/m_Do_printf/m_Do_printf.h"
#include "global.h"
#include "m_Do/m_Do_ext/m_Do_ext.h"
#include "os/OS.h"
asm void OSSwitchFiberEx(u32, u32, u32, u32, u32, u32) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006798.s"
}
void my_PutString(const char* message) {
fputs(message, &lbl_803D29B0.stdout);
}
void OSVAttention(const char* fmt, __va_list_struct* va_list) {
mDoPrintf_vprintf(fmt, va_list);
}
extern "C" {
asm void OSAttention(char* msg, ...) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006814.s"
}
void OSReportDisable(void) {
lbl_80450B98 = true;
}
void OSReportEnable(void) {
lbl_80450B98 = false;
}
void OSReportForceEnableOn(void) {
lbl_80450B9C = true;
}
void OSReportForceEnableOff(void) {
lbl_80450B9C = false;
}
}; // extern "C"
void OSReportInit(void) {
if (lbl_80450BB4 == false) {
lbl_80450BB4 = true;
}
}
void mDoPrintf_vprintf_Interrupt(const char* format, __va_list_struct* list) {
s32 enable;
enable = OSDisableInterrupts();
if (lbl_80450BB5 == false) {
lbl_80450BB5 = true;
OSSwitchFiberEx((u32)format, (u32)list, 0, 0, (u32)&vprintf,
(u32)&lbl_803DB740.stack[0x800]);
lbl_80450BB5 = false;
}
OSRestoreInterrupts(enable);
}
void mDoPrintf_vprintf_Thread(const char* format, __va_list_struct* list) {
vprintf(format, list);
}
void mDoPrintf_vprintf(const char* format, __va_list_struct* list) {
OSThread* thread;
u8* stack_pointer;
thread = mDoExt_GetCurrentRunningThread();
if (thread == NULL) {
mDoPrintf_vprintf_Interrupt(format, list);
} else {
stack_pointer = OSGetStackPointer();
if ((stack_pointer < thread->stack_end + 0xa00) || (stack_pointer > thread->stack_base)) {
mDoPrintf_vprintf_Interrupt(format, list);
} else {
mDoPrintf_vprintf_Thread(format, list);
}
}
}
extern "C" {
void mDoPrintf_VReport(const char* format, __va_list_struct* list) {
OSThread* thread;
if (lbl_80450BB4 == false) {
OSReportInit();
}
if ((lbl_80450B9C) || (lbl_80450B98 == false)) {
thread = mDoExt_GetCurrentRunningThread();
if ((lbl_80450BA0 == NULL) || (lbl_80450BA0 == thread)) {
mDoPrintf_vprintf(format, list);
lbl_80450BA4++; // increment print counts
}
}
}
void OSVReport(const char* format, __va_list_struct* list) {
mDoPrintf_VReport(format, list);
}
asm void OSReport(char* fmt, ...) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006ABC.s"
}
asm void OSReport_FatalError(char* fmt, ...) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006B3C.s"
}
asm void OSReport_Error(char* fmt, ...) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006C0C.s"
}
asm void OSReport_Warning(char* fmt, ...) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006CEC.s"
}
asm void OSReport_System(char* fmt, ...) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006DCC.s"
}
asm void OSPanic(char* file, s32 line, char* fmt, ...) {
nofralloc
#include "m_Do/m_Do_printf/asm/func_80006E7C.s"
}
}; // extern "C"